rhizome
tenderjit
Our great sponsors
rhizome | tenderjit | |
---|---|---|
8 | 10 | |
814 | 417 | |
- | - | |
1.8 | 7.5 | |
almost 3 years ago | 3 months ago | |
Ruby | Ruby | |
MIT License | Apache License 2.0 |
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.
rhizome
- How do optimizing compilers convert variables into registers
- YJIT: Building a New JIT Compiler for CRuby
-
Tenderjit – A JIT for Ruby Written in Ruby
There was actually an existing, similar in concept, Ruby JIT, Rhyzome: https://github.com/chrisseaton/rhizome.
It's good to see (IMO) the development of a JIT in a strict sense. I'm personally skeptical about the current approach (invoking a compiler separately).
On the other hand, it's important to know that JITs may take a long development time to be performant, and that they also complicate the performance profile of a virtual machine.
-
Let's write a compiler, part 5: A code generator
Lots of compiler tutorials are like this - there's very little out there to explain how compilers really work.
This is my effort - trying to show genuine data structures and processes.
https://github.com/chrisseaton/rhizome
- Thoughts about Intermediate representations
- A JIT for Ruby, implemented in pure Ruby (/r/ruby)
- Rhizome – a JIT for Ruby, implemented in pure Ruby
tenderjit
-
JIT Compilers for Ruby and Rails: An Overview
Clone the repository and run the following commands:
-
Asmrepl: REPL for x86 Assembly Language
JIT makes sense given his other current project: https://github.com/tenderlove/tenderjit
-
YJIT: Building a New JIT Compiler for CRuby
Just in case anybody finds the subject interesting and would like to play with this topic, there's an experimental native-Ruby JIT project by @tenderlove: https://github.com/tenderlove/tenderjit (and the companion native-Ruby assembler Fisk: https://github.com/tenderlove/fisk).
- tenderlove/tenderjit: JIT for Ruby that is written in Ruby (/r/ruby)
-
Hacker News top posts: Sep 23, 2021
Tenderjit – A JIT for Ruby Written in Ruby\ (39 comments)
-
Tenderjit – A JIT for Ruby Written in Ruby
It’s x86-64 only. A quick look at the https://github.com/tenderlove/tenderjit/blob/main/lib/tender... linked from the README reveals heavy references to x86-64 registers. The “Fisk” library used appears to be a x86-64 assembler in Ruby.
I guess that’s to be expected with “pure ruby” — all the cross-insn backends you can use (Cranelift, LLVM) are written in not-Ruby.
- tenderlove/tenderjit: JIT for Ruby that is written in Ruby
What are some alternatives?
yjit - Optimizing JIT compiler built inside CRuby
WinREPL - x86 and x64 assembly "read-eval-print loop" shell for Windows
sqlite-parser - JavaScript implentation of SQLite 3 query parser
duckduckgo-locales - Translation files for <a href="https://duckduckgo.com"> </a>
grammars-v4 - Grammars written for ANTLR v4; expectation that the grammars are free of actions.
natalie - a work-in-progress Ruby compiler, written in Ruby and C++
zetasql - ZetaSQL - Analyzer Framework for SQL
mb-sound - A library of simple Ruby tools for processing sound.
swifties - a custom language construction kit
cemu - Cheap EMUlator: lightweight multi-architecture assembly playground
langjam
mb-sound-jackffi - An unstable Ruby FFI interface for the JACK Audio Connection Kit