Bug 19485 – Add more predefined versions

Status
RESOLVED
Resolution
WONTFIX
Severity
enhancement
Priority
P4
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Mac OS X
Creation time
2018-12-14T01:29:14Z
Last change time
2023-04-25T14:20:12Z
Assigned to
No Owner
Creator
andrew.pennebaker

Comments

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