On Wednesday, 26 September 2012 at 20:15:35 UTC, nazriel wrote:
On Wednesday, 26 September 2012 at 20:10:47 UTC, Michael wrote:
Thanks. The loading part is very useful, but I'm still lost
when it comes to build the shared library itself.
Andrei
Program loads dll at runtime using loader which is configured
to load concrete dll file(s). Like in gtkD
http://www.dsource.org/projects/gtkd/browser/trunk/src/gtkc/Loader.d
Loading Shared lib isn't big issues here.
The bigger one is building Shared library (written in D) and
running it in host application without issues (EH, shared GC
etc).
Andrei, if you find out how to make those things work, please
share your findings. I'm also in need of using shared libraries.
And yeah, probably Martin Nowak will be the best bet to get
information from.
Native Oberon/BlueBottle OS really a lot in dynamic modules, as
everything
is dynamically loaded. As far as I know both operating systems
have a global GC.
Not sure how Spin does it.
Singularity, uses local GC per process and does not support
dynamic loading.
Bringing this into D's context, I imagine a solution for the GC
would be to have it shared across all modules. The biggest
problem I see, is that all shared libraries have to use the same
D compiler, or a standard GC ABI needs to be defined.
--
Paulo