Ruby 1.8.7-preview1 has been released
knu さんからアナウンスが出ました。
Ruby 1.8.7-preview1 をリリースしました。伸び伸びのスケジュール ながら、辛抱強くご協力いただいたみなさんに感謝します。 本リリースには、1.8.6リリース以降見つかった数多くのバグの修正、 組み込みクラスの機能充実、標準ライブラリの更新、パフォーマンスの 改善等が含まれています。 ソースファイルは以下のURLで取得できます。 ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-preview1.tar.bz2 ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-preview1.tar.gz ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-preview1.tar.zip チェックサム情報: MD5 (ruby-1.8.7-preview1.tar.bz2) = a916996720d8891f4f0bf0c9fbb5bb6c SHA256 (ruby-1.8.7-preview1.tar.bz2) = e432ab1ab9b4570c0b7fe5c0c2730de0fda4c49a47811ea3a9170a311cf110b9 SIZE (ruby-1.8.7-preview1.tar.bz2) = 4007006 MD5 (ruby-1.8.7-preview1.tar.gz) = 522b8a1dffb04984a602d1d85b355a1a SHA256 (ruby-1.8.7-preview1.tar.gz) = 19f17c9546a61dddf1a44d5f9b460e34a01440195b5375ce70000f89fa425f68 SIZE (ruby-1.8.7-preview1.tar.gz) = 4705632 MD5 (ruby-1.8.7-preview1.zip) = a754af64daa0613055b58813da50cd7d SHA256 (ruby-1.8.7-preview1.zip) = 45fbbf34f04a750cf72d5e9a8a23412a57fd933dd077d3f23fd7be62e3478b32 SIZE (ruby-1.8.7-preview1.zip) = 5788496 ユーザから見える変更点のリストは NEWS, 時系列に沿った全変更点の リストは ChangeLog に記述されています。 http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_preview1/NEWS http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_preview1/ChangeLog 使ってみて問題を見つけた場合は ruby-dev ML ないしは以下のBTSに 報告してください。 http://rubyforge.org/tracker/?atid=22040&group_id=426&func=browse 既知の問題としてすでにここに挙げてあったり、解決されていたり することがあるので、報告の前に「Status」を「Any」にして全件表示 してチェックしてください。 次のプレビュー(preview2)は来週土曜日を予定しています。今度は スケジュールを守れるよう一層努力しますのでよろしくお願いします。
NEWS を見ると結構 1.8.6 から変更されてますね。へたれ訳してみますが、怪しいところは末尾に(?)ついてます & 一気にできないのでチョコチョコと。
- ライブラリの更新
- 新規に追加されたもの
- 組み込みクラス
- Array#nitems がブロックを取れるようになった。ブロックは、要素が非nilかどうかをチェックする変わりにその要素が数えられるべきかどうかの判断に使用される
- Array#flatten, Array#flattern! が flattern する際の再帰レベルを定義するオプション引数を取れるようになった
- Array#index, Array#rinde が引数の変わりにブロックを取るようになった(?)
- Array#collect!, Array#map!, Array#each, Array#each_index, Array#reverse_each, Array#reject, Array#reject!, Array#delete_if はブロックが無い場合に enumerator を返すようになった(注:1.9 と異なり、#map, #collect は互換性のため Array を返す)
- Array#pop, Array#shift は削除する要素数を指定するためのオプション引数を取れるようになった
- Array#choice, Array#combination, Array#cycle, Array#drop, Array#drop_while, Array#permutation, Array#product, Array#shuffle, Array#shuffle!, Array#take, Array#take_while がメソッドとして追加された
- Dir#each, Dir#foreach はブロックが無い場合に enumerator を返すようになった
- クラス Enumerable::Enumerator が追加され、enumerator ライブラリによって定義される様々な enumeration に用いられる
- Enumerable#each_slice, Enumerable#enum_slice, Enumerable#each_cons, Enumerable#enum_cons, Object#to_enum, Object#enum_for の各メソッドが追加され、enumerator ライブラリによって定義される様々な enumeration に用いられる
- Enumerable#count, Enumerable#cycle, Enumerable#drop, Enumerable#drop_while, Enumerable#find_index, Enumerable#first, Enumerable#group_by, Enumerable#max_by, Enumerable#min_by, Enumerable#minmax, Enumerable#minmax_by, Enumerable#none?, Enumerable#one?, Enumerable#take, Enumerable#take_while の各メソッドが追加された
- Enumerable#find, Enumerable#find_all, Enumerable#partition, Enumerable#reject, Enumerable#select, Enumerable#sort_by はブロックが無い場合に enumerator を返すようになった(注:1.9 と異なり、#map, #collect は互換性のため Array を返す)
- Enumerable#inject はブロックの変わりにバイナリ演算子を受け付けるようになった
- Enumerable#reduce は #inject の新たなエイリアスとして追加された
- Hash#delete_if, Hash#each, Hash#each_key, Hash#each_pair, Hash#each_value, Hash#reject! Hash#select, ENV.delete_if, ENV.each, ENV.each_key, ENV.each_pair, ENV.each_value, ENV.reject!, ENV.select はブロックが無い場合に enumerator を返すようになった
- GC.stress, GC.stress= の各メソッドが追加された
- Integer#ord, Integer#odd?, Integer#even?, Integer#pred の各メソッドが追加された
- Integer#downto, Integer#times, Integer#upto はブロックが無い場合に enumerator を返すようになった
- IO#each, IO#each_line, IO#each_byte, IO.foreach, ARGF.each, ARGF.each_line, ARGF.each_byte はブロックが無い場合に enumerator を返すようになった
- Method#receiver, Method#name, Method#owner の各メソッドが追加された
- Numeric#step はブロックが無い場合に enumerator を返すようになった
- Object#tap が実装された
- ObjectSpace.each_object はブロックが無い場合に enumerator を返すようになった
- Process.exec が実装された
- Range#each, Range#step はブロックが無い場合に enumerator を返すようになった
- Regexp.union はパターン配列を受け付けるようになった
- String#chars, String#each_char, String#partition, String#rpartition, String#start_with?, String#end_with? の各メソッドが追加された。#index, #rindex, #include? と異なり、$KCODE を認識する
- String#each_byte, String#each, String#each_lines, String#gsub(pattern) はブロックが無い場合に enumerator を返すようになった
- 例外クラス StopIteration が追加された。Kernel#loop が停止された際に raise される
- Struct#each, Struct#each_pair はブロックが無い場合に enumerator を返すようになった
- Symbol#to_proc が実装された
-
- enumerator
- Enumerator is now a built-in module. The #next and #rewind methods are implemented using the "generator" library. Use with care and be aware of the performance loss.
- enumerator
-
- ipaddr
- New methods - IPAddr#<=>, IPAddr#succ - IPAddr objects are now comparable and enumerable having these methods. This also means that it is possible to have a Range object between two IPAddr objects.
- IPAddr#to_range メソッドが追加された。ネットワークアドレスの Range オブジェクトを生成する
- Type coercion support - IPAddr#&, IPAddr#|, IPAddr#==, IPAddr#include? - These methods now accept a string or an integer instead of an IPAddr object as the argument.
- ipaddr
-
- net/smtp
- SSL/TLS をサポートした(訳注:net/pop は [ruby-dev:34402]OpenSSL::SSL::SSLContext#set_params によれば未だみたい)
- net/smtp
-
- shellwords
- Add methods for escaping shell-unsafe characters: Shellwords.join, Shellwords.escape, Array#shelljoin, String#shellescape
- Add shorthand methods: Shellwords.split (alias shellwords), String#shellsplit
- shellwords
Tempfile.open(['image', 'jpg']) { |tempfile| ... }
- Compatibility issues (excluding feature bug fixes)
- tempfile
- ファイル名の書式が変更された。デフォルトでは一時ファイル名にドット(.)はもはや含まれない。サフィックスの指定方法に関しては前述の通り。
- tmpdir - New method: Dir.mktmpdir
- tempfile
require 'digest' # autoloads digest/md5 md = Digest::MD5.digest("string")
-
-
- New digest class methods: file
- New digest instance methods: clone, reset, new, inspect, digest_length (alias size or length), block_length()
- New library: digest/bubblebabble
- New function: Digest(name)
-
-
- fileutils
- New option for FileUtils.cp_r(): :remove_destination
- fileutils
-
- thread
- より高速な C による mutex 実装に置き換えられた。以前の遅いものの安定している実装は configure のオプションとして --disable-fastthread を指定すれば利用可能。
- thread
- Compatibility issues (excluding feature bug fixes)
-
- 組み込みクラス
- String#intern は $SAFE レベルが 1 以上の場合に SecurityError 例外を発生するようになった
- 組み込みクラス
-
- date
- Time#to_date, Time#to_datetime がプライベートメソッドとして追加された。これにより Rails 1.2.2 以前で使用されている ActiveSupport の 1.4.1 以前と名前衝突が発生するため、ActiveSupport または Rails をこの問題が修正されている最新バージョンに更新すること。
- date
-
- digest
- コンストラクタは feed のための初期化文字列を取らなくなった。移行方法は以下を参照のこと:
- digest
# Before md = Digest::MD5.new("string") # After (works with any version) md = Digest::MD5.new.update("string") # Before hd = Digest::MD5.new("string").hexdigest # After (works with any version) hd = Digest::MD5.hexdigest("string")
-
- fileutils
- 些細な修正により Rake の 0.7.1 以前が上手く動かない。Rake を 0.7.2 以上にアップデートすること。
- fileutils
-
- tk
- Tk::X_Scrollable (Y_Scrollable) が Tk::XScrollable (YScrollable) に名称変更された。Tk::X_Scrollable (Y_Scrollable) も使用可能だが単なる別名である。
- tk