〜2001年9月上旬〜
とりあえずrubyとかlibruby.{a,so}とかが変更されるんなら、 積極的にversion.hを更新しようよ。
ruby-talk MLのほうでもERRNO::EINVALが結構目立つね。 一応お約束のようにCVSのほうは対応済みだとか、 Ruby Binariesがあるとか説明しようかと思うんだけど、 Andyさんのインストーラを使ってるような人には、 tarballを紹介しても無駄のような気もするし。 いや違う。英語でそれを説明するのが面倒なだけだ。
というわけでERRNO::EINVALもそろそろうざいので、1.6.5リリース希望。 3ヶ月経ったことだし。
1.6.1 2000-09-27 1.6.2 2000-12-25 1.6.3 2001-03-19 1.6.4 2001-06-04
ね?やっぱ今月出さなきゃ。
最近急に欲しくなった。
comp.os.msdos.djgppにLinux上でDJGPPのクロス環境を作る手順が投稿されてる。
Message-ID: <Pine.GSO.4.31.0108301902230.20351-100000@elaine10.Stanford.EDU>
gcc 3.0.1用に書かれているが、gcc 2.95.3にも通用すると思う。 というかgcc30s2.zipの変わりにgcc2953s2.zipを使えばいいだけか。 以前 差分だらけでよくわからんと書いたが、基本的に全部あてればいいようだ。 gcc30s2.zipも入手して比較してみよう。
sshが可能とあるが、rbashなためきつい。 しかも毎分毎にプロセスをkillするので、おちおちviで編集もできない。
rbash-2.04$ time cat;date Killed real 0m45.617s user 0m0.000s sys 0m0.000s Mon Sep 3 19:56:57 JST 2001 rbash-2.04$ time cat;date Killed real 0m57.835s user 0m0.000s sys 0m0.000s Mon Sep 3 19:58:01 JST 2001
これじゃ当然rsyncもまともにできない。 scpは/usr/bin/scpと/usr/local/bin/scpとあるが、 /usr/bin/scpのほうは
% scp foo s1: scp: error while loading shared libraries: \ libcrypto.so.0: cannot load shared object file: No such file or directory
とlibcrypto.so.0の実体がないままでscpできないし、 PATH上ではこっちが優先されるし、 かと言って/usr/local/bin/scpを使うにはPATHを変更しなきゃいけないけど、 ~/.bash{rc,_profile}に書いてもなんかうまくいかないし。 ftpは事前に登録しろとかわけのわからんこというし。捨てか?
あ、違った。 ~/.bashrcでPATHが本当に効いてるかどうか試すためにコメントアウトしたんだった。 というわけで~/.bashrcに
PATH=/usr/local/bin:/usr/bin:/bin
とか書いとけばscpもok。でもこれも殺されるのかな?明日実験してみよう。
家に帰ってmakeしてみると
eval.c:5329: warning: passing arg 2 of `rb_find_file_ext' discards\ qualifiers from pointer target type
のwarningを喰らう。intern.hにrb_find_file_ext()のprototypeが入ったからか。
int rb_find_file_ext _((VALUE*, char**));
loadable_extが
static const char *const loadable_ext[] = { ".rb", DLEXT, #ifdef DLEXT2 DLEXT2, #endif 0 };
となってるため、中身が変更されるかもしれないと
if (rb_find_file_ext(&f, loadable_ext) == 0) {
の部分でgccが文句を言うわけだ。対応するには
int rb_find_file_ext _((VALUE*, const char * const*));
とするか、もしくは
static char *loadable_ext[] = {
とするかのどちらかだと思うが、
この場合constを取り除いてもいいんじゃないかな?
因みに
static const char *const loadable_ext[] = {
はcharのポインタ配列の中身とcharのポインタの中身がconstという意味。 要するに配列も文字列も書き換えられないようにしてるわけだ。
この記事 でWinZipが使われたらしく、Chrisは肝心要のcygwin-1.3.2-1.tar.gz をcygwin-1.3.2-1.tar.bz2に変換して、WinZipが使えないようにしたようだ。 symlinkがあるからWinZipで展開してはいけない。
今週1.3.3を出すらしい。 1.3.3からは//x形式のドライブ指定はできない。 /cygdriveとかmount --change-cygdrive-prefixで指定した形式にする必要がある。 注意しよう。
/cygdriveが使えるようになる前から//xすら嫌いだったので
% mkdir /x % mount -b x: /x
していたが、去年ぐらいから、そのメールにも書いてあるように
% mount -b --change-cygdrive-prefix /
してる。これでいちいち/cygdriveとかmountしなくてもいい。 あ、いまだったら
% mount -b -c /
でいいのか。-cも使えるようにしたんだ。
結局殺されるのであった。
% scp gcc-3.0.1.tar.bz2 s1: gcc-3.0.1.tar.bz2 67% |******************* | 9100 KB 00:26 ETA Received disconnect: Command terminated on signal 9. ERROR: send() failed, 32 lost connection % ls -l gcc-3.0.1.tar.bz2 -rw-r--r-- 1 watanabe ruby 13844796 Aug 21 12:08 gcc-3.0.1.tar.bz2
震度2ぐらい?
いよいよversion.hも1.6.5だ。今週リリースされる予定。
% wc -c i*/*090*.tar.gz 843564 i386-cygwin/ruby-1.6.4-20010903-i386-cygwin.tar.gz 837760 i386-cygwin/ruby-1.6.5-20010905-i386-cygwin.tar.gz 788074 i386-mingw32/ruby-1.6.4-20010903-i386-mingw32.tar.gz 782600 i386-mingw32/ruby-1.6.5-20010905-i386-mingw32.tar.gz 711422 i386-msdosdjgpp/ruby-1.6.4-20010903-i386-msdosdjgpp.tar.gz 705627 i386-msdosdjgpp/ruby-1.6.5-20010905-i386-msdosdjgpp.tar.gz 4669047 total
みんな小さくなってる。なぜに?
% diff -u1 =(tar tfz *0903*) =(tar tfz *0905*|sed 's/1\.6\.5/1\.6\.4/') --- /tmp/zshOHKcR4 Wed Sep 5 21:39:41 2001 +++ /tmp/zshjFo4pj Wed Sep 5 21:39:42 2001 @@ -198,3 +198,2 @@ usr/local/doc/ruby/ruby-1.6.4/sample/regx.rb -usr/local/doc/ruby/ruby-1.6.4/sample/io.rb usr/local/doc/ruby/ruby-1.6.4/sample/getopts.test @@ -227,3 +226,2 @@ usr/local/doc/ruby/ruby-1.6.4/sample/tsvr.rb -usr/local/doc/ruby/ruby-1.6.4/sample/rbc.rb usr/local/doc/ruby/ruby-1.6.4/sample/rcs.rb
io.rbとrbc.rbか。いつのまにかcvs removeされてたわけね。
lynxでもCygwinのEINVAL, EINPROGRESS問題が起こってるらしい。で、 その返事 によれば次のsnapshotで直ってるという話だ。1.3.3に期待。
この日記のタイトルは
Just another Ruby porter.
ではなくて
Just another Ruby porter,
だことはあまり知られてないらしい。 というか<h1>にしとこ。
殺されまくりだ。
rbash-2.04$ while :;do date;cat;done Thu Sep 6 10:23:08 JST 2001 Killed Thu Sep 6 10:23:10 JST 2001 Killed Thu Sep 6 10:23:15 JST 2001 Killed Thu Sep 6 10:23:21 JST 2001 Killed Thu Sep 6 10:23:26 JST 2001 Killed Thu Sep 6 10:23:31 JST 2001
5秒かよ。
8月に何度か涼しいと書いたが、 実際関東甲信地方は平均気温が平年より0.3度低かったらしい。 特に熊谷は0.8度、東京でも0.6度、水戸にいたっては1.3度も低い。 でも、おいらが子供の頃はこんなもんだった気もするんだけどなあ。
ついでに7月は平年より2.7度も高かった。まさに酷暑だ。 最高気温が35度以上の日を「酷暑日」というらしい。
http://cygwin.com/ を見るとsmbclientのCygwin版がある。 一瞬なぬ?と思ったが、
Very useful for batch files in Windows to grab files from shares and the like.
ということらしい。 確かにatコマンドだとsystem権限で動くから、いろいろ面倒なこともあるし、 そういう場合はsmbclientが使えると便利かもしれない。
そういえば以前mtoolsをCygwinに移植して使ってた。 なぜかcp foo a:するより速かったからだ。今はそんなこともないだろう。 というか滅多にフロッピーを使わないからよくわからん。
今日は出なかったみたい。ってことは来週か?
gcc 3.0, gcc 3.0.1だと-gつきでrubyをmakeするとSEGV。 gdbで見てもどうもglibcの中のような感じでよくわからないので *1、 一個一個-gを外しarray.oからmakeしてみることにする。 するとerror.cが原因であることがわかった。 うーむ。これはまた意外なもんが原因だったりするなあ。 eval.cあたりだと思ったんだけど。
ほんとに放たれたか。
黒茶赤橙黄緑青紫灰白 0 1 2 3 4 5 6 7 8 9
個人的にはこの順番で進んで欲しかった。 20年前に覚えたんだけど、忘れないもんだね。 あと金と銀が別にある。±1%と±5%だっけ?
ヤン・ヨーステンが住んでたからこの地名になったとは!
昨日に引き続きerror.cの謎を調査してる。 このファイルを見ると目立つのは
#ifdef EPERM set_syserr(EPERM, "EPERM"); #endif
の羅列だ。 この構造上全部コメントアウトしても特に問題ないのでまずはそこから試す。 で、ビンゴだったりするんだが、どうも#ifdefは関係ないようで
set_syserr(EPERM, "EPERM"); ... set_syserr(ENOANO, "ENOANO");
までならok、
set_syserr(EBADRQC, "EBADRQC");
までいくとSEGVになる。単に数か?56個以上あるとだめだな。 であれば、ループにすれば解決するはず。
struct error_macro { int value; char *name; } error_macros[] = { #ifdef EPERM EPERM, "EPERM", #endif ... #ifdef EDQUOT EDQUOT, "EDQUOT", #endif 0, 0, };
と構造体の配列を用意し、
struct error_macro *e; ... for (e = error_macros; e->name; e++) { set_syserr(e->value, e->name); }
という感じで。これでいけた。まつもとさんが帰ってきてから聞いてみよう。
まつもとさんは何しにデンマークへ行くのかと思ったら [ruby-talk:17234] か。
更新。うーむ。同じ名前でrepackはやめようよ。 勝手に0.4.0-1とする。
「ときえ」だと思ってたんだけど、RIZEの金子は「とっきー」と呼んでた。 ニックネーム?
結局のところtDiaryがRubyのキラーアプリになってるような。 XREA.COMの使い途としてはやっぱtDiaryか? そもそもsshでloginしてどーのこーのというのが間違ってたな。
いままではなぜかずーっと8.0だったが、 今日cvs updateしてみるとやっと8.3.2へ上がった模様。 このままリリースされれば日本語が表示可能になるはず。
そうするとtcl83.dllだけじゃなくてcygtcl83.dllも探すように、 ext/tcltklib/stubs.cを書き換える必要があるな。
そういえば1.3.3はまだ出てない。ま、そんなもんか。