minilisp
wekan-node20
minilisp | wekan-node20 | |
---|---|---|
1 | 1 | |
1 | 1 | |
- | - | |
10.0 | 7.8 | |
6 months ago | 7 months ago | |
C | JavaScript | |
- | MIT 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.
minilisp
-
C Is Not a Low-level Language – Your computer is not a fast PDP-11
Well Forth is possibly the most minimal VM over a platform, as evidenced by openfirmware.
It does have problems scaling though, in that if you've seen one Forth, you've seen one Forth ie. The variations required to fit a platform make them semi-incompatible.
That's not to say that a more lispy Forth wouldn't be useful though, in that a concatenative syntax allows us to pass custom datastructures around like APL, and CPS (delimited continuations with lexically scoped dynamic binding would come from the lisp side (see https://github.com/manuel/wat-js).
Memory management in Forth can handle multiple memory types eg. https://flashforth.com/ so adding something like ref counting (https://github.com/zigalenarcic/minilisp/blob/main/main.c) to handle the dynamic list side of things might mesh well.
In any case, if you're looking for a self hosting lisp that runs on bare metal, https://github.com/attila-lendvai/maru has been out for a few years.
wekan-node20
-
C Is Not a Low-level Language – Your computer is not a fast PDP-11
Rust/Zig does not have enough portability, there is errors trying to compile to s390x:
https://github.com/wekan/wekan-node20#trying-to-compile-llvm...
C89 compiles to 30+ CPU/OS:
https://github.com/xet7/darkesthour
What are some alternatives?
maru - Maru - a tiny self-hosting lisp dialect
cc65 - cc65 - a freeware C compiler for 6502 based systems
wat-js - Concurrency and Metaprogramming for JS