Just another Ruby porter,

〜2001年8月下旬〜


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

2001-08-21 (Tue)

SirCam

また来たよ。こんどは"International Sales Enterprises"ってとこから

INVOIVE #1885.xls.pif

というファイル。実体は同じように実行ファイルだ。

前回の"tanakasi"という人のはMUAは

X-Mailer: Microsoft Outlook Express 5.50.4133.2400

で、今回も

X-Mailer: Microsoft Outlook Express 5.50.4133.2400

だ。全く同じ。というかこれが最新なんだろうか?

ISP側と家との間をPOP3じゃなくてscpするようになってからは、 メール取ってくるのが速くなって(圧縮が効くから)、 こういう変なメールが来てもあまり気にならなくなったんだけど、 頻繁に来るようだとやっぱ考えないとねえ。

ISP側のshell環境でmbox形式にするときにprocmailを通すようにしようかな。

GCC 3.0.1

--enable-version-specific-runtime-libsはなんか欝陶しいだけなので外すことにした。

% CFLAGS=-Os CXXFLAGS=-Os ../configure --enable-languages=c,c++ \
  --enable-shared --with-system-zlib --enable-sjlj-exceptions \
  --enable-c-mbchar --enable-threads

zsh setopt cshjunkiequotes

その'はいったいどこから出てくるんでしょう? なんか別の設定がからんでいて、そこが\で継続してないのかな。

それはそれとして

% ruby -e 'p $KCODE
quote> 

からBackSpaceでは戻れないけど、そこでC-cしてからC-pはできます。 このあたりはzshは気が効いてます。

[FFX] ミニストップ

リュックの声はミニストップのちっちゃい女の子(松本まりか)。


2001-08-22 (Wed)

[GCC] gcc 3.0.x

これ によると、 2ヶ月に1度のペースで出すらしい。次は10月か?

あ、そうそう。Rubyはもちろんgcc 3.0.1でもokだ。 今日は時間もあるのでmake bootstrapすることにした。

configureしなおすとgcc -vに(reconfigured)と追加されるんだけど、 それはやりすぎだよ。見辛くなるし。

[Ruby] split

"x,x,".split(",")

["x", "x"]

だが、

"x,,".split(",")

["x"]

になる。さらに

"x,,x".split(",")

["x", "", "x"]

だ。で"x,,"にはならないようにしたのが、一昨日のmkrbconfig.rbの変更内容。


2001-08-23 (Thu)

autoconf

バージョン間の違いが顕著になりつつあるautoconfだが、 2.13と2.50と2.52を共存させたくなった。 /usr/binには2.13があるのでこれはそのままにしとく。 2.50と2.52のprefixはdefaultの/usr/localとし、 --program-suffixでバージョンも追加することにする。 ただしPACKAGEはautoconfのままになり、 どちらも/usr/local/share/autoconfへインストールしてしまうので、 できあがったconfig.statusを書き換えて

% diff -u1 config.status{.bak,}
--- config.status.bak   Fri Aug 24 01:09:17 2001
+++ config.status       Fri Aug 24 01:11:33 2001
@@ -256,3 +256,3 @@
 s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
-s,@PACKAGE@,autoconf,;t t
+s,@PACKAGE@,autoconf-2.52,;t t
 s,@VERSION@,2.52,;t t

のような小細工を施し、./config.statusしとく。 あとはmake installでおしまい。 これでautoconf-2.5{0,2}で呼び出せる。

おっつー

って何かと思ったら「お疲れ」ってことらしい。

[FFX] 上書き

一番進んでるセーブデータを上書きしてしまった。20時間がパーに。 一度The Endも見てるわけだし、終わりにするか。


2001-08-24 (Fri)

HTML Mail

HTMLだけのメールはやめてと何度も言われてるのにねえ。

Get your FREE download of MSN Explorer at http://explorer.msn.com

と最後にあるが、MSN ExplorerってMS-IEとは違うんだろうか。 どーでもいいか。使わないし。

fileutils 4.1

すでに4月に4.1は出ていた。 最初からNLSは使わないようにする。って LFS では最初からそうなってるね。

% CFAGS=-Os CC='gcc -static' ./configure --disable-nls \
  --prefix=/usr --libexec=/bin --bindir=/bin

autoconf 2.49eで作られてるらしく、config.cacheは作らない。 作りたいときは--cache-file=config.cacheのよう明示的に指定する。

% make
% sudo make install

