vim,windows,rubyコマンドでネットワーク関係のコードが失敗する
環境:kaoriya版gvim7.1-20080531、ruby(mswin32) 1.8.7-p17
:ruby require 'open-uri' :ruby open('http://google.com/') => SocketError: `initialize': getaddrinfo: non-recoverable failure in name resolution. :ruby open('http://66.249.89.147') => vim死亡
irbで実行すると正常に開ける。
あとvim上でActiveRecord動かすとvimが死ぬようになったのも同時期。これもソケットがらみか。
症状的にどうやらこれじゃないかというのを発見。
http://www.bookshelf.jp/2ch/tech/1178167650.html#326
DLLを呼び出す側でNtInitializeを呼ばないとソケットが初期化されずにそうなる?
vimのソースを見る。if_ruby.cでは、確かにNtInitializeは呼ばれていない。これが原因か?
ただし謎なのは、vim上でrubyを頻繁に動かしていたにもかかわらず今まで問題が顕在化しなかったこと。前まではちゃんと動いていたのだろうか。大体、windows上のgvimでrubyがちゃんと動かないなんて大問題ならもっと情報があってもよさそうなものなのだが。環境によっては正常に動く? ruby dllとの相性?