DLF September 2023 Planning Update

Steven Schveighoffer schveiguy at gmail.com
Tue Nov 14 17:57:36 UTC 2023


On Tuesday, 14 November 2023 at 16:07:26 UTC, Mike Parker wrote:
>
> Experience with deprecations has shown people don't want to 
> take extra steps to make their outdated dependencies compile. 
> The goal with editions is that you should never have to take 
> any extra steps to use older code in your program. You can't do 
> that if the default edition changes with every new compiler 
> release. But you can do that if each module explicitly declares 
> which edition it needs.

What do we want the first experience with D to be like?

A person trying out D, who writes a one-file simple application 
using phobos *does not care* that a lib abandoned in 2018 still 
compiles. So why should they be the ones paying the penalty?

I get that we want to stop breaking builds. But the answer there 
is simple -- provide a way to do it by attributing the files, or 
by telling the compiler "these files are edition X" or whatever. 
And once you attribute it, it never breaks again. Sounds like a 
reasonable cost to me for those who want long-lasting code!

There are other options here. Like use the filesystem to identify 
the edition either via config or filenames.

> An option to specify the latest edition via the attribute came 
> up in our discussions, so I'm sure we'll have that. And I 
> anticipate there'll be some way to generate source files with 
> the appropriately decorated module declarations, probably 
> through third-party tools like code-d, maybe from a tool that 
> ships with (or is built into) the compiler.

That's not any better. If you have to opt-in to the language as 
it exists, people are going to quit immediately. I'm not joking 
about this. Imagine spending 2 hours trying to figure out why 
your app that is trying out some new feature doesn't compile, 
only to find out after posting online that it was looking at some 
ancient version of phobos.

-Steve


More information about the Digitalmars-d-announce mailing list