Shiro Kawai
shiro****@lava*****
2003年 2月 7日 (金) 21:07:44 JST
Gaucheの0.6.7をリリースしました。 http://www.shiro.dreamhost.com/scheme/gauche/index-j.html 主として機能拡張リリースです。gauche.charconvの機能を強化し、 www.cgiに出力の文字コード変換機能を付けたので、日本語を扱う cgiは書きやすくなったのではないかと。 Gauche-gl, Gauche-gtk, およびWiLiKiの新版も近いうちに出します。 どれも0.6.7の機能に依存しているので。 アナウンスはしていないのですが、Alex Shinnによるgettext準互換 なモジュールtext.gettextもディストリビューションに含まれています。 単に私のテストとドキュメンテーションが間に合わなかったのでアナウンス に入れなかったのですが、使い方はAlexのメイルに詳しいので、 興味のある方は使ってみて下さい。 http://sourceforge.net/mailarchive/forum.php?thread_id=1523494&forum_id=2043 * 新モジュールと拡張された機能: o 新モジュール srfi-37: コマンドライン引数のパーザです。 o 新モジュール util.combinations: Alex Shinn氏による、順 列組合せ等を計算するモジュールです。 o 新モジュール util.list:追加のリスト処理ライブラリ。 o gauche.testの改良: `test' 手続きは、テストとして渡され た手続き中で発生したエラーを 捕捉するようになりました。 新たに導入された変数 *test-error*は特殊な「エラー値」を 保持し、 テスト中にエラーが起きた場合に test が返す値と 比較することで、「エラーが起きるべき場合」をテストするこ とが できるようになりました。また、テストを簡単に書くた めにtest* マクロも導入されています。さらに、新しいtest- module 手続きはモジュール中のautloadやexportされたシンボ ルと 実際に定義されている変数の間に矛盾が無いかどうかを 検査します。 o gauche.charconvの改良: 変換手続きは、符合化文字方式 (CES)名として文字列だけでなく シンボルも取るようになりま した。gauche-character-encoding の戻り値も直接渡せます。 新たな手続き ces-equivalent? と ces-upper-compatible? に よってCESの互換性を 調べることが出来ます。また、 wrap-with-input-conversion と wrap-with-output-conversion によって、 必要な時のみ変換 ポートを作成する操作が簡単になりました。 また、CES "none" のセマンティクスが明確にされました。 o gauche.sequenceの改良:新しいイテレータ、 fold-with-index、map-with-index、 map-to-with-index、for -each-with-index、 find-index、find-with-indexが追加され ました。 o www.cgiの改良:cgi-mainに、 出力時に文字コード変換をさせ るようにすることができます。 o ポート操作の拡張:port->string等の性能が 改善されまし た。また、新しい手続き with-port-lockingによって、ポート を操作中に 明示的にロックすることで性能向上が図れます。 peek-byteを追加しました。 o sortとsort!がvectorもソートするようになりました。 o make-moduleによって、モジュールを動的に生成できるように なりました。無名のモジュールもサポートされます。 サー バーアプリケーションに便利です。 o loadとload-from-portが :environmentキーワード引数を取り ます。 渡されたモジュール中で読み込んだ式を評価するため のものです。 o ハッシュテーブルのコンストラクション手続きhash-table、 及びイテレータhash-table-foldが追加されました。 o file.util中のdirectory-listが :filter-add-path?キーワー ド引数を取るようになりました。 * バグフィクス o string=?は完全な文字列と不完全な文字列が渡された時に エ ラーになっていました。現在はそのような場合は#fが返ります。 o ユーザ定義オブジェクト同士を比較する場合に、 object-equal?が定義されていないと、たとえオブジェクトが eq?であってもequal?は#fを 返していました。 o gauche.regexp: rxmatch-caseが 無限ループに入る可能性が あったバグを修正 (Patch from Kimura Fuyuki). o math.mt-random: bignumがseedとして渡された時、 mt-set-random-seed!は引数にかかわらず同じ値を seedとして セットしていました。 o text.csv:セパレータがtab文字の時に、 連続するtab文字が ひとつのtab文字と同じように解釈されて いました。 o rfc.uri:uri-encodeが、内部エンコーディングと 異なる文字 列を受け取った場合にエラーとなってしまっていました。 o gauche.net: データグラムソケットを扱うための John Kilburgによるパッチを適用しました。 o gauche.net:ソケットオブジェクトが、それを使用中の ポー トがあるにもかかわらずGCされてしまう可能性があったバグを 修正しました。 o hash-table-map:ハッシュテーブルにキーを #<eof>とするエ ントリがあった場合にそこで繰り返しが 終ってしまっていま した。 o srfi-1, srfi-13:いくつか、 あるべきautoloadが存在してい ませんでした (Patch from Kimura Fuyuki)。 o sys-putenvに渡された文字列がGCされてしまうという バグが ありました。 * その他の変更 o ソースコード中のリテラルのuvectorは変更不可ベクタとして 扱われるようになりました。