Thread overview
D Language Foundation Meeting September 2022 Monthly Meeting Summary
Oct 17, 2022
Mike Parker
Oct 17, 2022
rikki cattermole
Oct 17, 2022
Dukc
Oct 17, 2022
Mike Parker
Oct 27, 2022
Imperatorn
October 17, 2022

The D Language Foundation's monthly meeting for September 2022 took place on September 2nd at 14:00 UTC. The following were in attendance:

  • Andrei Alexandrescu
  • Walter Bright
  • Iain Buclaw
  • Ali Çehreli
  • Max Haughton
  • Martin Kinkelin
  • Dennis Korpel
  • Razvan Nitu
  • Mike Parker
  • Robert Schadek

Iain

Over the preceding month, Iain had little going on with D due to a personal situation. Most of the work he'd done had been on the infrastructure project and not on the compiler. He noted that I had migrated the dlang.org and dlang.io DNS servers to Cloudflare, and that several records had failed to transfer across (we had some other hiccups, but Iain, Vladimir Panteleev, Petar Kirov, and Mathias Lang, provided invaluable assistance in resolving those). We had managed to recover most of them.

The dlang.io domain had been maintained mostly by volunteers from the community. When Iain went through the DNS records, he discovered that a number of them were pointing to documentation sites on servers that were no longer available. He cleaned that up for us.

He talked about how he had set up a bucket for docarchives.dlang.io and downloads.dlang.org on the Backblaze account. The DNS for the doc archives was now pointing to the new bucket (via a Cloudflare worker), and all of the documentation for 2.068 - 2.099 was available there. The DNS for the latter was still pointing to the AWS download site, as Martin Nowak was still packaging and uploading the 2.100.2 release. Once that was out, Iain planned to set up a Cloudflare worker to point downloads/download.dlang.org at our new Backblaze downloads bucket. Those are now live. He would like to eventually work out how to automatically deploy to our new setup via GitHub Actions.

For those who missed my mentions of this in the past, by moving to Backblaze + Cloudflare, we are paying only for storage. Both are part of the Bandwidth Alliance. As long as we have Cloudflare in front of our Backblaze buckets, we have free data transfer.

I reminded him that at our DConf meeting he had complained about the state of our build system and how it needed to be cleaned up. At the time, Atila said something like, "Sounds like you're volunteering." He was joking, but he there was also a serious question there. I asked Iain if he would be up to taking it on. He agreed to oversee it. I don't know what his plans are in terms of priorities, but I'm sure we'll hear more about this in the not-too-distant future.

Robert

One of the problems we had in migrating the DNS records was an issues.dlang.org outage. That was a bit of a scare. Because of it, Robert ran one of the scripts he'd developed for the Bugzilla->GitHub migration to collect all of the Bugzilla issues as JSON files on his disk. As a next step, he needed to get the software in a state so that, with a GitHub access token, he can migrate the issues. He said the code was "about 95% there". He would need to run it one more time to make sure everything is right, then make the move.

One thing he'll need when the time comes is to put Bugzilla into read-only mode during the migration.

Martin reminded Robert that the compiler suggests posting to issues.dlang.org in certain error messages, so that will need to be updated as well. Robert said he would do so.

Iain noted that Vladimir had also been working on a way to backup all of the Bugzilla issues.

Martin

Martin started by complimenting the DConf speakers. He had watched the livestreams and said the talks were at a "great level".

In recent weeks he'd had little time for D development of any kind. For LDC, he worked on bitfield support for the upcoming release for ImportC. He said it seemed ImportC was now able to compile zlib thanks to Walter's work, and if it really works on all platforms, then it's a nice acheivement that shows ImportC has potential. That said, he found that implementing bitfield support in LDC was the PITA he'd expected it to be. It means that now LDC has to use 24-bit and 48-bit integer types and such in their LLVM IR like clang does.

He encountered a frontend problem in the very first test cases where the bitfields end up with an 8-byte struct when it should be 4 bytes as with GCC and clang on Linux. He filed an issue for it. So there are still corner cases that need to be ironed out.

Other than that, Nicholas Wilson had been working on LLVM 15 support and had asked for help in the forums. It's not trivial work. But Martin's first priority was the D 2.101.0 release, primarily work involving the shift to the DMD/DRuntime monorepo. He'd not had time to follow through with that on stable, so it was going to take some time before the next LDC release.

