Ruby 1.9.1 發佈

萬眾矚目的 Ruby 1.9.1 終於發佈了,公告詳見 Ruby 1.9.1 is released。這個版本是 1.9 系列的第一個穩定版本,大大提昇了 1.8 令人詬病的效能 (請見 Antonio Cangiano 的 benchmarks ),非常令人期待它的商業應用。

要在 Mac 上安裝起來玩玩看的話,可以這樣做與本來的 Ruby 1.8 共存 (參考自How to compile and install Ruby 1.9.1 on Mac OS X Leopard):

curl ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.bz2 -o ruby-1.9.1-p0.tar.bz2
tar xjf ruby-1.9.1-p0.tar.bz2

cd ruby-1.9.1-p0/
autoconf
./configure --program-suffix=19
make && sudo make install

這樣就會有 ruby19, irb19, gem19, rake19 等指令可以用了(Ruby 1.9 內建了 rubygems 跟 rake 囉)。不過目前還很多 Gems 沒有跟上 Ruby 1.9 的腳步,尤其是需要 native build 的 Library(例如 mysql 跟 mongrel 都裝不起來)。

Update(2009/4/5) 使用 Rails 2.3.2 就不需要以下 patch 了,裝起來就可以跑了。MySQL 可以改裝 http://tmtm.org/en/mysql/ruby/ 這個 Ruby 1.9.1 相容版本。

如果有研究興趣想把 Ruby on Rails 跑起來,除了需要用 Rails edge 版本( 2.2.2 的話,需要 patch active_support/deprecation.rb 227 行用 begin … rescue LoadError; end 把整段 test 包起來),還需要至少裝 rack 跟 sqlite3-ruby gems,另外 Webrick 也需要自己手動 patch 如下(這是因為 Ruby 1.9 把 String #each 拿掉了):

class String
  def each 
    self.split($/).each { |e| yield e } 
  end 
end

成果是 Ruby 1.9 on Rails 有圖有真相:

ruby19onrails

3 thoughts on “Ruby 1.9.1 發佈

  1. 就是要出個號稱 “Production Release” 的 Ruby,整個社群才會認真起來,努力發 patch 給還不 Ruby 1.9 相容的 Library 哩 XD

Leave a Reply