Just another Ruby porter,

〜2003年4月下旬〜


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

2003-04-21 (Mon)

[Ruby] JARHのwarning

そりゃもういっぱい

warning: parenthesize argument(s) for future version

が出てるわけなんだよね。これをなくすのは簡単で()を適当につければいい。 ただ困ったのは

print(eval %-eval %: %|Just another Ruby hacker,| :-)

だ。これに()をつけると

print(eval(%-eval %: %|Just another Ruby hacker,| :-))

となる。これじゃ台無し。でもよく見るとprintの()はなくてもいい。

print eval(%-eval %: %|Just another Ruby hacker,| :-)

おぉ、これでいいのか。

[Ruby] Arrary#select

Array#selectの話は実はJARHのwarningをなくす過程で見つけた問題であった。これができないと

$><<'RbyckJust another,'.split('').select(5..16,9,0,6,1,2,9,14,10,3,4,15..17)

$><<'RbyckJust another,'.split('').select(5,6,7,8,9,10,11,12,13,14,15,16,9,0,6,1,2,9,14,10,3,4,15,16,17)

としないといけなくなる。 ま、元々そんなにいい出来でもないので、なくしちゃってもいいんだけど。

[Ruby] *1..1

これも仕様が変わった。

% ruby-1.7.2 -e 'p *1..1' 
1
% ruby-1.8.0 -e 'p *1..1'
1..1

JARHには

print *"Just another Ruby hacker,".."Just another Ruby hacker,"

というのがある。どうしようかなあ。

print *("Just another Ruby hacker,".."Just another Ruby hacker,").to_a

としてみよう。*をつけないと1.6ではprintの()とみなされる。

[PC] キーボード

Happy Hacking Keyboard LiteのUS配列。 会社では10年程前のAXキーボードのUS配列。 根がNEWSなもんだからUS配列じゃないとだめなのだ。 106/109でもUS配列に変更して使う。


2003-04-22 (Tue)

[Ruby] bz2

なぜかgetできないなあ。

[Win32] readlineとgdbm

うささん協力の下、MinGW, VC++, BCC32用のバイナリを用意した。 次はzlibの予定。


2003-04-23 (Wed)

[Ruby] REXML 2.4.8

更新。

[Win32] Zlib 1.1.4

Makefileを分割してみた。


2003-04-24 (Thu)

[Ruby] ruby-talk 70000

70000を越えた。60000からは4ヶ月。ちょっとペースが落ちたな。

[Cygwin] setup -5

md5sumのチェックって結構うっとうしい。setup -5でチェックしなくなるようだ。

[Ruby] ERB 2.0.3

更新。


2003-04-25 (Fri)

[GNU] GCC 3.2.3

3.2.2と全く同じオプション。

% 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] JARH

print begin "Just another Ruby hacker," end

2003-04-26 (Sat)

[Ruby] RubyをGCC 3.2.3でmake

問題なし。

[GNU] od -tx1z

zオプションの存在に気づく。

% echo hogehoge | od -tx1z 
0000000 68 6f 67 65 68 6f 67 65 0a                       >hogehoge.<
0000011

[GNU] GLIBCとGCC

Rsync 2.5.6ででGCC 3.2.3を試していたら

