| |
 | Posted by H. S. Teoh in reply to harakim | Permalink Reply |
|
H. S. Teoh 
Posted in reply to harakim
| 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!
|