[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GPL traitor !

From: Hyman Rosen
Subject: Re: GPL traitor !
Date: Mon, 11 May 2009 15:36:44 -0400
User-agent: Thunderbird (Windows/20090302)

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

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 <>
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

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

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

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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]