ruby-trunk-changes r65688 - r65708

今日は拡張ライブラリ date の内部表現の構造体の取り扱いについての修正などがありました。

shyouhei: r65688 2018-11-13 09:40:52 +0900

size_t 型の変数をカウンタとして -- 演算子を適用していたところなど整数の overflow 警告の対応。

svn: r65689 2018-11-13 09:40:57 +0900

version.h の日付更新。

k0kubun: r65690 2018-11-13 10:35:09 +0900

Array.new に大きなサイズを指定するテストで AppVeyor で NoMemoryError が発生するそうで GC.start を追加。ただこれ親プロセスのほうで GC してて、たぶん NoMemoryError は子プロセスのほうで起きてるんじゃないかな。

shyouhei: r65691 2018-11-13 11:03:33 +0900

.travis.yml で利用する UbuntumacOSXcode のバージョンを更新しています。これにより macOS 版の homebrew の更新作業が不要になったみたいで消しています。

k0kubun: r65692 2018-11-13 11:06:51 +0900

make up や make commit 時に revision.h を更新させるようにしてたのを、revision.h の作成のコマンドは変更がある時だけ更新するようになっているので、常に実行するようにしている? 依存関係に PHONY と書くと make の任意のターゲット実行時に動くのかな。

shyouhei: r65693 2018-11-13 11:19:49 +0900

addr2line.c で #pragma を使って -Wgcc-compat の警告も抑制するようにしています。

shyouhei: r65694 2018-11-13 11:58:41 +0900

Travis CI でネットワークの問題で? macOS 版のテストが失敗するそうなので一時的に allow_failure に追加しています。

nobu: r65695 2018-11-13 12:24:18 +0900

r65692 の追加修正。やっぱり revision.h の変更は make up, make commit の時にトリガーするようにして、BASERUBY が利用できる時だけ常に更新処理を走らせるようにしています。

nobu: r65696 2018-11-13 13:29:29 +0900

拡張ライブラリ date の ext/date/date_core.c で構造体 struct SimpleDateData と struct ComplexDateData のメンバー flags のビットフラグ COMPLEX_DAT の管理が抜けていたのを修正しています。

nobu: r65697 2018-11-13 13:29:30 +0900

r65696 の追加修正。 d_lite_initialize_copy() で引数に渡されたオブジェクトのほうの構造体が simple か complex かで flags をいじってたけど、コピーで構造体は変更しないので? フラグはいじらないようにしています。

nobu: r65698 2018-11-13 13:29:31 +0900

拡張ライブラリ date の DateTime を Marshal.load した時にも同様に生成されているオブジェクトの構造体の種類はそのままに値だけセットしている? みたいです。そもそも同じ type で構造体を変更しているの DateTime だけですよね。

nobu: r65699 2018-11-13 13:29:32 +0900

拡張ライブラリ date の Date と DateTime で DateTime.new を直接上書きしているのを alloc と initialize メソッドの定義に分割するように今どき(かなり前から)のお作法に従うようにしています。

shyouhei: r65700 2018-11-13 13:33:10 +0900

.travis.yml の macOS での make test-all で -v オプションなどを追加していたのをやめています。また一部テストを除外していたのも、もう通りそうということで消しています。

nobu: r65701 2018-11-13 13:51:46 +0900

拡張ライブラリ date で比較演算子メソッドの ID を rb_intern() していたのを組み込みの変数を参照するようにしています。

shyouhei: r65702 2018-11-13 13:55:43 +0900

.travis.yml で --tty=no オプションをつけて出力の coloring やプログレスバー表示などを抑制して出力が大きくならないようにしています。

k0kubun: r65703 2018-11-13 14:46:41 +0900

r65690 で Array.new のテストで GC.start していたのはやはり効かなかったみたいで revert して、かわりに appveyor.yml で test/ruby_array.rb を -j オプションなしのグループのほうに移動しています。

nobu: r65704 2018-11-13 15:16:56 +0900

r65695 の revision.h の更新を毎回するかどうか(BASERUBY があるかどうか)のチェックは defs/gmake.mk から template/GNUmakefile.in に移動しています。よくわかってないんですが問題の common.mk の revision.h のルールの前に変数を定義しておくため、かな?

k0kubun: r65705 2018-11-13 15:17:57 +0900

拡張ライブラリ fiddle のテストでコンテキストスイッチの速度を測る? ためのテストで時間を Process.clock_gettime で計測しているテストがありましたが、Travis CI の macOS 版でしきい値を超えてしまうことがあったみたいなので上限を引き上げています。

marcandre: r65706 2018-11-13 15:20:06 +0900

拡張ライブラリ pathname の Pathname#relative_path_from の引数に Pathname でなく文字列も受けつけて、 Pathname に変換してから処理するようにしています。 https://github.com/ruby/ruby/pull/1975

shyouhei: r65707 2018-11-13 16:17:02 +0900

r65702 の続き。 .travis.yml の --color=never のかわりに --tty=no を使うようにしています。

shyouhei: r65708 2018-11-13 16:19:12 +0900

.travis.yml で macOS のビルドで r65700 で削った test-all の除外テストを再度適用しています。また失敗してたみたいです。