Cross-platform DLL's

pragma pragma_member at pathlink.com
Tue Jun 6 10:24:46 PDT 2006


In article <e64858$mr3$1 at digitaldaemon.com>, Craig Black says...
>
>Compile-once would be very cool, but it is not necessary for my purposes, so 
>I suppose DDL will solve my problems.  I also hear DDL provides run-time 
>reflection.  I am very interested in this feature.  How does it do this? 
>What is the API look like?

It doesn't do reflection per-se, but it provides the underpinnings to build a
runtime reflection system (sans attributes, codegen and AOP of course). In a
nutshell, DDL exposes a generic interface for accessing the runtime symbol
information for *everything* within the current D executable.  If the linker can
see it, DDL can see it.  All a formal reflection API needs is to intellegently
demangle and process this symbol info on demand.

At present, DDL does provide some rudimentary reflection via templates for the
purposes of binding functions and fields out of loaded binaries - but that's
about it.  This is about as reflective as DLL or .so files, give or take a bit.


>> Perhaps cross-platform binaries might come in useful for those who need to 
>> hide the implementation. But for the rest of us, just having a single 
>> source base that operates on both (without the need to master the 
>> underlying relevant ddl/so mechanics) will be awesome! I suspect it's the 
>> latter that Craig was getting at?
>
>Yes.  And much thanks to you and all the other contributors that have made 
>DDL a possibility.  If it is what I understand it is, I am somewhat in awe 
>that you have been able to pull it off.

Thank you, but don't count yer chickens yet. ;)

It does work as-is, but there's some considerable work to be done.  Right now,
communal data records* are kicking my butt and threating a minor API change - it
seems I'm still learning the corner-cases of the OMF.  That aside, I am
completely confident in the theory behind DDL and what it will do when complete.

- EricAnderton at yahoo



More information about the Digitalmars-d mailing list