俺と OS/2 と ruby-1.8.4:年末年始編

年末からちょろちょろ弄ってはいたのですが、make test-all でテストをかけると openssl のテストで固まってしまう。双方向パイプが必要みたいなのでそれっぽいのをでっちあげてぶち込んでみたけどやはりダメですよ。これだけのために一週間以上悩んでいたのは秘密だヨ(言っとるがな)

んで、今日になってようやく、

--- ruby-1.8.4-org/test/openssl/ssl_server.rb	2005-04-08 18:26:54.000000000 +0900
+++ ruby-1.8.4/test/openssl/ssl_server.rb	2006-01-12 22:36:36.000000000 +0900
@@ -67,8 +67,10 @@
   ssl = ssls.accept rescue next
   Thread.start{
     q = Queue.new
     th = Thread.start{ ssl.write(q.shift) while true }
+    Thread.pass
+    Thread.pass
     while line = ssl.gets
       if line =~ /^STARTTLS$/
         ssl.accept
         next

とかやってスレッドスケジューリングのフンづまりを手動でズポズポやればとりあえずいけることは分かった(Thread.pass はふたつ以上必要。ひとつだけだとダメでした)。
しかし他の環境でこういう症例は聞いたことがない…うーん、ネイティブスレッドのタイマを検討したほうがいいのだろうか。

それから全然 Ruby と関係ない話なんですけどね、OS/2 で「TCP/IP の設定」の GUI メニューを使って DHCP を有効にするとループバックが使えなくなっちゃうんですよ(ping 127.0.0.1 で何も返ってこない)。\MPTN\BIN\SETUP.CMD を手動で書き換えて ifconfig lo 127.0.0.1 を dhcpstrt の後に持ってく必要があったのでした。設定ツールが腐ってるってこういうことだったのですねえ。
これが原因で ruby のテストがあまりにも通らなくて3日ぐらい悩んでいたのは秘密だヨ(だから言っとるがな)orz

めも

じつは起動さえも最近はあまりやってなかったりして(0.8.0 で eComStation の DemoCD が起動しないことだけは確認したのですが)。Sun の USB キーボードがいけない気がしてきた(漢字キーがないのでゲスト環境での日本語入力とか絶望的)

といいつつ適当にメモ。

  • Warp V4 インスコ事例Warp V4+FP15 ならいけるんですね。というか Warp V4 なら SDD 使わなくてもインストールCDに SVGA GENGRADD が入ってるような気がしたのですが…。
  • オープンソースマガジン2006年2月号を本屋で立ち読みしてたら「Linuxカーネルハッカー座談会」の中で qemu がちょっと話題になってましたヨ。やっぱりカーネルいじりには便利なのか。
    というか座談会の中に qemu-cow まわりのコードなんかを contribute した Magnus Damm 氏がおられまして顔写真なども拝めます…って VA Linux Japan の人だったのか! ということは日本にいるのですか。なんか妙に世界を狭く感じますね。