On Thursday, 22 February 2018 at 21:59:27 UTC, aberba wrote:
On Thursday, 22 February 2018 at 08:54:04 UTC, Joakim wrote:
On Monday, 23 October 2017 at 18:18:28 UTC, Jacob Carlborg
wrote:
[...]
Yuxuan Shui has ported druntime to Musl over the last couple
months:
https://github.com/dlang/druntime/pulls?q=is%3Apr+author%3Ayshui+is%3Aclosed
With his changes, all druntime unit tests pass, now only a few
asserts tripping in the additional tests for shared libraries.
I added a couple more tweaks to get all but one of the Phobos
unit tests passing too.
With a last tiny patch to add a command-line flag to dmd to
easily use this port- already added to the latest ldc 1.8
beta, though it doesn't have all the druntime support:
https://github.com/ldc-developers/ldc/pull/2373 - anyone can
use D with Alpine/Musl containers for microservices.
That makes me very happy!! Very much appreciated.
I've updated ldc master to use Yuxuan's druntime port, which
means the upcoming ldc 1.8 release will likely be a viable
Alpine/Musl cross-compiler out of the box, provided you give it a
C/Musl cross-compiler/linker to work with, by using the bundled
ldc-build-runtime tool:
https://wiki.dlang.org/Building_LDC_runtime_libraries
Cross-compiling has not been tested however: do people normally
cross-compile to Alpine containers or build their software in
Alpine itself? If the latter, building ldc from master on
Alpine/x64 3.7.0 passes all of the druntime/phobos stdlib unit
tests but one, so you're good to go there, as long as you don't
need a pre-built binary. Maybe we'll put one out for ldc with the
upcoming 1.8 release.