Just another Ruby porter,

〜2001年3月下旬〜


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

2001-03-21 (Wed)

stat

WinNT/2kだと
\\host\share\.
ではだめで
\\host\share\
にする必要がある。 つまり\\host\shareという階層かどうかを判断しないとだめだ。
\\host\share\
ならWin9X/MEでもok。

stat余談

それにしてもstat("c:/autoexec.bat/.", &statbuf)が0を返すのは不気味だ。

gcc 2.95.3

いつのまにかgcc 2.95.3が出てる。 数日中にはCygwin版も出るらしい。

JARH

'uJtsa onhtreR bu yahkcre,'.scan(/(.)(.?)/){|x,y| print y+x}

2001-03-22 (Thu)

release

結局releaseしないと試してくれないわけか。 CVSもstable-snapshotも用意してるのに。 今わかってるバグを潰してからreleaseと考えても、 未知のbugが待ち構えている。 つまりreleaseを先送りしてもあまり意味はなく、 enbugの発見が遅れるだけなのかもしれない。

出張

疲れた。

JARH

print 'Just another Ruby hacker,'['Just another Ruby hacker,']

2001-03-23 (Fri)

[Cygwin] gcc-2.95.3-1

テストリリース。これで問題なければそのままリリースされるらしい。

[Cygwin] /dev/clipboard

最新のsnapshotで/dev/clipboardを経由してクリップボードのデータがやりと りできるようになった。いままでも可能だったが書き込むことができなかった。

emacs 21.0.100

そうすべきかなという気もしたけど、なんか億劫になってしまって…。 花粉症の所為か?

cab file

です。たぶんextrac32.exeで取り出せます。 psdk-x86.49.cabはすでに消してしまったらしい。 しょうがないのでlocate .cabして別のファイルで実験。 「 窓使いの憂鬱」のソースがcabになってて
% /c/windows/extrac32 source.cab
Microsoft (R) Cabinet Extraction Tool - Version (32G) 4.11.0603.3 (12/31/97)
Copyright (c) Microsoft Corp 1994-1997. All rights reserved.

 Cabinet source.cab

05-09-2000 11:28:44p A---           473 Makefile
05-09-2000 11:28:28p A---         1,550 bcc.mak
05-21-2000  3:20:50a A---           691 mayu-bcc.mak
<後略>
てな感じでリストを見ることができました。
% /c/windows/extrac32 source.cab Makefile  
Microsoft (R) Cabinet Extraction Tool - Version (32G) 4.11.0603.3 (12/31/97)
Copyright (c) Microsoft Corp 1994-1997. All rights reserved.

 Cabinet source.cab

Extracting Makefile
Extracting s\Makefile
Extracting d\Makefile
Extracting d\nt4\Makefile
あらら。全部出ちゃうのか。

_ CABの圧縮率:

展開してtar+gzip(-9),tar+bzip2してみた。
% ls -l mayu.tar.* source.cab
-rw-r--r--   1 watanabe ruby        95360 Mar 24 00:45 mayu.tar.bz2
-rw-r--r--   1 watanabe ruby       111386 Mar 24 00:44 mayu.tar.gz
-rw-r--r--   1 watanabe ruby        95586 Mar 24 00:31 source.cab
なんか圧縮率もいいなあ。

JARH

print 'Just another Ruby hacker,'[/.*/]

2001-03-24 (Sat)

[Cygwin] MO

gcc-2.95.3-1を試そうとMOから取り出そうとしたらそこだけ壊れてた。 また来週だな。

w3m 0.2.1

無条件でrand48系を使われるとCygwinで困る。 面倒だからsrand48をsrandへlrand48をrandへ置換。
% ruby -i~ -pe 'gsub /srand48/, "srand"' main.c url.c
% ruby -i~ -pe 'gsub /lrand48/, "rand"' local.c url.c
それはそれとして、WinNTで実行するとSEGVる気がする。 そのうち調べてみよう。

JARH

#\
print 'Just another Ruby hacker,';\
__END__
all:
	@ruby Makefile

2001-03-25 (Sun)

ri 0.6, rubyunit 0.3.5a, win32ole 0.2.6

更新。

cross-compiling

クロスでconfigureするとset/getpgrpのチェックのところでエラーになるんだけど、 どうしたらいいの?助けてという感じのメールを英語でもらう。 なぜかLinuxでmakeしてるのがばれてる。 そういえばRuby自身はどうやってるか書いてない気もする。

_ i386-cygwin:

