Appendix B - Reading List - Rubinius
Author: Less Than Three. <3. http://less.thanthree.com
Description: Rubinius is an implementation of the Ruby programming language. The Rubinius bytecode virtual machine is written in C++. The bytecode compiler is written in pure Ruby. The vast majority of the core library is also written in Ruby, with some supporting primitives that interact with the VM directly.

1.2.3

## Appendix B - Reading List

This topic has missing or partial documentation. Please help us improve it.

See How-To - Write Documentation

Building virtual machines in general and programming language implementations in particular requires some knowledge. Rubinius’ goal is to lower the barrier by keeping as much as possible in Ruby but to hack on the garbage collector you have to understand what’s going on behind the curtains.

This page contains references to books, online lectures, blog posts and any other publications you may find useful for working on Rubinius.

NOTE that some of these links refer to outdated information about Rubinius.

## Virtual machine

- Smalltalk-80: language and its implementation by Goldberg, Robson, Harrison (aka “The Blue Book”), implementation chapters from part IV are available online
- Virtual machines by Iain D. Craig
- Great posts by Adam Gardiner: introduction, How send sites work

## Garbage collection

- Garbage Collection: Algorithms for Automatic Dynamic Memory Management by Richard Jones
- Garbage collection lectures

## Primitive methods

- Ruby extensions and Smalltalk primitives
- Guide to Squeak primitives

## FFI

- Implementing File#link using FFI
- Rubinius’ foreign function interface