ruby
flpc
ruby | flpc | |
---|---|---|
6 | 2 | |
40 | 215 | |
- | - | |
0.0 | 0.0 | |
5 days ago | about 2 years ago | |
Ruby | Forth | |
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
flpc
- Forth vs Lisp
-
SubX: A minimalist assembly language for a subset of the x86 ISA
> I've actually never considered putting the comment first! I'll have to think about that one.
I'm sure there are many competing constraints so definitely don't do it because I'm suggesting this on a whim. :) My reasoning is that as a human reader, the comment is the more readable part, so I'd want to see it first. And for a computer, it probably doesn't care if the op code appears first or not.
> You probably don't want to understand Haskell's loop fusion by comparing source and generated code.
Indeed. But even though C and Haskell are very different, I think they share a common philosophy about compilation where you can basically do whatever you want as long as it still produces the same result.
I vaguely remember looking at Python generate bytecode (with `dis.dis`) and seeing it wasn't too bad. I haven't tried it on a larger program though.
There's tcc (and more recently chibicc that I haven't had a chance to check out yet) that you're probably already aware of. Is the generated output still pretty bad.
I'll also throw my own attempt in the ring
- High level https://github.com/asrp/flpc/blob/master/lib/stage0.flpc
What are some alternatives?
maru - Maru - a tiny self-hosting lisp dialect
cosmopolitan - build-once run-anywhere c library
forthlisp - A Small Lisp in Forth
yjit-metrics - "Tasks for benchmarking, building and collecting stats for YJIT"
Opal - Ruby ♥︎ JavaScript
microjit-bench - Set of benchmarks for the YJIT CRuby JIT compiler and other Ruby implementations.
Cwerg - The best C-like language that can be implemented in 10kLOC.
truffleruby - A high performance implementation of the Ruby programming language, built on GraalVM.
ruby - The Ruby Programming Language
cpplinks - A categorized list of C++ resources.