Just another Ruby porter,

〜2003年5月中旬〜


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

2003-05-11 (Sun)

[Ruby] yaml

ruby -ryaml -e0はエラーにならなくなったが、まだ怪しいらしい。

[Linux] BusyBox

なるほど。それはautoconfのBusyBox対応といえるかも。 autoconfがhead -1じゃなくてsedを使っているのは、 なるべく少ないコマンドで済むようにってことだと思うんだけど。

% busybox |& head -1
BusyBox v0.60.5 (2002.12.08-16:08+0000) multi-call binary
% busybox sed 1q 
sed: invalid command

0.60.5でもまだ対応してないか。

[Cygwin] authorized_keys

思い出した。

% setfacl -m 'g:SYSTEM:r--' ~/.ssh/authorized_keys

としてたんだ。LocalSystemにだけ読めればいいわけだから。 tarじゃ復元できないな、やっぱ。

[Cygwin] sshでloginすると…

なぜかnmakeから起動したCygwinのコマンドが吐くメッセージとかが消えてしまう。 このためにRubyをnmakeするとsedの結果が0バイトになる。困った。 Borland makeも同じだなあ。cygcheckしてみると

% cygcheck -s

Cygwin Win95/NT Configuration Diagnostics
Current System Time: Mon May 12 01:16:37 2003

Windows 2000 Professional Ver 5.0 Build 2195 Service Pack 3

Path:   c:\cygwin\home\watanabe\bin
        c:\cygwin\usr\local\bin
        c:\cygwin\bin

とここまで表示したまま止まってしまう。telnetだと問題ない。なぜ?

[Windows 2000] ログオフに時間がかかる

なぜかログオフすると「設定を保存しています」と表示したまま1分ほど返ってこない。 ぐぐってみると ここが見つかった。Q329170をアンインストールか。 そういえばこの変なイベントも気になってたんだよね。 でも直らない。うーむ。 プリンタなんかないから最初からPrint Spoolerなぞ無効にしてるんだけどなあ。


2003-05-12 (Mon)

[Cygwin] sshdとstrace

よくわからないので、straceを取ってみることにする。

% strace -o date.log date

なぜかdateも表示されない。気になってobjdumpしてみる。

% objdump -p =strace.exe | grep 'DLL Name'
        DLL Name: msvcrt.dll
        DLL Name: msvcrt.dll
        DLL Name: ADVAPI32.DLL
        DLL Name: KERNEL32.dll

ほう。Cygwinとは関係ないのか。だからdateも表示されないわけやね。 nmakeと同じ症状だ。

date.logを見ると/dev/coninだの/dev/conoutだのがある。 そんなのopenしたらconsoleになっちゃうじゃん。これが原因か。 でも対策はわからない。環境変数CYGWINにttyを入れても何の効果もない。

[Cygwin] sshdとcygrunsrv

sshとtelnetの違いといえばcygrunsrv経由かどうかなので、 chown watanabe /etc/ssh_host*key /var/emptyして sshd -Dだけで起動して試してみる。うまくいった。 ということはcygrunsrvが原因か?

[Cygwin] sshdとinetd

ついでにinetd経由でsshdを起動させてみる。/etc/inetd.confに

ssh  stream  tcp     nowait  root    /usr/sbin/sshd sshd -i

を追加。いけた。とりあえずこれでいこう。


2003-05-13 (Tue)

[Ruby][MinGW] __USE_CRTIMP

最新のmingw-runtime 3.0.1でrubyをmakeしてmake testするとエラーになってしまった。 アナウンスでなんかdefineしろって言ってた気がするので確認すると、

This release among other things adds a _CRTIMP modifier to the import
declarations.  It's default definition is set to nothing.  It will be
set to __declspec(dllimport) if you -D__USE_CRTIMP which will provide a
slight speed improvement to your process but will cause multiply defined
symbols if you provide a local definition of a shared function, for
example malloc.

