Live data from Hacker News

Simple Open-Source Java Virtual Machine in C

github.com

1–10 of 14 posts

Re: Simple Open-Source Java Virtual Machine in C

#4
I had a buddy that wrote a Java 1.1 JVM from scratch in C back in late '97. He created it completely from the defined specification from Sun and actually found bugs in the spec. IIRC, the found bugs in the thread(s) specification. I believe his JVM was one of the first clean-room JVM implementation outside of Sun's efforts.

Re: Simple Open-Source Java Virtual Machine in C

#6
post #4

I had a buddy that wrote a Java 1.1 JVM from scratch in C back in late '97. He created it completely from the defined specification from Sun and actually found bugs in the spec. IIRC, the found bugs in the thread(s) specification. I believe his JVM was one of the first clean-room JVM implementation outside of Sun's efforts.

I can imagine that the spec would to some extent reflect an attempt to capture the behavior of the jvm they actually wrote, as opposed to being created first and then having Sun implement afterwards? It sounds like an interesting exercise to recreate it based on the spec and see what got missed.

Re: Simple Open-Source Java Virtual Machine in C

#7
post #4

I had a buddy that wrote a Java 1.1 JVM from scratch in C back in late '97. He created it completely from the defined specification from Sun and actually found bugs in the spec. IIRC, the found bugs in the thread(s) specification. I believe his JVM was one of the first clean-room JVM implementation outside of Sun's efforts.

I can imagine that the spec would to some extent reflect an attempt to capture the behavior of the jvm they actually wrote, as opposed to being created first and then having Sun implement afterwards? It sounds like an interesting exercise to recreate it based on the spec and see what got missed.

Their intent was to have hardware implementations. The basic spec is simple enough to make that tractable.

Re: Simple Open-Source Java Virtual Machine in C

#8
It wasn't actually possible to make a proper implementation from spec before Java 1.5. Quoting Wikipedia

> The original Java memory model developed in 1995, was widely perceived as broken, preventing many runtime optimizations and not providing strong enough guarantees for code safety. It was updated through the Java Community Process, as Java Specification Request 133 (JSR-133), which took effect back in 2004, for Tiger (Java 5.0).

Post reply on HN