Future of D 2.x as stable/bug fix, and what's next for D 3.x

Mathias LANG geod24 at gmail.com
Tue Sep 1 15:17:03 UTC 2020

On Sunday, 30 August 2020 at 17:32:32 UTC, Eljay wrote:
> What is left to do for D 2.x for it to be declared "done" and 
> in stable/bugfix mode only?
> I haven't seen a Vision/20xxHy for a while.
> What features (and breaking changes) are on the horizon for 
> when the next generation D 3.x begins?
> [...]
> Thoughts?  Plans?  Roadmap?

Once again: I don't see D3 happening. There are plenty of bugs to 
fix, and we can do it gradually. We are doing it gradually, in 

Everyone has their own agenda, but as mentioned by Ali, we need 
people to do the job. So while I don't know what other people 
have in mind, here's my TODO list:

1) `in` parameters: Will be in v2.094.0
I started to adapt libraries so everyone can "just" use it as 
soon as it's released.
If things work fine (no bug), and it has the adoption I hope, 
then I'll push to have it enabled after 10 to 15 releases 
(perhaps more). At a cadence of 1 release / 2 months, that puts 
at release 2.104 in May 2022, or 2.109 in January 2023.

2) `inout`-style attributes for functions accepting delegates: 
Essentially the invert of DIP1032. I strongly believe that we 
need a way to have a non-templated function which attributes are 
dependent on one or more delegate it accepts. This is an 
essential piece to make OOP and attributes work together. It 
would also solve so many pain points with `opApply`. It needs a 
proper DIP and a proper implementation. That's the next language 
change I plan to tackle once `in` parameters are "done" (aka 
don't need my attention, not necessarily enabled by default).

3) Moving from Bugzilla to Github: I started working on this, but 
due to various conflict in schedule / discussions, it was put on 
hold, and is now in a weird lingering stage. I'd like to resume 
this, eventually, but it requires a lot of tedious work, so 
that's not something that will be completed anytime soon 

Those are the main 3 big items I see myself working on for the 
foreseeable future, aside from the other maintenance work.

I left this as a draft for a while, to see where the conversation 
went. One thing you can check, if you want to see where the 
language is going, are the `-preview` switches. Next release, 
`-preview=markdown` is going to be enabled by default. Someone is 
working on enabling `-preview=dtorfields`. And obviously, the 
elephant in the room, `-preview=dip1000`.
Aside from that, the DIP queue is also a good source of 

More information about the Digitalmars-d mailing list