〜2001年5月中旬〜
光る泥だんご、すごすぎ。
e2labelで名前をつけるとfstabでdeviceの代わりにLABEL=で指定することができる。 ハードディスクを入れ換えるときになんか便利。
print //.match('Just another Ruby hacker,').string
Win9xのMS-DOSプロンプトでスクロールバーをつけるという代物。
が、command.comだとだめなので、
Win95Cmd.exeとかbash.exeとかを使う必要がある。
ここにはWin95Cmd.exeも置いてある(いいのか?)。
それと
ReactOS のcmd.exeも。
これはWinNTのcmd.exeとの互換性はかなり低い。
callcc{print 'Just another Ruby hacker,'}
contribにrxvtが追加された。 --enable-languagesでconfigureされてないので日本語は使えない。 sourceも取ってきて作ろうと思ったが、 --enable-languagesするとUSE_XIMが自動的にONになるので、 Xの環境もインストールしないとコンパイルが通らない。 configureで
if test x$support_xim = xyes -o x$multichar_set = xyes; then cat >> confdefs.h <<\EOF #define USE_XIM 1 EOF
としてるので、--disable-ximしても無駄。 しょうがないから、できあがったconfig.hをいじり
#define USE_XIM 1
をコメントアウト。これでコンパイルは通った。が、リンク時に
screen.o(.text+0x4c21):screen.c: undefined reference to `XFreeStringList'
となる。src/screen.c,W11/w32/{xlib,ntutil}.cを見ると単にfree(3)でよさそう。
でもね。日本語は出ない。-kmとか-fmとか指定してもだめだし。うーむ。
/usr/doc/Cygwin/rxvt-2.7.2.READMEには
- Fixes for supporting Japanese Fonts (thanks to Genzoo.A)
とあるんだけど、どうすればいいんだろう?
class Foo def foo() print 'Just another Ruby hacker,' end instance_method(:foo).bind(new)[] end
mfontに関してはUSE_XIMの中に処理があるようだ。 やっぱXを使わないとだめ?
LinuxのSamba上へcdして、とあるソフトを起動すると
'\\ruby\watanabe' is an invalid current directory path. \ UNC paths are not supported. Defaulting to Windows directory.
と言われることに気づいた。 追ってみると途中でバッチファイルを呼んでてそこで出てる。なるほど。 command.comにしろcmd.exeにしろ
cd \\ruby\watanabe
ってできないもんなあ。同じメッセージが出る。 警告のメッセージだけならいいんだけど
Defaulting to Windows directory.
つーのは余計なお世話だよ。 結局シェルスクリプトに書き直した。 cmd.exeだったら許してくれてもよさそうなもんだけどなあ。
つっこむと同時に自分の備忘録として書いておこう。
runsocksは結局libsocks5_sh.soをpreloadするwrapperにすぎないので、
ld.soの制限をもろ受ける。よってsetuidしたままではpreloadされない。
Thread.start{print'Just another Ruby hacker,'}.join
kterm -km eucしてるので
% net use /\?
するとメッセージが化ける。 Windowsなんだからsjisで使えばいいんだろうが、 Linuxも使ってるとeucにしたくなっちゃうんだよね。 というわけで
% c:/winnt/system32/chcp.com 437
だ。これでメッセージが英語になる。 chcp.exeばかり探してしまって、なかなかchcp.comに気づかなかった。
ちょっとextconf.rbを 修正 。
% mkdir cygwin mingw % cd cygwin % i386-cygwin-ruby ../extconf.rb \ --with-db-prefix=/usr/local/cygwin/BerkeleyDB % make % upx *.so % make site-install % cat >../bdb.contents DOC=Changes README.en bdb.html bdb.rd docs examples tests % make -f ../Makefile.pack PACKAGE=bdb VERSION=0.1.8 TARGET=i386-cygwin % cd ../mingw % i386-mingw32-ruby ../extconf.rb \ --with-db-prefix=/usr/local/mingw/BerkeleyDB % make % upx *.so % make site-install % make -f ../Makefile.pack PACKAGE=bdb VERSION=0.1.8 TARGET=i386-mingw32
% i386-cygwin-ruby install.rb % cat >../erb.contents DOC=INSTALL install.rb sample/* CONTENTS=usr/local/lib/ruby/site_ruby/$(RUBYVER)/erb/* % make -f ../Makefile.pack PACKAGE=erb VERSION=1.3.3 TARGET=i386-cygwin
mingw,djgppはsymlink。
% i386-cygwin-ruby install.rb % cat >../drb.contents DOC=INSTALL doc install.rb runit sample CONTENTS=usr/local/lib/ruby/site_ruby/$(RUBYVER)/tuplespace.rb \ usr/local/lib/ruby/site_ruby/$(RUBYVER)/timerholder.rb \ usr/local/lib/ruby/site_ruby/$(RUBYVER)/simpletuple.rb \ usr/local/lib/ruby/site_ruby/$(RUBYVER)/mutexm.rb \ usr/local/lib/ruby/site_ruby/$(RUBYVER)/drb.rb \ usr/local/lib/ruby/site_ruby/$(RUBYVER)/acl.rb \ usr/local/lib/ruby/site_ruby/$(RUBYVER)/drb/*.rb % make -f ../Makefile.pack PACKAGE=drb VERSION=1.3.2 TARGET=i386-cygwin
同じくmingw,djgppはsymlink。
print [<<'+'.chomp,<<'+'.chomp,<<'+'.chomp,<<'+'.chomp].join ' ' Just + another + Ruby + hacker, +
Cygwinのsetup.exeではどこからダウンロードをするか選ぶメニューが出てくるが、
これって手でも入力できるようになってる(Other URL)。
つまり、これに合うようにhttpとかftpで場を用意してあげれば、
setup.exeでインストールできるわけだ。
で、それについての説明はどこにあるかというと
ここ
にある。
偶然setup.iniの中を見たから気づいた。
googleでも検索できないからどこからもリンクされてないようだ。
というわけでOther URLで
http://www.ruby-lang.org/~eban/ruby/binaries/cygwin/
を指定すると選べるようにしてみた。
あ、0555なファイルがあると上書きでtarが文句言うのでまずいなあ。
+wしとかないと。
('JARH'..'Just another Ruby hacker,').end.display
26もあれば十分とか思ってたら、なんだかんだで20も割り当ててる。 でも使ってはいないな。 ドライブレターまで覚えてないから、結局UNCでアクセスしてるし。 整理しよう。
電源スィッチを押しても電源が入らない。困ったね。 お、10回目にして入った。いよいよ寿命か。
('Just another'..'Ruby hacker,').to_s.tr_s('.', ' ').display
とりあえず.NETの話を気合い入れて聞こうと思っていたのに、 半分寝てた。
まつもとさんがPDAでやっぱ動かしたいっつーので、
再開しようかなと思う。
m68k-palmosな環境はまだ残っているからそのあたりは問題ないはず。
heliumにインストールしてしまう手もあるか。
GCC 3.0が早く出ればなあ。
unless true then else 'Just another Ruby hacker,' end.display
昨日のニュースステーションで降るかもと言ってたがほんとに降った。
とりあえず昨年9月のruby-dev MLを紐解き、まずは Peering Inside the PE をじっくり読んでみる。 てゆうか、 [ruby-dev:10967] なんてすっかり忘れてたな。
loop do print 'Just another Ruby hacker,'; break end
なかなか出ないなあ。あ、一昨日会ったときに聞こうと思って忘れてた。
なんのためにこれが必要なのか書いてなかった。 そもそもmswin32版というかActiveScriptRubyで動く拡張ライブラリは、 VC++以外でも作れるのかという話が@niftyで出たのが発端だ。
あれ を読んでもよくわからなかったという話は置いといて、 いろいろ実験してみると結局dlltoolでは
EXPORTS foo = mswin32-ruby16.foo
ってな感じでruby.defを用意すればforwardできるDLLが作れそうだ。 やってみたらあっけなくできた。 で、ちゃんと$(sitearchdir)/ruby16.dllを用意すればokだ。 つまりmingw32版rubyを作る途中でできるruby.defを元に
% ruby -lpe '$_ += "=mswin32-ruby16." + $_ if $. != 1' ruby.def \ >mswin32-ruby16.def % dllwrap --driver-name=gcc -mno-cygwin --target=mingw32 \ --dll=ruby16.dll --def=mswin32-ruby16.def \ --output-lib=libruby16.a -o ruby16.dll
でruby16.dllを作る。これを
/usr/local/lib/ruby/site_ruby/1.6/i686-mswin32
に置いて 海賊課 からmswin32版を取ってきて/usr/localへインストールする。 とりあえずWin32API.soを作って試したら動いた。
なに書いてんだか。m68k-palmosはPalmに決まってんじゃん。 PSION S5 EPOC32はarm-peだよ。
% ls /usr/local/bin/arm-pe-* zsh: no matches found: /usr/local/bin/arm-pe-*
消しちゃったようだ。 でも/usr/local/arm-peから下は残っているのでlnすればいけるか?
% cd /usr/local/arm-pe/bin % for i in * % for> do % for> ln $i /usr/local/bin/arm-pe-$i % for> done % arm-pe-gcc -v Reading specs from /usr/local/lib/gcc-lib/arm-pe/2.97/specs Configured with: --target=arm-pe --enable-languages=c,c++ gcc version 2.97 20001009 (experimental)
とりあえず復活できた。 これを見てもわかるとおり中途半端なsnapshotを使っているので、 GCC 3.0にしたいんだよねえ。いつ出るんだろ?
class String def coerce x print self [0, 0] end 1 + 'Just another Ruby hacker,' end