Rui

Gaucheでこつこつプログラムを書いていました……が、最近はあまり書いていません(このごろは家でそんなにプログラムを書かなくなってしまいました)。メールはrui314@gmail.comTwitter


高水準スレッドライブラリ

Rui:ThreadLibrary


Gaucheのソースコードを読む

Gaucheのソースコードは次のような順番が読みやすいんじゃないかと思うのですがどうでしょうか。

  1. Schemeオブジェクトのメモリ上での表現を理解する ―― 次のことを頭に入れとくべき: 小さな整数、文字は1ワード(ポインタのサイズと同じ)に直接入れられている。一般のオブジェクトは、先頭の1ワードがクラスへのポインタになっている。
  2. stringやportといったコアライブラリを読む ―― 独立性が高く、C言語で書かれた文字列ライブラリやIOライブラリとして読むことができる。
  3. スタックの構造を意識しつつVMを読む ―― VM本体は単なる大きいswitch文。スタック上のデータ構造がわかれば理解できるはず。
  4. 理論をおさえつつコンパイラを読む ―― なにを意図しているのかがわかれば読めると思うが……。

Gaucheクックブック

http://d.hatena.ne.jp/rui314/

Perl Cookbookに倣って、Gaucheクックブックというレシピ集を始めることにしました。


Gaucheスクリプトの実行ファイル化

Gauche:gauche-statifier

パーザコンビネータ

Rui:ParsingExpressionGrammar

正規表現の最適化

実装プランの概要に沿って、Gaucheの正規表現の最適化を実装していく予定。Shiroさんに正規表現のベンチマークスイートをいただいた。失敗をメモ化するという自分ではユニークだと思っている手法を思いついたので、実装してその実地での効果を見たい。

ヒアドキュメント

Rui:ヒアドキュメント

正規表現の拡張

Rui:正規表現の拡張

Conservative GC

3ヶ月ほど動いているデーモンがあって、プロセスイメージが80MBくらいになっている。起動したときは50MB程度だった。このデーモンはそれなりに仕事をしており、毎秒数パケットのUDPメッセージを送受信し、バックエンドのRDBMSにデータを書き込み/読み出している。GaucheはBoehm GCなので、メモリリークが本質的には避けられず、こういう用途ではなんとなく時々再起動しなければいけないんじゃないかと思っていたけど、実際にその必要は生じていない。consavertive GCに対する信頼感がアップした。


ライブラリ


cc-arity.patch

継続のarityをちゃんと取得できるようにするパッチでしたが、現在のVMに対しては 当たらないので削除します。基本的なアイデアはScheme:継続のarityで 説明している通りです。継続のarityというのはいいアイデアだと思いましたが、 実際は難ありでした。

More ...