萬眾矚目的 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 可以改裝 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 有圖有真相:
根據經驗應該還會有很多 bug @@
不過要等 lib 都移植過去才會慢慢看得到
就是要出個號稱 “Production Release” 的 Ruby,整個社群才會認真起來,努力發 patch 給還不 Ruby 1.9 相容的 Library 哩 XD
所以也真的只能說:「總之先用吧」 @@”
往好的方面想,時間和空間的效能都是遠勝 1.8 呀