On Sun, Dec 31, 2023 at 6:25 PM Larry McVoy <lm(a)mcvoy.com> wrote:
[snip]
OpenFirmware is Mitch Bradley's baby. I believe it ran on 68k Suns,
there was some sort of boot prom there. I mostly used it on SPARC.
It was pretty powerful but my personal feeling is the choice of
Forth didn't help. Yeah, I get it, Forth is like some weird lisp
and the lisp people love lisp. What the lisp people don't get is
there are a lot more people who don't love lisp than do love lisp.
And trying to get everyone to love lisp isn't gonna happen.
That said, what else could Mitch have used at the time? Tcl?
Please, another weird lisp. Perl? Not really something that
wants to talk to the bare metal.
It's a serious question, is there anything that Mitch could have
used that would have had wider appeal?
The thing about FORTH isn't that it's Lisp-like (as Alec mentioned),
though its supporters do often exhibit a fervor reminiscent of
Lispers.
Rather, I think FORTH shows up in places like this because it's
possible to write _incredibly_ lean threaded-code interpreters for it
that can run in really primitive environments, so you can shove a
really small interpreter in a ROM and keep your big CPU in reset while
you run it out of a tiny SRAM on an 8-bit microcontroller or something
until you've got enough of an environment going to train DRAM and
transfer over to the real thing. E.g., something like:
https://pygmy.utoh.org/3ins4th.html
What could you have done differently? Meh; I don't really know, but see below.
And I agree whole heartedly with the EFI crap being a
giant step
backwards.
Ironically, the UEFI people have done something _similar_ to OF in the
form of AML (ACPI Machine Language), which is a byte-code
serialization ASL (ACPI Source Language); presumably that's system
independent. The idea of a p-code representation is about where the
similarity ends, though: AML exposes a mechanism to talk to the UEFI
OS for a whole slew of stuff, which is rather unlike what OF did
(though I again have a vague memory that on SPARCstations some devices
went through the PROM monitor; the text console, for example, and
maybe the keyboard? It's been too long now to properly remember).
Anyway, an alternative to FORTH might have been a well-defined p-code
and a little VM in ROM to drive it. Then one could compile to that
using whatever language one liked (and was willing to write a compiler
for!). Perhaps the feeling is that that is what FORTH was; for that I
guess I don't see any reason one couldn't transpile to FORTH from some
other language.
- Dan C.