Just another Ruby porter,

〜2001年11月中旬〜


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

2001-11-11 (Sun)

dnscache

心持ち速くなった気がする。

RubyUnit 0.4.5

更新。

gcc 3.0.x

--enable-c-mbcharなんだけど、これって全然使いものにならない気がする。 というか、LANG=ja_JP.eucJPという設定でもリテラルなEUC-JPな文字列も化ける。 w3mをmakeし直して気づいた。

-Sしてみるとすでに全然違う文字列だもんなあ。

% echo 'char *foo = "あいうえお";' |gcc -xc - -S -o - |grep string
        .string "BDFHJ"

第2バイト目の最上位ビットを寝かせてるものかと思ったら-0x60してある感じだ。

gcc的にはsourceを見るとLANG=C-EUCJPのようだが、これでも化ける。 第2バイト目だけ拾ってる感じだ。

% echo 'char *foo = "あいうえお";' |LANG=C-EUCJP gcc -xc - -S -o - \
 |grep string
        .string "\242\244\246\250\252"

実際とは違うLANGにするとwarningにはなるが、そのまま出力される。 こうなって欲しいんだけどなあ。

% echo 'char *foo = "あいうえお";' |LANG=C gcc -xc - -S -o - |grep string
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
<stdin>:1: warning: Ignoring invalid multibyte character
        .string "\244\242\244\244\244\246\244\250\244\252"

--enable-c-mbcharをやめるとちゃんと出力される。

% echo 'char *foo = "あいうえお";' |gcc -xc - -S -o -  |grep string
       .string "\244\242\244\244\244\246\244\250\244\252"

Clip-On

どうもモーニング娘。の動きにはついていけてないようだ。 バックの格子模様電飾の所為かもしれんが。


2001-11-12 (Mon)

dnscache

off-line時に引けるのと引けないのとあるんだけど、これは何の違いだろう?

% host -a homepage1.nifty.com
Trying null domain
Trying domain ""
Host not found, try again.
% host -a www.ruby-lang.org  
Trying null domain
rcode = 0 (Success), ancount=1
The following answer is not authoritative:
The following answer is not verified as authentic by the server:
www.ruby-lang.org       49128 IN        CNAME   helium.ruby-lang.org
rcode = 0 (Success), ancount=1
The following answer is not authoritative:
The following answer is not verified as authentic by the server:
helium.ruby-lang.org    49128 IN        A       210.251.121.214

on-line時に引いてみればいいのか。なるほどTTLが短いわけね。

% host -a homepage1.nifty.com
Trying null domain
rcode = 0 (Success), ancount=1
The following answer is not authoritative:
The following answer is not verified as authentic by the server:
homepage1.nifty.com     3600 IN A       202.219.63.7

off-lineにしてちょっと経ってからやってみると減ってる。

% host -a homepage1.nifty.com
Trying null domain
rcode = 0 (Success), ancount=1
The following answer is not authoritative:
The following answer is not verified as authentic by the server:
homepage1.nifty.com     3159 IN A       202.219.63.7

で、3600秒経つと最初に戻るわけね。たしかにwww.ruby-lang.orgはでかい。

w3m noproxy_netaddr

で、w3mもその影響でなぜかタイムアウト待ちするようになった。 ltraceしてみるとgethostbyname("homepage1.nifty.com")で待ってる。 proxyでwwwoffleが動いてるlocalhostを指定してるのになぜそれを引きに行くかな?

grepしてみてわかった。 no_proxyでもip addressで指定できるからgethostbynameする必要があるわけか。 で、ちゃんとそれを殺す指定もあった。oして

ネットワークアドレスでプロキシ除外のチェック       ( )ON  (*)OFF

てな感じだ。OFFにしたらokだ。

昨日のw3mのmakeし直しってのはこのあたりをいろいろいじってた。

Cygwin 1.3.5-1

出たね。一日使ってみたけど特に問題はないようだ。


2001-11-13 (Tue)

Cygwin 1.3.5-2

日刊化してる。今は手を出さないほうがよさそう。 といいつつ、使っているが。

CC='gcc -mno-cygwin'

cvs upしてみると、CC='gcc -mno-cygwin'してるのになぜか

