Just another Ruby porter,

〜2001年6月下旬〜


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

2001-06-21 (Thu)

PS2Linux

RedHat系とは書かれていたが実際はkondaraらしい。

Ruby Binaries

いつまでもCygwin 1.1.8-2でもないだろうってというわけで、 1.3.2-1を用意した。ってそれは一昨日だったか。

gcc -v

configure時のオプションが表示されるようになった。

% gcc -v
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/3.0/specs
Configured with: ../configure --enable-languages=c,c++ \
--enable-shared --with-system-zlib --enable-sjlj-exceptions \
--enable-version-specific-runtime-libs --enable-c-mbchar --enable-threads
Thread model: posix
gcc version 3.0

2001-06-22 (Fri)

[Cygwin] socket

結局中田さんの対応版を取り込んだ。 富豪な人は試してみるべし。


2001-06-23 (Sat)

學天則

ドイツで行方不明ときたか。そりゃ残念だ。

引数に構造体自体を渡す

まさかRubyがこれを使ってるとは思わなかったな。 だから中田さん提案の

{
    struct timeval tv;
    tv.tv_sec = 0;
    tv.tv_usec = 100000;
    rb_thread_wait_for(&tv);
}

をそのまま#if defined __CYGWIN__, #endifで包んだわけだけど、 実際のrb_thread_wait_forはstruct timevalを受け付けるようになっている。 Win98で試したらここで止まってしまった。 あれ?てことは遅いマシンでも一度はEINPROGRESSになるのか。 で、次のconnect(2)が分かれ目で、 速いマシンだとsocketのsetupがまだ終わってないこともあるわけだ。

gawk 3.1.0

sortもできるようになっている。 asortという名前だけど、sortという名前だとあまりにありがちで、 そういう名前のfunctionを作っている可能性は十分にある。


2001-06-24 (Sun)

rubywin 0.0.3.3

更新。
0.0.3.2からVPATHがなくなったのはなぜ?面倒だ。

[Cygwin] gcc-2.95.3-5

結局cygwin-1.1.8-2とgcc-2.95.3-5の組み合わせにすることにした。

% tar xfvz cygwin-1.1.8-2-src.tar.gz
% tar xfv gcc-2.95.3-5-src.tar.bz2 --us=bzip2
% mkdir build; cd build
% lndir ../cygwin-1.1.8-2
% ln -s ../gcc-2.95.3-5/{gcc,libio,libstdc++} .
% mkdir obj; cd obj
% CFLAGS=-Os CXXFLAGS=-Os ../configure \
  --target=i686-pc-cygwin \
  --prefix=/usr/local/cygwin \
  --enable-languages=c,c++
% make
% make install tooldir=/usr/local/cygwin
% vi /usr/local/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs

最終的なspecsは これ


2001-06-25 (Mon)

GCC 3.0

そうか。MAJOR番号を越えたら-Vはもう保証されないのか。結構痛いな。

% cat main.c             
/* #include <stdio.h> */
main(){}
% gcc -V 2.95.3 -c main.c
main.c:1: parse error before `/'

何が起こっているのかと思ったらこういうことらしい。

% gcc -V 2.95.3 -v -c main.c
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.3/specs
Configured with: ../configure --enable-languages=c,c++ \
--enable-shared --with-system-zlib --enable-sjlj-exceptions \
--enable-version-specific-runtime-libs --enable-c-mbchar --enable-threads
Thread model: posix
gcc driver version 3.0 executing gcc version 2.95.3
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.3/cc1 -lang-c -v \
-D__GNUC__=2 -D__GNUC_MINOR__=95 -D__GNUC_PATCHLEVEL__=3 -D__ELF__ \
-Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ \
-D__unix -D__linux -Asystem(posix) -D__NO_INLINE__ -D__STDC_HOSTED__=1 \
-Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di586 -Dpentium \
-D__i586 -D__i586__ -D__pentium -D__pentium__ main.c -quiet -dumpbase \
main.c -version -o /tmp/cc9k0dCc.s
cc1: Invalid option `-v'
GNU C version 2.95.3 20010315 (release) (i586-pc-linux-gnu) compiled by \
GNU C version 2.95.3 20010315 (release).
main.c:1: parse error before `/'

GCC 3.0はcc1自身がcppの機能を持っているんだよね。 だからいきなりcc1を起動しちゃう。うーむ。 -traditional-cppでいけるかなと思ったら、これはtradcpp0を起動しようとする。

% ln /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.3/{cpp0,tradcpp0}

としても、今度は

% gcc -V 2.95.3 -traditional-cpp -c main.c
cc1: Invalid option `-fpreprocessed'

と余計なオプションをつけてくれる。だめじゃん。

info gccすると

However, since no real work is done in the driver program, it usually
does not matter that the driver program in use is not the one for the
specified target.  It is common for the interface to the other
executables to change incompatibly between compiler versions, so
unless the version specified is very close to that of the driver (for
example, `-V 3.0' with a driver program from GCC version 3.0.1), use
of `-V' may not work; for example, using `-V 2.95.2' will not work
with a driver program from GCC 3.0.

ということだ。

結論。古いgccをgcc-2.95.3にrenameだ。残しといてよかった。


2001-06-26 (Tue)

PS2 LinuxKit追加

キャンセル分300台だそうだ。注文開始は6/27 20:00だから先走らないように。

[Cygwin] socket問題(EINPROGRESS, EINVAL)

0.1秒待ってもまだEINVALになることがあるらしい。 中田さんからとりあえず10回は繰り返す案が出たけど、 確かにきちっとsetup完を待ちたいよね。一日考えよう。


2001-06-27 (Wed)

USAGI Project

仕事でIPv6に関わることになった。まずはUSAGIだ。 てゆうかLinuxのIPv6がいつのまにか取り残されていたなんて知らなかったなあ。

[Cygwin] socket問題

まだ迷ってる。 さっさと入れて試してもらったほうがいいかな。 もしくはrescueしてもらって何回失敗するか数えてもらうとか。


2001-06-28 (Thu)

Win32API

以前にも 書いたが、 StructがCの構造体のイメージで扱えると便利だよね。
Win32API拡張ライブラリ的には'P'じゃなくて'S'を用意して、 その直後にpackのtemplateを書いてもらえば少しは楽になるのかな。

struct foo {
    int a;
    int b;
};

みたいなのなら

'Sii'

と指定する。ここにきて配列になってる欠点が利点に。んなわけないか。 あ、なぜ配列なのかというとPerlのWin32::APIをそのまま移植したから。

アラインメントの問題もあるからそれほど楽にはなってない気も。


2001-06-29 (Fri)

SKK

なにげなく~/.skk-recordの最後の行を見ると

Fri Apr 26 16:16:24 1991  登録:   6  確定:   62  確定率:  90%  語数:      2

とあった。おお、10年経ってる。


2001-06-30 (Sat)

Plamo 2.2

Linux JapanにPlamo 2.2がついてきたから入れ換える。 /boot/grub/menu.lstを見るといままではPlamo 2.0b1だったらしい。 一年半ぐらい使ってたかな。

reiserfsにしようかと思ったが、どうもインストーラには選ぶとこなし。
30分ぐらいで終わる。

Farewell

うますぎ。


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