Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is the current version of the Java Virtual Machine Specification?

It would appear as though the only way to get the Java 6 version of the Java Virtual Machine Specification is to take the Second Edition, merge in the Existing Changes and then add on top of that the Java 6 proposed changes which are not really proposed anymore, but actual.

Really?

Two question arise out of this:

  1. Is that all the deltas?
  2. Why isn't there an official current version?

Anybody know of anything I'm missing, to either end?

like image 545
David Citron Avatar asked Jan 23 '09 00:01

David Citron


2 Answers

Is that all the deltas?

Yes, the documents you link to are the most up-to-date sources of information for the current state of the JVM specification.

Why isn't there an official current version?

This is only a guess, but I would say it's because "The JCP has over 1200 corporate and individual participants." Too many cooks.

The other possibility is, with Java 7 just over the horizon, they're waiting to publish the new JVM spec until the new release.

like image 195
Bill the Lizard Avatar answered Nov 09 '22 23:11

Bill the Lizard


This has been addressed with the release of Java 7. TheJava 7 Docs contain a Specifications sidebar link (see it?) which links to two new PDFs (the JLS and JVMS).

As @Andrey Loskutov points out in a blog post linked from a comment on this question, the JSR-000336 Java SE 7 Release Contents Final Release Specification contains an annex which has various versions of those artifacts and some surrounding verbiage, including the following text:

The last self-contained specification of the Java Virtual Machine was the Second Edition in 1999. It was affected in 2004 by JSRs for Java SE 5.0. For example, JSR 14 deeply revised the ClassFile chapter. No integrated document was published, but nevertheless the specification of the Java Virtual Machine was officially updated in 2004. Changes between 1999 and 2004 were identified in individual chapters at the time, and it is no longer possible to identify changes made specifically for Java SE 5.0.

The 2004 specification was then affected in 2006 by JSRs for Java SE 6. For example, JSR 202 deeply revised the Linking chapter. Again, no integrated document was published, but nevertheless the specification of the Java Virtual Machine was officially updated in 2006. Again, changes between 2004 and 2006 were identified in individual chapters at the time, and it is no longer possible to identify changes made specifically for Java SE 6.

Why Sun/Oracle makes a research project out of finding their documentation is a matter for a different forum. Suffice to say, however, that their scattered approach to documentation combined with the fact that nothing links to anything else makes dealing with Java much harder than it should be.

like image 22
David Citron Avatar answered Nov 09 '22 23:11

David Citron