著作一覧 |
rubyのmakeは、一部、mkmf.rbの実行中にテンポラリファイルの作成が競合して(以前のプロセスが死に切る前に次のプロセスが起動されてい)soが作られなかったことがあったが、それを別とすれば問題なし。usaさんのおかげだなぁ。
でも、拡張ライブラリを作ろうとすると、いろいろ引っかかる。
というよりも、setup.rbがついに引っかかったので修正抜きでは何も作れない。
setup.rbはrbconfigをrequireして::Config::CONFIGを呼びだしているが、rbconfigのクラス名からついに互換名が削除されたので、RbConfig::CONFIGに修正が必要。
lhalibがついに寿命を迎えた。
すでにlhaを僕が使うことはないので修正することなしにおしまいにする。
必要な人はGitHubにあるのでフォークして修正すれば良い。
問題は以下の箇所で(他にもあるかも知れないけど)、引数が文字列かどうかをチェックし、もし文字列だったら、外部由来文字列の処理を扱うべき環境でなければ例外を飛ばすところ。このうち後者は既に意味を失っているがそのまま残していたのだが削除するか代替方法を取るべきだし、前者は書き換えが必要。
VALUE file; proc = Qnil; rb_scan_args(argc, argv, "1&", &file, &proc); rb_check_safe_str(file); rb_secure(4);
具体的にはrb_check_safe_str関数は2.2.0から無くなったのでSafeStringValueに書き換える。
原因1)NTが未定義となった。とりあえずextconf.rb生成のMakefileのCFLAGSに-DNTを手で追加
原因2)
swin.obj : error LNK2019: 未解決の外部シンボル _rb_thread_blocking_region が関数 _swin_call_threadblocking で参照されました。 swin.so : fatal error LNK1120: 1 件の未解決の外部参照
まあしょうがないか。いずれもRubyの問題ではないし。
ジェズイットを見習え |