Finally, he brought up again a persistent DMD issue that has been affecting him with his work at Symmetry. It's a problem with the reliance on the semantic order of the root modules being processed. In some cases, switching the order of root modules results in compilation errors. At first, it was specific to using -allinst, but now they're seeing an error related to @safe in one case, and linker errors in another. It can be triggered by just removing an unused import. He's found no workaround for it.

Max (also a Symmetry employee) told Martin he had worked out roughly what the problem was and suggested they get together for a few hours to work out a fix. Martin went on vacation for a couple of weeks shortly after the meeting, and they hadn't gotten together yet last I heard.

Razvan

Razvan said that he and Dennis had been working on extracting some tasks from the vision document and created some projects in our GitHub project planner. He walked us through what they had done so far, said that it should be publicly viewable, and talked about how we could use it. The main goal is that it should serve as a one-stop-shop for contributors looking for impactful projects to work on. One thing they would like to use this for is to help in new contributors get started with some Bootcamp projects. He suggested that Walter and Atila could create some projects there for some of the things on their plates and maybe someone else can pick them up.

He has since posted about it in the forums.

Dennis

Dennis only had one remark: migrating our Bugzilla issues to GitHub will benefit our use of GitHub Projects.

Max

Max said he had little to report but needed to get his TODO list sorted. He said he would like to help Nicholas with the LLVM 15 support for LDC. (In a subsequent meeting Max and I had, he said that of all the projects on his TODO list, the one for 8-bit floating point emulation was the one he could probably finish first and is working on that.)

He said that he and Steven Schveighoffer had found a bug in the way that DMD merges the types of pointers, e.g., it will merge int* and void* to int*, and that is now fixed. Fixing that also fixed a bug in the template argument matching code, so it was a two-birds-with-one-stone thing.

Me

I let everyone know that I had finally received the footage from the camera in the back of the room at DConf. I'd already been granted access to the recorded versions of the talks, which are identical to what is in the livestream. Those were free, but Symmetry had to pay an additional fee for the camera footage (and a big thanks to them for doing so). I let everyone know I would start editing the videos the following week. (I'll be finished with day two in a few days; I'm working on Max's talk now).

Next, I gave an update on some boring admin stuff regarding reimbursements for DConf speakers.

Finally, I noted that I had spoken to Weka's Eyal Lotem at DConf. He said their biggest remaining sticking point is what happens after a move, which is what originally prompted one of their employees to write DIP1014, which introduced opPostMove and was accepted. It was never implemented and now never will be, thanks to the approval of copy constructors in DIP1018 intended to replace post blits. That eventually led Walter to introduce DIP1040 to propose move constructors, among other things. Max has since taken over responsibility for the DIP.

At DConf, I'd asked Eyal if he and/or his coworkers could take a good look at the DIP and let us know if that solves their problem. He agreed, and has since provided Max with feedback. I believe Max has a question or two yet to answer, but we're hoping the collaboration here will result in a stronger DIP for the next review round.

Walter

Walter had begun going through all the DIP 1000 bugs. He and Dennis had submitted fixes for several of them, but they were all stalled due to failures in the Buildkite projects. A general problem he finds with the Buildkite projects: if something goes wrong, what are we supposed to do about it? He finds this quite frustrating.

Dennis noted that the DIP 1000 Buildkite failures were related to the preview switch. It's only a few projects that actually fail, others have deprecation warnings. He has been going through the failing projects and submitting PRs to them. It's taking time, as it depends on the maintainers merging the PRs and tagging new releases for code.dlang.org. A benefit of this is it has led him to find the causes of some DIP 1000 bugs.

Another problem was that std.logger was crashing in its unit tests, preventing the test suite from running as described in Issue #23286. Razvan noted this was only happening in 32-bit builds. Robert was the original author of std.experimental.logger, so he looked into it and submitted a fix a few days later that has since been merged.

Finally, Walter said that he finds that the test suite "just seems to stall on things", causing massive delays and interrupting his workflow. This led to a discussion about how Buildkite works, and through this we learned that Walter had never been set up with a Buildkite account, so he doesn't have an interface to restart builds.