/usr/local/lib/libgcc_s.so.1(*IND*+0x0): multiple definition of `__divdi3@GLIBC_2.0'
/lib/libc.so.6(.text+0x4ce): first defined here

と言われてしまった。が、これはどっちかというとGLIBCの問題のようだ。 確認のためにCC='gcc -V 3.2.2'でconfigureしても同じ。 つまり、いつのまにかまずいことになっていたが、気づかなかったらしい。

あ、でも以前GCCを作ったときに--enable-version-specific-runtime-libsを指定していたつけが今頃になって回ってきたとも言えるか。 とりあえず、rsyncはpoptが原因なので、 poptを再インストールしよう。 最終的には/usr/local/lib/libgcc_s.so.1を消せるところまで持って行こう。


2003-04-27 (Sun)

[GNU] grep 2.5.1

pcreも新しくしたので、grep 2.5をGCC 3.2.3でmakeする。 じゃなくて最新はgrep 2.5.1だった。 マルチバイト対応は lvのlgrepのほうが便利なので、最初から殺しておこう。

% ac_cv_type_mbstate_t=no \
  ac_cv_header_wchar_h=no \
  ac_cv_header_wctype_h=no \
  CFLAGS=-Os \
  ./configure --disable-nls
% make all check

だめだ。backrefのテストが返ってこない。spencer1.shもfailしてる。 tests/backref.shの

% echo civic | \
  grep -E -e '^(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?).?\9\8\7\6\5\4\3\2\1$'

というテストがだめのようだ。数を5個までに減らすとok。わからん。 configure時の

configure: WARNING: Included lib/regex.c not used

が気になるので、--with-included-regexでconfigureしてmakeし直してみる。 今度はmake checkも通った。GLIBCのregexは怪しいってことか?

[Cygwin] gd 1.8.4

gd 1.8.4をCygwinでmakeすると

gd_jpeg.c:348: structure has no member named `progressive_mode'

となるんだが、googleで検索すると ここしかヒットしない、でも日本語はわからん、助けてくれというメールが英国から。 まったく、だれでも英語が読めると思っているところがいつも気に入らないというか、 しかもHTMLメールだったから例によってspamフォルダに行きそうになったんだけど、 その2年前の日記を見ても1.8.4なわけで、最新のgdを使えよとツッコんでみた。 ツッコむ以上は裏を取っとかないといけないわけで、 GDのWeb pageでgd-2.0.12.tar.gzを取ってきて、ふつうにconfigureしてふつうにmakeすると、 ふつうに通るじゃん。 この人はいったいなんだってそんな古いものをわざわざmakeしたいんだか。

ま、原因はgd-2.0.12のソースを見るとわかるんだけど、

  /* REMOVED by TBB 2/12/01. This field of the structure is
     documented as private, and sure enough it's gone in the
     latest libjpeg, replaced by something else. Unfortunately
     there is still no right way to find out if the file was
     progressive or not; just declare your intent before you
     write one by calling gdImageInterlace(im, 1) yourself. 
     After all, we're not really supposed to rework JPEGs and
     write them out again anyway. Lossy compression, remember? */
#if 0
  gdImageInterlace (im, cinfo.progressive_mode != 0);
#endif

ということらしい。つまり1.8.4を使いたいなら、コメントアウトしてくれ。

[Video] 池袋ウエストゲートパーク

先週の木曜深夜にぼーっと見た「池袋ウエストゲートパーク」の再放送にはまり、1, 2巻を借りてきた。 これは面白い。今季のドラマは全部つまらないのでちょうどいい。

[Video] XXX

トリプルXも借りた。007だった。ま、それなりに楽しんだ。


2003-04-28 (Mon)

[Ruby] etc.so

1.8ではmswin32/mingw32/bccwin32でも使えるようになってます。 こういうのもshim化すべきなんだろうか?

[Win2k] Unknown Hard Error

VAIO noteのWin2kが突然再起動を繰り返すようになった。 Windows 2000 Professionalのロゴを表示し、 プログレスバーがいっぱいになり背景が青くなったところで暗転、 なにかメッセージを表示して突然再起動。これの繰り返しだ。 メッセージは一瞬で消えてしまう。目をこらして何度か見ることでやっと

STOP: c000021a Unknown Hard Error
Unknown: Hard Error

と表示していることがわかった。 とりあえずSTOP Unknown Hard Errorでぐぐると結構ヒットする。 ま、要するに再インストールするしかないんだけど、原因は これを見ると情けなくなる。

