Building JRuby: How We Implement Ruby on the JVM
summary
JRuby 9.4 is compatible with Ruby 3.1 and JRuby 10 aims to track CRuby while dropping Java 8 for Java 21; the codebase shrank from ~400,000 to ~300,000 LOC of Java, builds with Maven, and recommends IntelliJ. Implementation details: dual parsers (legacy and prism parser), an IR that feeds an interpreter and a JIT that emits JVM bytecode using invokeDynamic, ports of C extensions (psych → snake_yaml), ~450 remaining spec error groups, and 1,500 deprecated public APIs being migrated.
AI-written summary · about
chapters (13)
- 0:00JRuby introduction
- 1:25JRuby status and support
- 2:27JRuby 9.4 and 10
- 4:13Building and contributing
- 6:40JRuby parsers and IR
- 8:49JRuby compilation pipeline
- 10:11Optimizing with invokeDynamic
- 14:50Ruby core in JRuby
- 19:29Native extensions and Java
- 22:36Porting C extensions
- 24:24New native extension API
- 26:11How to help JRuby
- 28:20JRuby and OpenJDK future
related talks
39mJRuby: What Why How ... Do it Now!
44mThe Future of JRuby
41mRuby on the Modern JVM with JRuby
30mUsing JRuby: What, When, How, and Why
42mJRuby at 15 Years: Meeting the Challenges
53m20 Years of JRuby - Where We've Been and Where We're Going
49mJRuby: Ruby for the JVM
55mJRuby in 2018: Building, Deploying, and Scaling Your Apps
