Windows experience is atrocious

H. S. Teoh hsteoh at qfbox.info
Thu Jul 27 15:48:07 UTC 2023


On Thu, Jul 27, 2023 at 05:11:48AM +0000, harakim via Digitalmars-d wrote:
> On Wednesday, 26 July 2023 at 18:15:18 UTC, H. S. Teoh wrote:
> > It will make the compiler more complex to maintain, certainly.  But
> > *something* has to be done... otherwise nothing is going to change
> > and the D ecosystem is going to remain small forever.
> 
> What specific advantages would you get in requiring every file to have
> a version as opposed to a compiler flag that can be passed in via the
> build tool like dub?

3rd party libraries.  Say your project depends on libraries A, B, C.
Each of them could potentially be written for a different edition of the
language, and your own code could also be for a different edition, so
you'll have to compile with 4 different compilers.  Also, every time you
add a new dependency you potentially have to install yet another
compiler.  It's just not scalable, and needlessly confusing for newbies
("what, why do I need 10 different compilers just to compile my one test
project?!").

Better just to have a single compiler to handle it all.


> I feel like a project is usually worked on as a version. I don't know
> a lot about linking but it seems like you could build each dependency
> with its own version and link them with rare exceptions.
[...]

Not really. Most D releases are ABI-incompatible, so you're liable to
end up with lots of inscrutable linker errors and/or inscrutable runtime
odd behaviours caused by incompatible ABIs if you try to link together
objects compiled by different versions of the compiler.  Safer to use a
single compiler to compile and link everything.


T

-- 
The diminished 7th chord is the most flexible and fear-instilling chord. Use it often, use it unsparingly, to subdue your listeners into submission!


More information about the Digitalmars-d mailing list