% env CFLAGS=-Os CC='i686-pc-cygwin-gcc' \
  ac_cv_func_getpgrp_void=yes \
  ac_cv_func_setpgrp_void=yes \
  ac_cv_sizeof_long_long=8 \
  ac_cv_func_memcmp_clean=yes \
  ac_cv_func_getrlimit=no \
  ./configure \
  --target=i386-cygwin \
  --host=i686-pc-cygwin \
  --build=i586-pc-linux-gnu \
  --program-prefix='' \
  --includedir=/usr/local/cygwin-local/include \
  --with-tcl-dir=/usr/local/mingw \
  --with-tk-dir=/usr/local/mingw \
  --enable-tcltk_stubs \
  --with-tcllib=tclstub83 \
  --with-tklib=tkstub83 \
  --with-curses-dir=/usr/local/cygwin-local/ncurses \
  --with-opt-dir=/usr/local/cygwin-local \
  --enable-shared
あ、Cygwin 1.1.8になったんだから getrlimitはnoにする必要はないんだった。

_ i386-mingw32:

% env CFLAGS=-Os CC="i686-pc-cygwin-gcc -bmingw" \
  ac_cv_func_getpgrp_void=yes \
  ac_cv_func_setpgrp_void=yes \
  ac_cv_c_bigendian=no \
  ac_cv_sizeof_long_long=8 \
  ac_cv_func_memcmp_clean=yes \
  ./configure \
  --target=i386-mingw32 \
  --host=i686-pc-cygwin \
  --build=i586-pc-linux-gnu \
  --includedir=/usr/local/mingw/include \
  --enable-tcltk_stubs \
  --with-tcllib=tclstub83 \
  --with-tklib=tkstub83 \
  --with-opt-dir=/usr/local/mingw \
  --enable-shared

JARH

print [].push 'Just ', 'another ', 'Ruby ', 'hacker,'

2001-03-26 (Mon)

[Cygwin] gcc-2.95.3-2

crtdll2.oが見つからない問題も解決したらしい。snapshotもこれを使いだした。

青いイナズマ

例のMOディスクを会社のWinNTでフォーマットしエラーチェックしたら問題ないようなので、 lftpでmirrorした。が、途中でBlueThunderのおでましだ。 1年振りぐらいで見た気がする。 Officeとか使わないからふだんは非常に安定してるんだけど。 やっぱ例のMOディスクはもうだめだな。
VNCのおかげでremoteのLinux側で起動してたemacsには何の被害もなし。

lftp

あおきさんとこはlftpでどーんと取ってくると楽。
% lftp http://www9.xdsl.ne.jp/~aamine/soft/
icrosoft FTP Service: .
cd ok, cwd=~aamine/soft                             
lftp www9.xdsl.ne.jp:~aamine/soft> ls
drwxr-xr-x  --  ../ja/softica
drwxr-xr-x  --  ../en
-rw-r--r--  --  amstd-1.9.7.tar.gz
-rw-r--r--  --  inetc-1.3.3.tar.gz
-rw-r--r--  --  mailest-0.0.8.tar.gz
-rw-r--r--  --  net-1.1.34.tar.gz
-rw-r--r--  --  net-1.2.0.tar.gz
-rw-r--r--  --  racc-1.3.8.tar.gz
-rw-r--r--  --  setup-2.0.2.tar.gz
-rw-r--r--  --  setup-2.0.3.tar.gz
-rw-r--r--  --  strscan-0.6.2.tar.gz
-rw-r--r--  --  textbuf-0.3.8.tar.gz
-rw-r--r--  --  tmail-0.9.3.tar.gz
<途中略>
-rw-r--r--           -  2001-0KB-20 00:00  rut
-rw-r--r--           -  2001-3KB-20 00:00  sseruby.rb
lftp www9.xdsl.ne.jp:~aamine/soft> 
ここでmget *.tar.gzできるのがlftpのいいところ。 この0KBとか3KBはlftpが理解できない形式だからか? てゆうかlftpはそんなとこまで見るんだ。 そうか。FancyIndexing対応か。
% lftp http://www.ruby-lang.org/~eban/ruby/
cd ok, cwd=~eban/ruby                                 
lftp www.ruby-lang.org:~eban/ruby> ls
drwxr-xr-x           -  2001-01-08 04:00  ..
drwxr-xr-x           -  2001-01-15 22:10  binaries
-rw-r--r--          1k  2001-01-22 00:02  fake-TARGET.rb
-rw-r--r--          1k  2001-01-22 00:02  fake_TARGET.rb
lftp www.ruby-lang.org:~eban/ruby> cd binaries
cd ok, cwd=~eban/ruby/binaries           
lftp www.ruby-lang.org:~eban/ruby/binaries> ls
drwxr-xr-x           -  2001-03-12 00:02  ..
drwxr-xr-x           -  2001-03-19 21:00  cygwin
drwxr-xr-x           -  2001-03-19 22:25  djgpp
drwxr-xr-x           -  2001-03-19 20:55  mingw
lftp www.ruby-lang.org:~eban/ruby/binaries> cd cygwin
cd ok, cwd=~eban/ruby/binaries/cygwin  
lftp www.ruby-lang.org:~eban/ruby/binaries/cygwin> ls
-rw-r--r--  --  cygwin-1.1.8-2.dll.bz2
-rw-r--r--  --  cygwin-1.1.8-2-src.tar.gz
drwxr-xr-x           -  2001-02-19 23:33  ..
-rw-r--r--        263k  2001-02-01 00:09  cygwin1-1.1.8-2.dll.bz2
drwxr-xr-x           -  2001-03-20 00:18  ext
-rw-r--r--        651k  2001-01-22 02:42  ruby-1.6.2-i386-cygwin.tar.gz
-rw-r--r--  --  /en/download.html
-rw-r--r--        704k  2001-03-19 22:07  ruby-1.6.3-i386-cygwin.tar.gz
-rw-r--r--        127k  2001-01-26 18:05  xdelta.exe
lftp www.ruby-lang.org:~eban/ruby/binaries/cygwin> 
そういうことみたいだ。
wwwoffleのcacheがかなり古い気もするというか古いよ。

