The CAPI Manifesto

Daniel Gibson metalcaedes at gmail.com
Mon Oct 17 13:24:47 PDT 2011


Am 17.10.2011 12:21, schrieb Sean Kelly:
> On Oct 16, 2011, at 7:02 PM, Walter Bright wrote:
>>
>> The CAPI Manifesto
>> ------------------
>>
>> CAPI is a collection of C header files to publicly available C libraries
>> and their translations to D. The idea is that if, in C, to interface to a library
>> one would write:
>>
>>    #include "foo.h"
>>
>> then the corresponding D code would look like:
>>
>>    import foo;
>
> If the C header file has a name that is a D keyword, an underscore will be appended to the D module name.  If a C type name matches a C function name (stat), the type name will have a "_t" appended.
>
> There's also the occasional issue of something that doesn't translate into D.  As one slightly weird example, some of the the Posix routines in OSX have alternates with odd suffixes like "$2003" that are the versions which should be called on newer versions of the OS.  I'm still not sure of the best way to handle this, since D doesn't have macros.
>

What about function-like macros, e.g. the Linux/POSIX cmsg stuff 
(CMSG_FIRSTHDR(), CMSG_NXTHDR(), CMSG_LEN() etc) needed to use functions 
like recvmsg() and sendmsg()?

Will there be a direct D translation of the functionality or will they 
be omitted completely?

Cheers,
- Daniel


More information about the Digitalmars-d mailing list