[HN Gopher] A History of the Rubinius Ruby JIT
___________________________________________________________________
A History of the Rubinius Ruby JIT
Author : chrisseaton
Score : 78 points
Date : 2021-11-10 18:21 UTC (1 days ago)
(HTM) web link (ruby-compilers.com)
(TXT) w3m dump (ruby-compilers.com)
| vidarh wrote:
| Wow. This whole site is amazing, Chris. I found and skimmed
| through the part you've written on my compiler as well, and it's
| amazing how much effort you've put into digging into it. I'll
| have to spend some time going through the ones you've written so
| far in detail.
|
| I haven't touched my compiler much for most of last year and this
| year, but I have a half-finished GC sitting my local tree that I
| really should wrap up. At the moment what's stopping it from
| compiling itself correctly is a couple of small bug fixes plus
| some GC and overall allocation improvements (it's creating _way_
| too much garbage to start with, which I 'm sure you noticed).
| stormbrew wrote:
| Oh wow I didn't know the JIT had been removed from rubinius.
|
| I was a (pretty minor) contributor to rubinius back in its llvm
| heyday and it was a pretty transformative project for me, in
| terms of enabling my understanding of VMs, garbage collection,
| and language architecture. Even then llvm felt like a pretty
| heavy weight for JIT uses, but there really wasn't anything else
| out there then that could perform at its level. I think nowadays
| there'd probably be some better choices out there. Maybe
| cranelift.
|
| I wound up spinning a lot of that off into my own attempt at a
| "VM built in itself" project that never got to the point of
| JITing code it did run its own "glue language" (compiled by ruby
| code into vm bytecode) that was used to build somewhat
| functioning ruby (passed like 70% of then-current rusbyspec I
| think?) and python support without the VM itself being aware of
| the language semantics. It was a really fun time in my career.
|
| Later I used the basic understanding of LLVM it gave me to take
| part in the effort to port Swift to linux even, which was also a
| really good time for me.
| hajile wrote:
| I didn't even know Rubinius was still around.
|
| Last I knew, they worked hard to develop a standard and test
| suite for 1.9.x which the Ruby team used for one release before
| promptly breaking everything.
|
| It's yet another example of why programming language standards
| are important.
| chrisseaton wrote:
| Yes that's https://github.com/ruby/spec - now primarily
| maintained by TruffleRuby people.
| dragonwriter wrote:
| The new RubySpec is an independent resurrection years after
| the original project was abandoned, I think.
| arnvald wrote:
| I've never used Rubinius in production but over 10 years ago,
| when I was still relatively new to Ruby, I used to read Rubinius
| source code to understand how some Ruby methods worked under the
| hood.
|
| Even though Rubinius has never reached the popularity it aimed
| for, I'm forever grateful for the effort that's been put into
| creating it.
| aardvark179 wrote:
| It was incredibly useful for that, except for the occasions
| where Rubinius got things wrong. :-)
|
| It was also fascinating seeing how the abilities of their VM
| fed into the design of the core library. I remember soon after
| starting work on TruffleRuby starting to look into the
| performance of some string methods and doing extensive
| refactoring because the type of code that performed best for us
| was very different.
| evanphx wrote:
| Hi, Evan Phoenix, Rubinius creator here. I just wanted to stop
| in and say thank you for this comment. It means a lot to me,
| even after all these years that Rubinius helped you out.
|
| I mentioned this on twitter as well
| (https://twitter.com/evanphx/status/1458912013011152898?s=21)
| but wanted to reach out here and let you know personally too.
|
| Thank you.
___________________________________________________________________
(page generated 2021-11-11 23:00 UTC)