On Wednesday, 15 January 2020 at 11:48:29 UTC, kinke wrote:
On Wednesday, 15 January 2020 at 04:00:26 UTC, Mathias Lang
wrote:
The LDC package is not going to be cross-architecture in the
near future, but it should be able to correctly cross-compile
once LDC a version matching 2.090.1 is released (most likely
LDC 1.20.0).
What's the reason for that requirement? I'll soon release LDC
v1.20.0-beta1, so is there something from DMD stable you'd need
as prerequisite?
While I've never fully understood the popularity of
Alpine-based docker images (okay, the base image is tiny, but
if all images are based on the same, say, Ubuntu image, the few
hundred MB only need to be stored once on each host), it'd
probably be nice to have the official prebuilt LDC Linux
packages linked against musl, to get rid of the glibc
dependency. I assume that would be enough to make it runnable
on almost all Linux x64 hosts.
Nothing from DMD, but some fixes in Druntime.
The `stat` struct definition was broken (among other things), so
anything involving files was failing on other architecture. This
was fixed in https://github.com/dlang/druntime/pull/2899 .
Regarding Alpine's popularity: I think it's a matter of
convenience.
Just like distributing a single binary (or, like in your case, a
standalone package) is easier to deal with, being able to
distribute a tiny image packaging your application is great
(because the economy of scale argument only holds if you have
many images on the same host and don't wipe it frequently).
Also, the Ubuntu base image is much slower to build, and just I
like my compilation time to be low, I like my image build time to
be low.
I think the README of alpine covers it pretty well:
https://github.com/alpinelinux/docker-alpine#why .