Andrew Binstock
platypusguy.bsky.social
Andrew Binstock
@platypusguy.bsky.social
Lead developer on Jacobin JVM (jacobin.org). Formerly editor of Oracle's Java Magazine and earlier Dr. Dobb's Journal. When not programming, I study the bass clarinet. I value your time so my comments are intended to be helpful (and occasionally humorous).
The Jacobin JVM project (jacobin.org) just reached the 3.5 year milestone. Like we do every six months, we just posted an update: what we've done, what we'll do next. Also numbers, like that our test code is 2.07x the size of our production code. Have a look: binstock.blogspot.com/2025/03/jaco...
Welcome to Jacobin JVM
A more than minimal JVM written in Go and capable of running Java 17 classes.
jacobin.org
March 3, 2025 at 7:12 AM
You learn writing a JVM that the shortcuts you took early on eventually become things you must fill in. Every single time! But the JVM is too big and too complex to develop fully in a single pass--so you have to stand up working code and then elaborate it, including rewriting parts. So it goes!
January 13, 2025 at 11:51 PM
Java bytes are signed. 99% of the time that makes no difference, but the 1% makes byte handling in Jacobin a pain b/c golang (correctly, IMHO) makes bytes unsigned. We're constantly noodling code to use JavaBytes (an alias for int8), rather than the built-in byte type.
December 9, 2024 at 4:45 AM
I'm surprised to discover that the #JVM looks first in interfaces rather than superclasses when trying to access a field not found in the present class. See bugs.openjdk.org/browse/JDK-8...

Fascinating design choice. Details of this kind are part of the joy of working on a JVM (jacobin.org)
#java
Loading...
bugs.openjdk.org
November 26, 2024 at 5:36 AM
Working on Jacobin JVM is a process of understanding where you can deviate from the 600+ spec and get the same result. When you start out, you stay strictly faithful, but eventually you come to recognize that this little knob never needs turning and can be made into a switch, etc.
November 16, 2024 at 1:56 AM