From: matz@... (Yukihiro Matsumoto) Date: 2000-09-19T23:29:47+09:00 Subject: [ruby-list:24985] Ruby 1.6.0 の変更点 まつもと ゆきひろです 赤松智也さんが、ざっとまとめたものを作ってくださいました。 Linux Magazine 11月号の原稿の一部だそうです。 = 1.6.0での変更点 * クラス変数 * initializeの仕様の明確化 * Objectのinitializeが0個の引数を取る * 多重代入がto_aを使わない * block_given?(iterator?の新名称) * エラーメッセージがちょっと親切に * 例外メッセージで非表示文字をエスケープ * RangeError例外 * rescue => 変数 * rescue修飾子 * メソッド本体のrescue節 * より柔軟な文法 * ScriptError例外 * 全オブジェクトがfreeze可能 * -eで一時ファイルを使わない * -Xが-Cに変更 * 環境変数RUBYOPT * 環境変数RUBYLIB_PREFIX * セキュリティ機能のデバッグ * getrlimitでスタックの最大値を計算する * GCの頻度が変更 * nil,true,falseに特異メソッドが定義できる FixnumとSymbolには相変わらずできない * cloneとdupの仕様の統一 * dyna_var構造体をリサイクル * require 'final'が組み込みに * Thread.joinがなくなった * ThreadGroupができた * Thread.startが引数を取るようになった * Threadのpriority * スレッド対応デバッガ * selectがbusy waitしないように * waitpidがbusy waitしないように * 新正規表現 \G (?>...) * regexの \< と \> が正式になくなった * regexが割込みを理解する * 正規表現オプション /p → /m * $KCODEでNONEがデフォルトに(以前はEUC) * offsetがマルチバイト文字の途中でも検索する * コンパイル時文字列結合 * 文字列操作のパフォーマンス向上 * slice, slice! * kconvがString#kconv,tojis,toeuc,tosjisを定義する * String#index == で $= の値を使う * String#dupのlazy copy * Kernel#scan * pack/unpack で w(BER) が使えるように * Bignumがpackできるように * pack 指定子が増えた * Array#concatが配列のみを受ける * Array#+が配列のみを受ける * Array#replaceがto_aを使わない * Array#at, first, last * Array#filter -> Array#collect! * %w()の実装でエスケープできるようになった * ブロック無しのcollect * grepの戻り値 * Numeric#truncateが追加 * Float nan? infinite? finite? * moduloが導入された * %, divmodの挙動が明確化された * Hashの値としてのnil * 再帰的ワイルドカード展開 * fnmatch(わたなべ版)の採用 * Dir::globがブロックを受ける * newはブロックを取らず、openは取る * printfで$による順番の指定 * バッファリングされたIOはsysreadがエラー * IO#pid * IO#seekの引数が省略可能(SEEK_SET) * IO#rewindで行番号が0に * Proc#callがnilと引数なしを区別する * statの戻り値は構造体からFile::Statオブジェクトに * rand関数の引数が省略可能 * シンボルのオブジェクト化 * dateライブラリがdate2と統合。 * Time::local, Time::gmでマイクロ秒が指定できる * Time::utc, Time#utc, Time#utc? * Process#wait2, waitpid2 * rb_scan_argsでブロックを取り出せる