On Tue, 16 Jun 2015 20:07:03 -0400, David Nadlinger <[email protected]>
wrote:
On Tuesday, 16 June 2015 at 23:52:26 UTC, bitwise wrote:
I would like to try LDC, so I'll probably give it a go next release. It
looks like the runtime for LDC would need some work too though. In
particular, it doesn't seem to support dynamic loading:
https://github.com/ldc-developers/druntime/blob/ldc/src/rt/sections_ldc.d#L379
Well, this is the old LDC-specific implementation for all platforms that
have not been converted to the new scheme yet. You'd probably want to
base your implementation on sections_linux, which we use on Linux.
The code that emits the global constructors/destructors is here:
https://github.com/ldc-developers/ldc/blob/33befca6d72fe267ee8e4179ba670513993e2eb7/gen/module.cpp#L348-L546
- David
The llvm codegen is certainly easier on the eyes ;)
When I started porting my library though, I fumbled around with a bunch of
compilers and build commands trying to get D/C++ interop to work right.
xcode's default compiler seems to work nicely with dmd, so I went with
that. Other combinations where giving me strange linker errors.
As far as the runtime code, I understand most of what's going on, but I'm
still confused about the purpose of ThreadDSO, and what these are for:
pinLoadedLibraries()
unpinLoadedLibraries()
inheritLoadedLibraries()
cleanupLoadedLibraries()
Bit