6 ms·
So is this OpenJDK-derived? If so, too bad, I've been hoping for a truly independent implementation. If not, does it pass the TCK?
by kodablah 9y ago
So is this OpenJDK-derived? If so, too bad, I've been hoping for a truly independent implementation. If not, does it pass the TCK?
- lobster_johnson 9y agoThis is IBM's formerly-proprietary J9 JVM, which I believe was developed entirely from scratch, independently of Sun's HotSpot JVM. J9 actually has its roots in an earlier Smalltalk VM (VisualAge Smalltalk, I think). The source copyrights go back to 1991. Eclipse, of course, was what IBM started after abandoning VisualAge. It's not a JDK/JRE. J9 must be combined with OpenJDK to be able to run apps.
- merb 9y ago> It's not a JDK/JRE. J9 must be combined with OpenJDK to be able to run apps. well yes and no. if you don't use anything from the standard class library (that's impossible) than not. what I also guess is that you need a java compiler, since it reads that it uses a ibm created "rom file" that comes from java bytecode. what the most interesting thing about that vm is, is a shared class cache. which is like a *.so file, if one program loads a library and the library is already in memory another program won't add additional memory to the computer, this is a huge win, especially for memory hungry java applications (this already speeds startup extremly)
- emmelaich 9y agoThey already have a compiler, ECJ, which is included in Eclipse and Tomcat among other things.
- oblio 9y agoECJ is in Tomcat? What for?
- emmelaich 9y agoCompiling Java :-) To be more precise, a compiler is required for JSP, which is a mixture of html and java that is compiled to servlets. Theoretically you can compile them ahead of time (before deployment) but as far as I can tell no-one does.
- solarengineer 9y agoThose who want to provide only class files and no jsp code use the JSP pre-compilation approach. The JSP folks get compiled to Java servlet byte code the same as at runtime.
- merb 9y agodoes ecj support indy and newer bytecode? I do not think so, but I guess openj9 already supports java 9 bytecode I'm not sure about the actual bytecode version I guess it was 52 on java 8 but I'm not totally sure about it. I mean ecj is also not included in openj9, so if you want to strip out any openjdk dependency one would need at least a really basic class lib and a compiler (either ecj or anything else), (but I also think it hears that openj9 includes a compiler https://www.youtube.com/watch?v=96XoG6xcnys https://www.youtube.com/watch?v=96XoG6xcnys at the end he only says that they use the class library from openjdk, but he does not say if anything else and it also looks like it only uses that).
- dlandis 9y ago> J9 must be combined with OpenJDK to be able to run apps. No IBM has its own full JDK that you can download, but the rest of it other than the JVM is not being open sourced at this time. That's my understanding at least.
- mstoodle 9y agoThe IBM SDK for Java is based on OpenJDK, just like most (not all) other Java releases that are out there. IBM does not have "its own full JDK".
- filereaper 9y agoEx-J9 engineer here, J9 was built completely in a clean-room. It does pass the TCK tests.
- xbeta 9y agoI was intern'd at IBM Toronto Lab about 10+ yrs ago to add instruction sets for this compiler/JVM. It was fucking awesome experience back then!
- kodablah 9y agoWill they now be denied to use the TCK going forward like Harmony was? If not, why? Because they were proprietary first? Because Oracle likes the Eclipse license better than the Apache one? Oracle has stated that for open source, only OpenJDK derivatives get access to the TCK.
- nickhalfasleep 9y agoWhat is the 9 for? Jackknife? Jabbering?
- filereaper 9y agoThere's some mythology here, perhaps another J9 greybeard can answer. The story I've heard so far goes as follows... There was some constant for 8K that was mistyped incorrectly, something like instead of: #define 8K 8192 They mistyped and wrote: #define 8K 8096 This caused all sorts of bugs and was known internally as the 8K bug. When time came to write the Java VM, they wanted to name it as "post 8k bug" they named it K9, but K9 sounds like a dog (woof) so they decremented the K to land on J9. At least that's what I've heard... shrugs