D's tail

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Aug 12 13:42:27 UTC 2021


On 8/11/21 7:33 AM, Johan wrote:
> 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).

FWIW the situation is similar with large-scale C++ projects as well. 
Whenever I teach, I first ask people what version of their C++ compiler 
they're on - does it support C++14, C++17, etc. Many mention some really 
outdated release and invariably invoke the difficulty of upgrading due 
to compilation errors and performance issues.

Also, most of big tech hack into their C++ compiler (and some their 
Linux, too).


More information about the Digitalmars-d mailing list