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

Reply via email to