Aside from his frustrations with the autotesters, he's happy about the current state of the DIP 1000 bugs. The issues he and Dennis have been closing have been fixable and they had whittled down the list to a small number. Overall, he thinks we're in good shape with it. He's also been working on ImportC, and he's happy with how things are progressing overall with the language.

Ali

Ali informed us of his invitation from Mike Shah to speak at Northeastern University on September 30. Steven Schveighoffer was also planning to attend. The plan was a talk and then a Boston meetup. Steve had invited some people who used to attend the Boston meetups. Ali subsequently posted a link to the recorded talk here in the Announce forum. I noted that Mike Shah had submitted a DConf Online talk, and that he has a D tutorial series on YouTube.

Ali had also been working on the hobby project that he had talked about in his DConf '22 lightning talk. He expects he'll eventually post it on code.dlang.org, and that the discoveries he's made while working on it could make for a potential future DConf talk. He didn't submit anything to me for this year's DConf Online, so maybe we'll see something down the road. But he has since announced his new alid package in the dub repository.

The next meeting

The next meeting was a quarterly meeting that took place on October 7. I plan to post the summary for that meeting on the last Friday of this month.

As always, if you have something you'd like us to put on the agenda of one of our meetings, please let me know and I'll see about arranging it (though I may recommend posting in the forums first, depending on the topic).

October 18, 2022
On 18/10/2022 3:10 AM, Mike Parker wrote:
> ### Iain
> Over the preceding month, Iain had little going on with D due to a personal situation. Most of the work he'd done had been on the infrastructure project and not on the compiler. He noted that I had migrated the dlang.org and dlang.io DNS servers to Cloudflare, and that several records had failed to transfer across (we had some other hiccups, but Iain, Vladimir Panteleev, Petar Kirov, and Mathias Lang, provided invaluable assistance in resolving those). We had managed to recover most of them.

I wonder if this has anything to do with run.dlang.org is using a certificate for run.dlang.io for a while now (and hence not usable).

But either way, awesome work everyone!
October 17, 2022

On Monday, 17 October 2022 at 14:10:49 UTC, Mike Parker wrote:

>

Finally, I noted that I had spoken to Weka's Eyal Lotem at DConf. He said their biggest remaining sticking point is what happens after a move, which is what originally prompted one of their employees to write DIP1014, which introduced opPostMove and was accepted. It was never implemented and now never will be, thanks to the approval of copy constructors in DIP1018 intended to replace post blits.

Huh? First off, DIP1018 replaces postblits, not postmoves. DIP1040, if accepted, will replace postmoves, but it's currently post community 1, not accepted.

Second, the readme file at dips directory says DIP1014 is implemented in dmd 2.088.1. Something is wrong here.

Regardless, thanks for keeping us up to date.

October 17, 2022

On Monday, 17 October 2022 at 20:21:10 UTC, Dukc wrote:

>

On Monday, 17 October 2022 at 14:10:49 UTC, Mike Parker wrote:

>

Finally, I noted that I had spoken to Weka's Eyal Lotem at DConf. He said their biggest remaining sticking point is what happens after a move, which is what originally prompted one of their employees to write DIP1014, which introduced opPostMove and was accepted. It was never implemented and now never will be, thanks to the approval of copy constructors in DIP1018 intended to replace post blits.

Huh? First off, DIP1018 replaces postblits, not postmoves. DIP1040, if accepted, will replace postmoves, but it's currently post community 1, not accepted.

Yes, I know. My point is that 1018 motivated 1040: 1018 replaced postblits with copy constructors, and 1040 replaces opPostMove with move constructors for consistency. And I didn't say that 1040 has been accepted, I said 1014 was accepted. And regarding 1040, I said "we're hoping the collaboration here will result in a stronger DIP for the next review round."

>

Second, the readme file at dips directory says DIP1014 is implemented in dmd 2.088.1. Something is wrong here.

As far as I know, they aren't yet implemented. The changelog for 2.088.1 says nothing about it. So yes, that looks like it's incorrect. I hadn't noticed that before.

>

Regardless, thanks for keeping us up to date.

You're welcome.

October 27, 2022

On Monday, 17 October 2022 at 14:10:49 UTC, Mike Parker wrote:

>

The D Language Foundation's monthly meeting for September 2022 took place on September 2nd at 14:00 UTC. The following were in attendance:

[...]

Thank for all the work you're doing