■
XLinqは、mcsがC# 3.0の構文をサポートするのを待つより、meiさんみたいにNemerleマクロを使って動かす方が早そうな気がする。って僕はマクロ全く使ったことがないんですけど。とまあ、そんな話をNemerleのKamil Skalskiにしていたのだけど、彼は既にmeiさんのLinqもどきを読んでいたらしい。もうアレだね、日本人は日本語のブログでそういうネタを書いてても、きっと余所の国の人たちは読んでくれるんだね。(違)
…と思ってたけど、うーん、winfxは2.0.50215だし、nemerleは.NET 2.0のバグが直った2.0.50727を要求するから、両方同時にタッチするのは厳しげ —;
Race to Linux
ASP.NETアプリをmono/grasshopper/PHP/flashのいずれかの環境に移植したらXBox360とゲームがもらえるそうです。ってXBoxかよ…9/30までだそうなのでサックリ移植できるアプリケーションでないと無理でしょうな。ちなみにgotmonoに置いてある奴はもう移植済だし、.textなどに手を出すとハマるので、気を付けた方が良いでしょう。
Komodo
KomodoというとActive StateのIDEのことだとしか思えないけど、コレはCLIベースの独自APIを提供するLinuxだそうで。内部ではMonoを使っているらしいけど、聞いたことはないですな。X11のbinding(ビンディングではなくてバインディングの方)を独自に持っていてpnetのXSharpではないらしい。
SeekableStreamReader
mcsのSeekableStreamReaderは厄介な代物なので、できれば消しておきたいクラスのひとつだ。
StreamReaderのBaseStreamのPositionをいじって、行ったり来たりできるようにしたい、というのは、この辺をヘビーにいじる必要がある人なら考えることもあると思う。だけど、このやり方は通用しないと思った方が良い、と僕は思う。
というのは、使用しているEncodingがstateを維持していると、予期しないストリームの位置に戻って読み直しをすると、decoderが想定外のデータを返すことがあるからだ。一番典型的な例が、漢字IN/OUTなどをもつiso-2022-jpで、ストリームのある位置で漢字INを読み、その後漢字OUTに出くわす前にPositionを漢字IN以前の位置に移動させられると、漢字INまでのバイトは非漢字モードであるにも関わらず、漢字モードとして読まれてしまう(はずだ(と思う))。
一度はmcsをいじって消した(消せた)のだけど、gmcsがmcs以上に依存していて、結局今に至っても消せていない。たぶん、tokenizerとparserのインタラクションをStreamの巻き戻しで対応するのではなく、tokenizerにparserから解析モードみたいなのを渡すか、あるいはtokenizerの中でモード遷移のようなものを実装していれば良いのだろうけど1、これを整理するには時間がかかりそうな気がする。
コメント
akiramei — 09/25/2005 22:07:17
彼は既にmeiさんのLinqもどきを読んでいたらしい
は、早い。(^^; 日本語のページだというのにチェックしてくれているみたいですね。その昔、Booのメーリングリストで僕のページが紹介されたときは驚きました。このときは「日本語だけどソースコードばっかだから読めるよ」(超訳)とかコメントしていました。(笑)
atsushieno — 09/26/2005 02:06:14
ぉー、Booにも登場していたんですか。meiさんのページはけっこう貴重だと思いますよ。ワールドワイドでもリソース少ないですからねー。^^;
Footnotes
-
かつてXQuery仕様の一部であったコレにインスパイアされている ↩