Ruby 1.9.3 p0 リリース

Ruby 1.9.3 の最初の正式版である ruby-1.9.3-p0 がリリースされました。これはRuby 1.9系統の最新版です。

所在

1.9.2からの変更点

ライセンス

ライセンスが変更されました。

エンコーディング

  • Ruby 1.9.[0-2]ではSJISはShift_JISのaliasでしたが、Windows-31Jのaliasになりました。
  • UTF-16、UTF-32、CP950、CP951という新しいエンコーディングが追加されました。
  • RegexpsはUnicode 6.0の新しい文字とスクリプトをサポートするようになりました。

組み込みクラス

  • ARGFにARGF.printやARGF.read_nonblockなどの新しいメソッドが追加されました。
  • Array#pack、String#unpackにエンディアンを明示的に指定する修飾子が追加されました。
  • Bignumで、大きな桁(内部表現で150桁以上)の整数の掛け算がToom-3アルゴリズムを使うようになり、高速化しました。
  • File::NULLとFile::DIRECTという定数が追加されました。
  • IO#putcがマルチバイト文字に対応しました。
  • IO#advise、IO.write、IO.binwriteメソッドが追加されました。
  • #__id__はBasicObjectのメソッドになりました。
  • Kernel#randの引数としてRangeオブジェクトがサポートされました。
  • Module#private_constant、Module#public_constantメソッドが追加されました。
  • Random.randの引数に範囲を指定できるようになりました。
  • String#prepend、String#bytesliceが追加されました。
  • Time#strftimeが%:zと%::z.をサポートしました。
  • Process#maxgroups と Process#maxgroups= は、補助グループを採用していない環境ではNotImplementedErrorがあがるようになりました。

標準添付ライブラリ

  • io/console: 新しいライブラリです。
  • openssl: 活発なメンテナを得たお陰で特段に改善してきています。
  • test/unit: テストの並列実行をサポートします。

実装

  • pathnameライブラリとdateライブラリはCで再実装されました。これによりパフォーマンスが向上します。
  • VMのロック戦略が変わりました。

バグ修正以外の互換性の問題

  • Rational#to_dの挙動が変わりました。精度として0または負の数を与えるとエラーになるようになりました。

詳しくはNEWSChangeLogをご覧ください。

また、日本語で書かれた紹介資料としては、<URL:http://www.slideshare.net/mrkn/ruby-193>などもどうぞ。