D for microservices: ldc, rdmd, dub now available on Alpine x86_64

Mathias Lang pro.mathias.lang at gmail.com
Wed Jan 15 14:06:04 UTC 2020

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 
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 .

More information about the Digitalmars-d-announce mailing list