Thoughts about D package management on Gentoo
Dicebot
public at dicebot.lv
Sat Nov 9 03:21:30 PST 2013
Some comments on general packaging topic.
On Saturday, 9 November 2013 at 00:38:16 UTC, Marco Leise wrote:
> - Compiler and library are closely coupled and depend on each
> other.
Not really true, it is straightforward to write an alternative
druntime / stdlib substitution to use with existing compiler
package.
> - Each new D point release brings a new, generally
> incompatible standard library.
> - All three major compiler backends are in good shape and use.
> But their generated code is not exchangeable (as far as
> I've heard due to ABI differences).
Yes, ABI is the key issue that makes 3 major compiler ecosystems
not interchangeable in any way. And it is not likely to be fixed
any time soon.
> - Tools tend to expect that "dmd" is available as a command.
Actually I don't think this is true for newer ones. There are
plenty that tend to either use `rdmd` or detect compiler present
in the system.
> To deal with the complexity of package dependency management
> in this scenario, we need to be able to install multiple
> versions of D compilers in parallel (similar to what dvm does).
> This can be accomplished by so called "slots" for each point
> release. We can do this for all three compilers and will end
> up with binaries like "dmd2.064" and "gdc2.063".
I have been thinking about it when doing Arch packaging but
discarded that approach as not KISS. All maintained applications
support either latest compiler version or previous one. Rare
cases when legacy version is needed are covered by dvm. In that
sense pure bleeding edge model suits D realities most and only
separation between dmd/ldc/gdc is needed.
> Next a symlink should be established to the current
> implementation of dmd, e.g.: /bin/dmd -> /bin/ldmd2.
> This symlink could be managed with an eselect plugin as it is
> already done for other languages like Python or the Java
> Runtime.
And what if one wants to have all 3 simultaneously?
> ...
(rest is a bit too Gentoo-specific for me to make any reasonable
input :))
More information about the Digitalmars-d
mailing list