There are a number of isXXX fields in mars.h (struct Params). Some do nothing, others control code generation or semantics or the language, others the ABI. In all cases regardless, these should not be public to the frontend, and go against at least GDC's goals to be a platform agnostic compiler.
What changes that need to happen are that any place where isLinux, isOSX, is checked in the frontend should be replaced with a Target hook describing the target behaviour, eg vectorSupported (true/false), prefixLabel ("_" on OSX, for instance) - some cod examples I can think of that may need better names.
Once this transition has been completed, DMD can make these private to its own target.c - which allows other compiler backends to omit the setting these values in their own glue if they so wish.
Comment #1 by dlang-bugzilla — 2017-06-26T15:49:59Z
(In reply to Iain Buclaw from comment #0)
> There are a number of isXXX fields in mars.h (struct Params).
N.B. Today these are in src/ddmd/globals.h.
Comment #2 by ibuclaw — 2020-09-06T17:31:59Z
(In reply to Vladimir Panteleev from comment #1)
> (In reply to Iain Buclaw from comment #0)
> > There are a number of isXXX fields in mars.h (struct Params).
>
> N.B. Today these are in src/ddmd/globals.h.
N.B. Today these are in src/dmd/globals.h.
Comment #3 by robert.schadek — 2024-12-13T18:18:08Z