2007-02-05 [長年日記]

[Q3] rules.xmlのスキーマをちょっと変更

rules.xmlのapply要素の書き方を変更しました。今までは、

<apply macro="..."/>

のように書いていましたが、

<apply>...</apply>

のように書きます。XMLの属性の値では空白文字が正規化されてしまうので、改行文字などを入れるのが面倒です。たとえば、

<apply macro="@Script(<<END
...
END
, 'JScript')"/>

と書いても期待通りにならず、

<apply macro="@Script(<<END&#xa;
...
&#xa;END&#xa;, 'JScript')"/>

のように書く必要があります。普通のテキストにしたのでこんな風に普通に書けます。

<apply>
@Script(<<END
...
END
, 'JScript')
</apply>

ついでに、label要素も、

<label label="..." type="..."/>

から

<label type="...">...</label>

に変えました。

今までの形式でも読み込めますので取り立てて何かする必要はありません。QMAIL3側が書き出すときには新しい形式で書き出されます。

[Haskell] cgi-undecidable

cgiライブラリをdarcsから取得した2007.1.8バージョンに上げたところ、CGITモナドをliftしているモナドの中からMonadCGIの関数を呼ぶとエラーが発生するようになってしまいました。darcs上で履歴を見たところ、

instance (MonadTrans t, MonadCGI m, Monad (t m)) => MonadCGI (t m)

の定義がcgi-undecidableに移動され、パッケージもNetwork.CGI.Undecidableに移動されていました。undecidable instancesをサポートしていないHugsなどでもCGIライブラリを動作させるために分離されたそうです。

GHCで使う場合には、cgi-undecidableもインストールしてNetwork.CGI.Undecidableもインポートすれば今までどおりに使えるようになります。しかし、これがないと、いちいち手でliftしてやるか、個別にインスタンス宣言を書かなくてはいけなくて面倒です。


トップ «前の日記(2007-02-04) 最新 次の日記(2007-02-06)»