Clone this wiki locally
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.
will show details about this and other configuration options.
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.