Phusion white papers Phusion overview

Phusion Blog

Ruby Enterprise Edition 1.8.6-20090520 released

By Hongli Lai on May 20th, 2009

What is Ruby Enterprise Edition?

Ruby Enterprise Edition (REE) is a server-oriented distribution of the official Ruby interpreter, and includes various additional enhancements, such as:

REE can be easily installed in parallel to your existing Ruby interpreter, allowing you switch to REE with minimal hassle or risk. REE has been out for about a year now and is already used by many high-profile websites and organizations, such as New York Times, Shopify and 37signals.

“We switched to enterprise ruby to get the full benefit of the [copy-on-write] memory characteristics and we can absolutely confirm the memory savings of 30% some others have reported. This is many thousand dollars of savings even at today’s hardware prices.”
Tobias Lütke (Shopify)

And just like Phusion Passenger, Ruby Enterprise Edition is 100% open source.

Changes

“Virtual timer expired” bug fixed
It turns out that the single threading performance fix (SIGVTALRM patch) that was included in the last release had a bug which caused Ruby to crash with a “Virtual timer expired” error in some circumstances. This problem has been fixed, and our sincere apologies for any inconvenience that this may have caused.
If you were experiencing any crash problems, then please upgrade to this release.
Other changes
There are also some minor documentation and installer improvements.

Download & upgrade

To install Ruby Enterprise Edition, please visit the download page. To upgrade from a previous version, simply install into the same prefix that you installed to last time. Please also refer to the documentation for upgrade instructions.

Hongli Lai Ninh Bui
  • http://mikeperham.com Mike Perham

    Readline fails to compile on OSX 10.5.7 for me. I have headers in both /usr/include and /usr/local/include (not sure about versions of each).

    gcc -I. -I../.. -I../../. -I../.././ext/readline -DHAVE_READLINE_READLINE_H -DHAVE_READLINE_HISTORY_H -DHAVE_RL_DEPREP_TERM_FUNCTION -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_BASIC_WORD_BREAK_CHARACTERS -DHAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS -DHAVE_RL_BASIC_QUOTE_CHARACTERS -DHAVE_RL_COMPLETER_QUOTE_CHARACTERS -DHAVE_RL_FILENAME_QUOTE_CHARACTERS -DHAVE_RL_ATTEMPTED_COMPLETION_OVER -DHAVE_RL_LIBRARY_VERSION -DHAVE_RL_EVENT_HOOK -DHAVE_RL_CLEANUP_AFTER_SIGNAL -DHAVE_REPLACE_HISTORY_ENTRY -DHAVE_REMOVE_HISTORY -fno-common -g -O2 -pipe -fno-common -c readline.c
    readline.c: In function ‘filename_completion_proc_call’:
    readline.c:707: error: ‘filename_completion_function’ undeclared (first use in this function)
    readline.c:707: error: (Each undeclared identifier is reported only once
    readline.c:707: error: for each function it appears in.)
    readline.c:707: warning: assignment makes pointer from integer without a cast
    readline.c: In function ‘username_completion_proc_call’:
    readline.c:734: error: ‘username_completion_function’ undeclared (first use in this function)
    readline.c:734: warning: assignment makes pointer from integer without a cast
    make: *** [readline.o] Error 1

    Any suggestions on what to do?

  • Tommy

    Congratulations on another excellent release. Keep up the amazing work.

    Earlier today one of my servers was handling around ten requests per second for a few hours due to a spike in traffic. While I know this is nothing compared to Shopify or the New York Times, it is still a level of performance that was utterly impossible for the same machine to handle when I was still using Mongrel and the standard Ruby.

    Nginx + Passenger + Ruby Enterprise Edition is a killer combination. Thank you so much for all that you have done to help me and countless others. You guys are incredible.

  • http://betterlogic.com/roger roger

    @Mike there’s a pure ruby readline if it would be helpful. http://github.com/luislavena/rb-readline/tree/master

  • http://www.railscluster.nl Roderick van Domburg

    Thanks for the swift response to the SIGVTALRM issue. We’ve updated RailsCluster and everything’s running smooth!

  • http://infochimps.org/ Philip (flip) Kromer

    @mike I used

    sudo ./installer.rb –auto=/usr/local/ree -c ‘–with-readline-dir=/usr/local’

    and life was good. (I’d installed readline from source; -c ‘–with-readline-dir=/sw’ is probably the right thing for fink).

    Noted in passing: I tried

    -c ‘–program-prefix=ree-‘

    to specify a program prefix (so that the executables come out as ree-ruby, ree-gem, etc), but it doesn’t work — the installer looks for $PREFIX_DIR/bin/ruby and, not finding it, bails.

  • http://www.lastpiecesoftware.com Brian

    I installed the latest readline with macports. It goes in /opt/local. I try to use the -c ‘-with-readline-dir but it still tries to build readline.
    This command exacatly:
    ./installer -c ‘-with-readline-dir=/opt/local’

    I can’t get past this readline error:
    compiling readline
    gcc -I. -I../.. -I../../. -I../.././ext/readline -DHAVE_READLINE_READLINE_H -DHAVE_READLINE_HISTORY_H -DHAVE_RL_DEPREP_TERM_FUNCTION -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_BASIC_WORD_BREAK_CHARACTERS -DHAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS -DHAVE_RL_BASIC_QUOTE_CHARACTERS -DHAVE_RL_COMPLETER_QUOTE_CHARACTERS -DHAVE_RL_FILENAME_QUOTE_CHARACTERS -DHAVE_RL_ATTEMPTED_COMPLETION_OVER -DHAVE_RL_LIBRARY_VERSION -DHAVE_RL_EVENT_HOOK -DHAVE_RL_CLEANUP_AFTER_SIGNAL -DHAVE_REPLACE_HISTORY_ENTRY -DHAVE_REMOVE_HISTORY -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -Os -fno-strict-aliasing -pipe -fno-common -c readline.c
    readline.c: In function ‘filename_completion_proc_call’:
    readline.c:707: error: ‘filename_completion_function’ undeclared (first use in this function)
    readline.c:707: error: (Each undeclared identifier is reported only once
    readline.c:707: error: for each function it appears in.)
    readline.c:707: warning: assignment makes pointer from integer without a cast
    readline.c: In function ‘username_completion_proc_call’:
    readline.c:734: error: ‘username_completion_function’ undeclared (first use in this function)
    readline.c:734: warning: assignment makes pointer from integer without a cast
    make[1]: *** [readline.o] Error 1
    make: *** [all] Error 1

    Any help would be great. I’m on Leapord.