Just another Ruby porter,

〜2001年10月下旬〜


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

2001-10-21 (Sun)

ntp 4.1.0

なんとなくntp 4.1.0をインストールした。

lftp 2.4.4

checking the maximum length of command line arguments...

と表示したきり長い時間が掛かる。メッセージの通りのチェックをしてるわけだが、 実際の処理はこんな感じで再帰的に自分自身を呼ぶようになっている。

if test "X$1" = X--fallback-echo; then
  # used as fallback echo
  shift
  cat <<EOF
$*
EOF
  exit 0
fi

i=0
testring="ABCD"

# If test is not a shell built-in, we'll probably end up computing a
# maximum length that is only half of the actual maximum length, but
# we can't tell.
while test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
           = "XX$testring" &&
        new_result=`expr "X$testring" : ".*" 2>&1` &&
        lt_cv_sys_max_cmd_len=$new_result &&
        test $i != 17 # 1/2 MB should be enough
do
  i=`expr $i + 1`
  testring=$testring$testring
done
testring=
# add a significant safety factor because C++ compilers can tack on massive
# amounts of additional arguments before passing them to the linker.  1/4
# should be good.
len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len - $len`

testringが倍倍で増えていくので、いつかE2BIGになる。

家の環境だとそれほど時間が掛からない。 家はbash 2.05のstatic link、会社はPlamo 2.2そのままのbash 2.04。 家のbash 2.04でも遅いのでやはり2.04が原因か?

bash 2.04

$ time hoge $(ruby -e 'puts "a"*1024*8')
bash: hoge: command not found

real    0m1.451s
user    0m1.400s
sys     0m0.050s
$ time hoge $(ruby -e 'puts "a"*1024*16')
bash: hoge: command not found

real    0m6.074s
user    0m5.970s
sys     0m0.080s
$ time hoge $(ruby -e 'puts "a"*1024*32')
bash: hoge: command not found

real    0m25.440s
user    0m25.370s
sys     0m0.050s
$ time hoge $(ruby -e 'puts "a"*1024*64')
bash: hoge: command not found

real    1m39.601s
user    1m39.480s
sys     0m0.110s
$ time hoge $(ruby -e 'puts "a"*1024*128')
bash: hoge: command not found

real    6m27.637s
user    6m27.540s
sys     0m0.070s

見事なまでにコマンドラインのバイト数の2乗にほぼ比例してる。 2.05だと一瞬だ。

$ time hoge $(ruby -e 'puts "a"*1024*128')
bash: hoge: command not found

real    0m0.631s
user    0m0.510s
sys     0m0.120s

Mean Machine

Mean Machine AyumiでGoogleしてみるとやはり「スワロウテイル」の伊藤歩らしい。

Mr.Moonlight 〜愛のビッグバンド〜

吉澤安倍後藤のユニットかと思った。


2001-10-22 (Mon)

UW-IMAPDてんこもり拡張パック

qmailでPOPもAPOPもIMAPも使いたいので、UW-IMAPDてんこもり拡張パックを入れた。 で、なぜかユーザからメールが0通のままだと苦情がくる。

# ls /home/*/Maildir/new

するとそれなりにスプールされてるし、何が原因かさっぱりわからない。 しかも俺だけはPOPで読めたりする。 なにが違うのかいろいろ探ってみると、俺だけ~/.qmailがある。 これか。ダミーユーザを作って試すとやっぱそうだ。うーむ。

~/.qmailがないときのデフォルト Maildir           ~/Maildir

って書いてあるんだけどなあ。なぜに?

# cd /home
# for i in *; do su $i -c 'echo ./Maildir/ >> $HOME/.qmail'; done

としたら、ばんばんメール読めるようになったって。めでたしめでたし。 あ、C-x *してftpとwatanabeは外したのでそこんとこよろしく。


2001-10-23 (Tue)

emacs 21.1

21.1がemacs 21の正式リリースになるのか? たしかに今までが21.0.xだったから、21.0にするわけにはいかないよねえ。 会社のも21.0.105から21.1へ更新。


2001-10-24 (Wed)

MAILCHECK

NISの設定もとりあえずできて、home directoryがautomountで共有できるようになった。 が、突然Solaris 2.5でshが動かなくなる。

% sh
couldn't set locale correctly
sh: -1: bad number

てな感じだ。localeは

% echo $LANG
ja_JP.eucJP

がいけないのはすぐわかった。 OSTYPEかなにかを見て判断すればよさそう。

% LANG=ja
% sh
sh: -1: bad number

一個減った。この-1は一体どこからくるんだ?環境変数か?

% env - sh
$ exit
%

そうみたいだ。じゃgrepしてみよう。

% env |grep -e -1
MAILCHECK=-1

MAILCHECKか。適当に-1で実験してたのを忘れてた。

% unset MAILCHECK
% sh
$ exit
%

なるほどね。それにしてもその程度でshも死ななくてもいいじゃん。


2001-10-25 (Thu)

Linux 2.4.13

お約束なので入れた。 というか実は昨日2.4.12-ac5を入れたばかりだったりするのだが。


2001-10-26 (Fri)

GCC 3.0.2

2ヶ月毎に出すという例の約束をきっちり守っているね。


2001-10-27 (Sat)

Linux 2.4.13 ac1

さっそくgcc 3.0.2でmakeしたら2時間半かかった。

% time make oldconfig dep clean bzImage modules
  ... 7144.81s user 1275.32s system 93% cpu 2:29:54.49 total

Linux 2.4.13 ac2

もう出てるよ。

% time make oldconfig dep clean bzImage modules
  ... 5545.09s user 903.97s system 93% cpu 1:54:23.40 total

あれ?なぜそんなに違う? 違いと言えばac1自体は2.4.13のオリジナルのカーネル上で、 ac2はac1のカーネル上でmakeしてる。 acで採用されてるVMのほうが速いってことか?

ruby-talk ML

爆発してるなあ。


2001-10-28 (Sun)

Maildir

imap-2001.RC1-qmav.4を調べてみると、

--- src/osdep/unix/maildir.c.orig	Wed Oct  3 10:23:24 2001
+++ src/osdep/unix/maildir.c	Sat Oct 27 23:52:09 2001
@@ -357,3 +357,3 @@
       if (*maildir == '/') {
-          snprintf (dst,MAILTMPLEN,"%scur",maildir);
+          snprintf (dst,MAILTMPLEN,"%s/cur",maildir);
       } else {

が、正解だと思う。maildir.hでは

#define MAILDIRPATH "Maildir"

となってて、それがmaildirに入り、最終的にdstは

/home/watanabe/Maildircur

という感じになってしまう。 qmail的にはMAILDIRPATHを"Maildir/"とするのもありだと思うが。

qmailでyoubin

結局youbindに手を入れることにした。 これ がパッチ。 強制的にEMPTYにする命令を追加して、定期的なspool_check()をやめた。 do_Emptyはdo_Updateをそのままコピーし、up->sizeとup->timeを0にしただけ。 で、 先日のスクリプト と組み合わせて、 たとえば

sendto youbindが動いてるホスト biff "EMPT 0 $USER"

を実行すればyoubindから各クライアントへ"STAT 0 0"が届き、 めでたく旗が寝ることになる。

先日のスクリプトの副産物として、 /var/spool/mail/watanabeのサイズを見ると受け取ったメールの総数がわかるようになった。 crontabで1/1の00:00にリセットしよう。

youbindに手を入れてしまったんだから、biffの中身もちゃんと解析しようかな。

offset@watanabe:/var/spool/mail/watanabe

という感じで来るので、procmailで場所を変えればいいはずだ。 /var/spool/mail/を使うのはやはり抵抗がある。

Linux 2.4.13-ac3

ひょっとしてcompilercacheが原因かと思いPATHから外してみる。

% time make oldconfig dep clean bzImage modules
  ... 4212.13s user 425.59s system 95% cpu 1:20:58.53 total

え、そんなに速いの?うーむ。 同じバージョンのカーネルを何度もmakeするときは効くんだろうけど、 -acとかは結局cppしても結果がまったく同じにはならないんだろう。 というわけでruby binariesをmakeするときだけcompilercacheを使うようにしよう


2001-10-29 (Mon)

PPxP 200108041

PPxPを新しくしたら動かなくなってしまった。 結局0.99120923に戻したわけだが、 それにしても、なぜtap1になってしまうんだろう?


2001-10-30 (Tue)

PPxPとtun

なるほど。もうethertapは要らないわけか。でも

% ppxp
SysIfOpen: No such device
% ppxp
PPxP version 2001080415
interface: tun0
ppxp> quit

と一回目だけ失敗する。OS/Linux/netif.cでDEBUG_IFをdefineしてみると、 DummyIoctl("tun")でloadできて二回目からは大丈夫という感じだ。 ということはmoduleにしなければうまくいくんだろうか? こんな感じ にすると一回で成功する。

Linux 2.4.13-ac5

-ac4を試す暇もなく-ac5だ。 CONFIG_NETLINKをnにしてCONFIG_TUNをmにした。

ありゃ

mingw32ではなぜかmatherr()がないんですよね。 というわけでtcltklib.cはこうなってます。

#if !defined __MINGW32__
/*
 * The following variable is a special hack that is needed in order for
 * Sun shared libraries to be used for Tcl.
 */

extern int matherr();
int *tclDummyMathPtr = (int *) matherr;
#endif

mswin32版tcltklib.soだとmatherrがundefinedになるんだと思います。 適当にreturn 0;だけのmatherr()を用意すべきかなあ。


2001-10-31 (Wed)

RubyUnit 0.4.3

更新。

なかださん

mailboxがあふれてるらしいです。と今頃書いても遅いか。 旅行中?

spam

いきなりRe:をつけてくるspamが最近の流行りか? たしかにRe:があれば無条件によしとするfilterはありがちだ。 いかにも商談相手と間違えてMLへ送ってしまったという振りをする手口もあった。 たぶん気づかない人のほうが多いと思う。凝り過ぎ。

10月のspamは全部で35通。 今月は韓国からのspamが多かった。ってどうせなら読める人を選んでから送ってくれ。


<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!