[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)