digitalmars.D.announce - D Language Foundation June 2026 Monthly Meeting Summary
- Mike Parker (148/148) Aug 12 The D Language Foundation's June 2026 monthly meeting took place
- Dukc (2/3) Aug 13 You're almost up to date with these reports now. Good job!
- Mike Parker (3/6) Aug 13 Thanks! One more to go. Then I need to work on getting caught up
- user1234 (4/8) Aug 13 I was curious about that, a little investigation with git blame
- user1234 (2/11) Aug 13 [Rationale](https://github.com/dlang/dmd/pull/12898#issue-949510209) in ...
- Nick Treleaven (3/16) Aug 15 Yes, here's the changelog:
- Nick Treleaven (2/6) Aug 15 https://github.com/dlang/dmd/pull/23611
The D Language Foundation's June 2026 monthly meeting took place on Friday the 12th and lasted about two hours and twenty minutes. The following people attended: * Walter Bright * Rikki Cattermole * Jonathan M. Davis * Martin Kinkelin * Dennis Korpel * Mike Parker * Robert Schadek * Steven Schveighoffer * Adam Wilson * Nicholas Wilson Earlier this year, we decided that the first edition would be focused on turning a set of deprecated features into errors as a way to kick the tires on the editions implementation. After a brief discussion [in our April monthly meeting](https://forum.dlang.org/post/gfljhyttpprhzoigmqet forum.dlang.org), and in the absence of an up-to-date list of deprecations, Walter generated a list from the compiler source via `grep`. We started discussing the deprecations in a May planning session, but given that the list was hard to follow and that no one had fully reviewed it, Robert created a new list that we all reviewed before the June monthly meeting. Our sole agenda item was to go through each deprecation on the list to determine which of them should become errors in the first edition. As we went along, Robert consulted the source code for each deprecation so we could be certain what it was doing and where it was in the deprecation cycle. We took a somewhat conservative approach. If the deprecation was less than two years old (our standard deprecation period), or if we were unable to come to agreement about the fate of a deprecation in a few minutes, then it went on the 'punt' list. Otherwise, it went on the 'Safe to be errors' list. __complex and imaginary types__ We had agreed in [the May monthly meeting](https://forum.dlang.org/post/joidnmeclfehyuygfwjd forum.dlang.org) that complex and imaginary built-in types should be undeprecated and their use discouraged, so that meant they went onto the punt list for the purposes of this meeting, i.e., they aren't going to become errors. We can discuss at a later date when to undeprecate them. __const variable initialization in static this__ Dennis said the original error had assumed only immutable global variables were put into global memory, but const variables were also put there. The error should be consistent with how immutable globals were put into the global data section. It was made a deprecation because of breakage. Jonathan and Steven objected that const variables shouldn't be put into non-TLS memory. Walter agreed with Dennis, that it should be put into shared memory but not typed as shared. This sparked a discussion that reached no consensus, so we added it to the punt list. __immutable/shared/const/postblits__ We punted on this because there are still issues with copy constructors. It would be premature to force users away from postblits until copy constructors were bug-free. However, we did agree that another postblit-related deprecation, where implicitly-generated postblits hide copy constructors, was safe to become an error in the first edition. __noboundscheck__ There was disagreement over whether this should become an error or just a no-op. Generally, we agreed that switches that were no longer valid, like `-dip1025`, should be no-ops, but the nature of this switch is something you probably wouldn't want to make invisible. In the absence of agreement, we punted. __auto and ref must be adjacent__ Still in the deprecation period. __auto ref return must have auto and ref adjacent__ Ditto. __typesafe variadic parameters with class type__ Ditto. __overriding a deprecated method__ This was another case where we failed to find a consensus. What actually is the best solution when a derived class overrides a deprecated base-class method? Requiring the override to be deprecated may not be desirable, but simply removing `override` isn't possible while the base-class method still exists. We punted. __implicitly overriding future base class method__ Walter had implemented ` future` at the request of Sociomantic. None of us were aware of any code using it. The consensus was that we should just ignore this deprecation until we decide what to do about ` future`. __overriding extern(C++) with const-qualified function__ Still in the deprecation period. __ safe function calling unsafe code (DIP 1000 transition)__ It was unclear what the state of this is. Dennis was sure it was on a dead code path. Jonathan believed this was something that needed to be made an error in some fashion, but we didn't need to decide it now. __non-zero compile-time return from opApply__ Still in the deprecation period. __return expression has no effect__ It wasn't clear what this was actually referring to, so we punted. __truncating conversion in compound assignment__ Still in the deprecation period. __variable shadowing in foreach__ This appeared to be something related to `opApply`. We punted to investigate it later. __C preprocessor directive in token string__ Walter didn't think this needed to be deprecated and no one felt strongly that it should be, so we punted. There were two traits that had been renamed and the old names deprecated: `isVirtualFunction` and `getVirtualFunctions` in favor of `isVirtualMethod` and `getVirtualMethods` respectively. [The deprecation had happened in 2.103](https://dlang.org/changelog/2.103.0.html#dmd.get-is-virtual-function), but Robert discovered that the `isVirtualMethod` and `getVirtualMethods` implementations had been added as bug fixes for the existing implementations in 2.058. [That was released in 2012](https://dlang.org/changelog/2.058.html). Given the age of the fixes, we decided to replace the buggy implementations of `isVirtualFunction` and `getVirtualFunctions` with the corrected implementations, and that `isVirtualMethod` and `getVirtualMethods` should alias those. Here's the list: - Package Not Accessible Without Static Import - Initializing Field With Itself - Implicitly-Generated Postblit Hides Copy Constructor - Function With enum Storage Class - Storage Class Has No Effect in Type Aliases - in Parameters With Non-D Linkage - Function Template Marked override - Function Template Marked abstract - disable on Overriding Function - deprecated on Overriding Function - Dual-Context Function - Function Overload Conflict With Different Attributes - Bare catch Without Exception Type - return in scope(failure) Body - asm Statement Marked safe - Throwing Qualified Type - Catching Non-Mutable/Non-Const Qualified Type - For-Loop Increment Has No Effect - Foreach Loop Index Implicit size_t Conversion - Casting Delegate to Pointer - __traits(getAttributes) on Overloaded Function - assert With String Literal Condition - static assert With String Literal Condition - Arrow Syntax Returning a Delegate - Identity Comparison of Static Arrays - Type Used as Value - Slice of Static Array Temporary Assigned to Longer-Lived Variable - Non-D Linkage Static Constructor/Destructor - Invalid Format Specifier - More Format Specifiers Than Arguments - Argument Type Mismatch Our next meeting was a quarterly meeting on July 3rd. Our next monthly meeting took place on July 10th. If you have anything you'd like to bring to us in a monthly meeting, please let me know.
Aug 12
On Wednesday, 12 August 2026 at 12:33:42 UTC, Mike Parker wrote:[snip]You're almost up to date with these reports now. Good job!
Aug 13
On Thursday, 13 August 2026 at 10:33:25 UTC, Dukc wrote:On Wednesday, 12 August 2026 at 12:33:42 UTC, Mike Parker wrote:Thanks! One more to go. Then I need to work on getting caught up with the DConf videos.[snip]You're almost up to date with these reports now. Good job!
Aug 13
On Wednesday, 12 August 2026 at 12:33:42 UTC, Mike Parker wrote:[...] __return expression has no effect__ It wasn't clear what this was actually referring to, so we punted.I was curious about that, a little investigation with git blame points to [this commit](https://github.com/dlang/dmd/commit/81e4682f72d3562eae47cd ee2bde2021ba0dfc8). Not sure if that helps. To me this could be turned as an error.
Aug 13
On Thursday, 13 August 2026 at 15:56:47 UTC, user1234 wrote:On Wednesday, 12 August 2026 at 12:33:42 UTC, Mike Parker wrote:[Rationale](https://github.com/dlang/dmd/pull/12898#issue-949510209) in the PR should convince you.[...] __return expression has no effect__ It wasn't clear what this was actually referring to, so we punted.I was curious about that, a little investigation with git blame points to [this commit](https://github.com/dlang/dmd/commit/81e4682f72d3562eae47cd ee2bde2021ba0dfc8). Not sure if that helps. To me this could be turned as an error.
Aug 13
On Thursday, 13 August 2026 at 18:15:56 UTC, user1234 wrote:On Thursday, 13 August 2026 at 15:56:47 UTC, user1234 wrote:Yes, here's the changelog: https://dlang.org/changelog/2.101.0.html#dmd.fix22134On Wednesday, 12 August 2026 at 12:33:42 UTC, Mike Parker wrote:[Rationale](https://github.com/dlang/dmd/pull/12898#issue-949510209) in the PR should convince you.[...] __return expression has no effect__ It wasn't clear what this was actually referring to, so we punted.I was curious about that, a little investigation with git blame points to [this commit](https://github.com/dlang/dmd/commit/81e4682f72d3562eae47cd ee2bde2021ba0dfc8). Not sure if that helps. To me this could be turned as an error.
Aug 15
On Saturday, 15 August 2026 at 12:06:27 UTC, Nick Treleaven wrote:On Thursday, 13 August 2026 at 18:15:56 UTC, user1234 wrote:https://github.com/dlang/dmd/pull/23611[Rationale](https://github.com/dlang/dmd/pull/12898#issue-949510209) in the PR should convince you.Yes, here's the changelog: https://dlang.org/changelog/2.101.0.html#dmd.fix22134
Aug 15









Mike Parker <aldacron gmail.com> 