ということらしい。試しに-D__USE_CRTIMPしてみると落ちない。 なんかよくわからんなあ。mingw-runtime 2.4.1に戻すと問題ない。うーむ。 win32/win32.cだけが関係してるようだ。

とりあえずconfigure.inで-D__USE_CRTIMPを追加しておこう。


2003-05-14 (Wed)

[Ruby][MinGW] `ls`

test.rbのどこで落ちるのか調べてみると、

test_ok(`echo foobar` == "foobar\n")

を実行するところだった。もっと簡単に`ls`でもだめだった。 gdbで見てみるとpipe_exec()がreturnするときなので、 スタックが壊れている可能性が高い。

原因がわかれば-D__USE_CRTIMPじゃない方法で解決できると思うんだけど。


2003-05-15 (Thu)

[Ruby] 1.6

1.6に変更が入った。先月以来だ。 例の件を試すと全然問題ない。 pipe_exec()を比較してみると1.6と.18では違いがない。 ということはここから呼ばれる別の関数でスタックを壊すやつがいるのか?

spam

今月はすでに600通を越えてる。


2003-05-16 (Fri)

[Linux] 空白が`へ化ける

GCC 3.3が出たので早速会社のLinux BOXで試したが、 なぜかgcc/cp/call.cがエラーになってしまった。

&& !`DECL_CONSTRUCTOR_P (fn));

と`が入ってる。別の場所で展開しなおしてみるとそこは

&& ! DECL_CONSTRUCTOR_P (fn));

だった。うー。 diffを取ってみると違うのはそこだけだったが、ディスクがやばいか?

compareでなにかわかると思うが、時間切れ。


2003-05-17 (Sat)

[GNU] GCC 3.3

今回はちょっと趣向を変えて、--disable-sharedをつけた。

% 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 --disable-shared
% make bootstrap
libstdc++をconfigureしはじめたら^C
% vi Makefile
TARGET_CONFIGARGSから--disble-sahredを削除
% make bootstrap

と変な手順で。 つまりlibstdc++はenable shared、libgcc_sは作らないという意味。 libstdc++だけに--enable-sharedを渡せればいいんだけど。

地震

また震源は千葉県北東部だ。同じ場所か?


2003-05-18 (Sun)

[Linux] DietLinux

dietlibcをスタティックにリンクしたdistroらしい。 ISOイメージは用意されてないが、それを作る Makefileは用意されてる。

[GNU] gcc -V

% gcc -V 3.2.2 -v
gcc: couldn't run `i586-pc-linux-gnu-gcc-3.2.2': No such file or directory

なんでこんな仕様にしたんだろう? changesを見てもその点については書いてない。

XStow

C++で書かれた Stow。Perlは必要ない。XはX11とは関係ない。

[Ruby] TMail 0.10.7

更新。


2003-05-19 (Mon)

[Cygwin] lftp 2.6.5

そのままconfigureしてmakeすると _WinMain@16がundefined errorになるのは相変わらずだが、 ふとsrc/.libsを見るとcygintl-2.dll-defなんてのがあって、 そんなもんを作ろうとしているのかとなんとなく原因がわかってきた。 試しに--disable-nlsしてみたら通った。 もともと--disable-nls派だから、これで問題なしだ。

ぐぐってみると ここにバイナリはあるようだ。

[Cygwin] Ruby 1.6.8-2

-2になってるけど、何が変わったんだろう?

[Ruby] mallocの謎

robjをvolatileにすればいけるはずです。 ここから始まるのスレッドが参考になると思います。


2003-05-20 (Tue)

mallocの謎の2

Windows 2000だとmalloc, freeを2回ずつ呼ぶテストプログラムは正常に動きます。 Win98というのがかなりやばいんじゃないかなあ。

heap_chunk_in_mbの設定を試してみるぐらいしか思いつきません。 このあたりの話が役に立つかも。

[Ruby] syck

bcc32でエラーになるのを放っておくのもまずいので、 1.6対応して強制commit。さてwhy君はどういう反応を見せるか?


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