proposal - dissolve the OpenJDK hsx Project after jdk8 ships

John Coomes John.Coomes at oracle.com
Tue Dec 10 13:02:38 PST 2013


The hsx Project was created to make hotspot development independent of
specific JDK releases, so the same source could then delivered into
multiple JDK releases simultaneously.  This has worked pretty well for
a number of years, allowing us to get significant features and
performance improvements into shipping, supported JDK releases much
more quickly.

However, it has also complicated hotspot development in several ways.
We have to maintain compatibility with multiple JDK
releases--supporting old operating systems, old tool chains and old
JDK APIs.  It is also more difficult to make large-scale or behavioral
changes, since delivering into update releases requires a high degree
of compatibility and allows only a relatively short time for
stabilization.  And there is also the overhead of a separate OpenJDK
Project, separate version tracking in the bug database and the mental
overhead of having to map a hotspot version to/from a jdk version.

Further, because of compatibility concerns, we have not delivered the
same source into multiple JDK releases for more than 18 months,
incurring the costs without reaping the benefits.  So I propose that
the hsx Project be dissolved after jdk8 has shipped, and that hotspot
development move to be more closely aligned with future JDK releases.

In practical terms this means that:

	- the general process for delivering hotspot into jdk8 will
	not change, to avoid disruption late in the release cycle.
	The remaining critical fixes needed for jdk8 will continue to
	be made in the existing hsx repos.

	- as the number of expected jdk8 fixes decreases to a trickle,
	jdk8 development and testing should move from the hsx group
	repos (e.g., hotspot-gc, hotspot-rt, etc.) to a single
	stabilization repo (possibly hsx/hotspot-main).  Alejandro
	Murillo, the hotspot gatekeeper, will coordinate this.

	- hsx Project Author/Committer/Reviewer status will be
	transferred to the new jdk9 [1] [2] and jdk8u [3] [4]
	Projects.

	- the bulk of hotspot development will take place in new repos
	that are part of the jdk9 project (e.g.,
	http://hg.openjdk.java.net/jdk9/hotspot-gc,
	http://hg.openjdk.java.net/jdk9/hotspot-comp, etc.)

	- bug fixes appropriate for jdk8 update releases will have to
	be selected and backported individually.  I anticipate that a
	new jdk8 update tree for hotspot will be created (name tbd),
	so that we can continue to do pre-integration testing and bulk
	integrations as we have done for jdk7 updates.

	- hotspot bugs for jdk9 and jdk8 updates will be tracked in
	JBS using the jdk version number, not a separate hotspot
	version number (e.g., we'll use '9' or '8u20' instead of
	'hs26' or 'hs25.20').

	- after the last hotspot bug fix has been delivered to jdk8,
	the hsx Project repos will become read-only and maintained
	simply for archival purposes.

Apologies for the length of this messages; I'm hoping to answer the
obvious questions in advance.  Please follow up if you have comments
or if there are any I missed.

-John

[1] http://mail.openjdk.java.net/pipermail/announce/2013-October/000155.html
[2] http://mail.openjdk.java.net/pipermail/announce/2013-November/000156.html
[3] http://mail.openjdk.java.net/pipermail/announce/2013-December/000157.html
[4] http://mail.openjdk.java.net/pipermail/discuss/2013-December/thread.html


More information about the hotspot-dev mailing list