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