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