Issue Details (XML | Word | Printable)

Key: HARMONY-3
Type: New Feature New Feature
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Geir Magnusson Jr
Reporter: Archie Cobbs
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Harmony

Code contribution - JCVM

Created: 26/Sep/05 04:04 AM   Updated: 13/Mar/06 01:35 AM
Return to search
Component/s: Contributions
Affects Version/s: None
Fix Version/s: None

Time Tracking:
Not Specified

File Attachments:
  Size
GZip Archive Licensed for inclusion in ASF works jcvm.tar.gz 2005-09-26 04:05 AM Archie Cobbs 371 kB

Resolution Date: 05/Oct/05 11:14 AM


 Description  « Hide
This is the JC virtual machine contribution to Apache's Harmony project.

All code herein was written by me. However many ideas and algorithms herein
were NOT invented by me, rather I just reimplemented them (with modifications).
These are described the documentation (see doc/jc.texi).

Note that the code in this tarball has been partially stripped down and
will not build standalone. If you want to play with the complete JCVM,
please visit: http://jcvm.sf.net/

Here's a posting describing some of the parts of JCVM that may
be useful to reuse in Harmony:

    http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200505.mbox/%
3c4288F308.9000502@dellroad.org%3e

Here's how this tarball was created:

1. cvs -d :ext:yournamehere@cvs.sourceforge.net:/cvsroot/jcvm checkout jcvm
   When: Sun Sep 25 13:28:25 CDT 2005

2. Substituted the Apache copyright header (COPYRIGHT.Apache)
   into all source files.

3. Removed non-original or irrelevant stuff:

        java/gnu subdirectory
        java/java subdirectory
        soot/ subdirectory
        website/ subdirectory
        include/queue.h

4. Added LICENSE.Apache

-Archie Cobbs


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Archie Cobbs added a comment - 26/Sep/05 04:05 AM
See APACHE.README within.

Geir Magnusson Jr added a comment - 28/Sep/05 04:50 AM
Update : I have some questions for archie regarding source, as the authors file has references to SableVM and Classpath.

Archie Cobbs added a comment - 28/Sep/05 06:47 AM
More details on authorship...

The reference to Classpath applies only to the "overlay" classes in JCVM,
e.g., java.lang.ClassLoader, which are just minor modifications of the "stock"
Classpath versions, required due to random incompatibilities and/or differences.
These classes were all removed from the tarball.

The file include/jni.h is pretty unoriginal I guess, as it's based on the JNI specification.

Everything else in doc/, etc/, include/, java/, jc/, jsrc/, and tools/ is original.

Most of libjc/ is original, but because JCVM was written after studying SableVM,
some parts of it are quite similar to SableVM (i.e., where SableVM got it right
the first time :-)

The files libjc/lock.c and libjc/thread.c are pretty closely based on their
SableVM equivalents. I.e., they use similar algorithms and function names,
and some of the comments are similar (thread.c also contains original stuff
like the attach/detach code and the handling for Thread.interrupt() and
suspend/resume which SableVM lacked).

Some of the structures in libjc/structures.h were originally based on their SableVM
equivalents, though they are pretty different now.

Similarly, libjc/vm.c has some faint similarities to its SableVM equivalent (i.e.,
the function _jc_create_vm()).

Also libjc/splay.c was written by me, but based on the public domain Java version.

I did actually type everything in myself, although as you can see several of the
algorithms, ideas, etc. are borrowed from SableVM.

So.. not sure what the import the above similarites is. As for "authorship" I think
it's right and proper to acknowledge SableVM's contribution. As for "copyright",
ask your lawyer :-) .. though it seems to me like JC would qualify as a
"unique expression" of the algorithms and ideas it implements. If you
wanted to be extra careful, you could exclude one or more of the more
closely related files such as lock.c and thread.c, or else get additional
permission from the SableVM authors to relicense them.



Andrew C. Oliver added a comment - 29/Sep/05 10:57 PM
I think the only "guilt" here seems to be that Archie has been thorough in his accounting. I'm still looking through and trying to figure out how to build this, but so far it looks clean to me. "Inspired by" but not stolen from. I don't think excluding the said files is necessary.

Geir Magnusson Jr added a comment - 05/Oct/05 11:14 AM
Project voted, all documentation in order.

Accepting and putting copy for archival purposes in contrib_archive/2005/harmony-3 (and copy in sandbox)

Geir Magnusson Jr added a comment - 05/Oct/05 11:15 AM
Thanks Archie!

Geir Magnusson Jr added a comment - 13/Mar/06 01:35 AM
pending outcome of discussion of infringement claim, download of tarball has been disabled.