今日も食当たりしなくて済んだことを幸運の神様に感謝します。 この調子で年末ジャンボも当ててください。なーむー。
南無は神様じゃありませんが、日本の神様はルーズなのでたぶん大丈夫でしょう。
今日の朝食
すみません、やっぱり年末ジャンボの前に今日を生きのびさせてください。
ruby-dev summary やってるはずだったのになぜか tdiarytimes を導入するはずだったのになぜか 原形を留めないほど改造したうえ新しい機能を追加してしまった。
改造 tdiarytimes
でも、どう見ても元の直線バーのほうがかっこいいですね。 円だとアンチエイリアスがかかってないからギザギザが見えて汚すぎだわ。 誰が使うやらわかりませんが、物好きな人のために設定を書いときます。
# オリジナルと違って以下の三つは必須 @options['tdiarytimes.shape'] = 'circle' # 'bar' or 'circle' @options['tdiarytimes.width'] = 80 # circle のときは 80×80 のみ対応 @options['tdiarytimes.height'] = 80 # (それ以外では文字がずれる) # ちなみに width != height にするとちゃんと楕円になる # (けど文字がそれに合わせて変わらないので意味なし) # shape=circle のときは tdiarytimes.text は効果がない #@options['tdiarytimes.text'] = '無駄無駄無駄' # 以下は省略可 @options['tdiarytimes.day'] = 120 @options['tdiarytimes.textcolor'] = '#000000' @options['tdiarytimes.linecolor'] = '#bfbfbf' @options['tdiarytimes.fillcolor'] = '#2f2f7f' @options['tdiarytimes.fadeout'] = true
それと GD2 が必須です。 Ruby/GD の extconf のときに --enable-gd2_0 を忘れずに付けましょう。
たまってるバグレポートだけ片付けちまおう。 まずは fileutils だな。fileutils には二つ to do がある。
これは [ruby-core:01795] で言われたやつ。 RHG 読書会で akr さんに方針を相談したところ 「Pathnameなんか使うなって言えば?」と言われたりしたわけですが、 現実的なとこで to_str だけ付けとくことにします。
うーむ、見事にチェックした環境だけすりぬけたか……。 反省して今日は Linux, FreeBSD, NetBSD, Solaris, Cygwin, mswin32 でチェックするぜ!
ちなみにこれも RHG 読書会で植松さんに聞いたんだけど、 Windows CE にドライブレターはないらしい。 これも修正しとく (いつ役に立つのかわからんけど)。
そういえば runner.rb 起動すると全部テストするんだよな。 せっかくだから全部やってみるか。とあー!
起動が遅いのはロード後の GC のせいだろうな。 bison を入れておくべきだった。
あ、FreeBSD/Alpha で "F" 出た。
~/src/ruby % ruby --version aamine@as600
ruby 1.8.1 (2003-12-01) [alpha-freebsd4.7]
:
:
Finished in 225.274 seconds.
1) Failure:
test_cond(TestMonitor)
[./test/monitor/test_monitor.rb:111:in `test_cond'
./test/monitor/test_monitor.rb:107:in `synchronize'
./test/monitor/test_monitor.rb:107:in `test_cond']:
<true> expected but was
<false>.
2) Error:
test_wsdl(XSD::TestEmptyCharset):
RuntimeError: uconv or iconv is required for Japanese encoding support.
/usr/local/lib/ruby/1.8/rexml/encodings/EUC-JP.rb:30
/usr/local/lib/ruby/1.8/rexml/encoding.rb:26:in `load'
/usr/local/lib/ruby/1.8/rexml/encoding.rb:26:in `encoding='
/usr/local/lib/ruby/1.8/rexml/source.rb:41:in `encoding='
/usr/local/lib/ruby/1.8/rexml/parsers/baseparser.rb:182:in `pull'
/usr/local/lib/ruby/1.8/rexml/parsers/streamparser.rb:12:in `parse'
/usr/local/lib/ruby/1.8/rexml/document.rb:166:in `parse_stream'
/usr/local/lib/ruby/1.8/xsd/xmlparser/rexmlparser.rb:27:in `do_parse'
/usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:60:in `parse'
./test/xsd/test_noencoding.rb:14:in `test_wsdl'
686 tests, 7943 assertions, 1 failures, 1 errors
え? なんだこの Failure は。 お約束のように再現性は皆無であるわけです。
Linux/i686 は見事 all green。
~/src/ruby % ruby --version aamine@harmony
ruby 1.8.1 (2003-12-01) [i686-linux]
:
:
Finished in 100.48778 seconds.
647 tests, 7850 assertions, 0 failures, 0 errors
NetBSD/Alpha では以下のようになって drb が起動しなかった。
aamine@asv800 % ruby --version ~/src/ruby
ruby 1.8.1 (2003-12-01) [alpha-netbsd]
aamine@asv800 % ruby test/runner.rb ~/src/ruby
Loaded suite test
Started
................................................................./usr/local/lib/ruby/1.8/drb/drb.rb:701:in `open': druby://asv800:49153 - #<Errno::ECONNREFUSED: Connection refused - connect(2)> (DRb::DRbConnError)
from /usr/local/lib/ruby/1.8/drb/drb.rb:694:in `each'
from /usr/local/lib/ruby/1.8/drb/drb.rb:694:in `open'
from /usr/local/lib/ruby/1.8/drb/drb.rb:1080:in `initialize'
from /usr/local/lib/ruby/1.8/drb/drb.rb:1063:in `new'
from /usr/local/lib/ruby/1.8/drb/drb.rb:1063:in `open'
from /usr/local/lib/ruby/1.8/drb/drb.rb:1010:in `method_missing'
from /usr/local/lib/ruby/1.8/drb/extserv.rb:16:in `initialize'
from /home/aamine/src/ruby/test/drb/ut_array.rb:12:in `new'
from /home/aamine/src/ruby/test/drb/ut_array.rb:12
ここでハングしたので ^C で止めて、とりあえず drb だけ除いてテストしてみる。
Finished in 146.312593 seconds.
1) Error:
test_wsdl(XSD::TestEmptyCharset):
RuntimeError: uconv or iconv is required for Japanese encoding support.
/usr/local/lib/ruby/1.8/rexml/encodings/EUC-JP.rb:30
/usr/local/lib/ruby/1.8/rexml/encoding.rb:26:in `load'
/usr/local/lib/ruby/1.8/rexml/encoding.rb:26:in `encoding='
/usr/local/lib/ruby/1.8/rexml/source.rb:41:in `encoding='
/usr/local/lib/ruby/1.8/rexml/parsers/baseparser.rb:182:in `pull'
/usr/local/lib/ruby/1.8/rexml/parsers/streamparser.rb:12:in `parse'
/usr/local/lib/ruby/1.8/rexml/document.rb:166:in `parse_stream'
/usr/local/lib/ruby/1.8/xsd/xmlparser/rexmlparser.rb:27:in `do_parse'
/usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:60:in `parse'
./test/xsd/test_noencoding.rb:14:in `test_wsdl'
578 tests, 7499 assertions, 0 failures, 1 errors
あー、なるほど。これはどうしようもないな。
SPARC がなかなか終わんねー。 あ、終わった。rexml のテストがあまりに遅いからハングしたかと思ったよ。
aamine@ultra30 % ruby --version ~/src/ruby
ruby 1.8.1 (2003-12-01) [sparc-solaris2.9]
:
:
Finished in 512.859409 seconds.
1) Error:
test_wsdl(XSD::TestEmptyCharset):
Errno::EINVAL: Invalid argument - iconv("euc-jp", "utf-8")
/usr/local/lib/ruby/1.8/rexml/encodings/EUC-JP.rb:25:in `iconv'
/usr/local/lib/ruby/1.8/rexml/encodings/EUC-JP.rb:25:in `encode'
/usr/local/lib/ruby/1.8/rexml/source.rb:42:in `encoding='
/usr/local/lib/ruby/1.8/rexml/parsers/baseparser.rb:182:in `pull'
/usr/local/lib/ruby/1.8/rexml/parsers/streamparser.rb:12:in `parse'
/usr/local/lib/ruby/1.8/rexml/document.rb:166:in `parse_stream'
/usr/local/lib/ruby/1.8/xsd/xmlparser/rexmlparser.rb:27:in `do_parse'
/usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:60:in `parse'
./test/xsd/test_noencoding.rb:14:in `test_wsdl'
666 tests, 7900 assertions, 0 failures, 1 errors
うわ。
Cygwin / Windows 2000 / NTFS
~/src/ruby % ruby-cygwin --version
ruby 1.8.1 (2003-12-01) [i386-cygwin]
:
:
Finished in 199.791 seconds.
1) Failure:
test_ip_v6(ACLEntryTest) [./test/drb/test_acl.rb:56]:
<false> is not true.
686 tests, 7944 assertions, 1 failures, 0 errors
mswin32 / Windows 2000 / NTFS はいろいろ出たけど、どれも既知っぽいな。つまらん。
~/src/ruby % ruby-vc6 --version
ruby 1.8.1 (2003-12-01) [i386-mswin32]
:
:
Finished in 236.31 seconds.
1) Error:
test_ip(ACLEntryTest):
NameError: uninitialized constant Socket::AF_INET6
c:/ruby-vc6/lib/ruby/1.8/ipaddr.rb:183:in `ipv6?'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:47:in `match'
./test/drb/test_acl.rb:63:in `test_ip'
2) Failure:
test_ip_v6(ACLEntryTest) [./test/drb/test_acl.rb:56]:
<false> is not true.
3) Error:
test_1(ACLListTest):
NameError: uninitialized constant Socket::AF_INET6
c:/ruby-vc6/lib/ruby/1.8/ipaddr.rb:183:in `ipv6?'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:47:in `match'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:68:in `match'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:67:in `each'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:67:in `match'
./test/drb/test_acl.rb:137:in `test_1'
4) Error:
test_all_2(ACLListTest):
NameError: uninitialized constant Socket::AF_INET6
c:/ruby-vc6/lib/ruby/1.8/ipaddr.rb:183:in `ipv6?'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:47:in `match'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:68:in `match'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:67:in `each'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:67:in `match'
./test/drb/test_acl.rb:131:in `test_all_2'
./test/drb/test_acl.rb:130:in `each'
./test/drb/test_acl.rb:130:in `test_all_2'
5) Error:
test_not_1(ACLTest):
NameError: uninitialized constant Socket::AF_INET6
c:/ruby-vc6/lib/ruby/1.8/ipaddr.rb:183:in `ipv6?'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:47:in `match'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:68:in `match'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:67:in `each'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:67:in `match'
c:/ruby-vc6/lib/ruby/1.8/drb/acl.rb:102:in `allow_addr?'
./test/drb/test_acl.rb:189:in `test_not_1'
6) Error:
test_wsdl(XSD::TestEmptyCharset):
RuntimeError: uconv or iconv is required for Japanese encoding support.
c:/ruby-vc6/lib/ruby/1.8/rexml/encodings/EUC-JP.rb:30
c:/ruby-vc6/lib/ruby/1.8/rexml/encoding.rb:26:in `load'
c:/ruby-vc6/lib/ruby/1.8/rexml/encoding.rb:26:in `encoding='
c:/ruby-vc6/lib/ruby/1.8/rexml/source.rb:41:in `encoding='
c:/ruby-vc6/lib/ruby/1.8/rexml/parsers/baseparser.rb:182:in `pull'
c:/ruby-vc6/lib/ruby/1.8/rexml/parsers/streamparser.rb:12:in `parse'
c:/ruby-vc6/lib/ruby/1.8/rexml/document.rb:166:in `parse_stream'
c:/ruby-vc6/lib/ruby/1.8/xsd/xmlparser/rexmlparser.rb:27:in `do_parse'
c:/ruby-vc6/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:60:in `parse'
./test/xsd/test_noencoding.rb:14:in `test_wsdl'
644 tests, 7797 assertions, 1 failures, 5 errors
ま、fileutils は一個も問題出なかったからいいや。
http://mput.dip.jp/mput/?date=20031201
tdiarytimesのバーがいきなり入っているのは、 td2 の Last-Modified: を集めて先にログを作っといたからです。 tDiary の Last-Modified: がいつ更新されるのか調べてないのですが、 何もないよりたくさん線が入ってたほうがおもしろい…… というかデータがないとデバッグできないので適当にかきあつめたというのが正解。
やっぱりmethod_defined?って使われてないんだなぁ。
知りませんでした……。まだ基本ライブラリに
知らないメソッドがあったなんて一生の不覚だ。
とか言いつつも実はまだまだある悪寒
test_cond(TestMonitor)のFailureは、スレッドの実行順序をsleepでコントロールしてるからで、実行時のタイミングによってたまに出ます。
なるほど。これも既知でしたか。
じゃあ本当に問題になりそうなやつはないんですね。