Ypsilon 0.9.5-update2をリリースしました。今回のアップデートでかなりのバグを取ることができたと思います。ご協力頂いた方々に感謝いたしております。最近アナウンスされたPLTのR6RS test suiteを動かしてみたところ、98.9%のカバー率になりました。
今回のリリースでは、とても見つけにくいコンカレントGCのバグを2つ消すことができたのが個人的には嬉しいです。これはWilliam D Clingerさんからメールで教えて頂いたR6RS Benchmarksの中のgcbenchというテストプログラムで発覚しました。御大に感謝です!:D
Ypsilon 0.9.5-update2は http://code.google.com/p/ypsilon/ からダウンロードすることができます。現在、MacOS X, Windows Vista, Linuxがサポートされています。
– Fujtia
Ypsilon-0.9.5 update2 で、コマンドプロンプトから
(define x (open-input-string “Hello World!”)) (read) (read)
と入力すると、本来なら
Hello
World!
と出力されるはずですが、実際には
error: unbound variable open-input-string
と出力されます。
Ypsilon が非常に高速である、という評判を聞き、AWK や Perl の代替として、大量の文書処理に使わせていただこうと思いましたが、もうしばらく時間が必要かもしれません。
ちなみに OS は、WINDOWS XP SP3 、Microsoft Visual Studio 9.0 でコンパイルしました。
コメントをどうもありがとうございました。:D
プログラムですが、
(define x (open-string-input-port “Hello World!”))
(read x)
(read x)
として頂くとHelloとWorld!がプロンプトに出力されるかと思います。これはR6RS規格ではopen-string-inputに相当する手続きがopen-string-input-portとして定義されているからです。またopen-string-input-portはテキストの読み取りのportを返しますので、readにそのportを引数として与える必要があります。ドキュメントがまったく無いので申し訳ないです m(_ _)m
>Ypsilonが非常に高速である、という評判を聞き、AWKやPerl の代替として、大量の文書処理に使わせていただこうと思いましたが、もうしばらく時間が必要かもしれません。
これは大量の文書処理を行った経験のないわたしがコメントするのはとても難しいのですが、もしSchemeにご興味があり、すぐに使ってみたいということであれば、Gaucheが最適なのではないかと思います。GaucheのVisual C++でのコンパイルはまだ実験段階とのことですが、CygwinやMinGWをWindowsに導入すればgccでコンパイルできると思います。Gaucheは多様な日本語コードを扱えるとても信頼できるソフトウエアです。
Gauche: http://practical-scheme.net/gauche/index-j.html
YpsilonもUnicodeのファイルに対してはそれなりに使うことはできるのですが、「ShiftJIS(CP932)のファイルが読み書きできない」という日本では致命的な問題があります。:( ・・・・・・・で終わってしまうのもなんですので、Ypsilonでテキスト処理がどんな感じのプログラムになるか見ていただこうと思い、Unicode.orgにて配布されているUnicodeData.txtを読み込んでgeneral categoryの種類別個数を数えるプログラムを作ってみました。:P
UnicodeData.txtはYpsilonと一緒に配布されているものを使います。
http://codepad.org/4N9nbiNN
プログラムをプロジェクトのルートでunicode-cat.scmという名前のファイルにセーブし、コマンドプロンプトから
ypsilon unicode-cat.scm < unicode/unicode-5.0.0/UnicodeData.txt
と実行するとカテゴリーコードと個数の一覧リストを表示します。UnicodeData.txtは17720行の1MBほどのファイルで、表示まで数秒かかるかと思います。
速度的には見劣りすると思いますが、このプログラムはR6RS規格内で完結していますので(正規表現のライブラリもDorai Sitaramさんによるもので、すべてSchemeで書かれています)、R6RS規格の処理系があればマシンやOSに関係なくそのまま動くというポータビリティーが特徴になります。
では
– Fujita