Nice one Jeff, thanks for the pointer. Two comments from the HN discussion:
Quote:
When reading the README file of their github it is possible to see how "impure" pragmatic decisions were made like for loops and not supporting proper recursion. I wish there would be more projects like this one porting lisp runtimes to more and more hardware.
Quote:
What they didn’t do is what many people might think are table stakes with Lisp: writing a garbage collector, writing a runtime, supporting lambdas, and so on. Those are unreasonable asks for 2K RAM on a 6502. I wouldn’t say they wrote a bonafide Lisp, but they made use of many ideas of Lisp successfully to write a game that is very surprisingly readable while not being too abstract over assembly.
Edit: And from the article:
Quote:
...a custom language was developed in tandem with the game. Co2 is a Lisp-like language, built on Racket Scheme, which compiles into 6502 assembly. This language was originally started by Dave Griffiths to build the What Remains demo, and I decided to stick with it for the full project.
Co2 makes it possible to write inline assembly when needed, but also has higher-level facilities that make certain tasks easier. It implements local variables that are efficient both in terms of ram consumption and access speed[+]. It has a very simple macro system that helps write readable, and also efficient code[+]. Most importantly, it makes representing data directly in the source a lot easier, thanks to lisp’s homoiconicity.
(I too follow HN, but I do it by being about a week behind on the daily top ten, in an effort to tame the firehose. Being behind means I see the discussion whole, but can't participate (like any time-traveller)
http://www.daemonology.net/hn-daily/2019-09-02.html(I use RSS)
Edit: and agreed, the level of discourse on HN is excellent. Much of it is culture, some of it is the consequence of up/down voting, and some due to the contribution of two excellent moderators.
)