1. Reading List

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 garbage collector you
have to understand what' 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.

2. Virtual machine

*   [Smalltalk-80: language and its implementation](http://tinyurl.com/3a2pdq)
    by Goldberg, Robson, Harrison (aka "The Blue Book"), implementation
    chapters from part IV are [available online](http://tinyurl.com/6zlsd)
*   [Virtual machines](http://tinyurl.com/3ydkqg) by Iain D. Craig
*   Great posts by Adam Gardiner: [introduction](http://tinyurl.com/35y2jh),
    [How send sites work](http://tinyurl.com/34c6e8)


3. Garbage collection:

*   [Garbage Collection: Algorithms for Automatic Dynamic Memory
    Management](http://tinyurl.com/3dygmo) by Richard Jones
*   [Garbage collection lectures](http://tinyurl.com/2mhek4)


4. Primitive methods

*   [Ruby extensions and Smalltalk
    primitives](http://talklikeaduck.denhaven2.com/articles/2007/06/04/ruby-extensions-vs-smalltalk-primitives)
*   [Guide to Squeak
    primitives](http://www.fit.vutbr.cz/study/courses/OMP/public/software/sqcdrom2/Tutorials/SqOnlineBook_(SOB)/englisch/sqk/sqk00083.htm)


5. FFI

*   [Implementing File#link using
    FFI](http://redartisan.com/2007/10/11/rubinius-coding)
*   [Rubinius' foreign function
    interface](http://blog.segment7.net/articles/2008/01/15/rubinius-foreign-function-interface)
