〜2001年10月上旬〜
/.jpのsidebar はgoogleで簡単に見つかったが、yendotのはどこなんだろう? と思ったら croutonさんのとこ に情報があった。 実は既にsidebar自体はaddされてるんだけど、 どこから持ってきたのかすっかり忘れてて、 他のマシンに入れられなくて困っていたというか。
あ、sidebarじゃなくてサイドバーで探さなきゃいけない?
なんか久し振りにversion.hが更新された。1.6.5リリース以来か。
更新。
爆発してるね。
Cygwinが2倍速いって話は [ruby-list:27694] だと思う。1.7ならそんなに差はないはず。
それはそれとして、InstallShield版はVC++かMinGWを使ったほうがいいんだろう。 こうなるとforkが使えないなんて些細な問題に思える。
昼間一応作りかたを書いて送ったんだが、なぜか届かないなあ。 思い出してここに書いとこう。
肝はlibmingw32-ruby16.aの代わりにmswin32-ruby16.libを使うだけ。 なのでMinGW版をインストールして
% cp mswin32-ruby16.lib d:/usr/local/lib/libmingw32-ruby16.a
のようにしてしまえばいい。で肝心のmswin32-ruby16.libは うささんのとこ から取ってこよう。
dllwrap時に-L.もしてるのでln -sするのもありだ。こっちをメールに書いた。
% mkdir mswin32; cd mswin32 % unzip ../ruby-1.6.5-i586-mswin32.zip % unzip ../win32ole-0.3.1.zip % cd win32ole % ln -s ../lib/mswin32-ruby16.lib libmingw32-ruby16.a % d:/usr/local/bin/ruby extconf.rb % ruby -i~ -pe 'sub(/-bmingw/,"-mno-cygwin")' Makefile % make % ../bin/ruby -r./win32ole -ve 'p $"' ruby 1.6.5 (2001-09-19) [i586-mswin32] ["./win32ole.so"]
うーむ。Andyさん自身は議論に加わってないようだし、Cygwinのままなのかな?
Solaris 2.5なマシンにApacheをインストールした。
% ./configure --enable-shared=max % make % su # make install
で、問題なくインストールできたはいいが、
# /usr/local/apache/bin/apachectl start
するとmod_env.soをロードするとこでundefinedになる。 ってことはhttpd自身のsymbolがexportされてないからか。 httpdを作るとこで-Wl,-Eを入れたらすんなり立ち上がった。 gcc 2.8.1とかbinutilsが古いのか? ちゃんとこっちもメンテせんとまずいな。
freshmeat でreiserfs, floppyをキーに検索すると、 RIP が見つかった。これでReiserFSなパーティションを作ることが可能。 rescue diskとしても使えるので一枚用意しておくことにしよう。
これを使えば無理矢理PlamoもReiserFSにインストールできるかなあ?
Cygwinでクロス環境を作っているから、 setup.exeも当然同時に作られていると思ったらできてない。 不思議に思い確認してみるとcygwin-1.1.8-2-src.tar.gzにはそもそも cinstall/がないのであった。って そう 自分で答えてるじゃん。 だが、cygwin-1.3.3-2-src.tar.bz2にはちゃんと入っているのであった。 つうわけで、1.3.3-2で試すことにする。
% tar xfv cygwin-1.3.3-2-src.tar.bz2 % cd cygwin-1.3.3-2 % mkdir obj; cd obj % CFLAGS=-Os CXXFLAGS=-Os ../configure \ --target=i686-pc-cygwin \ --host=i686-pc-cygwin \ --build=$(../config.guess) \ --prefix=/usr/local/cygwin % make ..../bin/ld: cannot find -lstdc++ collect2: ld returned 1 exit status
あれ?肝心のsetup.exeを作るとこでエラーだ。 mingw32用のlibstdc++.aはMinGW Projectから取ってくる必要があるよね。 Cygwinで完結してないんだけど、これでいいの? とりあえず/usr/local/cygwin/lib/mingwに用意して解決させる。
cinstallは1.3.3になって初めて含まれるようになったようだ。 1.3.2-1には入ってない。
例のruby-talk MLでの議論が元で、CygwinとMinGWはどっちがいいと思う? socketのEINVAL問題とかなぜCygwin版のほうが速いんだみたいな感じの内容のメールが来た。 とりあえず俺自身は会社でCygwinを使ってるが、 常に不安定だしMinGW版のほうがいいんじゃない? でも家ではWindowsは使ってないし、 Ruby Binariesはすべてクロスコンパイルしてるから、 本格的には使ってないんだけど、と返しといた。
1750: ruby-talk.0101 1608: ruby-talk.0102 1609: ruby-talk.0103 1048: ruby-talk.0104 1629: ruby-talk.0105 1026: ruby-talk.0106 1776: ruby-talk.0107 1737: ruby-talk.0108 1208: ruby-talk.0109
不思議なことに1800通/月までは行かない。
最近やけにspamが多い。英語が多いということはcomp.lang.rubyがらみか?
setupする前にPlamoのCD-ROMをmountしておけば、 sourceでpre-mountを選んで先に進める。 文字は当然化けるが、何度かPlamoをインストールしてればわかる。 パッケージ名はasciiだし。
例の人と何度かやりとりをしたらうささんとこの1.7は遅いと言われてしまった。
Yikes! I tried my little benchamrk, and the 1.71 snapshot ran *very* slowly: 4min21s VS 18s (1.65 cygwin) or 36s (1.65 mswin32) Maybe this is a debug build? Anyway, it's not released yet, so let's not complain prematurely.
うーむ。これは尋常じゃない遅さだ。どんなbenchmarkなのかわからないが。
で、mingwで試そうと思ったら、
% ./miniruby -ve 'system "date"' ruby 1.7.1 (2001-10-05) [i386-mingw32] Mon Oct 8 14:17:22 2001 -e:1:in `system': undefined method `allocate' for false (NoMethodError) from -e:1
てな感じで、ext/以下がmakeできなくなってた。 allocate機構が導入されてからできないのかなあ。 これはcrossでmakeしてるとわからないから、 たまにはnativeでmakeしないといけないね。
それはそれとして、とりあえずminirubyでbenchmarkしてみる。 単に-nを使いgetsするだけの簡単なものだ。
% ls -l ruby-talk.0101 -rw-r--r-- 1 watanabe ruby 5663931 Oct 8 14:21 ruby-talk.0101 % time cygwin16/miniruby -vne '' ruby-talk.0101 ruby 1.6.5 (2001-10-05) [i386-cygwin] 2.75s real 0.00s user 0.00s sys 0% cpu % time cygwin/miniruby -vne '' ruby-talk.0101 ruby 1.7.1 (2001-10-05) [i386-cygwin] 3.13s real 0.00s user 0.00s sys 0% cpu % time mingw16/miniruby -vne '' ruby-talk.0101 ruby 1.6.5 (2001-10-05) [i386-mingw32] 89.86s real 0.00s user 0.00s sys 0% cpu % time mingw/miniruby -vne '' ruby-talk.0101 ruby 1.7.1 (2001-10-05) [i386-mingw32] 6.37s real 0.00s user 0.00s sys 0% cpu % time mswin32/bin/ruby -vne '' ruby-talk.0101 ruby 1.7.1 (2001-09-01) [i586-mswin32] 6.04s real 0.00s user 0.00s sys 0% cpu
1.7.1では格段に速くなってる。Cygwinには負けるが。 やっぱどんなbenchmarkをしたのか聞いてみないとだめか。
結局このエラーは2001-10-04から出るようになったようだ。 process.cの最後の#ifndef NTの中でrb_cProcStatusを初期化してるのが原因か? と思ったらprocess.cは最近いじられてないな。 単に#ifndef NTを外しちゃってもいい感じだが、 いずれにしてもここはちょっと変?
いやdjgppじゃ無理だって。何を持って行ったんだろう? てゆかmouse eventsの頻度はGIMPを移植した人に聞いたほうがいいでしょう。
例の人というのは実は この人 で、 benchmarkはその最後に示されている URL だそうだ。
試してみるとmswin32,mingw32には関係なく1.7.1だと確かに遅くなる。
なるほど
ddns-update-style interim;
でDynamic DNSってわけか。
Linux 2.4.xでconfigureすると
System Type: linux-2.2
と表示される。見た感じだと気にしなくてもよさそう。
kill -HUPが効かないのはなぜ?と思ったらman dhcpdに書いてあった。
Note: We get a lot of complaints about this. We realize that it would be nice if one could send a SIGHUP to the server and have it reload the database. This is not technically impossible, but it would require a great deal of work, our resources are extremely limited, and they can be better spent elsewhere. So please don't complain about this on the mailing list unless you're prepared to fund a project to implement this feature, or prepared to do it yourself.