On Friday, 10 January 2014 at 07:32:49 UTC, Jacob Carlborg wrote:
On 2014-01-10 01:02, Sean Kelly wrote:
Because of this clause from the Boost license page:
"The conceptual interface to a library isn't covered. The
particular representation expressed in the header is covered,
as
is the documentation, examples, test programs, and all the
other
material that goes with the library. A different implementation
is free to use the same logical interface, however. Interface
issues have been fought out in court several times; ask a
lawyer
for details."
I suspect that an automatic translation might be subject to the
"representation" issue, while a manual rewrite should not.
I see, that sucks :(. I guess this is a fine line since you
very well could en up with the same result of a manual and
automatic translation.
Yeah, this is also one reason why I chose the header format I
did. It works directly from the spec and so imposes a structure
of its own rather than inviting direct ports of existing headers.
But I'm really just guessing here, since I don't have any legal
background.
One issue I'm not sure about regarding automatic translation
(assuming this is deemed acceptable). Say you're trying to
translate pthread.h on a Posix system. The declarations for that
file might be required to live in sys/types.h, but in actuality
live in a smattering of files in other locations (usually
bits/whatever) all selected by a pretty complex chain of
preprocessor conditions. If we were to do an automatic
translation, how would this all work? One thing I like about the
current approach is that the result is succinct and legible,
despite requiring more work to generate.