checking for gcc... gcc

と表示される。何が変わったかdiffを取ってみる。

% cvs diff -u1 -r1.68.2.1{8,9} configure.in
Index: configure.in
===================================================================
RCS file: /src/ruby/configure.in,v
retrieving revision 1.68.2.18
retrieving revision 1.68.2.19
diff -u -1 -r1.68.2.18 -r1.68.2.19
--- configure.in        7 Nov 2001 09:01:30 -0000       1.68.2.18
+++ configure.in        13 Nov 2001 08:22:26 -0000      1.68.2.19
@@ -19,3 +19,5 @@
                without_gcc=$withval;;
-       esac], [without_gcc=no])
+       esac], [
+         CC=gcc
+         without_gcc=no])
 dnl If the user switches compilers, we can't believe the cache

このCC=gccが犯人か。

: ${CC=gcc}

としとこう。

libcygwin-ruby16.a

つうわけでln -sしてみた。


2001-11-14 (Wed)

-Wl,-soname,libruby.so.1.6.5

%Rubyでもちらっと先週ぼやいてみたが、 Linuxではsonameがlibruby.so.1.6なため、 過去のバージョンであるlibruby.so.1.6.{1,2,3,4}はゴミとなる。 FreeBSDはlibruby.so.16だし、libruby.so.1.6でも十分なのだが、 結構ちょっと前のバージョンの挙動を見たくなるときもあるし、 せっかく残ってるんだから活用したいでしょ、やっぱ。 バグ報告の内容を再現させるときとか便利だと思うし。 というか、ずらーっとruby 1.0から並べてみるのもいい。

で、結局makefileを用意して

include Makefile
DLDFLAGS = -Wl,-soname,lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR).$(TEENY)
install-link: install
	ln -f $(DESTDIR)$(prefix)/bin/$(PROGRAM) \
	  $(DESTDIR)$(prefix)/bin/$(PROGRAM)-$(MAJOR).$(MINOR).$(TEENY)

とすることにした。このmakefileはconfigureを実行するスクリプトに仕込んどく。 mkmf.rbとかそういうのはこの際考えないことにする。

Linux 2.2.15-pre4

もう-acは出ないので2.2.15-pre4を試す。 が、いきなりエラーを喰らう。

