My Failure At Creating A Basis for Indiecomputing

1The current state of things

Up till now I've had three different virtual machines which is not a good sign; there really isn't any hard-coded rule that says you have to stick to one platform, but having three different VM but zero significant software to run on them is just plain stupid. I think it's mainly because a) instead of committing to one VM I kept on trying to make the “perfect” VM and b) I'm trying way too hard to imitate the people I look up to, which is almost never a good idea - especially in this case the situation and tolerance of things are way different.

To fully design implement a virtual machine (that's similar to a conventional physical machine) one would:

And also there's this pipeline:

I say this is too much hassle for too little benefit. Even if (I think) I have made the perfect tradeoff when designing SRH CHAI, by the end of completing the assembler I was entirely worn out. This isn't the way I wanted.

2“Bedrock Platform”, but with a language

I had this idea when reading (once again) about Lispkit Lisp. Lispkit Lisp is a tiny subset derived from the original LISP described in Peter Henderson's book Functional Programming: Application and Implementation; one may not notice this but it's really (relatively) well-preserved: once the SECD machine is implemented, one can run the whole set of Lispkit Lisp programs (preserved as plain text files) with little effort. But Lispkit Lisp is slightly too different from Scheme, the dialect I'm most familiar with; it wouldn't be too difficult to rebuild everything with a subset of Scheme.

With this new approach to computing basis I'm envisioning I'll design a subset of R4RS Scheme that one can implement with relatively little hassle; to preserve this subset there will be a language report fully specified with as-formal-as-possible semantics. This new basis I'll be working on shall from now on be called “Basis Nova”, and everything that happened before shall from now on be called “Basis Antiqua”.

2.1“B-but implementing Scheme takes effort!”

So does implementing Chifir (remember, to develop for Chifir I had to implement the whole toolchain as well); it's hard to say which takes more effort.

3The possible form of Basis Nova

I'm thinking that to make a proper basis I need to make:

4The future for Basis Antiqua

SRH Chifir isn't going to be deprecated because the original goal was only to preserve Smalltalk-72; this will be done but it will probably take years before it's done. I'm probably going to completely deprecate SRH Oberon & SRH CHAI in favor of Basis Nova.