From: Katsuyuki Komatsu Date: 2000-05-31T22:14:45+09:00 Subject: [ruby-list:23016] Re: eruby on cygwin 1.1.? 小松です。 In the message of [ruby-list:23008] Re: eruby on cygwin 1.1.? on 2000/5/31 WATANABE Hirofumi wrote: |目的のものというか, たとえば rbcw144.zip の rubycw.dll だと |エラーになりません. ruby-1.4.4.tar.gzとeruby-0.0.8.tar.gz + Makefile.RBのパッチで 作り直してもエラーになったので、もしかして、cygwin1.dllの違い かなと思って、Cygwin 1.1.1のcygwin1.dllに変えたところエラーが 出なくなりました。 Cygwin CD 1.0のcygwin1.dllは"./C:\\TEMP/file"というパターンの ファイルをオープンできないようです。 $ cat t.c #include #include int main() { int fd = open("./C:\\TEMP/file", O_RDONLY); if (fd < 0) { perror(NULL); return 1; } close(fd); printf("OK\n"); return 0; } $ gcc -o t t.c $ touch /cygdrive/c/temp/file $ uname -mrsv CYGWIN_NT-4.0 21.0 (0.14/2/2) 1999-9-13 20:44:35 i686 $ ./t ← Cygwin CD 1.0のcygwin1.dllではopenできない No such file or directory $ $ uname -mrsv CYGWIN_NT-4.0 1.1.1(0.20/3/2) 2000-05-14 23:48:17 i686 $ ./t ← Cygwin 1.1.1のcygwin1.dllではopenできる OK $ |これが 2000-04-14 だから, | |:2000-05-30のruby_1_4 branch + eruby CVS versionで再現しています。 | |ここに来るまでの過程で厳しくなったわけですね. ruby.cの変更前はruby_prog_init()で"."が$:に追加されてましたが、 ruby.cの変更後はerubyはruby_options()やruby_process_options()を 呼んでいないから、"."が追加されるタイミングがないためですね。 $ ./eruby --version ← 2000-04-14のrubycw.dllを使用した場合 eRuby version 0.0.8 ruby 1.4.4 (2000-04-14) [i686-cygwin] $ echo '<% puts $: %>' > x $ ./eruby x /usr/local/lib/ruby/site_ruby/1.4/i686-cygwin /usr/local/lib/ruby/site_ruby/1.4 /usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/1.4/i686-cygwin /cygdrive/c/lang/eruby/lib /usr/local/lib/ruby/1.4 . $ $ ./eruby --version ← 2000-05-30のrubycw.dllを使用した場合 eRuby version 0.0.8 ruby 1.4.4 (2000-05-30) [i686-cygwin] $ echo '<% puts $: %>' > x $ ./eruby x /usr/local/lib/ruby/site_ruby/1.4/i686-cygwin /usr/local/lib/ruby/site_ruby/1.4 /usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/1.4/i686-cygwin /cygdrive/c/lang/eruby/lib /usr/local/lib/ruby/1.4 $ -- 小松克行 / Katsuyuki Komatsu