teo schrieb:
You're missing something :) DDL doesn't require you to have a D
runtime in the shared library because unlike DLLs, DDLs can have
unresolved externals. That's the main issue: DLLs must have performed
all their symbol resolution at link-time, and cannot automatically
load symbols out of the host. So, you end up with all the runtime
duplicated in the DLL. DDLs, as well as shared libraries on _every
other platform_, allow you to have unresolved externals in the shared
library which are linked at *load-time*, so that there is one runtime,
which is in the host, which all the shared libraries use.
Perhaps I am missing something else ;) because that is exactly my point. DDLs
need neither runtime nor Phobos statically linked. Have a look at Java for
instance - Java developers create packages (not DLLs) and that is enough. They
deploy just the relevant code - no extra bytes. And yes, I know that the JVM is
behind the scene. Exactly this is the idea here: the D Runtime can act like the
JVM.
So where's your problem?
Go use DDL, you may also try h3r3tic's enhanced fork with a new linker:
http://team0xf.com:1024/ext/file/70b9addb42d5/ddl/
http://team0xf.com:1024/linker/