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