今日は rubygems の 2.7.3 への更新、拡張ライブラリ strscan と File.lutime などの新メソッド追加、例外メッセージの端末での強調表示機能、Data クラスの obsolete 化などいろいろありました。
hsbt: r60927 2017-11-29 07:30:28 +0900
RubyGems の 2.7.3 を upstream からマージしています。バージョン上げただけじゃなくて細かい修正が含まれているようです。 http://blog.rubygems.org/2017/11/28/2.7.3-released.html
svn: r60928 2017-11-29 07:30:29 +0900
version.h の日付更新。
nobu: r60929 2017-11-29 16:57:48 +0900
拡張ライブラリ strscan に StringScanner#size と StringScanner#captures、StringScanner#values_at といったメソッドを追加して、直前の scan でマッチした group の capture 数やその内容を取得できるようにしています。ありそうでなかったメソッドって感じですね。 [ruby-core:20412] [Feature #836]
nobu: r60930 2017-11-29 17:23:16 +0900
T_DATA 型のオブジェクトは deprecated として拡張ライブラリでは T_TYPEDDATA 型に移行することにして、Data クラスの定数は depreceted にマークして警告が出るようにしています。ついに。 [ruby-core:29186] [Feature #3072]
shugo: r60931 2017-11-29 17:39:47 +0900
Module#refine で refinements が定義されている Module を include していると、Module#using で有効にしていなくてもメソッド探索に影響が出て NoMethodError が発生するケースがあった不具合を修正しています。 [ruby-core:83613] [Bug #14068]
svn: r60932 2017-11-29 17:39:48 +0900
r60931 で追加したテストの行末の空白除去。
nobu: r60933 2017-11-29 18:59:20 +0900
File.lutime というメソッドを追加しています。 lutimes(3) という symblic link の atime, mtime をセットする関数に対応するメソッドのようです。 ずいぶん昔のチケットですね。 [ruby-core:33163] [Feature #4052]
あれでも configure.ac で AC_CHECK_FUNCS(lutime) でチェックしてるけど、#ifdef でチェックしてるのは HAVE_LUTIMES で実際の関数も lutimes() なので configure.ac が間違ってないかな?
nobu: r60934 2017-11-29 19:38:36 +0900
r60930 の Data クラスの deprecate にあわせて rubyspec の C API のテストで rb_cData をチェックしていたテストを 2.4以前だけ実行するように変更しています。
sorah: r60935 2017-11-29 20:14:23 +0900
例外が rescue されなかった時に表示するバックトレースが端末に表示される場合に、エスケープシーケンスを用いて、エラーメッセージの部分を強調して表示するようにしています。 サンプルのスクリーンショットがこちらに。 https://img.sorah.jp/s/2017-11-29_1711_xj2fu.png [ruby-core:83963] [Feature #14140]
sorah: r60936 2017-11-29 20:16:14 +0900
NEWS ファイルの r60935 のチケット参照を修正しています。
k0kubun: r60937 2017-11-29 20:27:32 +0900
r60901 で Binding#irb のテストを Windows 環境でテストメソッドの定義自体をやめるようにしていたのを、テストメソッドは定義して明示的に skip するようにしています。また windows? というメソッドで platform のチェックができたのでそっちを使うようにしています。
naruse: r60938 2017-11-29 21:04:24 +0900
LEGAL ファイルに Onigmo についての記述がなくてその前身(?)の Oniguruma (鬼車)についての記述だけだったので、Onigmo(鬼雲)について追記し、Oniguruma のライセンスについてもシンプルな Copyright 表記だけだったので条文が追記されています。 [ruby-core:82388] [Bug #13818]