ruby-trunk-changes r63263 - r63273

今日は Windows 環境の MJIT のコンパイラオプションの整理? などがありました。

nobu: r63263 2018-04-26 21:36:26 +0900

ruby_init_loadpath_safe() の変数 p に const 修飾子をつけるようにしています。

nobu: r63264 2018-04-26 21:36:27 +0900

Windows 環境で MJIT のコンパイル時のライブラリディレクトリ名を変更する libdir_basename という変数を参照するようにしています。

tenderlove: r63265 2018-04-27 07:49:00 +0900

rb_profile_frames() の for 文のブロックの最後で RUBY_VM_PREVIOUS_CONTROL_FRAME() で cfp を辿っていたのですが、この for 文には continue 文が含まれているので無限ループに陥る可能性があったので、for 文の、あれなんていうんだろう、カウンタを更新する部分で cfp を更新するようにしています。なんですけど後で revert されています。 [ruby-core:86147] [Bug #14607]

svn: r63266 2018-04-27 07:49:01 +0900

version.h の日付更新。

tenderlove: r63267 2018-04-27 09:13:51 +0900

r63265 の rb_profile_frames() の変更を revert しています。なんでだろ。 [ruby-core:86147] [Bug #14607]

nobu: r63268 2018-04-27 10:58:29 +0900

tool/rbinstall.rb で "rubystub.exe" ファイルの読み込みを遅延するようにしているようです。

nobu: r63269 2018-04-27 11:02:29 +0900

loadpath の初期化を整理して ruby_archlibdir_path と ruby_prefix_path という変数を導入して、ruby.c と mjit.c で共有するようにしています。ちょっとよく読めてませんが mjit.c で同じような処理をしてたのをまとめたという感じではないかと思います。

nobu: r63270 2018-04-27 13:36:34 +0900

r63269 で特定のプラットフォームでコンパイルエラーになっていたようで修正しています。

nobu: r63271 2018-04-27 14:20:40 +0900

これも r63269 の追加修正だと思いますが ruby_init_loadpath_safe() で #if defined LOAD_RELATIVE で括る位置を移動して static 変数 libdir の宣言を中に入れるようにしています。

nobu: r63272 2018-04-27 14:20:40 +0900

mjit.c のコンパイルオプションを決める CC_LIBS に MJIT_LIBS を含めるのを Windows 環境のみにしています。

nobu: r63273 2018-04-27 16:39:00 +0900

Windows 環境では DLL ファイルはロード中は削除できないため構造体 struct rb_mjit_unit に so_file というメンバーを追加して unload_units() で dlclose() した後に後始末でファイル削除するようにしています。 clean_so_file() の中で #undef Sleep しているのはなぜだろう。