This meeting was originally supposed to take place on the fourth Friday in November, but given that the day before that was Thanksgiving Day in America (and is so every November), we moved it to the first Friday in December. Then given that the fourth Friday in December this year was Christmas Eve, we agreed to just stick with the first Friday each month going forward. Most of us are busy with holiday stuff in late December anyway even when the fourth Friday isn't Christmas Eve.
The big item on the agenda was intended to be a discussion about moving our issue management from Bugzilla to our GitHub repositories. A couple of different initiatives to do that in recent years by different contributors ultimately stalled. You can see this thread in the D projects repository for some background.
Now, Robert Schadek is eager to make this happen. So we invited him to the meeting along with Vladimir Panteleev, whose objections you can see in the link above and who is maintaining a fork of Bugzilla with enhanced features.
Vladimir was set to attend, but had to pull out the day of the meeting. And so it became a two-parter.
Part One
Part One took place on December 3, 2021, at 15:00 UTC and lasted just under an hour. In attendance were:
Andrei Alexandrescu
Walter Bright
Iain Buclaw
Max Haughton
Martin Kinkelin
Razvan Nitu
Mike Parker
Robert Schadek
First, I proposed we either postpone the Bugzilla to GH discussion until our next meeting in January, or schedule another meeting ASAP. We agreed to the latter, and after subsequent communication with Vladimir we decided to meet on Saturday, December 11, at 15:00 UTC.
The remainder of the meeting consisted of status updates from each member, some of which prompted further discussion.
Me
I asked for volunteers for a content review of a blog post I had edited (the one by Georges Toutoungis that I published a week after the meeting. Max volunteered. I then let everyone know that I had taken a week off after DConf Online, had begun editing the Q & A videos, and that doing so would keep me occupied for the rest of the month. (Speaking of which, Walter's video is almost ready.)
Razvan
One of Razvan's SAOC 2021 mentees (Teodor Dutu, working on replacing DRuntime hooks with templates) had posted in the forums about a performance issue he encountered in replacing the __d_arrayctor
hook with a template, and a "hack" that is faster. Razvan summarized the performance issue in the meeting. Martin outlined a potential approach to solving it.
Rather than put this on Teodor and delay his progress on his SAOC project, we agreed that Teodor should go ahead and implement his "hack" solution for now, then Razvan will explore a refactor later.
Max
Max said that he and Iain had nearly completed fixing the problems preventing DMD from working on the latest OS X. He then talked about a discovery he had made when playing around with the DMD internals which he isn't yet ready to publicize. He closed by raising questions that started a brief discussion about the performance benchmarks in Teodor's forum post (linked above).
Robert
Robert was there for the Bugzilla->GH migration discussion and had nothing else new for us. Prior to the official start of the meeting, while we were waiting for everyone to appear, he initiated a discussion about some details of the migration process.
Iain
Iain provided us with an update on his progress in getting the D version of the frontend into GDC. Major thorns have been Solaris and other "archaic platforms". He also discovered a problem with Walter's ImportC implementation of __builtin_va_list
(see Issue #21974), and he reported it in Issue #22558. There was a bit of discussion about the problem, and it has been fixed since the meeting.
Martin
Martin has been working on increasing LDC linker support. They've been defaulting to gold on Linux. LLD will become important because at work they've seen performance increases using it. He's had to make some LDC-specific DRuntime changes regarding how ModuleInfo
s are registered. LDC will now use a special precompiled module that will be linked into every module and will register itself with DRuntime.
Andrei
Andrei is pleased that someone is tackling the difficult task of converting DRuntime hooks to templates for SAOC. His exploration of versioning Phobos has exposed some problems in the compiler that need to be fixed before a prototype of Phobos v2 can work. Minimizing the issues is proving difficult to do. This is currently at the top of his list.
Walter
Walter talked about a refactor he had to make in the compiler because of ImportC involving tokens and expression nodes, the details of which he described in the initial pull request. He resolved a long-standing ambiguity problem with DIP 1000. The PR for it is still open as I write this. He said that the issues that people raise with DIP 1000 appear to be issues with the implementation, not the concept, and he still thinks the concept is good.
His major problem with ImportC right now is with the proliferation of header files that depend on C compiler extensions. He isn't sure yet what to do about it. His priority with ImportC at the moment is to fix issues with its C11 conformance. When that is ironed out, he'll get started on looking into issues like how to handle C compiler extensions.
Iain used this opportunity to bring attention to a header file he maintains to resolve some such issues. Walter suggested that this, or something like it, should be a part of the D compiler release. This prompted a discussion about how to do that and the pros and cons of dmd invoking the C preprocessor vs. incorporating Warp. Walter suggested it's just about time for dmd to start invoking the C preprocessor.
Part Two
Part Two took place on December 11, 2021, at 15:00 UTC. In attendance were:
Walter Bright
Iain Buclaw
Mathias Lang
Vladimir Panteleev
Mike Parker
Robert Schadek
This meeting was exclusively focused on the question of whether we should migrate from Bugzilla to GitHub. Walter had already given his stamp of approval to the two previous initiatives, but given Vladimir's work on his Bugzilla fork, we wanted his input.
Robert's primary argument is that this is a social issue, not a technical one. GitHub is where the developers are and if we want more of them working on D, we can't continue to require them to go to a separate web site and create a separate account on our Bugzilla. Migrating our issues to GH will open the door for more developers to participate.
Vladimir disagrees. He says there are technical reasons not to migrate. He has been working on using Bugzilla Harmony as a replacement and has upstreamed patches to Mozilla. This version of Bugzilla accepts GitHub logins, so can allow all GH users to participate.
The discussion revolved around pros and cons, as well some technical details of the migration. Problems the LLVM team encountered in their migration came up.
Ultimately, Vladimir is not against moving to GitHub issues in principle and had several suggestions on how to get it done. But he believes we should give the new Bugzilla version a fair shake before making the effort.
Robert estimated that he would need just over five months to prepare for the migration. Vladimir estimated that he would need around two months to get his Bugzilla version ready for production. So we all agreed to the following compromise:
Robert will begin preparing for a migration to GitHub. Vladimir will go live with Bugzilla Harmony and we will evaluate it through June 15th. After that, we'll determine if it does what we want it to, or if Robert should pull the trigger on the migration.
The Next Meeting
With our new first Friday schedule, our next meeting will take place on January 7, 2022. This will be a Quarterly Meeting, which means representatives from industry will attend. If you work for a company using D that doesn't currently have a regular quarterly representative, please let me know and we can invite someone from your company to join us.