D's tail

Johan j at j.nl
Wed Aug 11 11:33:42 UTC 2021


On Tuesday, 10 August 2021 at 00:53:29 UTC, Brian Tiffin wrote:
>
> So it's a question.  What is a reasonable life expectancy for 
> the projects I start in D today?

Very much depends on the type of project. How much do you depend 
on new features (likely to change), how much do you depend on 
library code, how much do you depend on ABI details, how much are 
you working around current language/compiler issues...?

At Weka, thusfar any new compiler means compilation failures. It 
is a demanding codebase.
Some reasons for failures: workarounds for compiler bugs, ABI 
dependencies, template attribute deduction deltas, dependence on 
druntime internals, new compiler bugs, change of language 
semantics (sometimes intended, but also often unintended), no way 
to disable/enable specific warnings/deprecations, ...
On top of that, performance may change too with compiler version, 
so even if the build succeeds that does not mean the program 
still functions within the required performance constraints.
Keeping the code compatible with multiple frontends is a large 
burden, currently avoided by specifying the compiler version in 
the codebase and using that exact compiler on build systems and 
developer's machines (i.e. each dev will have multiple compilers 
on his machine, automatically downloaded and used by build 
system). Updating the compiler to a new version is a lengthy 
process. Weka is currently at LDC 1.24 (with Weka modifications).

-Johan




More information about the Digitalmars-d mailing list