Standard third party imports

Stanislav Blinov stanislav.blinov at gmail.com
Sat Nov 13 16:35:26 PST 2010


dsimcha wrote:
> == Quote from Adam D. Ruppe (destructionator at gmail.com)'s article
>> I'm wondering, would be be a good idea to add some .di files to the standard
>> distribution, or easily accessible next to it, for some common third party C
>> libraries?
>> For example, I used import sdl.SDL in another thread yesterday to quickly port
>> a C toy, but most people probably can't do that since they don't have the same
>> collection of interface files I have.
>> There's other times where I write an extern(C) {} block myself with the
>> prototypes I use (actually this is common for me) but that's a pain if the C
>> function needs a lot of #defines, structs, etc. A nice group of common imports
>> would be, well, nice.
>> I'm not talking about wrappers, just interfaces. So
>> import etc.c.sdl.SDL;
>> Then use it C style: SDL_namehere and manual freeing, etc. You can use that
>> directly, or if you want to, wrap it in D.
>> Do that for a handful of common libraries. SDL, curl, mysql, a few others. On
>> Windows, perhaps provide the .lib files for linking to the DLL as well so
>> people don't have to track that down. (This doesn't require the inclusion of
>> any code either. It's just a function list.)
>> What it will *not* include is the actual libraries themselves. Nothing needs
>> to actually be compiled into Phobos. It's just a convenient interface to some
>> common C functions, like we provide to the operating system. Being just
>> headers, the source is included by definition and no code of it whatsoever is
>> compiled into Phobos itself, so it wouldn't taint anything else. (indeed,
>> phobos2.lib shouldn't change /at all/ by the inclusion of these files in the
>> proposed etc branch).
>> We'd still have pure Boost/public domain binaries with the standard
>> distribution while making more libraries a wee bit more accessible.
>> What do you think?
> 
> One question here is, what's the copyright status of header files and their .di
> translations?  I would guess, though IANAL and could easily be wrong, that header
> declarations (struct layouts, function prototypes, in general things where there's
> no actual implementation code) aren't sufficiently original to be copyrightable.
> If anyone knows for sure, please speak up.

AFAIK, licenses mostly cover implementation code. This is where, e.g. 
LGPL terms grow from. And if license limits *overall usage*, it is 
likely to be proprietary anyway. For common open-source libs like SDL, 
xlib, enet, etc. I see no harm in having *interface* to them adapted for 
a particular language (D in this case). Otherwise, what right have 
existing bindings for other language for their, uh, existence? Take Tao 
as example (it's a bunch of interfaces/wrappers for Mono).

BTW, I have some hand-converted (linux) ptrace and xlib declarations, in 
case it is of interest :)


More information about the Digitalmars-d mailing list