Just another Ruby porter,

〜2003年2月上旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2003-02-01 (Sat)

1月のspam

406通。yarpc MLは1月で閉鎖されたはずなのに今日もspamは来てる。

[Ruby] OptionParser 0.12

更新。


2003-02-02 (Sun)

[IRC] ircIIのlog

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が欲しくなるね。

[Linux] Fluxbox 0.1.14

昨日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側がでかくなった。なるほど。大きさはやっぱ揃えるわけか。


2003-02-03 (Mon)

[Ruby] rubymail 0.13

更新。

[Ruby] 助田プロダクツ

たぶんなんかの情報が更新されて、 どどっとRAAに出てきたんだと思うけど、 よくわからないのは win32oleで、なぜ0.5.2ではなく0.5.1なんでしょう?


2003-02-04 (Tue)

[Virus] WORM_SOBIG.A

久し振りにbig@boss.comから例のアレをもらう。 ヘッダを見るとイタリアかららしい。 と書いてるうちに日本からもう一個。

[Ruby] JARH

print %w[Just another Ruby hacker,] * " "

2003-02-05 (Wed)

[Ruby] strongtyping 2.0.1

更新。


2003-02-06 (Thu)

[Linux] syscalltrack 0.82

これは面白そうだ。

村上里佳子のだんな

渡部篤郎(わたべあつろう)。で、あっちは渡辺篤史(わたなべあつし)。


2003-02-07 (Fri)

[Linux] syscalltrack

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を毎回いじってる様も見える。

[GNU] GCC 3.2.2

リリースされた。makeは明日だな。


2003-02-08 (Sat)

FreePAN(The Free Programming Archive Network)

ここってファイルごと全部集めてるんだね。今はRubyしかないようだけど。

[Linux] Fluxbox

1週間使ったけど、なぜか重い。Rubyをmakeしてるとxmmsの音が途切れる。 load averageも4に近いもんなあ。というわけでIceWMに戻した。

[GNU] GCC 3.2.2

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

2003-02-09 (Sun)

[Ruby] RubyMail 0.14

更新。

[GNU] Bisonの秘密

1.5の次が1.75で、その次が1.875ということは、

1.9375, 1.96875, 1.984375, ...

と続くのだろうか?

[@nifty] ニフティ

半年振りぐらいでニフティにアクセスした。 Ruby/libcurlを使って発言するスクリプトができてからとか考えているうちに早半年。 小澤さんの気持ちがなんとなくわかる。

フォーラム自体かなり衰退しているので、 そんなスクリプトも日の目を見ることもないかもしれない。

[Cygwin] Cygwin 1.3.20-1

とりあえず問題なし。cygtclという名前に関して議論あったようだけど、 Tcl/Tk 8.4からはcygというprefixは止めたようだ。 Rubyのext/tcltklib/stubs.cもcyg prefix対応しようと思ってたけど、 しなくてよかったというか。

[Ruby][Cygwin] Tcl/Tk 8.4

やっぱ stubだと動かない。Tcl/Tkをふだん使わないだけにデバッグする気にならないとこがだめだめだ。

[Ruby][MinGW] -L"/lib"

例の-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"になってるね。 ということはうまい解決策があるはずだ。 明日も休みだしそのあたりを調べよう。


2003-02-10 (Mon)

[Ruby] 浮動小数点値リテラル

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というのはおかしいとも言えるか。

QDBM

面白そう。Cygwinも ちょっと変更すればmake checkが通った。 mmapを使ってるのでMinGW等への移植は面倒そうだ。

[Ruby] make --no-print-directory no-isntall DESTDIR=/tmp

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を使うわけにはいかない。

[Ruby] make -n install

Makefile.inのほうもknuさんの変更で$(MAKE)が間接的な参照になってしまい、 GNU makeでも

make -n install

が役立たずになってるけど、いいのかな? 最近はmake no-install派なもんでどっちでもいいんだけど。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!