Comment #0 by andrew.pennebaker — 2018-12-14T01:29:14Z
D's builtin version identifiers are a fairly exhaustive list! Could we add MINIX and HardenedBSD to the list?
They should be easy to identify with a "Minix", "HBSD" match on `uname -a`, respectively.
I'd also like to see some musl/Linux editions identified, though those tend to not appear in a distinguishing way with uname, but instead via `lsb_release -a`, e.g. "Void" for Void Linux.
Comment #1 by kinke — 2018-12-14T21:17:18Z
This list should strive not to grow too much. musl is already detectable via `CRuntime_Musl`, as is uClibc and glibc. So if e.g. the Void distro isn't anything special wrt. kernel and libc, there's no need for a dedicated predefined version. We'd have thousands of versions for all distros otherwise.
Comment #2 by andrew.pennebaker — 2018-12-15T05:19:01Z
Thank you for pointing out CRuntime_Musl!
Regarding Void Linux, it is useful for me to identify Void Linux hosts as opposed to other Linux hosts, because Void Linux's valgrind is unfortunately somewhat broken. And so I would like to disable valgrind checking in my build system whenever the host is detected as Void Linux.
For now, I am doing this with a runtime match against `lsb_release -a`, but I would prefer that this be done at compile time for efficiency's sake.
Comment #3 by ibuclaw — 2022-06-13T10:05:55Z
Possibly a job for dub, not the compiler.
Comment #4 by ibuclaw — 2022-06-13T10:13:34Z
(In reply to Iain Buclaw from comment #3)
> Possibly a job for dub, not the compiler.
That is to say, when it comes to discovering variants of the main platform-specific versions.
Otherwise I only see the list of CPUs growing, rather than platforms - Linux, HPUX, Solaris, Windows, OSX, AIX, OpenBSD, NetBSD, FreeBSD, VMS... that's basically your lot, right? Others are either too obscure, or fork their own toolchain instead of integrate upstream (such as Haiku).