The Chifir Virtual Machine

A simple project to change the mood while I was in the middle of grinding webdev stuff.

2022.7.4: Somehow I forgot to link the repository here. Here you go: https://git.sr.ht/~bctnry/chifir

Chifir is a virtual machine described in the paper "The Cuneiform Tablets of 2015" by Long Tien Nguyen and Alan Kay at Viewpoint Research Institute. To be brief, Chifir is a part of the "Cuneiform" system which is designed to preserve programs for decades to come.

The virtual machine itself is extremely simple:

The input is the most confusing bit. Because it was originally intended to preserve Smalltalk-72 the ASCII set is different:

the %draw %undraw etc. are actually conditions; isnew is the condition of "whether it's creating a new object", the then-clause of this condition is thus the constructor.

The "?" does look like asking about the name of the message (e.g. %draw? = "is the message draw?"). I have no idea if this is a coincidence or not.

Some constructs in the original Smalltalk-72 is lacking here, e.g. the thicc colon (the normal colon gets the next value in the message evaluated, this thicc colon get the next literal token), the keyhole (haven't read enough manual to know what it's for but probably some kind of inspection utilities), and the 's symbol (the subscript construct, the . in the A.B; but that can be unified with methods e.g. à la Io so there can be no problem).

Yeah, if you want to preserve programs you can definitely do a lot better than this...

(BTW I haven't heard about Project Oberon being treated as a permacomputing-related project & with Project Oberon you got a whole computing stack as well.)

About the Python version

About programming in this VM

where X, Y and T are different addresses than PC+0~7. To be honest, this kind of indirect manuvering is kinda killing me.