2008-10-01から1ヶ月間の記事一覧

Parallel Schemeに向けたテストその3

イプシロンに並列処理を導入する目的はREPLからGLUTやGTKなどを起動してこれらを非同期(*1)に動かすことです。そこでspawnも実装してテストしてみました。(*1) parallel mapは呼び出したスレッドを結果が揃うまでブロックするのでこの用途には使えないのです…

Parallel Schemeに向けたテストその2

GCの並列実行が安定したので今度はGCの負荷のあるテストを行ってみました。これで性能が出るのかどうか気になる所です。テストにはcpstakを使います。このテストでは計算用スレッドと同じ数のGCスレッドが自動的に起動されています。これはスタベーションを…

Parallel Schemeに向けたテスト

コンカレントGCの性能を落とさずに並列プログラミングを可能とする方法をいろいろ考えていましたが、どうやらparallel mapと呼ばれるものと相性が良さそうです。

PythonライクなGeneratorをSchemeで作ってみた

並列プログラミングについて考えるため、'thread', 'coroutine', 'fiber', 'generator' などを調べていました。その途中でPythonのGeneratorについて書いてある http://linuxgazette.net/100/pramode.html に行き当たり、「なるほどこれは便利なものだな!」…

Google V8 JavaScript EngineでFFIをテスト

FFIのテストのためにGoogle V8 JavaScript Engineを使って見ました。

GTKでFFIをテスト

FFIのテストのためにGTKを使ってみました。世の中こんな便利になっていたとは :p テストプログラムはLinux用で32bit(0.9.6-update2)と64bit(trunk)の両方で動作を確認しています。リストをREPLにコピペすれば動きますよ :)

64bit Linux x64 FFI

Linux-x64のFFIを実装しました。 x64はREXなどの導入により命令語もさらに複雑なことになっていて、もはや仮想命令をCPUがJITしてるような感じがしますね。そういう方向ならJavaVMをハードで実装する話も復活するかもしれないと思いましたよ :D

64bit Linux対応

R6RS関連のデバッグが一通り終わったのでイプシロンを64bit Linux対応にしてみました。 開発用のUbuntu 64bitをWindows VistaのNTFSパーティションにインストール。32bit版と64bit版の動作を比較しながら開発するのでgcc-multilibとg++-multilibを導入してい…