Ideas for runtime loading of shared libraries.

Martin Nowak dawg at dawgfoto.de
Mon Jan 2 11:20:55 PST 2012


I think that I'll defer the support for runtime loading of shared library  
(plugins)
in favor of getting linked shared library support done now.
There are several issues that require more thoughts.

  - Per-thread initialization of modules is somewhat tricky.
    Doing it in Runtime.loadLibrary requires knowledge of shared library  
dependencies
    because different threads might share dependencies but this is not  
provided by libc/libdl.

  - Libraries might not be unloaded as long as GC collected class instances  
still exist because
    finalization fails otherwise.

  - Getting symbols through mangled names is difficult/unstable.

  - D libraries used by a C library should provide proper runtime  
initialization
    even if the C library is used by a D application.

Any ideas or use-cases for plugins are welcome.

martin


More information about the Digitalmars-d mailing list