「無道編」と「GNU Autoconf/Automake/Libtool」

足したら5000円なのでamazonで注文。 なぜ今頃無道編かというといつも行く本屋には置いてなかったから。

JARH

morse=eval <<'+'.unpack("m")[0]
SGFzaFsqJXcoLi0gYQotLi4uIGIKLS4tLiBjCi0uLiBkCi4gZQouLi0uIGYK
LS0uIGcKLi4uLiBoCi4uIGkKLi0tLSBqCi0uLSBrCi4tLi4gbAotLSBtCi0u
IG4KLS0tIG8KLi0tLiBwCi0tLi0gcQouLS4gcgouLi4gcwotIHQKLi4tIHUK
Li4uLSB2Ci4tLSB3Ci0uLi0geAotLi0tIHkKLS0uLiB6CnwgXCAKKV0K
+
<<'+'.split.map{|x|morse[x]||x}.join.gsub(/\b[jr]/){|x|x.upcase}.display
.--- ..- ... - | .- -. --- - .... . .-. | .-. ..- -... -.-- | .... .- -.-. -.- . .-. ,
+

2001-03-27 (Tue)

[Cygwin] w3m

-lncursesじゃなくて-ltermcapにするとWinNTではSEGVらない。 これは意外だ。とするとterminfoかな? text vs. binary modeあたりが怪しいかも。

shebang

#!はexecve(2) *1が解釈するので/bin/shが解釈する必要はないんですけど? そういうメッセージも見たことないし。
ところでみんなよく使うshebangってなんの略と思ったら、 そういう単語がまさかあるとは。
*1: Cygwinの場合システムコールじゃないから(2)というのも変だな。 online manualにもman2がないし。

BIGLOBE and TSUTAYA

ADSLに完全に移行しちゃった人なんかには便利かも。 mobileとかdialupしたいときはたまにあるだろうし。 月4時間まで無料。3月末までは入会金も無料。 あ、freecomの代わりにこれ使ってみようかな。

JARH

print 'Just another Ruby hacker,'[0..-1]

2001-03-28 (Wed)

[Cygwin] shebang

うーむ。再現しません。
% echo '#!/bin/echo ok' >ok
% chmod +x ok
% sh -c ./ok
ok ./ok
% bash -c ./ok
ok ./ok
% zsh -c ./ok
ok ./ok
% tcsh -c ./ok                          
ok ./ok
% ksh -c ./ok
ok ./ok
とりあえず、つい最近ashも更新されてるので、 ash-20010326をインストールしてみては?

_ snapshot:

あ、そういえば新しいsymlinkを試したくて、 その時にsnapshotを入れたんだった。
% uname -a
CYGWIN_98-4.10 JARH 1.3.0(0.35/3/2) 2001-02-25 15:01 i586 unknown
とするとCygwin 1.1.8-2のバグかもしれないなあ。

_ w3m:

そこでまた気づいたけど、 会社のWinNTのほうは1.1.8-2のままだから、 w3mがSEGVるのもこれが原因か? 明日は出張だから明後日試そう。

