Closed source D libraries

Henning Pohl henning at still-hidden.de
Sun Jul 15 08:29:36 PDT 2012


On Sunday, 15 July 2012 at 13:26:19 UTC, Benjamin Thaut wrote:
> Am 15.07.2012 15:06, schrieb Gor Gyolchanyan:
>> On Sun, Jul 15, 2012 at 4:33 PM, Henning Pohl 
>> <henning at still-hidden.de
>> <mailto:henning at still-hidden.de>> wrote:
>>
>>    On Sunday, 15 July 2012 at 12:21:23 UTC, Gor Gyolchanyan 
>> wrote:
>>
>>        On Sun, Jul 15, 2012 at 4:05 PM, Henning Pohl
>>        <henning at still-hidden.de 
>> <mailto:henning at still-hidden.de>>__wrote:
>>
>>            Most closed source C and C++ libraries provide 
>> headers and
>>            binaries. It
>>            seems to me that there is no way to do this in D, 
>> because
>>            the source files
>>            always have to be available to import their modules.
>>
>>            I'm not going to write something proprietary or 
>> closed
>>            source, but i
>>            wonder if others can do so.
>>
>>
>>        It's quite possible. All you have to do is make a 
>> module, which
>>        doesn't
>>        contain any function bodies. The imported modules aren't
>>        compiled with the
>>        code. Most of the time it's easier to have a single 
>> module to
>>        have both the
>>        code to compile and symbols to import. In other cases 
>> they can
>>        be separated.
>>
>>
>>    Okay, so it works just like in C:
>>
>>    // The "header" file
>>    module lib;
>>
>>    void printHelloWorld();
>>
>>
>>    // The "source" file
>>    module lib
>>    import std.stdio;
>>
>>    void printHelloWorld() {
>>          writeln("Hello world!");
>>    }
>>
>>
>> Exactly. Not defining a function body is perfectly fine for 
>> precisely
>> these reasons. And, just like in C, forgetting to link with 
>> the missing
>> body will result in a linker error.
>>
>> --
>> Bye,
>> Gor Gyolchanyan.
>
> The compiler can even generate those files for using the -H 
> option. It will generate .di files. Although any formatting 
> will get lost during that process.
>
> Kind Regards
> Benjamin Thaut


All right, thank you for the clarification.


More information about the Digitalmars-d mailing list