setup.c: In function `c_start':
setup.c:2791: subscripted value is neither array nor pointer
setup.c:2792: warning: control reaches end of non-void function

実際のコードは

static void *c_start(struct seq_file *m, loff_t *pos)
{
        return *pos < NR_CPUS ? &cpu_data[*pos] : NULL;
}

で&cpu_data[*pos]が怪しい。 grep -w cpu_data include/**/*.hしてみるとinclude/asm-i386/processor.hにある。

extern struct cpuinfo_x86 boot_cpu_data;
extern struct tss_struct init_tss[NR_CPUS];

#ifdef CONFIG_SMP
extern struct cpuinfo_x86 cpu_data[];
#define current_cpu_data cpu_data[smp_processor_id()]
#else
#define cpu_data &boot_cpu_data
#define current_cpu_data boot_cpu_data
#endif

なるほど。これが原因か。()がないのがまずいね。

#define cpu_data (&boot_cpu_data)

としてmakeし直し。って全部かよ。

VMware

結局gcc 3.0.xでコンパイルしたkernelだと動かない。 それはそれとして、まだ2週間しか経ってないのに

Your evaluation serial number will expire in 2 day(s).

とはどういうことだ?30日じゃなかったの?


2001-11-15 (Thu)

[Cygwin] setup.exe 2.125.2.5

デフォルトはカテゴリーごとに表示されるようになった。 ちょっと面喰らった。

OSS/Free

ALSAからkernel付属のOSS/Freeに変えたら、音が途切れなくなった。 いちいちalsa-driverを別にmakeするのも面倒になったので、 OSS/Freeでいいや。

bdb 0.25

ruby-talkに出てきたので久し振りに更新しようと思ったら、かなり変更されてる。 もう簡単にはクロスでmakeできない。


2001-11-16 (Fri)

Linux 2.4.15-pre5

今回は何の問題もなくmakeできた。

VMware

予告通りに切れた。 登録したメールアドレスとパスワードでそのまま進めると、 また新しいserial numberが送られてきた。太っ腹だな。

タモリ倶楽部

24人の阿藤海。そうか加藤あいとはアナグラムの関係か。 って改名しちゃったよ。阿藤快。


2001-11-17 (Sat)

配送の乱れ

最近また配送の乱れが目立つ。 headerを見るとrimまではさくっと来てるから、rim内のトラブルか?

ruby-talk ML

爆発してると思ったら逆流してるらしい。Postedを見ると6月とか7月の記事だ。 すでにnews gatewayは止まっているが、 たぶん日付でfilteringすることになるんだろう。

P4W - Posix4Windows

面白そう。始めたのがEarnie Boydだから期待できる。

libcygwin-ruby16.dll.a

libruby.aじゃだめだめだよね。 で、 Andyさんへの返事 も間違っていたことがわかった。

% ln -s ../bin/cygwin-ruby16.dll libcygwin-ruby16.a

だと、 [ruby-dev:15175] にあるようにundefined referenceになってしまう。ここは [ruby-dev:15183] に書いたように

% ln -s ../bin/cygwin-ruby16.dll .

とするか、これだとあまりlibraryらしくないので

% ln -s ../bin/cygwin-ruby16.dll libcygwin-ruby16.dll.a

とする必要がある。tarballはこっちにしよう。

Windows XP

あ、すっかり忘れてたが、出てたのか。あまり盛り上がってない気も。


2001-11-18 (Sun)

ALSAのbeta版

glibcの所為だとばかり思っていた XMMSの音の途切れの原因がALSAだった ようで、じゃ最新のALSAはどうなんだろうと0.9.0beta9のbeta版を使ってみることにした。

だめだ。make installするとdepmod -aのとこでなにをやってるのかわからんが、 返ってこない。というかmodutilsが古くないか?

% insmod -V |& head -1
insmod version 2.3.23

全然古いよ。おかしいな。Linux 2.4.xに挑戦するときに上げたはずなんだが。 あ、それは古い環境か。

% /old/sbin/insmod -V |& head -1 
insmod version 2.4.6

やっぱり。

modutils 2.4.11をインストールしたら、するっとdepmod -aもokだ。

でもconfigいまいちよくわからない。やっぱOSS/Freeでいいや。

ハードリンク

cygwinのlnでも可能。

RubyUnit 0.4.6

更新。


2001-11-19 (Mon)

libcygwin-ruby16.dll.a

だめじゃん。おかしいなあ。金曜日に試したときはうまくいったと思ったのに、 また、undefined referenceだ。やっぱ

% ln -s ../bin/cygwin-ruby16.dll .

にしとこう。あ、でもlibcygwin-ruby16.dll.aとか残ってしまうなあ。 順番はどうなっているかというと、

% i686-pc-cygwin-gcc -L. -lfoo -Wl,--verbose

を実行するとわかる。

attempt to open ./libfoo.dll.a failed
attempt to open ./foo.dll.a failed
attempt to open ./libfoo.a failed
attempt to open ./cygfoo.dll failed
attempt to open ./libfoo.dll failed
attempt to open ./foo.dll failed
attempt to open ./libfoo.a failed

という感じ *1。 つまり、libcygwin-ruby16.dll.aが真っ先に優先される。 symlinkじゃなくてちゃんとimport libraryを用意することにしよう。


*1: なぜかlibfoo.aが2個あるなあ。

2001-11-20 (Tue)

-bmingwとlibmingw32-ruby16.dll.a

どうしてこううまくいかないんだろうね。 -bmingwをつけるとgccは.dll.aを探さなくなる。 と思ったらbinutilsが古い所為か? cygwin-1.3.5-3, binutils-20011002-1, gcc-2.95.3-5で作り直したらちゃんと探すようになった。 実はone treeにしたらなんか面倒なことになったんだが、 それはまた別の日にでも書こう。

というわけで今日から最新になるのでよろしく。 cygwin 1.1.8のcygwin1.dllではもう動かない。

cygwin1-1.1.8-2関係は消しとこう。


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