Comment by rbanffy

11 hours ago

The article makes me feel the author doesn’t have a deep understanding of some of the mechanisms. TIMI, iirc, is similar to Java (or Smalltalk) bytecode. I’m not sure it’s translated to native instructions on install or on module load, but the native code is kept so that the compilation doesn’t need to happen again. It’s as if the JVM saved a .nativeclass file when a .class file is loaded (kind of one level lower than what Python does, turning a .py file into a .pyc, or .pyo).

The concept of a flat object space we saw in Smalltalk and Lisps (the “system image”) would be seen again, kind of, in the Newton, the Palm, and, IIRC, in Taligent’s Pink. It’s a shame the IBMi is so poorly documented (in sharp contrast with its Z big brother) that no emulator capable of booting OS/400 images exists.

It’s not that this approach is perfect though - it’s really hard to bootstrap a Smalltalk image from scratch. I assume making an IBMi image without a running IBMi system would be similarly challenging.

Actually all modern JVM implementations, and Android, do exactly that, JIT caches that survive across executions. On Android it is additionally used to guide AOT compilation when the device is idle or charging.

TIMI is compiled to native code on installation, or explicitly, either by the admin, or on updates that render the overall compilation invalid.

  • Was TIMI already a thing when AS/400 was CISC?

    Edit: yes. It’s very similar the System/38 version.

Considering this article was 100% AI generated (according to Pangram), I doubt the author has much understand in of anything in the article.

  • AI or not, it was a nice read. Some points needed correction, but, overall, it is a nice write up on one of the roads less traveled (and still commercially supported).

    There’s also MCP and OS2000 from Unisys.