〜2002年11月上旬〜
452通。あっさり400を越えた。そのうち129通が韓国から。
どちらもwin/にconfigureがあるのでmakeは簡単。
/usr/include/w32api/winsock2.h:95:2: warning: #warning "fd_set and associated macros have been defined in sys/types. This may cause runtime problems with W32 sockets"
が気にならないでもないがwish84も動いたのでよしとしよう。 でも、tcltklib.soはだめだなあ。
% ruby -rtcltklib -e0
が返ってこない。--enable-tcltk_stubsがまずいようだ。うーむ。 ActiveTcl 8.4.0もSEGVるし、どうもTcl/Tk stubはバイナリ互換がなくなったような感じだ。
たまっていたメールをやっと全部読んだ。
ruby: * error.c (init_syserr): remove sys_nerr dependency.
というSubjectのruby-cvsのcommit mailはChangeLogしかcommitされてない。 報告しとこう。
それはそれとしてsys_nerrを使わないようにしたんだろうか?
Linux上でext/tk/sampleにあるスクリプトを試してみると、一応動く。 tkhello.rbだけはquitで終了すると
Tcl_Release couldn't find reference for 0x80b7960 zsh: abort ruby tkhello.rb
となるのが気になる。window managerの×ボタンを押すと正常に終了する。 lib{tcl,tk}8.3.soを指定すれば問題ない。 tkbiff.rbはよくわからない挙動なので無視。
Win32のほうで動かないのはなぜだ? ActiveStateがまたなんかいじったんだろうか? ActivePerlもそうだったけど、どうもActiveStateってとこは余計な仕事だけ増やしてくれるので好きじゃない。jperlも苦労したんだよねえ。
ほとんどこの日記がヒットしてしまうのはいかがなもんでしょう?
[ruby-dev:18628]を調べようとしたら、knuさんが変更した-j対応の所為か、 ext/配下のmake installが全く機能していなことに気づいた。 makeにinstallという引数が渡ってないようだ。
というわけで、まずはknuさんの修正を待つ。
月曜日ばかり休みになるのはあまりhappyじゃない。 飛び石連休の間を埋める楽しみもなくなるし。
そういえば http://jarh.hoops.livedoor.com/はどうなるだろう?実は退会する方法がわからず放置しておいたんだが、 まだ残ってる?
frame bufferもサポートされたようだ。
なんか雰囲気が伝わって面白い。
tmpreaperとはいったい何だろう? googleで検索してみるとDebianにあるパッケージらしい。 説明を読んでみるとtime_spec時間以上アクセスされなかったファイルを消すということらしい。 ちょっと試してみても特に問題は見当たらなかった。 tmpreaperで何が消されたのかがわからないと再現は難しそう。
ChangesにSergey Okhapkinさんの名が。懐しい。
確かになぜかparserを作る人が多い。XML parserもいっぱいあるし。 Ruby界には数学好きが多いからなんだろうか?
ruby-bugs-jaに
RUBYのバグでは無いのですが、 net/telnet内のputメソッドは改行を含めないと ありますが、どうやら改行付きで送信されてしまうようです。
と報告があった。Net::Telnetにはputメソッドは存在しないし、 putsだとすると改行は含んで当たり前だし、 「あります」とはどのドキュメントにあるんだろう?
あ、実はputじゃなくてprintで、 lib/net/telnet.rbのコメントに書いてあるこの部分か?
Telnet#puts() adds "\n" to the last of "string". WARNING: Telnet#print() NOT adds "\n" to the last of "string", in the future.
としたらin the futureだよね。
まつもとさんはまだ帰国してなかったようだ。
なんだかんだで、-2になったようだ。
ExerbをLinuxへ移植することは可能だと思うけど、それって意味があるのだろうか?
うーむ。
% irb irb(main):001:0> 3.times do |i| p i end 0 1 2 3
となるので4回だと思う人もいるわけだ。そういえば以前もirbで誤解してる人がいたよね。 3はtimesの戻り値で
irb(main):002:0> 1 * 3 3
の3と同じ意味。そのあたりはユーザもいじれるけど、lib/irb/init.rbの@CONF[:PROMPT]のdefaultは
:DEFAULT => { :PROMPT_I => "%N(%m):%03n:%i> ", :PROMPT_S => "%N(%m):%03n:%i%l ", :PROMPT_C => "%N(%m):%03n:%i* ", :RETURN => "=> %s\n" },
としたほうがよさそう。
% irb irb(main):001:0> 3.times do |i| p i end 0 1 2 => 3
これなら誤解しようがない。
更新。
configurationが LinuxKernelConfベースになった。これからはmake oldconfigができるからちょっと楽になるかな。
localeをyesにしたらエラーになった。
../../../include/bits/uClibc_locale.h:95:37: \ bits/uClibc_locale_data.h: No such file or directory
まだlocaleはexperimentだし、次のリリースに期待しよう。
久し振りにRubyをuClibcでmakeしてみると拡張ライブラリを作るところで
/usr/i386-linux-uclibc/lib/crt0.o: In function `_start': /usr/i386-linux-uclibc/lib/crt0.o(.text+0x25): undefined reference to `main'
となってしまう。例の-no-undefinedが原因だ。 glibcは-sharedのときはmainを参照しないようにcrt?.oが分かれているが、 uClibcはそこまでは考えてないらしい。 mainは必要ないけどsymbolとしては必要なので
-Wl,--defsym,main=_start
としてごまかしてみよう。_startはentry symbolだから必ず存在する。 とりあえずよさそう。configure.inでuClibcかどうか判断するか。
あ、ひょっとしてlibruby.soにmain.oを含めれば解決するかな? いけたよ。とすると例の作戦も悪くないかもしれない。って何だっけ?