Implemented #Lisp in #Uxntal today, it makes for a 2kb embeddable virtual machine that I can embed in our next game project. I've implemented a bunch of Lisp systems over the years(Ronin, SECDs, etc..) but it's the first time doing it in a catlang. It's impressive how well it maps to a stack machine, it's clearly a better fit than binding environment to a register, things just want to be linear, there's no need whatsoever for variables.
git.sr.ht/~rabbits/heol
git.sr.ht/~rabbits/heol
This entry was edited (2 hours ago)
noah ruiz
in reply to Devine Lu Linvega • • •Sasha
in reply to Devine Lu Linvega • • •Devine Lu Linvega
in reply to Sasha • • •rabbits.srht.site/decadv/
December Adventure 2023-2024
rabbits.srht.siteH3RALD
in reply to Devine Lu Linvega • • •I just want to say that what you can accomplish in such a short time is beyond impressive. It kinda breaks my brain: on one side, there's you, on the other side, there's a team of experienced software developers at work that quoted me 230 story points (roughly 230 working days) to build a relatively straightforward dashboard editor in JavaScript.
I mean, if I go to my teams and say something like "I know someone that can build a whole programming language using *their own* language/ecosystem within 2Kb for TWO story points..." I think most people would just quit.
Devine Lu Linvega
in reply to H3RALD • • •asj
in reply to Devine Lu Linvega • • •Devine Lu Linvega
in reply to asj • • •William D. Jones
in reply to Devine Lu Linvega • • •>things just want to be linear
Are you willing to elaborate? Not sure I understand what "linear" means in this context. But also, I haven't been feeling well lately lol...
Devine Lu Linvega
in reply to William D. Jones • • •ffkkinos
in reply to Devine Lu Linvega • • •i really need to make a lisp sometime!!!
i've studied your SECD implementation but it mostly went over my head 😞
Devine Lu Linvega
in reply to ffkkinos • • •git.sr.ht/~rabbits/heol/tree/m…
~rabbits/heol (master): src/heol.tal - sourcehut git
git.sr.htebx
in reply to Devine Lu Linvega • • •then realised it was just kinda forth with an extra stack
Devine Lu Linvega
in reply to ebx • • •Pat
in reply to Devine Lu Linvega • • •I had the same feeling recently (been learning Forth and using a lot of Scheme)
Cons = Push
Cdr = Pop
Quote and unquote = [ and ]
Functions are lists = Words are stacks
(Potentially heretical, but) parentheses are fiddly = Stack manipulation is fiddly
(I'm sure there are many other equivalences!)
Devine Lu Linvega
in reply to Pat • • •@mostlypat yeah, there's a lot more that are quite subtle, esp when you implement a lisp in forth, or forth in lisp.
Have you ever read this?
web.archive.org/web/2017111803…
ACM Sigarch Comp. Arch. News 22, 1 (Mar 1994), 34-43.
web.archive.orgPat
in reply to Devine Lu Linvega • • •