public
Description: Ruby Enterprise Edition based on MRI 1.8.6
Home | Edit | New

Overview of branches in the repository

Every feature and third party patch in Ruby Enterprise Edition is stored in a separate branch, in order to make it easier to merge individual patches back upstream. This page describes the purpose of each branch, and describes which branch is based on which. The branches are displayed here as a tree, and child branches are based on parent branchs.

  • master: just the source of Ruby 1.8.6-p286.
    • copy_on_write: patches for making the garbage collector copy-on-write friendly.
      • mbari: Brent Roman’s MBARI patches.
        • ruby_engine: adds a RUBY_ENGINE constant so that applications can determine the Ruby interpreter that they’re running on. This constant is the result of this discussion
          and is available in all newer Ruby interpreters. Both MRI and Ruby Enterprise Edition sets this constant to "ruby".
        • railsbench: contains the RailsBench garbage collector tuning patches, as well as Sylvain Joyeux’s object allocation patch.
        • single_threading_fix: Contains the SIGVTALRM single threading fix, originally written by Joe Damato and Aman Gupta and backported to Ruby 1.8.6 by Andreas Fuchs.
        • zero_copy_context_switch: Joe Damato’s and Aman Gupta’s zero-copy context switching patch.
      • caller_for_all_threads: patch by Philippe Hanrigou. It adds a function, caller_for_all_threads, which allows you to see the backtraces of all Ruby threads.
    • bugfix_backports: Contains backported Ruby bug fixes.

The merge branch is a merger of all of the above branches. Derived from the ‘merge’ branch is the release branch, which also includes:

  • The tcmalloc memory allocator.
  • The Ruby Enterprise Edition installer.
  • The Ruby Enterprise Edition documentation.
  • Patches for making memory allocation calls in some Ruby extensions compatible with OS X’s two-level symbol namespacing.

The downloadable tarballs and packages on the Ruby Enterprise Edition website are based on the release branch.

The following branches are unused:

  • heap_freezing: this was an experiment and is not included in the official Ruby Enterprise Edition releases.
  • misc_patches: various minor experimental patches.
  • sparc_optimizations: Darryl Gove’s and Miriam Blatt’s Sparc optimization patches. This was made obsolete by the MBARI patches.
Last edited by FooBarWidget, Sat May 30 10:10:31 -0700 2009
Home | Edit | New
Versions: