ruby-trunk-changes r60062 - r60076

今日は configure.in を configure.ac に改名したり String#succ の coderange の考慮漏れの修正などがありました。

nobu: r60062 2017-09-29 22:21:17 +0900

configure.in を configure.ac に改名しています。 autoconf の処理するファイル名の慣習(?)が変わってたんですねー。しかしこれ configure.ac への変更のバックポートがツラいな…。 [ruby-core:83046] [Feature #13946]

sonots: r60063 2017-09-30 02:19:37 +0900

拡張ライブラリ etc の Etc.getgrnam のテストで同じグループ名で異なる gid を持つグループがみつかる環境があるらしくて、テスト側でチェック方法を修正しています。なんか Etc.getgrnam はだいぶ前にも LDAP を使ってる時に似たような Etc.groups で思わぬ結果がかえってきて直したことがあった気がする。 [Bug #6935] かな。

svn: r60064 2017-09-30 02:19:38 +0900

version.h の日付更新。

nobu: r60065 2017-09-30 08:41:19 +0900

template/sizes.c.tmpl で Init_limits() の extern 宣言を関数内に書いてたのを外に出して、仮引数部も省略していたのを void を明示的に書くようにしています。

nobu: r60066 2017-09-30 09:01:23 +0900

String#succ で返す文字列の coderange が更新されていなかったので r60059 や r60060 と同様に String#ascii_only? が不正な結果を返すことがあったのを修正しています。 [ruby-core:83062] [Bug #13952]

ktsj: r60067 2017-09-30 12:31:32 +0900

標準添付ライブラリ find のテストに Find.find に渡した引数に対して to_path で変換がかかることをチェックするテストケースを追加しています。

glass: r60068 2017-09-30 15:30:44 +0900

configure.ac の autoconf のバージョンチェックに m4_if と m4_version_compare を使って書いていたのを m4_version_prereq というマクロを使うようにしています。どのくらいのバージョンから使えるのかなとみてみたら 2008年頃に改名されたものみたいなので、少なくとも対象としている autoconf(2.70以降)では使えますね。

nobu: r60069 2017-09-30 15:42:24 +0900

拡張ライブラリ ripper に r59972 で導入した Ripper::Lexer::Elem::List の inspect の表示を少し変更しています(状態名がクオートされないようにしています)。

glass: r60070 2017-09-30 15:45:24 +0900

configure.ac で未使用になってたマクロ RUBY_PREREQ_AC の定義を削除しています。

nobu: r60071 2017-09-30 17:35:23 +0900

標準添付されている拡張ライブラリで文字列を C の文字列として処理する時に文字列の途中に NUL 文字が含まれているとまずいので StringValueCStr() を使ってチェックして(さらに末尾を NUL 文字で終端するようにする)、また rb_check_safe_obj() で TAINTED フラグもチェックするようにしています。文字列オブジェクトの NUL 終端をやめるの、Ruby 3.0 では入るのかなぁ(拡張ライブラリが動かなくなる可能性があるのでなかなか難しい)。 [ruby-dev:50267] [Bug #13953]

nobu: r60072 2017-09-30 18:07:13 +0900

拡張ライブラリ dbm で不要な構造体メンバへの代入を削除しています。

glass: r60073 2017-09-30 18:27:30 +0900

configure の --enable-pthread というオプションを削除しています。2009年時点で obsoleted にしていたそうです。そういえば、すごーく昔にこんなの使ったことあった気がする。Solaris とかで…。

nobu: r60074 2017-09-30 20:06:05 +0900

拡張ライブラリ gdbm で StringValue() を使っていたところを ExportStringValue() というマクロに変更しています。 なんだっけこれ…。doc/extension.rdco にも書かれてないけど SafeStringValue() + rb_str_export() で、Encoding.default_external に変換するのも追加しているようです。

nobu: r60075 2017-09-30 20:50:14 +0900

拡張ライブラリ dbm の TOO_LONG() というマクロで引数が未使用になって警告が出てたため (void) つきで参照して警告除去。

glass: r60076 2017-09-30 20:58:33 +0900

r56650 での Hash の実装の最適化で Hash のイテレーションのブロック内での Hash の要素の削除について HASH_DELETED フラグをつけておいて後で消すという処理は不要になったので削除しています。