I was wondering if this discussion would change between then and now, but I suppose this was never a particularly lively venue. I may as well mention my latest work now. I've written twenty-one articles since then. My second submission to the Octo Jam VI was the smallest submission ever received, being forty octets, and able to be smaller. November was rather a month of rebuttals, due to a lack of inspiration from elsewhere, and I quite liked the idea.
Rather than finishing my MMC reimplementation in Common Lisp, I focused on implementing SHA-1 thrice, and I'm planning to research and work towards two rather comprehensive SHA family implementations with design considerations taken from the earlier. As of writing, I've mostly finished the MMC reimplementation, in any case, and merely need to work on the prime loop and keyboard table before I can begin testing and further improving it.
I particularly enjoyed how Ada allowed me to create a SHA-1 design which was: simple; easy to use; lacking failure cases; based around preventing mistakes; and efficient, in that it performs no dynamic memory allocation. The Ada went on to influence the other two implementations, not only through the naming, but through the Pad procedure, which I'm particularly pleased with. Unfortunately, I've yet to get any opinions on my SHA-1 programs.
I've abandoned plans for JSON-SUCKER, as JSON is sufficiently complicated that my idea no longer seems worthwhile. I intend to learn some lesser or merely smaller languages this year and perhaps implement them in Ada and Common Lisp. I want to begin work on my own implementation of Common Lisp this year, also.
I suppose that's a valid criticism, but even were it playing pretend, it would still be worthwhile for its educational value. Anyway, I'm fascinated by making reliable programs and Ada makes it reasonably easy. My mentioned SHA-1 uses no dynamically-allocated memory, only local subprogram storage, as an example. With my design, it should also entirely lack failure cases, unlike other designs, and it's so nice to have something which must always work; I must note that my Word_Block type is a subtype of Word_Array, and so it's possible to get a Constraint_Error if the bounds are incorrect, but it's sufficient to point out that this isn't so extreme and even making the types incompatible wouldn't prevent someone determined from causing the error, and so if you simply only use Word_Block you'll simply always be free from this concern.