On Tuesday, 25 September 2018 at 12:05:21 UTC, Jonathan M Davis
wrote:
If you use -betterC, then it's trivial, because your D program
is restricted to extern(C) functions and features which don't
require druntime. It can also be done without -betterC (and
thus with druntime), but it gets to be _way_ more of a pain,
because it requires that you manually initialize druntime -
either by forcing whatever is using your "C" library to call a
specific function to initialize druntime before using any of
its normal functions or by having every function in the library
check whether druntime has been initialized yet and initialize
it if it hasn't been before it does whatever it's supposed to
do.
Shouldn't it be possible to use a C initialization function, i.e.
pragma(crt_constructor) to initialize druntime? Then it only
needs to be initialized once and it's not required to check if
it's initialized all the time.
--
/Jacob Carlborg