〜2002年10月下旬〜
なんか面白そう。 [ruby-talk:53625]から。
追試してみると起きない。
% ./configure CC='gcc -V 3.1' % make % make test
もちろん3.2でも問題ない。うーむ。
gccを/usr/i386-linux-uclibc/bin/i386-uclibc-gcc -staticに書き換えてインストール。
この先fileutils, shellutils, textutilsはcoreutilsで統一されるんだろうか? まだalpha状態らしいが。
11/3に最終話を放映するためにいきなり話が飛んだ。 最終話のためには今日の話は外せないしねえ。 そのままIIを続けるとも思えないし、打ち切りか?
ひょっとして英語だとルービに近い発音になるのだろうか?
--cache-fileを指定したときに、2回目以降のconfigure実行時にCPPOUTFILEが空になってしまうことが判明。 空になっても実害はないがまぬけすぎだ。
なかださんのpatchがcommitされたのでCygwinでチェックしてみるとなぜかext/cursesがコンパイルされない。 mkmf.logを見ると
... -lncurses conftest.c ...
という順番になってしまいinitscr()がundefinedになってる。 そうかtry_linkのoptってどっちかというとlibsとして使われることが多いのか。 try_funcがまさにそう。というわけでlink_commandのoptに位置を
'LIBS' => "#$LIBRUBYARG ${opt} #$LIBS"
へ移動しよう。
上のlink_commandを見てて気づいた。 Config::expandの2つ目の引数はCONFIGをいじらないで一時的に展開したいときに使うわけだ。ふむ。 やはり [ruby-dev:18541]のパッチは的外れだったようだ。
金光さんから意味不明なメールをもらう。
あ、typoしてる。もうしわけない。
dir_config("opt")を追加。
gcc 3.2はサイズの最適化がかなり効いてるようだ。
gcc 2.95.3:
579584 2002-10-19 00:24:03 cygwin-ruby16.dll
gcc 3.2:
513536 2002-10-23 21:57:45 cygwin-ruby16.dll
ruby-listにspamとは珍しいと思っていたが、今はonly members can postだからspamは基本的にないはず。 CGI::unescapeHTMLしてみるとutf-8で書かれていた。 [ruby-list:36174]の続きのようだ。
off-lineでは検索できなくなったことに気づく。 YARAAのAllを使おうと思ったらRAAが新しくなったせいかYARAAの情報は古いままのようだ。
gidが出力されるんだけど、全然理解できん。 わかるところから解読していこう。 最後の
* *
は
*main::*
なのでtype globか。結局
*main::* + *main::*
なので0 + 0と同じ。
@を1にしてみると
% perl -le 'print (1) - $; +$ (- % _); * *+* *' syntax error at -e line 1, near "% _)"
となる。ということは@)は配列なのか?
% perl -le '@) = (0,1,2,3); print $)[3]' 3
そのようだ。そんな配列名がありとは。$;は空なので
@) - $;
は0 - 0だな。肝心の真ん中は
+$( - % _
で$(はgetgroupsに相当するから
1000 1001 6 5 1000
という感じ。%_はハッシュだけど-なので0と同じ。
+"1000 1001 6 5 1000" - 0
だからこれは1000になる。これが結果だ。以上まとめると
perl -le 'print (0 - 0 + "1000 1001 6 5 1000" - 0); 0 + 0'
と同じ。つまり$)の最初の値を表示するone-linerということになる。
perl -le 'print (1000)'
-i(in-place)とかできるようになってる。
Changes: This release has been merged with super-sed and supports all of its features, except for Perl regular expressions. This includes in-place editing, new sed commands, better documentation, and support for changing the case of the characters with the `s' command. The performance and correctness of the regular expression matcher have also been improved.
すっかり忘れていた。 そういえばdjgppをインストールしてあったマシンがクラッシュしたんだった。 まずは
bnu213b.zip, bsh204.zip, bsn135b.zip, djdev203.zip, fil41b.zip, gcc32b.zip, gdbm180b.zip gwk311b.zip, mak3791b.zip, rdln22b.zip, sed3028b.zip, shl2011b.zip, txt20b.zip
をインストールしよう。
YARAAがsyncするようになったので、off-lineでも all-flatが使えるということで、検索の問題は解決。 YARAAならURLがidじゃなくてnameになるので、こちらの利用が増えそう。
HomepageがNot Foundになってしまう。まだ用意されてない?
さて今回はどうでしょう?
DJGPPでconfigureして、makeしてみると途中でエラーになる。 rbconfig.rbがうまくできてない。調べてみると 例の問題が出てるようだ。症状が全く同じ。
% ./miniruby -e 'p ARGF.gets;p ARGF.gets' config.status "#! /dev/env/DJDIR/bin/sh.exe\n#" " Generated by configure.\n#"
config.statusをLF endingsにすればok。
とりあえず、遅くなるとは思うけど
READ_DATA_PENDING_COUNT READ_DATA_PENDING_PTR
を#undefしよう。本当は [ruby-dev:17085]に従い「テキストモードならバッファの直接アクセスを止め」たかったんだけど、 変更量が多くなりそうなのでやめた。 [ruby-list:35033]はよくわからない。 libc側は全部binary modeにしてRuby側でtext modeをサポートするほうがよさそう。 でもそうするならstdioを捨てたくなるよね。うーむ。
それはそれとして、djgpp/configure.batでmakeできるようにした。 ふつうにconfigureもできるし、djgpp/configure.batは要らないか。
と思ったら11/4からIIを始めるらしい。なぜ飛ばす必要が。
今週はセミナーでなんか心に余裕なし。
autoconf 2.5xで作ったconfigureだとconfig.statusの中に
s,@SHELL@,/bin/bash,;t t
というような行がいっぱい出てくる。;t tがなんか余計に思える。 一体なんのためだろう? t自体は置換が行なわれていれば指定したラベル(t)へ飛べという意味だ。 だから:tがどこかにないといけないわけだが、あ、検索すると離れたところにあるね。
:t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
これはこの正規表現にマッチしなければスクリプトの最後に飛べという意味。
あ、わかった。
:t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@SHELL@,/bin/bash,;t t s,@PATH_SEPARATOR@,:,;t t s,@PACKAGE_NAME@,,;t t s,@PACKAGE_TARNAME@,,;t t s,@PACKAGE_VERSION@,,;t t ...
のようにずらずら並べて、置換が起こったら :tへ飛び、 @FOO@がまだあるか調べて、なければもうsコマンドを実行する必要がないからスクリプトの最後に飛び、入力の次の行へ移行するということか。 sの行数が多ければそれなりに効くのかもしれない。
Changes: This release updates support for compiling with Cygwin and either mingw or gcc, ...
週末にでも試してみよう。
パッケージングしてみる。
% awk '/\r/ {print FILENAME;nextfile}' **/*(.) import-module-single-thread.rb statics.rb test times-do.sh
だったので、
% ruby -i~ -pe '$_.delete!("\r")' \ $(awk '/\r/ {print FILENAME;nextfile}' **/*(.))
としとこう。
うーむ。2日ほどメールが溜まってるなあ。読んでる暇がない。