まつもと ゆきひろです

In message "[ruby-list:5618] Re: bug in String#scan ??"
    on 97/12/10, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

|まつもと ゆきひろです

||ところで、ベータ発表後の Ver 1.0 => Ver 1.1 の変更点に関する
||文書はまだ出ていませんよね。b0 => b1 はあったけど。
|
|すいません.鋭意編集中です.

というわけでまとめておきます.洩れがあるかも

--
ruby 1.0 から 1.1 への変更点

言語仕様

  * here document

    print <<FOO
this is a test
FOO

  * embedded document

=begin
this is a embedded document, just like comment.
=end

  * break/next/redo/retryの予約語化

  * 疑似変数true/falseの追加

  * オプションの値を保持する変数群 $-?

  * __END__は予約語ではない

  * defined? はレシーバや引数もdefined?であるかチェックする

  * { bgcolor->"black", fgcolor->"white" }なる連想配列の初期
    化形式(まだ本採用ではない)


クラスライブラリ(一般)

  * グローバル定数 NIL の追加

  * クラス名の変更

    NilClass/TrueClass/FalseClass

  * TRUE.to_s: 'TRUE' -> 'true'

  * Bignumの演算の高速化 - thanks えぐちさん

  * expr =~ /RE/, /RE/ =~ exprのインライン化

  * 定数はKernelでなくObjectに定義されるように

  * 組込みクラスをObjectの定数に

  * pack/unpackで`m'テンプレート(base64) - thanks わたなべさん

  * kconvに文字コードを判定するメソッド Kconv#guess

  * 例外と同じメッセージを出して終了してしまうabort()

  * BEGIN/END.ただしBEGINは手抜き

  * 非イテレータ版scanはマッチの配列を返すようになった  ** 重要な非互換

  * loadで先頭の`~'を展開する

  * Perl5的正規表現 *? +? ?? {n,m}? (?:..) (?#..) (?=..) (?!..) \A \Z

  * emacs的正規表現 \< \>

  * MatchingData#[]の追加

  * nil.to_a => []

  * String#chomp

  * IO#puts

  * Moduleの属性定義メソッドattr_reader/attr_writer/attr_accessor


クラスライブラリ(メタレベル機能)

  * Object#typeがクラスそのものを返す

  * Class#superclassがクラスそのものを返す

  * 無名クラス/無名モジュールの生成

    Class.new/Module.new

  * クラス/モジュールの情報を得るメソッドの追加

     Module#constants, Module#const_get, Module#const_set Module#const_defined?
     Module#methods, Module#method_defined?

  * モジュールのスーパークラスとインクルードされたモジュール
    群を(優先順位つきで)返すModule#ancestors

  * クラス/モジュールの文脈でevalを行うmodule_eval

  * オブジェクトの文脈でevalを行うinstance_eval

  * 大域変数の一覧global_variables

  * メソッドが定義された時に呼ばれるModule#method_added

  * includeを実装するModule#append_features

  * メソッドを取り除くModule#remove_method

  * インスタンス変数を取り除くObject#remove_instance_method


インタプリタ実装の改善

  * セキュリティチェックの強化

  * いくつかのセキュリティホールの削除

  * pipeで余分なfdをcloseする

  * NUM2DBLマクロ

  * T_DATAのfree procがプロセス終了時に呼ばれる

  * プロセス終了時にfinalizerが呼ばれる

  * tcltklibの採用(tcl,tkをリンクするように)

  * メソッド追加時にクラス/モジュールのmethod_addedメソッド
    が呼ばれる

  * ソースツリーの外で拡張モジュールをコンパイルできるように

  * rubyによるインストーラ