ついでにupxで圧縮しておいた。

      File size         Ratio      Format      Name
 --------------------   ------   -----------   -----------
  394132 ->    170774   43.32%    linux/386    chown                         
  390836 ->    169662   43.41%    linux/386    chgrp                         
  463700 ->    201511   43.45%    linux/386    cp                            
  375892 ->    163148   43.40%    linux/386    chmod                         
  483124 ->    210079   43.48%    linux/386    install                       
  400276 ->    174885   43.69%    linux/386    du                            
  377492 ->    163576   43.33%    linux/386    dircolors                     
  384820 ->    167428   43.50%    linux/386    dd                            
  440084 ->    192398   43.71%    linux/386    vdir                          
  440084 ->    192398   43.71%    linux/386    ls                            
  447988 ->    194264   43.36%    linux/386    ln                            
  440084 ->    192398   43.71%    linux/386    dir                           
  471732 ->    206355   43.74%    linux/386    mv                            
  374068 ->    161918   43.28%    linux/386    mknod                         
  371828 ->    161185   43.34%    linux/386    mkfifo                        
  376148 ->    163295   43.41%    linux/386    mkdir                         
  368308 ->    159247   43.23%    linux/386    sync                          
  386580 ->    168576   43.60%    linux/386    shred                         
  369588 ->    159865   43.25%    linux/386    rmdir                         
  451764 ->    196866   43.57%    linux/386    rm                            
  381908 ->    166753   43.66%    linux/386    touch                         
  385652 ->    168399   43.66%    linux/386    df                            
 --------------------   ------   -----------   -----------
 8976088 ->   3904980   43.50%                 [ 22 files ]

見事なまでに圧縮率が揃ってる。 staticにリンクしたから大部分がlibcだという証拠だな。

% cp -v foo bar
`foo' -> `bar'

