Another Tale of IBM I (AS/400) Hacking (2022)
blog.silentsignal.eu
blog.silentsignal.eu
These days, the Android Runtime does something similar at application installation time, but TIMI was quite a bit ahead of its time. As far as I know, IBM never added ART-like continuous profiling and re-optimization features to the TIMI runtime, but it would be technically possible.
Another thing where IBM innovated, their compiler toolchain for PL/8 used for RISC research, was quite similar to how LLVM was designed decades later.
It’s funny that 8-bit computers from Atari and Commodore placed storage on daisy-chain serial buses with the drives running the filesystem management on their own CPUs.
I wonder how much data processing one could do back then by loading small programs in the drive RAM to, say, deduplicate or sort lines in a text file.
However, ultimately this was running on one of the I/O co-processors for that same mainframe, which had only about 10 simplistic instructions, so they implemented an emulator of a more usable CPU on that I/O co-processor, and then there was some extra complexity caused by the very limited RAM on the co-processor, so they had some extra layers of emulation that were swapped in and out, so the whole emulation stack was at minimum 3 layers deep and got worse from there.
The punchline is that the resulting COBOL compiler with many layers of emulation ran faster on the pathetically small and slow I/O processor than the primary COBOL did on the mainframe without emulation.
This appeared to be simply because the I/O processor tiger team understood efficiency tradeoffs, while the mainframe COBOL team took the attitude that the mainframe was infinitely fast and had infinite memory.
There are multiple morals to that; one of the more obvious ones is that nothing stays fast if you fritter it away by actively not caring about speed -- something which comes up over and over in today's world.
Another one is that peripheral processors are cool, both on big iron and on tiny iron. :) But see Ivan Sutherland's Wheel of Reincarnation regarding that. [0] [1] [2]
[0] http://catb.org/jargon/html/W/wheel-of-reincarnation.html
[1] http://cva.stanford.edu/classes/cs99s/papers/myer-sutherland...
Imagine I want to select data from a Parquet file and I could load a program into the storage device to only return me the entities I want instead of reading data into main memory and have my CPU do that?
https://www.c64-wiki.com/wiki/SpeedDOS which went into that direction.
Was mostly a hardware modification to make the serial bus parallel, though.
But it did extend some commands to handle floppies and their contents, running on both sides.
> Currently there are issues sending mail to hotmail, gmail and yahoo (they use outdated nospam-block lists). Please use a different provider.
protonmail address doesnt seem to work either.