ruby
maru
ruby | maru | |
---|---|---|
6 | 6 | |
40 | 181 | |
- | - | |
0.0 | 2.7 | |
5 days ago | 6 months ago | |
Ruby | Common Lisp | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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.
ruby
-
Assemblers and linkers resources
I have some embedded assembler libraries (usable from within a language, as opposed to the input being text) on my PL resources site. Some of the smaller ones like the tiny one we build during Compiling a Lisp strip some of the magic from assemblers. YJIT's assembler API is a bit messy but the implementation is clean enough.
-
Ruby YJIT Ported to Rust
The Cargo.toml file gives the answer: https://github.com/Shopify/ruby/blob/rust-yjit-upstreaming/y...
There is only a single, optional dependency which is apparently only used for testing.
- SubX: A minimalist assembly language for a subset of the x86 ISA
- YJIT: Yet Another Ruby JIT
-
Shopify/microjit-bench
Hi there! The repo linked in this post is our small set of benchmarks. For those interested in microjit I would link them to our little readme file: https://github.com/Shopify/ruby/blob/microjit/doc/ujit.md
maru
-
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.
- Maru - a tiny self-hosting lisp dialect. Developed as part of Alan Kay's Fundamentals of New Computing.
-
About making a self hosting programming language
Take a look at Maru. The github project has links to other similar projects.
-
Why can't there be a LISP dialect/system that directly translates to optimal machine code?
That's the idea behind the Maru Project. It's a really cool concept and more people should know about it.
- lisp but small and low level?Does it make sense?
-
SubX: A minimalist assembly language for a subset of the x86 ISA
Here's another interesting one I just noticed:
https://github.com/attila-lendvai/maru/blob/maru.10/source/a...
What are some alternatives?
cosmopolitan - build-once run-anywhere c library
Carp - A statically typed lisp, without a GC, for real-time applications.
yjit-metrics - "Tasks for benchmarking, building and collecting stats for YJIT"
clasp - clasp Common Lisp environment
Opal - Ruby ♥︎ JavaScript
femtolisp - a lightweight, robust, scheme-like lisp implementation
microjit-bench - Set of benchmarks for the YJIT CRuby JIT compiler and other Ruby implementations.
flpc - Forth Lisp Python Continuum: A small highly dynamic self-bootstrapping language
Cwerg - The best C-like language that can be implemented in 10kLOC.
sectorlisp - Bootstrapping LISP in a Boot Sector