harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Archie Cobbs <arc...@dellroad.org>
Subject Re: [jchevm] JCHEVM discussion
Date Sun, 12 Mar 2006 17:35:14 GMT
Geir Magnusson Jr wrote:
> I applaud Archie for his candor and openness wrt these issues so far, 
> and suggest that Archie is in the best position to lead off the 
> discussion :) [hint]

Umm, ok here goes :-)

There are a couple of different issues. I'll try to separate them out
to the best ability of my own understanding.

A little background: copyright covers the "expression" of an idea.
To cover the idea itself, a patent is required. This issue is about
copyright; nobody is claiming that SableVM has exclusive rights to
any algorithms AFAIK.

1. As for "credit", clearly JCVM uses and reimplements many ideas and
algorithms from SableVM. This should be obvious. I have a lot of respect
for Etienne's work. The SableVM project as a whole deserves all of our
respect. Quoting the JCVM manual:
http://jcvm.sourceforge.net/share/jc/doc/jc.html

   An acknowledgment is due here. JC borrows heavily from Etienne Gagnon's
   innovative SableVM Java virtual machine implementation. Several ideas
   have been blatantly stolen from SableVM, including bidirectional object
   layout, the object lockword design and spin-free thin lock algorithm,
   per-class loader memory allocation, and thread management. In fact,
   without SableVM as an example to work from this project would probably
   have never been attempted. Of course, any errors in translation are mine.

Whether credit is due is not in question.

2. The copyright issue is the main one in question. JCVM was LGPL, so
there was never an issue. When I donated JCVM as JCHEVM, copyright became
an issue because of the new license. My thoughts at the time are here:
http://issues.apache.org/jira/browse/HARMONY-3

In JCHEVM, the thread handling and thin lock algorithms are very much the
same algorithms, and my implementation contains similiar function names
to SableVMs, etc. The code is written differently but basically does the
same thing. After all, an algorithm is a bunch of exact steps that must
be executed in a certain order. So does JCVM constitute a "different
expression" under the copyright law? That's the question -- and not one
for me, for IANAL and TINLA.

The truth is apparently no one really knows for sure. How "different"
does some software have to be before the copyright no long applies?
(Rhetorical question)

There is a spectrum between cut and paste (clear violation) and
completely different implementation of the same idea or algorithm
(clearly allowed as long as there is no patent). In between people
can have different opinions of where the line is drawn of course.

3. So what do we do? My wish is to give SableVM the benefit of the doubt.
If there's something in there they claim is "theirs", we can take it out
and replace it. I'd rather do that than argue about it. We should
remember that JCVM owes SableVM a debt of gratitude and respect their
wishes.

In particular there are lots of thread handling and locking algorithms,
and these AFAICT are the only two areas of the code that might be
considered "not different enough" (though I haven't heard back from
them yet exactly what they are claiming), and these are easily replaced.

There's also the possibility that SableVM folks could give their blessing
and donate their code, but that might have practical difficulties because
all the SableVM contributors would have to agree to the new license
(though I'm one of them, so my vote would be easy :-)

-Archie

__________________________________________________________________________
Archie Cobbs      *        CTO, Awarix        *      http://www.awarix.com

Mime
View raw message