〜2003年6月下旬〜
jarh.rb:435: warning: multiple values for a block parameter (2 for 1)
と警告になってる。該当する行は
{'Ruby hacker,'=>'Just another'}.each{|x|print x.reverse.join(' ')}
で、xがまずいわけだね。
{'Ruby hacker,'=>'Just another'}.each{|*x|print x.reverse.join(' ')}
としよう。
オリコンの ウィークリーシングル30を見てたら「 nil?」というタイトルの曲があることがわかった。 いや、Rubyとは関係ないんだが。
BrickOS用のgccを作った。gcc 3.3を使ったら 例のmissing terminating " characterエラーが出て、直すのが面倒になった。gcc 3.2.3を使うか。 このgccの挙動って欝陶しすぎ。mulitline stringぐらい許したっていいじゃん。
% tar xfv binutils-2.14.tar.bz2 --bzip2
% tar xfv gcc-core-3.3.tar.bz2 --bzip2
% tar xfv gcc-g++-3.3.tar.bz2 --bzip2
% tar xfvz newlib-1.11.0.tar.gz
% mkdir -p BUILD/{binutils,gcc,newlib}
% toolroot=$(pwd)
% cd $toolroot/BUILD/binutils
% CFLAGS=-Os ../../binutils-2.14/configure \
--target=h8300-hitachi-hms --disable-nls
% make
% make install
% cd $toolroot/BUILD/gcc
% CFLAGS=-Os CXXFLAGS=-Os ../../gcc-3.3/configure \
--target=h8300-hitachi-hms --disable-nls --with-newlib \
--enable-languages=c,c++
% make LANGUAGES=c all-gcc
% make LANGUAGES=c install-gcc
% cd $toolroot/BUILD/newlib
% CFLAGS=-Os ../../newlib-1.11.0/configure \
--target=h8300-hitachi-hms --disable-nls
% make
% make install
% cd $toolroot/BUILD/gcc
% make
% make install
温度計が壊れたので、100円ショップで探してみたらあった。 無駄に時計もついてたりするんだが、温度計だけだと100円じゃ儲けすぎなんだろうか? どっちかというと湿度計をつけてくれたほうが嬉しいんだけど。 他にもこれで100円なのかって品がいっぱいあって面白い。
C++で書かれたdemoがだめだ。
% cat foo.cc
class Foo {
};
main()
{
Foo *foo = new Foo;
}
% gcc -dumpversion
3.3
% gcc foo.cc
/tmp/ccKxtvt1.o(.text+0x16): In function `main':
: undefined reference to `operator new(unsigned)'
collect2: ld returned 1 exit status
% gcc foo.cc -lstdc++
% /usr/bin/gcc -dumpversion
2.95.3
% /usr/bin/gcc foo.cc
%
gcc 3というかg++ 3はnewを呼ぶと-lstdc++を必要とするってことか。 BrickOSはgcc 2.95.3で開発されてるってことだな。
開発版の4.1.1も出てる。
更新。
ext/syck/rubyext.cでrb_require( "date" );としてるため、 syckを静的にリンクするとdate.rbが必要となる。 たとえばdjgpp版ruby.exeはdate.rbがrequireできないとエラーになってしまう。
% wine --debugmsg err-all -- ./ruby -e 'p RUBY_PLATFORM'
Warning: unprotecting the first 64KB of memory to allow real-mode calls.
NULL pointer accesses will no longer be caught.
g:/ruby/18/djgpp/ruby.exe: No such file to load -- date (LoadError)
ruby 1.8.0 (2003-06-25) [i386-msdosdjgpp]
おお。wineでdjgppも実行できるのか。
JARHをRuby 1.6と1.8で動かしたときに表示される数が違うことに気づいた。
% ruby-1.8 jarh.rb |tr , '\n' |wc -l
206
% ruby-1.6 jarh.rb |tr , '\n' |wc -l
207
調べてみるとsingleton_method_addedだった。
def $_.singleton_method_added(*) print 'Just another Ruby hacker,' end
のようにsingleton_method_added自体を定義した瞬間にhookされるのは、 やっぱ変だよね。1.8だと直したとしてもこのJARHはあまり面白味がないな。
マニュアル見ればわかることをなぜ聞くかな。 String#stripを勧めるのもいいが、 \sが何を意味するのか本当に知らないんだろうか?
あ、英語版のマニュアルがない?
たしかにirc用ならscreenのdetach機能だけあれば十分だ。 というわけで試してみよう。
うぜー。
ruby-sqliteとは別物。別だけど、これもrequire 'sqlite'して使うわけで、
This differs from the 'ruby-sqlite' project (also on RAA) in that it is more complete,
と書いてることからも、喧嘩売ってるわけだ。 やっぱ気に入らないと俺拡張モジュールを作りたくなるようで、 まあ、ruby-sqlite自体公開形式からして変なので、 その気持ちはわからないでもない。
更新。
/proc/configってそういえば、 freshmeatで以前見た記憶がある。たしか proconfigって名前だった。 そのうち本家に取り込まれると思ってたんだけど、まだパッチのままらしい。 そういえばLinux 2.2のころに一度試したような気もするなあ。
なんか必要なものが多いが、 結局新たにインストールしたのはneon 0.23.7だけで済んだ。 http proxyの設定は~/.subversion/serversに
http-proxy-host = proxyサーバ http-proxy-port = port番号
てな感じで書いておけばok。 svn helpと実行すれば~/.subversion/以下が作られるので、 serversのコメントを参考にすれば設定は簡単。