« December 2003 | メイン | February 2004 »
January 24, 2004
RNA nightly build
RNA nightly build はこちら。
投稿者 msano : 01:51 AM | コメント (6) | トラックバック
RNA 1.9.1 fix
投稿者 msano : 01:49 AM | コメント (0) | トラックバック
January 10, 2004
XML::Parser::Lite は何故perl5.6でないと動作しないのか
Pure Perl で軽いXML Parser モジュールとして有名な XML::Parser::Lite は、perl 5.6 じゃないと動かない、とドキュメントに書かれてある。理由は、「Due to using experimantal regexp features」。
しかし、調べてみると、perl 5.005 系列も(バージョンによっては)、名(仕様)実(事例)ともに対応されているんじゃないかという気がする。
1. 問題になっている 「experimantal regexp」
perlre(perl5.6.1)によると、perl5.6.1の「experimantal regexp」は、次のとおり。
・(?{ code })
・(??{ code })
・(?>pattern)
・(?(condition)yes-pattern|no-pattern)
(?(condition)yes-pattern)
ちなみに、これらは perl5.8.2でもexperimental のまま。
この中で、現行のXML::Parser::Liteで使用されているのは、「(?{ code })」という正規表現。動作はいまひとつ理解できないけど、perl の実行codeをembed するためのものらしい。
2. 「experimantal regexp」と perl 5.005
perlre(perl 5.005_03) によると、上記の「(?{ code })」は perl 5.005_03 でもサポートされている(experimental だけれども)。
もし、この正規表現だけが問題なら、XML::Parser::Lite は、perl5.005_03 での動作がサポートされていることになるのでは。
3. SOAP::Lite の Changelog
XML::Parser::Lite を含んでいる SOAP::Lite0.60 の Changelog には、次の記載がある。
「0.51 Tue Jul 18 15:15:14 2001
・・・(略)・・・
+ modified XML::Parser::Lite to work on Perl 5.005
(thanks to John Gotts)」
SOAP-0.51のリリース時点で、perl5.005がサポートされてたってことは、今もサポートされていると解釈していいのだろうか。(今まで気づかなかったことが情けない。)
4. そもそも実際に動作している
semblog.org はperl5.005_03なのだが、RNAのXML::Parser::Lite使用部分はちゃんと動いている。
他にも、RNA説明書にも動作事例が報告されている。
5. まとめ
というわけで、ドキュメントに書き忘れているだけで、XML::Parser::Lite は perl5.005_03 をサポートしているとみなしていいんじゃないだろうか。RNA の貧弱なRSSパース部分も、XML::Parser::Lite を使用してちゃんと書き直したほうがよいかと思う(さすがに5.6以上じゃないと動かない、というのは制限がきつすぎると思われるが、5.005_03 以上なら現実的なんじゃないだろうか)。
[追記]
ちなみに、 「(?{ code })」 について、簡単な実験をしている人がいる。結果としては、perlのバージョン(5.00503と5.6.x と 5.7.x)によって挙動が異なる、となっている。
投稿者 msano : 11:13 PM | コメント (0) | トラックバック
加速するこま
上野の study room で変な駒を発見。
専用台の上でゆっくりまわすと、次第に回転が加速して回り続ける。
説明をちゃんと読んでないが、どうも磁石を仕込んだ駒の回転で電磁誘導をおこして台と連携して自身の回転速度を上げるらしい。
店内サンプルの注意書きに、「回した方は必ずご自身で止めてください」みたいなことがかかれてあった。
投稿者 msano : 10:04 PM | コメント (0) | トラックバック
January 05, 2004
読書
石田衣良の「うつくしい子ども」を読む。
まだ読んでる途中だけど、「ハリーポッター」から魔法を取って年齢を少し上げて今の日本風にするとこんな感じになる。かも。