Gtk, Gdk, Pango, GtkGLExtのバインディングを追加しました

Glib, GObjectの一部も作っています。全部で4000個くらい関数があって、Gtkだけでも1万行を越えています@@。あんまりなので、現在はWidgetごとに細かくライブラリファイルを分けた状態にしています。もちろんCのヘッダーファイルから定義をぶっこ抜くスクリプトを作って使っていますが・・・これだけの数になると確認作業も大変です :(

でも目的のGtkGLExtが使えるようになり満足です!


Gtkのウインドウの中でOpenGLの絵がぐるぐる回っています ^^b

プログラムの方はこんな感じになります。

続きを読む

Shibuya Lisp テクニカルトーク #2に参加してきました

Shibuya.lisp テクニカルトーク #2に参加してきました。素晴らしいイベントでとても楽しい時間を過ごさせていただきました。お世話になった皆様にとても感謝いたしております。m(_ _)m

今回のトークでは簡単なゲームを作ってデモを行いました。*1

ゲームはすべてSchemeで書かれています。SDLOpenGLイプシロンFFIで呼び出しています。プログラムはコンカレントGCベンチマークを目的としているので、かなり非効率な作りになっています。これは最適化するとGCの発生頻度があまりに低くなってベンチマークに使えなくなるためです^^;
今のままではあまりに見苦しいので、書き直してサンプルプログラムにする予定です。現在フレームレートはMacで500fps, linuxで3000fps程度ですが、最適化によりどのくらいになるかも興味のあるところですね :)

何かに似ているように見えると思いますが・・・気にしないでください :D

演出でそれなりの数のオブジェクトのアニメーションが発生します。小さな点に見えるものも、すべてテクスチャマッピングされたOpenGLのポリゴンで描画しています。実際のゲームに近い状態にするためにBGMや効果音も入れています。

これは実に単純なプログラムなのですが、私的には感慨深いものがあります。制作期間は3日ほどですが、その準備に4年かかったとも言えますので :p

次にイプシロンで作るゲームはピンボールになる予定ですよ :^)

*1: デモプログラムはゲーム中にGCが発生してもドロップフレームが発生しないことを確認するために作られています。

R6RSのライブラリ一覧表

R6RSのBase LibraryとStandard Libraryの一覧表を作成しました。各キーワードからr6rs.orgのhtmlページに飛べるようになっています。飛び先の一覧は逆引きSchemeチームから頂きました。感謝感謝です :)

http://www.littlewing.co.jp/ypsilon/doc-draft/r6rs.html

ドキュメント: (ypsilon socket)

ソケット関係のドラフトを追加しました。
http://www.littlewing.co.jp/ypsilon/doc-draft/

ドキュメントは仕様の再検討とテストも行いながら書くので時間がかかりますね。でも、これは貴重なリファクタリングの機会にもなりますので少しづつ進めるつもりです。この辺が仕様書と実験計画書の承認をもらってから開発を始める仕事とはちょっと違うところですね :p

ところで悲しいかな私の英語記述力は低いのです。変なところや解りにくい所は教えて頂けると助かります。ここはできれば妻に添削してもらいたいところなのですが・・・彼女は今とても忙しくて「この英文法の本いいわよ♪」と分厚い本を貸してくれたのでした orz

ちなみにSchemeで書いているドキュメント作成システムは更新が激しいので現在公開していませんが、将来的にはユーザーが簡単なドキュメントの作成に使えるようにしたいと思っています。R6RSライブラリのファイルを読んで雛形を作るとかできるので、ちょっと便利かもしれないです :)

FFIでFastCGIを使ってみた

Socket関連のドキュメントを書くにあたりhttpを試していました。lighttpdと簡単なCGIを書いてテストしていたのですが、CGIではイプシロンの起動の遅さが気になりました。そこでFastCGIというのを試してみることにしました。

続きを読む