なんか、Ruby 1.9.2 のベータ版がダウンロード出来るらしいので、やってみた。
東京と仙台の Ruby 会議で色々な人から伺った事をまとめると、以下のような感じ
(私もアルコール入っており、メモはとっていない。
記憶ベースだし、賞味期限の短い話題なのであまり参考にしないでほしい。)
まあ、何はともあれ Linux で 1.9.2 が動くとの事なので、手元の環境でビルドしてみた。
ちなみに、環境は Ubuntu 9.1.0
他にも、make と svn も必要なので、入っていない人は入れてください。
(私の環境には、既に入っていた。
でも、Ubuntu に元々有るものか自分で入れたのか忘れた。)
このようにすれば、subversion から最新版のソースをダウンロードしてくれる。
ただし、trunk の中の最新版なので、バグも多いから注意。
configure の prefix オプションは、インストールディレクトリを指す。
私がビルドした際のソースはバージョン27219だったので、
27219というディレクトリを作成した。
普通の人は、$PATH を追加すると思うが、
私は /usr/local/bin 以下にリンクを作る方法が好き。
(普通の環境では、/usr/local/bin には初めからパスが通っていると思う)
確かに、ruby 1.9.2 がインストールされている。
以上、ビルド終了。
1.9.2 の主な変更点は成瀬さんが記載してくださっている
るびま29号
とりあえず触ってみる程度の範囲では、以下の影響範囲が大きそう。
あと、さらっと書いてあるけれども、場合によっては既存のコードに
致命的な影響を与えそうなのが以下
(ただし、1.9.1 でも変更されるみたい。)
まあ、1.8.6 -> 1.9.1 の時よりも、1.9.1 -> 1.9.2 の方が
仕様変更は少なそう。
(当り前か。)
皆さん、良い Ruby Life を。
東京と仙台の Ruby 会議で色々な人から伺った事をまとめると、以下のような感じ
1. Ruby 1.9.2 のソースは subverison のトランクからダウンロード可能
2. Ruby 1.9.2 は Linux では Rspec も全て通った。
ただ、Windows ではうまくいかない所がある
3. 今まで Ruby 2.0 でやる予定だった事は、だいたい Ruby 1.9.2 で実装してしまった
Ruby 1.9.2 は長期安定版のリリースになるかもしれない
(私もアルコール入っており、メモはとっていない。
記憶ベースだし、賞味期限の短い話題なのであまり参考にしないでほしい。)
まあ、何はともあれ Linux で 1.9.2 が動くとの事なので、手元の環境でビルドしてみた。
ちなみに、環境は Ubuntu 9.1.0
1. 必要なツールのインストール
$ sudo apt-get install autoconf
$ sudo apt-get install bison
他にも、make と svn も必要なので、入っていない人は入れてください。
(私の環境には、既に入っていた。
でも、Ubuntu に元々有るものか自分で入れたのか忘れた。)
2. ソースのダウンロード
$ mkdir tmp && cd tmp
$ svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby192
$ svn info ruby192
このようにすれば、subversion から最新版のソースをダウンロードしてくれる。
ただし、trunk の中の最新版なので、バグも多いから注意。
3. ビルド、インストール
$ cd ruby192
$ autoconf && ./configure --prefix=/opt/ruby192/27219 && make
$ make install
configure の prefix オプションは、インストールディレクトリを指す。
私がビルドした際のソースはバージョン27219だったので、
27219というディレクトリを作成した。
4. パスを通す
$ cd /opt/ruby192/27219/bin
$ for f in `ls`; do
> sudo ln -s /opt/ruby192/27219/bin/$f /usr/local/bin/$f
> done
普通の人は、$PATH を追加すると思うが、
私は /usr/local/bin 以下にリンクを作る方法が好き。
(普通の環境では、/usr/local/bin には初めからパスが通っていると思う)
5. 確認
$ ruby -v
=> ruby 1.9.2dev (2010-04-05 trunk 27218) [i686-linux]
確かに、ruby 1.9.2 がインストールされている。
以上、ビルド終了。
1.9.2 の主な変更点は成瀬さんが記載してくださっている
るびま29号
とりあえず触ってみる程度の範囲では、以下の影響範囲が大きそう。
$LOAD_PATH からカレントディレクトリの削除
セキュリティ上の懸念から $LOAD_PATH ($:) からカレントディレクトリ (.) が削除されました。これに依存していたスクリプトは require_relative を用いるように書き換えることが推奨されます。
あと、さらっと書いてあるけれども、場合によっては既存のコードに
致命的な影響を与えそうなのが以下
(ただし、1.9.1 でも変更されるみたい。)
正規表現における \d、\w、\s の ASCII 化
以前の Ruby 1.9.1 では \d、\w、\s は Unicode を意識した定義になっていました。具体的には /\w/ =~ "あ" がマッチしたりしていました。この挙動は当初の想定以上に実世界で問題を起こすことが判明したため、バグとみなされ、Ruby 1.8 同様 ASCII のみにマッチするように変更されました。なお、この変更はバグ扱いであるため、Ruby 1.9.1-p376 にも取り込まれています。
以前のように Unicode を意識して欲しい場合は、\p{Number}、\p{Word}、\p{Space} 等を用いてください。
まあ、1.8.6 -> 1.9.1 の時よりも、1.9.1 -> 1.9.2 の方が
仕様変更は少なそう。
(当り前か。)
皆さん、良い Ruby Life を。