Gauche

黎明日記のGaucheセクション一通り読んだ

よく分かんないなあ。はじめから順に追っていこう……。やっぱCPU演習のコンパイラレジュメが頭に入るぐらいの知識が必要なんだろう。

専門家はコンパイラぐらいすらすら読める

というイメージ。僕の中でコンピュータの専門家/プロのプログラマ == "構文解析なんて手書きに決まってる!趣味でOSとかコンパイラとか作ります。"以前 Gauche のコンパイラとか面白いよ、と Lingr で言われたのですが、見てみても全然分かんなかったんです…

c-wrapper で遊ぶ

またまた SDL です。インタラクティブシェルで、ぽちぽちウインドウを出したりしたい場合、run_sdl_main に渡す手続きを定義せずに、継続を渡すと、シェルに復帰させられます。継続の実用的な例?他にどういう場面で使えるのかちょっと想像できないですが、 …

c-wrapper で C 関数に Scheme の手続きが渡せる件について

わかんねー。そもそも何から追っていけば良いのか分からない。とりあえず早く教授に言われた作業をこなしてから、これに取りかかるぞ!と宣言しておく。宣言することをやり遂げることの重要性を体で覚えなければガキでなくなることは出来ないだろう……。大き…

goshw

多分これで、Gauche + c-wrapper + SDL で作ったゲーム(そんなのあるのか知りませんが)を Mac OS X で動かしたい人(これもそんな人他に居るのか知りませんが)のニーズが満たせると思います。とりあえずウインドウが出たのでちゃんと動くと思います。誰か検証…

goshw は作りたくない。

Mac OS X でウインドウを出すアプリケーション(GUIアプリケーション)を作るためには、イベントループ内で処理を行う必要があるため(ほんとか?あやしい。Windowsでも同じじゃないの?)、GUI のイベントループに入らない、いわゆる普通のコマンドラインアプリ…

c-wrapper-0.5.0

出たようです。cwcompile スゲー!サンプルムービーの真似をして、(c-load "Cocoa/Cocoa.h" ...)をやってみたら、メチャクチャスワップしまくって時間がかかったので、メモリ欲しいなあと思いました。(c-load "SDL/SDL.h" ...) しても、案の定エラーが出て動…

id3lib では読めないタグがあった

でも taglib を使ったら読めた。とりあえず taglib に乗り換えよう。どっちのライブラリでも v2.4 にすると読読めない。 (use gauche.uvector) (use gauche.charconv) (use c-wrapper) (c-load-library "libtag") (c-load-library "libtag_c") (c-include "t…

c-wrapper と id3lib で MP3 情報とる

かえる三十郎 - Rubyでmp3のタグをいじるには3の内容を Gauche に移植してみました。 (use gauche.uvector) (use c-wrapper) (define (main args) (c-load-library "libid3") (c-include "id3.h") (let* ((tag (ID3Tag_New)) (#f (ID3Tag_Link tag "test.mp3…

ポインタがライブラリとGauche側の両方から参照される可能性がある……

のをどうするか?と言う問題にぶち当たった……具体的に言うと、id3libの、ID3_Frame クラスなんですが、これは基本的には ID3_Tag 内部でメモリの生存が管理されているので、 ID3_Tag のメソッドで ID3_Frame を取り出した後に、その ID3_Frame を ID3_Tag か…

あれ?id3lib って C 関数が提供されてるじゃん

じゃあもう c-wrapper でいいんでは?

stub ファイルをガシガシ書いた

まず、なんだかよくわからなかったこれ /* Register this DSO to Gauche */ SCM_INIT_EXTENSION(id3lib); は、拡張モジュールを読み込んだ、と言う情報を登録する手続きだろう。多分。新しい型を定義する必要がある奴はとりあえずコメントとして関数名を並べ…

stub ファイルをガシガシ書く

差し当たって、新しいクラスを定義しない範囲で、メソッドを Scheme 側に定義していこうと思います。出発点 ;;; ;;; id3liblib.stub ;;; " #include \"id3lib_glue.h\" " ;; これは多分、stub中でオートボクシングのために使われる定義 ;; 実際の定義は、id3…

id3lib のバインディングを作る話

なんかいろいろ間違ってたので修正しました。とりあえず、 (use media.id3lib) が成功した。おめー!でも何も出来ない。何故だろう…… === Makefile.in ================================================================== --- Makefile.in (revision 1214)…