This is a forked repository. Have a look at
rubyspec’s matzruby wiki
for more information.
The working branches are called:
v1_8_7_352-mbari #MBARI patches for MRI 1.8.7 patchlevel 352
v1_8_7_72-mbari #MBARI patches for MRI 1.8.7 patchlevel 72
v1_8_6_287-mbari #MBARI patches for MRI 1.8.6 patchlevel 287
The V1_8_7_352-mbari branch is was added Oct. 12, 2011. It passes all tests in the ruby “make check” suite, running them about 5% faster using about 5% less memory than unpatched MRI ruby 1.8.7-352. More dramatic performance improvements typically are observed with long running, multithreaded ruby apps.
What’s new here:
By default, the current MBARI patches from git hub identify themselves as:
ruby 1.8.7 (2011-10-12 MBARI 8/0x8770 on patchlevel 352)
They include some of the clean ups contributed by Nobuyoshi Nakada at ruby-core.
All API changes disabled by default. Normally, one would enable the API changes documented on the website very by adding:
to configure command.
There’s also a —wipe-sites=0xHEX configure option to override the default stack clearing policy.
MBARI patched versions without support for the new API will identify themselves as:
ruby 1.8.x (2009-mm-dd mbari …
Versions with the MBARI_API support identify themselves like this:
ruby 1.8.x (2009-mm-dd MBARI …
How to build from scratch:
git clone git://github.com/brentr/matzruby git checkout -b mbari origin/v1_8_7_352-mbari autoconf ./configure --enable-pthread --enable-mbari-api #add CFLAGS as appropriate per comment below make make install #will install patches Ruby version under /usr/local
If using gcc version later than 4.1, I recommend configuring with the following CFLAGS:
./configure --enable-pthread --enable-mbari-api CFLAGS="-Wall -g -O2 -fno-stack-protector"
The -fno-stack-protector option has been found to improve the performance of the MBARI patches’ stack clearing algorithm.
—enable-pthread is required for compatibility with Debian tcl libraries. Your platform may not require it.
Ruby threads will be faster if the —enable-pthread option can be omitted from configure.