Official dub packages for Debian and Ubuntu
Matthias Klumpp via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Thu Apr 14 16:16:49 PDT 2016
On Thursday, 14 April 2016 at 17:46:55 UTC, Johannes Pfau wrote:
> [...]
>
> (1) Interface files
>
> We have .di interface files as a replacement for C/C++ headers
> (although the .di extension is only a convention, you can also
> use the .d extension). These files do not contain function
> bodies, but they still need the complete source code for
> templates. The compilers can generate interface files from
> normal source code.
>
> https://dlang.org/dmd-linux.html#interface-files
Looks like a pretty good choice for handling the
interface-with-library issue.
> OSS projects do not use interface files though: It prevents
> inlining of functions and there's no real benefit for OSS
> projects. Interface files are (theoretically) useful for closed
> source libraries if you don't want to ship the source code.
I think those would also be useful for FLOSS projects, if you
ship a compiled binary and don't want to recompile the code.
This is the case for example for very huge projects which take
long to compile (think in WebKit or Eigen3 dimensions), or for
Linux distributions which want to separate as much code as
possible and prevent code duplication and statically linked stuff
to make security uploads easier and faster.
> (2) Linking against installed libraries
>
> The compilers can of course link against pre-compiled D
> libraries. IIRC dub does not have integrated support for this.
> The real problem is the D compilers are not ABI compatible.
Urgh...
> If you built a library with GDC you can't use it with LDC or
> DMD. This is one reason why dub compiles everything from
> source. (Even different frontend versions can sometimes break
> ABI compatibility).
Is there any way this can be fixed?
https://dlang.org/spec/abi.html gave me the impression D has a
defined ABI the compilers adhere too (which would be a great
advantage over C++).
Fixing this would be pretty useful, not only for the distro
usecase, I think.
Thanks for the explanations, this is useful to know and helps me
to work around some of the issues short-term (long-term we would
really need a solution for these issues, since this will become a
huge issue if/when more D code makes it into distros).
More information about the Digitalmars-d-announce
mailing list