onsdag 24 november 2010

What have you done for me lately?

Quite recently the following message went out to our Java SE Licensees:

Upcoming changes in Java SE HotSpot build process

Dear Java SE Licensee,

November 05, 2010

Oracle would like to inform you that we are planning on eliminating the includeDB mechanism from the HotSpot build process starting from JDK7 and upcoming updates of the JDK 6.

The includeDB mechanism was in the HotSpot sources for a long time serving the purpose of generation of necessary header files include list for each source file at the compilation time. It was also used for generation of the precompiled headers that significantly reduce compilation times for Visual C and gcc compilers. It consisted of two parts: the MakeDeps tool written in java and plain-text database files with recorded header files dependencies. This approach became a maintenance issue and it also creates unnecessary difficulties for using modern IDEs for code development. The dynamically generated list of header files for precompilation will now be replaced with a static one and all include files will be explicitly listed at the top of each source file. This activity is known as CR 6989984.

A separate task known as CR6981484 will result in an update of the development launcher. The current development headless launcher known as gamma launcher has a number of limitations and is not existent on Windows. The new launcher called fusion will be present on all supported platforms and will have a new switch for launch inside a debugger. The current plan is to implement the new launcher as a shell scripts that wraps around the existing gamma launcher on Solaris and Linux and create a new separate executable for the Windows OS family.

Switching to the standard include model will enhance code maintainability. We do not expect this will be affecting Java SE licensees port in any major way, but we would like to give you an advanced notice so that you can plan your upcoming release accordingly.

If you have any questions or concerns, please contact your Java Licensee Engineering representative.

Thank you and best regards,

Java Licensee Engineering
Oracle Corporation

That is obviously one way of saying it (whatever _it_ is). If someone tweeted the first line, and someone else made an article based on that tweet, the article would read.

Oracle removes free Database from Java

Puppies missing from orphanage

But what does it really mean?

My own headline would be

OpenJDK now 300% easier to compile

(Full disclaimer: I just made the 300% up. I don’t have any independent research on the issue. And if there was, I expect it would be more than 300%.)

IncludeDB/MakeDeps was a non standard way of handling C++ header files. Back in the days of yore it solved a number of problems, but in a world with modern IDEs it’s more of a hindrance. We are now moving to using normal header files. This will allow users to use an IDE with a minimum amount of tweaking (as opposed to the previous maximum amount) and will seriously lower the bar for new developers that want to work with OpenJDK.

So, if you want to work on OpenJDK this is good for you. If you want others to work on OpenJDK this is also good for you. You’re welcome.

(We have done a few more things for you, but that will be a matter of separate posts)


Inga kommentarer:

Skicka en kommentar