Just another Ruby porter,

〜2001年9月上旬〜


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

2001-09-01 (Sat)

version.h

とりあえずrubyとかlibruby.{a,so}とかが変更されるんなら、 積極的にversion.hを更新しようよ。

ERRNO::EINVAL

ruby-talk MLのほうでもERRNO::EINVALが結構目立つね。 一応お約束のようにCVSのほうは対応済みだとか、 Ruby Binariesがあるとか説明しようかと思うんだけど、 Andyさんのインストーラを使ってるような人には、 tarballを紹介しても無駄のような気もするし。 いや違う。英語でそれを説明するのが面倒なだけだ。

Ruby 1.6.5

というわけで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

ね?やっぱ今月出さなきゃ。


2001-09-02 (Sun)

ハードディスクレコーダー

最近急に欲しくなった。

linux->dos cross-compiler redux

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も入手して比較してみよう。


2001-09-03 (Mon)

XREA.COM - JP

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。でもこれも殺されるのかな?明日実験してみよう。

const char * const *

家に帰って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という意味。 要するに配列も文字列も書き換えられないようにしてるわけだ。


2001-09-04 (Tue)

Press for Cygwin

この記事 でWinZipが使われたらしく、Chrisは肝心要のcygwin-1.3.2-1.tar.gz をcygwin-1.3.2-1.tar.bz2に変換して、WinZipが使えないようにしたようだ。 symlinkがあるからWinZipで展開してはいけない。

[ANNOUNCEMENT] Important upcoming change in Cygwin 1.3.3

今週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も使えるようにしたんだ。

XREA.COMでscp

結局殺されるのであった。

% 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

地震 (23:55)

震度2ぐらい?

今週のSPOT LIGHT

訳者は

田 和勝さん

ではなく(でんさんかよ!)

田和 勝さん

だよ。メールしとくか。


2001-09-05 (Wed)

Ruby 1.6.5

いよいよ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されてたわけね。

different lynx fix for: Alert!: Unable to connect to remote host

lynxでもCygwinのEINVAL, EINPROGRESS問題が起こってるらしい。で、 その返事 によれば次のsnapshotで直ってるという話だ。1.3.3に期待。


2001-09-06 (Thu)

Just another Ruby porter,

この日記のタイトルは

Just another Ruby porter.

ではなくて

Just another Ruby porter,

だことはあまり知られてないらしい。 というか<h1>にしとこ。

XREA.COM

殺されまくりだ。

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秒かよ。

kakasi-000124-1

なぜか辞書の位置が

/usr/local/{cygwin-local,mingw}/share/kakasi/kanwadict

になってたので修正。

涼夏

8月に何度か涼しいと書いたが、 実際関東甲信地方は平均気温が平年より0.3度低かったらしい。 特に熊谷は0.8度、東京でも0.6度、水戸にいたっては1.3度も低い。 でも、おいらが子供の頃はこんなもんだった気もするんだけどなあ。

ついでに7月は平年より2.7度も高かった。まさに酷暑だ。 最高気温が35度以上の日を「酷暑日」というらしい。


2001-09-07 (Fri)

[Cygwin] smbclient

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:するより速かったからだ。今はそんなこともないだろう。 というか滅多にフロッピーを使わないからよくわからん。

Ruby 1.6.5

今日は出なかったみたい。ってことは来週か?


2001-09-08 (Sat)

gcc 3.0.x

gcc 3.0, gcc 3.0.1だと-gつきでrubyをmakeするとSEGV。 gdbで見てもどうもglibcの中のような感じでよくわからないので *1、 一個一個-gを外しarray.oからmakeしてみることにする。 するとerror.cが原因であることがわかった。 うーむ。これはまた意外なもんが原因だったりするなあ。 eval.cあたりだと思ったんだけど。


*1: mainまで来ない。

Code Green, CRclean

ほんとに放たれたか。

黒茶赤橙黄緑青紫灰白
 0 1 2 3 4 5 6 7 8 9

個人的にはこの順番で進んで欲しかった。 20年前に覚えたんだけど、忘れないもんだね。 あと金と銀が別にある。±1%と±5%だっけ?

東京八重州

ヤン・ヨーステンが住んでたからこの地名になったとは!


2001-09-09 (Sun)

error.cとgcc 3.0.x

昨日に引き続き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);
}

という感じで。これでいけた。まつもとさんが帰ってきてから聞いてみよう。

JAOO

まつもとさんは何しにデンマークへ行くのかと思ったら [ruby-talk:17234] か。

RubyUnit 0.4.0

更新。うーむ。同じ名前でrepackはやめようよ。 勝手に0.4.0-1とする。

Tokie

「ときえ」だと思ってたんだけど、RIZEの金子は「とっきー」と呼んでた。 ニックネーム?


2001-09-10 (Mon)

tDiary

結局のところtDiaryがRubyのキラーアプリになってるような。 XREA.COMの使い途としてはやっぱtDiaryか? そもそもsshでloginしてどーのこーのというのが間違ってたな。

[Cygwin] Tcl/Tk

いままではなぜかずーっと8.0だったが、 今日cvs updateしてみるとやっと8.3.2へ上がった模様。 このままリリースされれば日本語が表示可能になるはず。

そうするとtcl83.dllだけじゃなくてcygtcl83.dllも探すように、 ext/tcltklib/stubs.cを書き換える必要があるな。

そういえば1.3.3はまだ出てない。ま、そんなもんか。


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