4.1からは`'で囲むようになったようだ。


2001-08-25 (Sat)

sort

ruby-talkと%Rubyで昨日、 なぜか同時多発的に複数のキーでソートしたいという話題が出た。 ま、これも一年に一度ぐらいは話題になってるかな。

fcron 2.0.0

freshmeat を見るとfcron 2.0.0が出てたので更新。

strace 4.4

Plamoってstraceが入ってないんだっけ? これも freshmeat で新しいのが出たのを知る。

最近はltraceを使ってるからstraceでなくてもいいんだけど。


2001-08-26 (Sun)

New Windows InstallShield version of Ruby

ruby-talk MLでWindows InstallShield version of Ruby が動かないとかなんとかいろいろ騒いでる。 まとめると

o InstallShield版ではCygwin 1.1.8-2を使ってる。
o setup.exeでCygwinをインストールすると最新のCygwin 1.3.2-1になる。
o Cygwin FAQにも書かれているが、複数のバージョンのCygwin DLLが同時に
  loadされると問題が起こる。
o じゃいっそのことmswin32とかmingw32にするのはどう?
o POSIX機能が制限される(forkとか)。
o じゃ新しいCygwin DLLを使えばいいじゃん。
o Watanabe HirofumiというやつがCygwinの新しいバージョンは問題だらけ
  だと言ってる。
o Cygwinを静的にリンクするのはどう?

というこんな感じだ。おいらの名前まで出されちゃったねえ。 たぶんmemory mapped fileで情報を共有してるから、 バージョン間の違いに敏感なんだと思う。 それとCygwinは静的にリンクできないようなっている。

あ、Daveさんが

o 新しいCygwin DLLがあったらインストールしない。

という案を出してきた。 が、Cygwinのsetup.exeはcygwin.batを作るので、 PATHを変更しないから検出が難しそうだな。 でもレジストリを見れば一発か。

それはそれとしてもうCygwin 1.3.2-1でいいと思うよ。 問題だらけだと言ったのは1.3.1なんだから。 一応1.3.2を使おうよメールをruby-talkに出してみた。

ちなみに ここ にあるらしい。 らしいというのはおいらほどこのインストーラを必要としない人間はいないからだ。 あ、でもFXRubyは作ってないなあ。じゃダウンロードしてみるか。

\M-8\M-x\M-L\M-3\M-<\M-9\M-9\M-T\M-K\M-8\M-3\M-2

Rubyだと"\M-8"で8ビット目が立った文字を表現できるが、 これを作るのって結構面倒 *1。 が、zsh(日本語対応してないやつ)があると簡単だ。

% 公務執行妨害
zsh: command not found: \M-8\M-x\M-L\M-3\M-<\M-9\M-9\M-T\M-K\M-8\M-3\M-2

一発で変換できる。変換とは言わないか。あとはマウスでcopy&pasteだ。


*1: というかふつうはあまり必要にならない。

モーニング娘。

なぜ司会がみのもんた? 高橋か小川かと思ったが、まさか4人も増えるとは。 LOVE涙色のサビを覚えちゃったよ。歌唱指導つきだし。

小川真琴(13)
紺野あさ美(14)
高橋愛(14)
新垣里沙(12)

さぁ、次は誰が抜けるんだろう?


2001-08-27 (Mon)

digest

確かにmsdosdjgpp版rubyが動かない。こんな感じだ。

% d:/usr/local/bin/ruby -ve 'puts $"'
ruby 1.6.4 (2001-08-26) [i386-msdosdjgpp]
d:/usr/local/bin/ruby.exe: No such file to load -- digest (LoadError)

拡張ライブラリを静的にリンクしたときというか、 digestのような構造がまずいんだろうか? djgppの開発環境はLinux上のクロスしかないので、 まずはLinux上でext/Setupを

option nodynamic

digest
digest/md5
digest/rmd160
digest/sha1
digest/sha2
fcntl

として試す。fcntlはおまけ。

% ./ruby -ve 'puts $"'
ruby 1.6.4 (2001-08-26) [i386-linux]
fcntl.so
digest.so
digest/md5.so
digest/sha1.so
digest/sha2.so
digest/rmd160.so

動いちゃったよ。まいったね。 いちいちdjgpp版をWindows上へ持っていかないとだめか?

あ、ひょっとして残ってる

/usr/local/lib/ruby/1.6/i386-linux/digest*

を消さないといけない?

% rm -rf /usr/local/lib/ruby/1.6/i386-linux/digest*
% ./ruby -ve 'puts $"'
ruby 1.6.4 (2001-08-26) [i386-linux]
./ruby: No such file to load -- digest (LoadError)

そういうことか。 つまりrb_provideしてるのにdigest.soを探しに行ってるのがまずい。 それがほんとなら適当にdigest.soを作ればいけちゃうのか?

% touch digest.so
% ./ruby -ve 'puts $"' 
ruby 1.6.4 (2001-08-26) [i386-linux]
fcntl.so
digest.so
digest/md5.so
digest/sha1.so
digest/sha2.so
digest/rmd160.so

いけちゃったよ。ってことは静的にリンクしたときはrequire "foo"は全部失敗してたのか。まずいじゃん。いつから?


2001-08-28 (Tue)

[ruby-talk:20439] huge variations in execution times on Win32

なんかよくわからんが、以前のより2倍速くなってるらしい。 以前のって1.6.3かな? gcc自体は2.95.3で変わってないし、最適化オプションは-Osのままだし、 じゃあRuby自体の1.6.3と1.6.4の違い?そんなに速くなってるんだっけ? あ、cygwin1.dllをrenameしてる書いてあるから、 Cygwin 1.1.8とCygwin 1.3.2との差か? だとしたら積極的に1.3.2を使う理由にもなるな。

Pentium 4

2.0GHzを出すのでその下のシリーズが安くなるらしい。チャンスか?


2001-08-29 (Wed)

MAD: MPEG Audio Decoder

100% fixed-point (integer) computationが特徴のMADだが、 xmms-mad pluginのCPU使用率は80%とあまりいただけない。 しかもPlaylist Editorを開くと死んでしまう。うーむ。 日本語があるとまずいのか?


2001-08-30 (Thu)

String#casecmp

[ruby-list:31079] を見て気づいたんだけど、

class FileName < String
  ...
  if defined?(casecmp)
    alias icasecmp casecmp
  else
    def icasecmp(name)
      upcase.casecmp(name.upcase)
    end
  end

String#casecmpがあるかもしれないって感じになってる。 1.7のChangeLogを見ると7/20に追加したようだ。

PR#61のthreadで(jitterbugだとthreadは切れてしまうが)、

case insensitiveな比較関数は以前から欲しいとは思ってたんです
が、なかなか適切な名前が思いつかなくてそのままになってました。
これを機会にこちらも考えてみようと思います。

とまつもとさんが書いてる。早速用意したわけっすね。素早い。

あ、ちゃんとdoc/NEWSにも書いてあるじゃん。こまめにチェックせねば。

Enum#sort_by

で、チェックしたらいきなりEnum#sort_byを発見。なぬー。8/20に追加してたのか。 つまり

map{|x| [x.key1, x.key2, x]}.sort.map{|x| x.last}

のようなSchwartzian Transformは

sort_by{|x| [x.key1, x.key2]}

で済むわけだ。

たとえば

a = [[0, 2], [0, 3], [0, 1]]

を[0], [1]でsortしたければ

p a.map{|x| [x[0], x[1], x]}.sort.map{|x| x.last}
p a.sort_by{|x| [x[0], x[1]}

という感じになる。でも、ちょっと例が悪いね。この場合、

p a.sort

で済んじゃうから。


2001-08-31 (Fri)

プログラミングRuby

狙っているとしか思えない黄色。あ、買うの忘れてた。

スピードネット

これ を見てぬか喜び。 100Mbか。12800円はちと高いな。


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