〜2003年2月上旬〜
406通。yarpc MLは1月で閉鎖されたはずなのに今日もspamは来てる。
2003-02-02.logのような名前でIRCのlogを取りたくなって適当に作ってみた。
alias prefix_zero { @ function_return = $0 if (function_return < 10) { @ function_return = [0$0] } } alias get.date { @ MON_NAMES = [Jan Feb Mar Apr May Jun Jul Aug Sep Nov Dec] @ now = [$stime($time())] @ date.0 = [$word(4 $now)] @ date.1 = [$prefix_zero($rmatch($word(1 $now) $MON_NAMES))] @ date.2 = [$prefix_zero($word(2 $now))] assign -MON_NAMES assign -now } get.date eval echo $date[0]-$date[1]-$date[2]
やっぱ、strftimeが欲しくなるね。
昨日makeしたFluxboxを使いはじめた。 まだkeysをちょっといじったぐらい。
Mod1 j :NextWindow Mod1 k :PrevWindow Mod1 i :Minimize Mod1 u :Raise Mod1 Shift j :ExecCommand kterm &
の4つはtwmの頃からのキーバインディングなので外せない。 ktermの起動はなぜjなのかというと、 NEWS OSではjtermだったからというのが理由なんだけど、 10数年使い続けるともはや変えることもできない。あとはtabのために
Mod1 n :NextTab Mod1 p :PrevTab
も追加。 xclockのtabを中ボタンでドラッグしてktermへ集めてみたら、 xclock側がでかくなった。なるほど。大きさはやっぱ揃えるわけか。
久し振りにbig@boss.comから例のアレをもらう。 ヘッダを見るとイタリアかららしい。 と書いてるうちに日本からもう一個。
print %w[Just another Ruby hacker,] * " "
これは面白そうだ。
渡部篤郎(わたべあつろう)。で、あっちは渡辺篤史(わたなべあつし)。
RUNNINGを読むと
% sudo module/sct_load % sudo =sct_config upload sct_config/sct_example.conf
とすればいいらしい。
% sudo cat /dev/sct_log syscall: 172["zsh"]: 10_unlink("/home/watanabe/.zshhist.172") = -2 (rule 2) syscall: 172["zsh"]: 10_unlink("/home/watanabe/.zshhist.172") = 0 (rule 2) syscall: 172["zsh"]: 10_unlink("/home/watanabe/.zshhist.LOCK") = 0 (rule 2) syscall: 298["zsh"]: 20_getpid(void) (rule 3) syscall: 298["sudo"]: 5_open("/etc/passwd", 0, 438) (rule 9) syscall: 298["sudo"]: 5_open("/etc/passwd", 0, 438) (rule 9) syscall: 298["sudo"]: 20_getpid(void) (rule 3) syscall: 298["sudo"]: 213_setuid(0) (rule 10) ^C
おお、ログが残ってる。 setopt sharehistoryしてるから.zshhistを毎回いじってる様も見える。
リリースされた。makeは明日だな。
ここってファイルごと全部集めてるんだね。今はRubyしかないようだけど。
1週間使ったけど、なぜか重い。Rubyをmakeしてるとxmmsの音が途切れる。 load averageも4に近いもんなあ。というわけでIceWMに戻した。
DESTDIRが使えるようになったらしい。
% CFLAGS=-Os CXXFLAGS=-Os CC=/usr/bin/gcc ../configure \ --enable-languages=c,c++ --with-system-zlib \ --enable-sjlj-exceptions --enable-threads \ --disable-version-specific-runtime-libs --disable-nls \ --without-included-gettext --without-catgets % make BOOT_CFLAGS=-Os STAGE1_CFLAGS=-Os CFLAGS=-Os \ DEBUG_FLAGS= CONFIG_CXXFLAGS='-ffunction-sections -fdata-sections' \ bootstrap
半年振りぐらいでニフティにアクセスした。 Ruby/libcurlを使って発言するスクリプトができてからとか考えているうちに早半年。 小澤さんの気持ちがなんとなくわかる。
フォーラム自体かなり衰退しているので、 そんなスクリプトも日の目を見ることもないかもしれない。
とりあえず問題なし。cygtclという名前に関して議論あったようだけど、 Tcl/Tk 8.4からはcygというprefixは止めたようだ。 Rubyのext/tcltklib/stubs.cもcyg prefix対応しようと思ってたけど、 しなくてよかったというか。
やっぱ stubだと動かない。Tcl/Tkをふだん使わないだけにデバッグする気にならないとこがだめだめだ。
例の-lruby-static対応で入った変更で--prefix=''とした場合に
gcc -mno-cygwin -shared -s curses.def \ -L"C:/cygwin/home/watanabe/ruby/mingw" \ -L"/lib" -o curses.so curses.o \ -lmsvcrt-ruby18 -lcurses -lwsock32 curses.o(.text+0x130):curses.c: undefined reference to `SP' <以下省略>
となってしまうことに気づく。/libはCygwin専用だしなあ。configure時に
--libdir=/usr/lib/mingw
を追加するとそこにインストールしてしまうし。うーむ。
mswin32だと-L"/usr/lib"になってるね。 ということはうまい解決策があるはずだ。 明日も休みだしそのあたりを調べよう。
rb_warning()はverbose modeじゃないと出ません。そこがrb_warn()との違い。
% ruby -ve '.1' ruby 1.8.0 (2003-02-09) [i386-linux] -e:1: warning: no .<digit> floating literal anymore; put 0 before dot -e:1: syntax error -e:1: warning: useless use of a literal in void context
でもこれが原因で絶対にsyntax errorになるわけだから、 warningというのはおかしいとも言えるか。
knuさんの変更でまただめになってしまった。 どうも意図が伝わってないようだ。変更を無にされている。 とりあえず'--'だけでも削除するようにしよう。
何が問題かというと
make --no-print-directory no-isntall DESTDIR=/tmp
と実行すると、ext/extmk.rbで
["--no-print-directory", "--", "DESTDIR=/tmp", "-n", "DESTDIR=/tmp"]
のように$mflagsに"--"が間に入り、"-n"がターゲットになってしまい
make[1]: *** No rule to make target `-n'. Stop.
makeがエラーになる。 Cygwinのmakeだと--unixオプションが勝手に指定されるので、 気づかないうちに"--"が入ることになる。
消された
$mflags.delete_if{|x| x == '-' || x == '--'}
を復活させるのも芸がないので、これを使わなくて済む方法を考えよう。 要するに"-n"が"--"の後にあるのがまずいんだから、これを前に持ってくればいい。 つまり
$mflags << '-n' if $dryrun
を
$mflags.unshift '-n' if $dryrun
とすればいいだろう。これで
["-n", "--no-print-directory", "--", "DESTDIR=/tmp", "DESTDIR=/tmp"]
となる。ついでにDESTDIRなんだけど、これも
$mflags << "DESTDIR=#{$destdir}"
じゃなくて
$mflags |= ["DESTDIR=#{$destdir}"]
としよう。そうすれば最終的に
["-n", "--no-print-directory", "--", "DESTDIR=/tmp"]
となる。
と思ったら$mflags.set?というmethodの存在でつまづく。
$mflags |= ["DESTDIR=#{$destdir}"]
で別のオブジェクトになるので、set? methodが無効になってしまう。
$mflags << "DESTDIR=#{$destdir}" unless $mflags.index("DESTDIR=#{$destdir}")
とするか、単純に順番を変えよう。
$continue = $mflags.set?(?k) $mflags |= ["DESTDIR=#{$destdir}"]
あ、-n, -kの判断も//iで代用しちゃってるねえ。 $nmakeを全然見てないので、なかださんの変更もなかったことになってる。 ちょっとまずいなあ。Borland makeは
-N Increases MAKE's compatibility with NMAKE -n Prints commands but does not do them
のように別々のオプションとして存在するので、単純に//iを使うわけにはいかない。
Makefile.inのほうもknuさんの変更で$(MAKE)が間接的な参照になってしまい、 GNU makeでも
make -n install
が役立たずになってるけど、いいのかな? 最近はmake no-install派なもんでどっちでもいいんだけど。