On 31/05/2017 4:57 PM, solidstate1991 wrote:
Offloading at least the GC could enable the implementation of a
per-application GC easier, as well as making development of shared
libraries under Windows much easier, might even enable the offloading of
Phobos into its own DLL.
Won't work, TypeInfo doesn't cross the shared library boundary atm. This
is probably the real blocker for shared libs on Windows (includes Phobos
as a DLL).
The GC can be swapped out already at runtime, just need shared libs to
be working properly :)
As an outsider, I think the biggest problem would be from the templates
(if any) used in the runtime library on the implementation side. On the
other hand we could just still implement those as a static library into
the executable files.
Versioning would be the hardest, we either release a new one with each
new implementation, or develop the runtime library more independently
from the compiler with clever versioning, however it might cause the
development of the DRuntime to be fragmented for supporting older and
newer versions.
We already do all this, on Linux (and I think OSX too) Phobos+druntime
is built as a shared library by default.