The D Language Foundation meeting for the month of August took place on Friday, August 27, at 13:00 UTC. Participating were:
- Walter Bright
- Átila Neves
- Andrei Alexandrescu
- Ali Çehreli
- Razvan Nitu
- Max Haughton
- Me
Topics discussed
SAOC application to solve "dub dependency hell"
One of the SAOC applications was on the agenda. The proposed project aims to solve an issue that arises with dub when two dependencies, in turn, depend on different versions of a third dependency. Currently, dub will error out. The proposal calls for two new compiler switches that dub can make use of to resolve the version difference by modifying the mangled names of the functions from two versions to distinguish them. As one of the SAOC judges, Átila liked the end goal of the project but was concerned about the approach. Walter also expressed concern about the ramifications of the new switches. He suggested exploring if dmd's existing -mv
switch can be used to solve the problem. If that is not possible, the SAOC student will proceed with implementing the original proposal. Once the project is complete, it can be tested and evaluated to see if it works without any problematic consequences.
Potential contract jobs
We talked about getting more active in making use of our HR fund. It's currently sitting at $17,525. We have one contract job that's indefinitely delayed, but it's been a while since we put this fund to use. As a start, I proposed paying someone to investigate the DLL situation, see what's still broken, and fix it. Someone pointed out that Martin Kinkelin has significantly improved DLL support for LDC in order to make Phobos/Druntime as a DLL a reality. So whether or not this particular initiative moves forward depends on if there's enough work left to do to fund it, and I'll know more once I get the details from Martin. If not, we'll have other funded projects to propose. (And if anyone is appreciative of the work Martin has done on this issue and with LDC in general, you can show it by sponsoring his work.)
Server management
The services that comprise dlang.org are not all on one server, they are administered by different people and others generally have no admin access. This includes not just the servers, but the domains and DNS settings. This is a result of some of the services, such as the D Tour and the web forum interface, having been created and managed by volunteers, and subsequently brought under the dlang.org umbrella. At a previous meeting last year, we discussed the need to unify things somewhat. It would be beneficial to have multiple people with admin access to all of the services that comprise our core community.
Around the same time last year, an anonymous donor provided $500 to the foundation to put to use on server management, and also offered his experience and expertise if we need it. We subsequently discussed options at a couple of meetings, but did not come to a final conclusion, and put the issue on the backburner. Recently, we received news that the long-term administrator of dlang.org is looking toward retirement not too far down the road. He gave us significantly advance notice so that we can make preparations with time to spare. Now is the time to take the issue off the backburner.
We decided as a first step to reach out to our anonymous donor since he already offered to help, to see if he is still willing. If so, we will consult with him and start formulating a plan. We may need to ask for volunteers or raise money for a part-time position, or who knows what. I will put out more information and announcements as we progress.
Gamification of Bugzilla issues
Razvan has been working on a system to track and reward contributions of Bugzilla fixes across the core repositories, with help from Vladimir Panteleev. He's got the implementation done and has successfully tested it, so now he's ready to pull the trigger on it. We discussed potential rewards for the first round. Razvan will soon publish a blog post describing the new system and detailing the rewards.
The short of it is that each reward period will run for three months. At the end of the period, the top three contributors will each be rewarded. Razvan will explain in the blog post how the scoring system works. Rewards will vary and will be announced at the beginning of each period. As a pilot run, the first period will be shorter, starting from the date Razvan announces in his blog post and ending on the first day of DConf Online (November 20). That will allow us to announce the reward winners at DConf. The second period will be longer, starting from November 21 and running until March 31. The third period will then begin the quarterly schedule starting from April 1.
DIP 1029, Bugzilla 19320
Two recent PRs from one of this year's SAOC participants, Luís Ferreira, made their way onto the agenda.
He submitted one back in July to implement DIP 1029, "Add throw as Function Attribute". This is going to need sign-off from Walter. We discussed it at the meeting, and Walter promised to look at it as soon as I remind him. Luís isn't quite ready yet; he still has some more work to do and has asked me to wait until he's done. When I get the thumbs up from him, I'll ping Walter and he'll review the PR.
The other was a fix for Bugzilla issue 19320. This is an issue affecting unit testing std.array
. His workaround involved modifying that module. Razvan subsequently submitted an alternative PR that disables the error. We discussed the issue and the PRs and decided the best course of action is to find and resolve the root cause in dmd. This is now on Walter's TODO list.
Governance proposal
For some time now, Mathias Lang has quietly been working on a governance proposal for D inspired by Python's PEP 13. He has solicited feedback from a few people, including Iain Buclaw and myself, and now has a draft proposal. Max brought this up in the meeting and everyone agreed that it's worth discussing. We decided that this will be the primary item on the agenda for our next monthly meeting on September 24th. I subsequently asked Mathias to submit the proposal to all the relevant parties so they can review it beforehand.
I want to emphasize that this is going to be a discussion of the proposal. The last thing I want is to give the impression that this indicates an intention to accept or reject it outright. Experience has shown that people can read more into my words than I intended by them, so let me be clear: this is a discussion of the proposal, a discussion which can lead to any of a number of potential outcomes, none of which is preordained.
I will have more to say about this after our next monthly meeting.
Bringing in more people
Quite frequently, the topics that come up in our monthly meetings are lacking some perspective. Bringing some key people into these meetings can bring that needed perspective. As such, we've decided that starting with the next meeting, we will invite Martin Kinkelin, Iain Buclaw, and Mathias Lang to become permanent meeting members. Mathias has been attending the quarterly meetings as a representative of his company, Iain has attended as the representative of GDC, and Martin has recently begun attending as the representative of LDC. Including them in our monthly meetings can't help but be beneficial to D.
Other
A few other topics we discussed: Ali brought up a hypothetical renaming of @trusted
to something that would more accurately reflect its meaning (@certified
came up, but this is not something anyone will actively pursue at the moment); Walter brought up his implementation of bitfields for ImportC and proposed that he turn them on for D, and after a discussion about it everyone agreed that's the way to go; Andrei brought up his old PR to add imported
for inline imports, since the library solution has limitations a language solution would not, and it seems there was agreement to move forward with it.
Conclusion
Our next meeting is scheduled for September 24th. I expect the governance proposal will take up the majority of our discussion time, leaving little room for the potential items we already have for the agenda. In other words, it's full.
If you have an issue regarding the D community or the ecosystem that you would like to see on a meeting agenda, please let me know. I don't believe it's an option for the next meeting, but I can definitely slot you in at a future meeting. In addition to discussing your agenda, we would welcome your feedback on any of the issues we discuss at that meeting.