[Cygwin] zsh

今は*.batもNTなら*.cmdも実行できますね。 B19頃はできてたんだけど、 B20.1の途中からかできなくなったような感じで、 その時の苦労がトラウマになっているのかも。 それともhoge.cmdがhogeで呼べなくなったことと勘違いしてたのかなあ。
いずれにせよ気づかせてくれてありがとうございます。

JARH

print 'Just another Ruby hacker,'.instance_eval{self}

2001-03-29 (Thu)

GNU Autoconf/Automake/Libtool

届いた。
ちらっと見るとやけにCygwinの文字が目につく。 第24章は丸々Cygwinの章だし。

出張

久し振りにPerlでスクリプトを書く。

JARH

class String; def +@() print self end; +'Just another Ruby hacker,' end

2001-03-30 (Fri)

[Cygwin] binary mount

Cygwinで何気なく
% vi c:/tmp/hoge.txt
なんてことはよくやってしまうと思うのだが *1、そのままセーブすると
% od -c c:/tmp/hoge.txt 
0000000   h   o   g   e  \r  \n
0000006
ととてもいやなことになってたりする。 ちゃんとbinary modeでopenするようにjvimを書き換えればいいんだけど、 redirectも同じだしねえ。
% echo hoge >c:/tmp/hoge.txt
% od -c c:/tmp/hoge.txt     
0000000   h   o   g   e  \r  \n
0000006
で、いまごろ気づいたんだけど、これって
% mkdir -p /mnt/c
% mount -b c: /mnt/c
とか適当にmountしとけばいいようだ。
% echo hoge >c:/tmp/hoge.txt
% od -c c:/tmp/hoge.txt 
0000000   h   o   g   e  \n
0000005
/cygdriveじゃ長過ぎて面倒なので
% mount -b --change-cygdrive-prefix /
として
/c/tmp/hoge.txt
でアクセスできるようにはしてたんだけど。
じゃobsoleteな//cはどうかというと
% echo hoge >//c/tmp/hoge.txt
% od -c //c/tmp/hoge.txt 
0000000   h   o   g   e  \r  \n
0000006
頑固一徹である。

*1: MinGW関連をmakeしててCOPY&PASTEしたときとか。

期末

今週はなんやかんやで忙しかった。

JARH

print '1J2u3s4t5 6a7n8o9t0h1e2r3 4R5u6b7y8 9h0a1c2k3e4r5,'.delete('0-9')

2001-03-31 (Sat)

[Cygwin] gcc-2.95.3-2

_ make:

% uname -a
Linux ruby 2.2.18 #2 Sat Dec 23 15:12:42 JST 2000 i586 unknown
% tar xfvz gcc-2.95.3-2-src.tar.gz
% cd gcc-2.95.3-2
% mkdir obj; cd obj
% CFLAGS=-Os CXXFLAGS=-Os \
  ../configure \
  --target=i686-pc-cygwin \
  --prefix=/usr/local/cygwin \
  --enable-languages=c,c++
% time make |& tee make.log
<途中略>
2547.09s real  2354.09s user  154.67s sys  98% cpu
2547.09s real  0.08s user  0.22s sys  0% cpu
できあがったgcc/specsを見ると%qが使われている。 ドキュメントにも反映されてない機能だ。てゆうかCygwinでの追加だな。 crt?.oがあるディレクトリを指定するために追加したようだ。

_ -iwithprefixbefore:

最近なんでbmingw package更新してないかというと、 specsの*cpp:の中で-iwithprefixbeforeを使っているんだけど、 存在しないディレクトリを指定するとcppがSEGVってしまうというバグがあるからだ。 Cygwinが入れたバグだ。いや深くは調べてないんだけど、きっとそうに違いない。 2.95.2-9あたりからそうなってるので。 これのお蔭でnative, cross兼用のspecsが書けなくなってしまった。 兼用にするには必ず存在しないディレクトリを指定することになってしまうから。 まったくもって困ったあるよ。
crossでは
/usr/local/cygwin/include/{mingw,w32api}
が存在しないし、nativeでは
/usr/i686-pc-cygwin/include/{mingw,w32api}
が存在しない。どうする?

_ /usr/local/cygwin:

-idirafterを使えばよさそうけど、/usr/local/cygwinが出てくるのもなあ。 と思ったら-Lですでに/usr/local/cygwinを使ってるのであった。じゃいいや。

JARH

'Jaubsctd eafngohtihjekrl mRnuobpyq rhsatcukvewrx,y'.
gsub(/(.)./,'\1').display

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