今日は主に emscripten 向けのビルドの対応のための変更や Rational#coerce の不具合修正などがありました。
[c3244a3574] Nobuyoshi Nakada 2021-01-22 13:29:17 UTC
c8121b2e3d85c5dc4219918604c4d301204e6455 の追加修正。 aarch64-darwin の時の target_cpu を arm64 に変更する時に target_alias 変数が元からない場合は空のままにしておくようにするため変数の置換の記法? を使うようにしているようです。こんな記法ができるんだな。
[f1c36f2e6b] Nobuyoshi Nakada 2021-01-22 14:21:25 UTC
coroutine 配下のヘッダファイルに #ifndef での二重 include 防止のための guard を追加しています。
[e34eb58ac7] Nobuyoshi Nakada 2021-01-22 14:40:32 UTC
c8121b2e3d85c5dc4219918604c4d301204e6455 および c3244a3574da8ddc35523ef1b882dd2aadfc2818 の続きだと思われますが tool/m4/ruby_default_arch.m4 と tool/m4/ruby_universal_arch.m4 で ARCH_FLAG に arm64 をセットするための対応を追加。
[07b4b1b1cb] Nobuyoshi Nakada 2021-01-22 14:41:52 UTC
macOS の universal binary の時の coroutine/ の実装を追加しています。universal を選択するとソースコード内で CPU アーキテクチャを示すマクロをみて必要なソースコードを #include するようにしています。
[6e44de752e] Burdette Lamar 2021-01-22 21:01:09 UTC
String クラスの rdoc 用コメントにもメソッドの種類別一覧を含む説明を追加しています。 https://github.com/ruby/ruby/pull/4093
[db7d0b89f6] git 2021-01-22 21:01:39 UTC
version.h の日付更新
[1def8a6004] Gannon McGibbon 2021-01-22 22:15:38 UTC
rubygems のコメントの iff を使わないように書きかえています。
[ccd7b7ab9a] Nobuyoshi Nakada 2021-01-23 00:24:43 UTC
tool/lib/vcs.rb の ChangeLog 生成のための git log 取得の --format オプションを fuller に変更しています。
[6ef761a515] Nobuyoshi Nakada 2021-01-23 00:24:52 UTC
tool/lib/vcs.rb で ChangeLog 生成するために git notes による修正のためのメモを git fetch しようとして失敗した時にエラー終了させてましたが、警告を出力するだけにして処理は続行するようにしています。
[1dfddac393] Yusuke Endoh 2021-01-23 01:09:06 UTC
configure でコンパイラのオプションから -fstack-protector を消す条件として emscripten 向けのコンパイル時というのも追加しています。
[47d6c55755] Yusuke Endoh 2021-01-23 01:11:09 UTC
gc.c の machine stack のオーバーフロー検出のための stack_check() の定義を emscripten 向けのビルド時には無効にするようにしています。
[37258b64c7] Gannon McGibbon 2021-01-21 01:16:22 UTC
標準添付ライブラリ net/http の Net::HTTP.post_form の rdoc 用コメントの iff も "if and only if" で書きかえています。
[a55eb9a2af] Nobuyoshi Nakada 2021-01-23 01:28:07 UTC
Rational に coerce メソッドを呼び出して作った Rational オブジェクトで不正な内容のオブジェクトができてしまって SEGV することがあったのを修正。f_rational_new_no_reduce2() で作成していたのを nurat_convert で分子分母を与えて Rational 作成させるようにしています。 [ruby-dev:50994] [Bug #17572]
[9de68a5221] Kazuhiro NISHIYAMA 2021-01-23 01:52:17 UTC
RubyVM::JIT の改名に関連して d961f14df3629f933613b062034deea0346de1cd で net/http のテストで新旧の定数両方チェックするようにしてましたが、そうすると今度は新しい ruby で RubyVM::MJIT の参照が警告されてしまうので、まず defined?(RubyVM::JIT) でチェックして存在したら enabled? の結果によらず RubyVM::MJIT は参照しないように条件を書きかえています。
[9efd590a13] Nobuyoshi Nakada 2021-01-23 02:04:45 UTC
a55eb9a2af7950d180d9d31ffde2bce66710f44f の続きで Rational#coerce に Float を要素として持つ Complex を渡された時にその要素を Rational に変換した Complex を返すようにしています。 [ruby-dev:50994] [Bug #17572]
[33fb87cc9c] Yusuke Endoh 2021-01-23 04:22:56 UTC
emscripten では popen(3) が使えないということで __EMSCRIPTEN__ マクロの有無によって pipe_open() を NotImplementedError を発生させる実装に変更しています。
[05f89dd13b] Yusuke Endoh 2021-01-23 04:23:26 UTC
emscripten では pthread_kill() が使えないとのことで Thread 実装で GVL をはずしてブロックする処理をしているスレッドを起こすのに SIGVTALRM シグナルを使う実装を利用しないようにしています。
[dd65aa95f9] Yusuke Endoh 2021-01-23 07:05:33 UTC
bignum.c で LONG2FIX() に渡す引数を明示的に long に cast するようにしています。BDIGIT_DBL の型が long long の場合に警告が出るのでそれを抑制するためとのこと。
[f12c33b611] Yusuke Endoh 2021-01-23 07:07:41 UTC
configure 時に target_os が emscripten の時に -s ALLOW_MEMORY_GROWTH=1 というオプションをリンカに渡すようにしています。また -lm -lc を明示的に渡す必要もあるようです。
[62283f7a7a] Yusuke Endoh 2021-01-23 09:54:50 UTC
coroutine/ に emscripten 向けの実装を追加しています。 emscripten_fiber_init() とか emscripten_fiber_swap() といった関数はライブラリ(っていうのかな、実行環境というか)から提供されてるものでしょうか。
[8dfae85adb] Nobuyoshi Nakada 2021-01-23 10:57:07 UTC
respond_to? メソッドが引数 1つだけで定義されてた時の警告を deprecated カテゴリの警告として扱うように変更しています。てことはデフォルトでは警告されなくなるということですね。 [ruby-dev:50995] [Bug #17575]
[追記]この変更してる部分は警告の本体じゃなくて対象のファイル名と行数を出力する部分のみ deprecated カテゴリじゃなくなってたのでそこを追随させたということだそうです。[/追記]