lisp
IchigoLisp


lisp | IchigoLisp | |
---|---|---|
2 | 4 | |
977 | 42 | |
1.2% | - | |
2.0 | 0.0 | |
3 months ago | almost 2 years ago | |
Go | WebAssembly | |
BSD 3-clause "New" or "Revised" License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lisp
-
For the LISP 1.5 mainframe fans here...
sure thing https://github.com/robpike/lisp
-
Do you recommend learning go for an interpreter project?
Among the listed, Racket stands out to me - it's really on point for the problem, things Racket are organized around implementing languages inside of Racket. That said, Go should be totally fine. I might recommend perusing https://github.com/robpike/lisp, https://github.com/robpike/ivy, there are some talks about these on YouTube. The style is really
IchigoLisp
-
For the LISP 1.5 mainframe fans here...
this WebAssembly implementation has everything except floating point arithmetic https://github.com/zick/IchigoLisp
-
I want to make a toy LISP
Ichigo does just that in an attempt at a faithful recreation of LISP 1.5. Seems to detail it more here, but you'll have to rely on a translation assuming you don't understand Japanese.
-
WASI: A New Kind of System Interface
Maybe it's by design, but my biggest sticking point with WASM is the inability to modify the code at runtime, at least to my knowledge. This makes it a bad target for dynamic languages where the source -> executable mapping isn't wholly known ahead of time, especially Lisps but also any looking to JIT compile things.
Speaking of Lisp and WASM, IchigoLisp [0] is a remarkably faithful implementation of LISP 1.5 in WAT. Extraordinarily impressive, and inspires even more awe for the original system from the 60s.
[0] https://github.com/zick/IchigoLisp
- Ichigo Lisp: LISP 1.5(-ish) implementation in WebAssembly
What are some alternatives?
ivy - Convert Machine Learning Code Between Frameworks
wisp - Lisp in WebAssembly
pyright-python - Python command line wrapper for pyright, a static type checker
marwood - An embeddable Scheme R7 Compiler & Runtime written in Rust
ivy - ivy, an APL-like calculator
schism - A self-hosting Scheme to WebAssembly compiler
lisp-cheney - A mini Lisp in 1k lines of C with Cheney's copying garbage collector, explained. Includes over 40 built-in Lisp primitives, floating point, strings, closures with lexical scope, macros, proper tail recursion, exceptions, execution tracing, file loading, a copying garbage collector and REPL.
mal - mal - Make a Lisp
go-parsing - A Multi-Package Go Repo Focused on Text Parsing, with Lexers, Parsers, and Related Utils
sectorlisp - Bootstrapping LISP in a Boot Sector
tinylisp - Lisp in 99 lines of C and how to write one yourself. Includes 20 Lisp primitives, garbage collection and REPL. Includes tail-call optimized versions for speed and reduced memory use.
LISP - Lisp interpreter in less than 500 lines of C, including a copying garbage collector and an implementation of LISP 1.5 from 1962.

