Alan Mackenzie wrote:
If you can't copyright a data structure, you can't copyright a function. They're the same thing. Please tell me you're just winding me up.
I'm not trying to. I'm trying to explain to you that copyright is about copying text. The trigonometric function 'sine' and the data structure 'binary tree' are both abstract ideas and inventions that cannot be copyrighted. The text of a function which computes sine and the text of a function which traverses a binary tree can be copyrighted. When you write a new piece of source code from scratch, and that code contains text which will result in a separately written sine function being called under some circumstances when that program is executed, or if that code contains text which upon execution will manipulate binary tree structures by way of calls to separately written functions that do such things, this new piece of code is not subject to the copyrights of the those separately written functions, for the very simple reason that the text of those functions is not being copied or transformed. When that new piece of source code is compiled to binary form, none of the above changes; it is still not subject to the copyright of those separately written functions. This only changes when, as part of the process of building the binary, those separately written functions are actually copied to the generated program. Now a copy has taken place, and to distribute the executable involves making further copies of those functions, and that's when permission is required, and that's when the GPL work-as-a-whole kicks in.
C++ template libraries are copyright. Their external interfaces are (I think) usually in the public domain. Their internals are copyright. Their license is "use how you like in code produced by my compiler".
Again, copyright matters only when copying takes place. You have to have significant identifiable pieces of the templates copied into the generated code for copyright infringement to occur. Interfaces are irrelevant.
You're being unnecessarily pedantic and very parochial here. There will be hundreds, if not thousands, of different words used in copyright law for this concept. "Derived work" is just as good as "derivative work" in this newsgroup.
Only if they are always used to mean the same thing, and I don't believe that's the case.
I was using the word "derived" in that sense. Writing a code generator to transform data in one highly complicated data structure (the compiler's intermediate form) into another highly complicated data structure (the target OS's object format) is a significant auctorial transformation of these data structures, not a trivial one.
You still don't understand. The data structures that appear in memory as artifacts of the execution of a program are not objects which can be copyrighted. Therefore it does not matter how they are transformed. The code generator itself, provided it has been written from scratch, is not a transformation of any other object. That it does transformation of data structures when executed is irrelevant.
It's a reasonable, if imperfect, analogy. Please explain why you don't think that a novel's (human and animal) characters aren't just "ideas and invention" the way you say data structures are.
Because the courts say so. See <http://www.ivanhoffman.com/characters.html> for one discussion. The courts have ruled that an author acquires copyright over a sufficiently well-delineated character.
You can't copyright the idea of a compiler's intermediate data format
> being a linked list in memory, but you can copyright the particular > instance of it which is part of GCC. You can copyright the text of GCC's implementation of its intermediate data format. You cannot copyright the data format itself, and you cannot copyright instances of this data format which appear during the operation of the program. The overarching idea is that copyright applies to things that authors have written. Copyrightable things are the results of human labor.
Just where do you get that notion from? It's the first I've heard of it.
The Lotus/Borland interface lawsuit was an example.
Only if there are two programs involved (otherwise we'd have "intra", not "inter"). In the scenario I've been describing, there's only a single program involved.
With respect to copyright law, we're talking about human endeavor. One person is writing a computer program which is intended to inter- operate with another one. Writing an add-in or a code generator or whatnot is that sort of thing.
It's kind of surprising that the courts don't enforce the disclosure of programs' internal data structures to facilitate interoperability, isn't it?
They allow reverse engineering for the sake of interoperability. They upgrade to forcing disclosure when antitrust and monopoly is involved.
Rubbish! The GPL copyright holder wishes to maximise interoperability. A non-free extension of a program is less i11e than a GPL'd extension.
It doesn't matter what the GPL copyright holder wants. He can exercise control only as copyright law permits, and that permission is only for copying.
Anyhow, your talk of i14y tacitly assumes two existing pieces of code which could be combined, but for copyright restrictions. What I am talking about is an extension of an existing program specifically intended for it.
No, I am talking about the second case as well - writing a program which is intended to be an add-on to an existing program, and writing that add-on from scratch, not by copying an existing piece of code.
Being able to read and modify programs enables you modify them to be i11e with other programs
That's a happy consequence, not a goal. _______________________________________________ gnu-misc-discuss mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnu-misc-discuss
