On Saturday, 19 November 2022 at 09:49:18 UTC, thebluepandabear wrote:
On Saturday, 19 November 2022 at 09:26:49 UTC, Andrey Zherikov wrote:
On Saturday, 19 November 2022 at 09:12:26 UTC, thebluepandabear wrote:
That's the point many people have given here which is not convincing him, even though it is quite great.

I think we all know the answer here 😂

IMHO you are both right :)
You are speaking about API compatibility, `[]() {}()` speaks about ABI compatibility. The latter makes sense in long-running production software. So we know that there are no issues in API compatibility but we don't know anything about ABI.

I am too dumb to know what ABI is

ABI is short for application binary interface. Where API means how you use another module in source code, ABI means how you would use that module in assembly langauge or machine code.

If two versions of a library have the same ABI, the program using the library does not have to be recompiled, only relinked to the new library (which happens at runtime if it's a dynamically linked library).

It tends to be of less importance in D than in C or C++. First, D modules usually compile quickly enough that premade binaries (which would be hard to keep up to date with the source code headers) don't make sense. Second, DUB standardises the build process so binaries aren't needed for user convenience either. Maybe the most important remaining use case is building a library that can be used from other languages.

Reply via email to