さて10連休最中の今日、CD-ROMドライブは会社だし、フロッピードライブもないし、 どうやって起動させよう。 一応別パーティションにはNetBSD 1.5がインストールされているので、 ただの箱にはならないんだが、 むしろここはつぶして何か別のOSをインストールしようと思っていただけにいじる気にならない。

[Net] ネットワークブート

BIOSにはネットワークブートに関する設定はなにもない。残念。

[Ruby] Ruby 1.0

/\n$/の昔の挙動を確認するためにRuby 1.0をmakeしてみた。 strdupなどの宣言を削除すれば比較的すんなりと通ったが、 parse.yだけはbison 1.875ではbison自身がSEGVになってしまった。 しかたなくbyaccを使う。

% ruby-1.0 -ve 'p "\n" =~ /\n$/'       
ruby - version 1.0-971225 (i386-linux)
0
% ruby -ve 'p "\n" =~ /\n$/' 
ruby 1.8.0 (2003-04-27) [i386-linux]
nil

そういえば$:も今と違って簡単だったよなあ。

% ruby-1.0 -e 'puts $:'
-e:1: NameError: undefined method `puts' for main(Object)

あ、putsもなかったんだ。

% ruby-1.0 -e 'p $:'
[".", "/usr/local/lib/ruby", "/usr/local/lib/ruby/i386-linux"]

2003-04-29 (Tue)

[ドラマ] ケイゾク、IWGP、TRICK

どうもこの3つには同じモノを感じるというかなんというか、 なにか共通するものがあるのか調べてみると、 演出がすべて堤幸彦という人だった。 IWGPには、はまるべくしてはまったわけか。

[PC] 2倍速USB FD

買ってみた。ちゃんと起動するのを確認して満足した。


2003-04-30 (Wed)

[Linux] ImageMagick 5.5.6

makeしてたら

/usr/lib/libtiff.a(tif_print.o): In function `_TIFFprintAscii':
tif_print.o(.text+0x135c): undefined reference to `__ctype_b'

と言われてしまったので、tiffをインストールし直そう。 libtiffから3.5.7を取ってきてふつうにインストール。問題なし。 make installするとなぜかPerlMagickを作り始めてまた__ctype_b問題が。 というわけで今度はPerl 5.8.0だ。

[Linux] Tcsh 6.12.00

PerlをConfigureするとcshがSEGVになることがわかった。 結構前から気づいてたんだけど、 まったく支障がないので放っといた。この機会にtcshも更新しよう。 最近は/sbinと/binに入れるものは全部staticにしてしまえ主義なので、 uClibcでmake。

% CFLAGS=-Os CC='/usr/i386-linux-uclibc/usr/bin/gcc -static' \
  ./configure --prefix=/usr --bindir=/bin
% vi config.h config_f.h

NLS_CATALOGSはうっとうしいだけなのでundef(SEGVの原因が実はこれ)、 NLSも要らないのでundef、KANJIとDSPMBYTEはdefineに変更してmake。

% make
% sudo make install

[Linux] Perl 5.8.0

やっとPerlだ。

% ./configure.gnu -Dcc=gcc -Dccflags=-DDEBUGGING
% make all test
% make install

[Net] メール・FTPサーバ障害発生のお知らせ

jcode.rbの件でメールを出したが、全然返って来ない。 あれ?そういえばメールそのものがどこからも来ないなあ。 調べてみるとトラブってるらしい。

結局丁度死んだときにメールを出してしまったのか。 2時間程で復旧。

[Linux] ImageMagick ふたたび

% make install
<...>
Magick.o: In function `GetList':
Magick.o(.text+0x16e): undefined reference to `CatchException'
<...>

全然だめじゃん。 ひょっとしてインストールされてる古いライブラリが邪魔してるのかな。 念のためrm /usr/local/lib/libMagick*してみる。いけた。そういうことか。 つまりmake uninstallしてからmake installしたほうがよさそうだな。

それにしてもmake installしなきゃmake checkできない仕様は変だぞ。


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