##int main () { [](){}(); } ああ何て恐ろしい。Lispがカッコだらけなんて言ったのは誰だ。
#括弧の呪縛から逃れたいならScheme
#どうして変数キャプチャ指定させるんだろう、代入あったらキャプチャ、無ければコピーでいいじゃん、と思ってたんだけど、そうか、lambda body内でポインタや参照を取って他の関数に渡されると書き換えがあるかどうかわからんのだね。
#C++0xの仕様を10年前に持っていってStroustrupの偽インタビュー http://harmful.cat-v.org/software/c++/I_did_it_for_you_all と並べたら、絶対ジョークだと思われると思う。 #(それとも偽インタビューの方をシリアスととられるか?)
#www.kahua.org上で動かしているGaucheを0.9にしました
#今のところ快調
#[
#うげ
#どうした?
#いや、何でもないです
##redditで取り上げられてますね
#RSSで眺めてて、見たことあるようなタイトルだと思ったらやはりshiroさんのだった
#ずいぶん昔のやつを…
#日付入ってるからいいんじゃないですかね
#Web上の文書はちゃんと日付を入れといてくれないと、賞味期限内かどうか判断できない
##% ./Versions/Current/bin/gosh
dyld: Library not loaded: @executable_path/../Frameworks/Gauche.framework/libgauche.dylib
#framework つくったら何を試せばいいでしょうか?
#そのframeworkを利用するアプリをコンパイルしてみる、とか。
#実際にリンクはしてないんですが、Xcode で新しいプロジェクトを作って Gauche.framework を追加してコンパイル・実行してみたら、こんなエラーがでました:
#run
[Switching to process 63614]
実行中...
dyld: Library not loaded: @executable_path/../Frameworks/Gauche.framework/libgauche.dylib
Referenced from: /Users/toru/src/testing/GaucheFrameworkTest/build/Debug/GaucheFrameworkTest
Reason: image not found
#なので、Frameworks というフォルダを作って、そこから Gauche.framework にシンボリックリンクをはったら、とりあえずエラーは出なくなりました。
#Frameworksの置き方が変わったのかな? よく覚えてないんだけど、.appフォルダの中のFrameworksの中に以前は置いてたんじゃないかな。それが変わったとか?
#シンボリックリンクをはる前のGauche.frameworkはどこに置いてたの?
#あ、コマンドラインアプリにしたから .app をつくってないのかな。Cocoa のプロジェクトもためしてみます。
#えっと、framework は Gauche をビルドしたディレクトリにおいたままです。
#Gauche.frameworkはappの中に含めるためのものなので、(XCodeが勝手にやってくれたのか自分でコピーしたのか覚えてないけど) 最終的にはappフォルダ中にコピーされてないとだめなはず。
##お、ファイルをコピーするように設定したら動きました。
##あ、で、問題は *load-path* でしたっけ。
#まえ iPhone SDK で遊んでたときにこの辺もいじってたんですが、すっかりわすれちゃった。
#お、うごいた。
#2009-11-24 23:13:58.492 GaucheFrameworkTestCocoa[64078:a0b] (with-output-to-string (lambda () (write *load-path*)))
2009-11-24 23:13:58.578 GaucheFrameworkTestCocoa[64078:a0b] result: size: 356, body: ("/Users/toru/src/testing/GaucheFrameworkTestCocoa/build/Debug/GaucheFrameworkTestCocoa.app/Contents/MacOS/../Frameworks/Gauche.framework/Versions/Current//share/gauche/site/lib" "/Users/toru/src/testing/GaucheFrameworkTestCocoa/build/Debug/GaucheFrameworkTestCocoa.app/Contents/MacOS/../Frameworks/Gauche.framework/Versions/Current//share/gauche/0.9/lib")
#みたかんじ /usr/ 以下ははいってないですね。
#ああ、それが意図してる動作です。確認ありがとうございます。
#アプリをどこに持っていってもアプリの位置からの相対で*load-path*が設定されるはず。
#http://grab.by/Nfx <- Xcode のスクリーンショット。 #こんばんは
#今日は繋がった!
#Gauche.frameworkネタで盛り上がっているので来てみました
#こんばんはこんばんは。
#ぼくよくわかってないので、確認していただけるとうれしいです。
#と言い残して寝落ち……。
#おやすみなさいw
#おやすみなさい。
#うちで使ってるGauche.frameworkは、PowerPCとintelの両方で動く必要があったのでMakefileとか色々手で書き直してました。(0.8.14前後)
#とりあえず何を確認したらよいですかね
#多分Pocketさんのやり方で、XCodeがprivate frameworkとしてGauche.frameworkを取り込む設定になってないっていうことのような気がするんです。
#出来上がったGauche.frameworkの使い方はとおるさんので合ってると思いますが
#はい、とおるさんので動いてるので、そういうことだと思います。
#Gauche.frameworkをバンドルにコピーするのは自分でビルド手順を書かないとだめなんでしたっけ。
#gauche-config も install 前に link し直さないと build directory が rpath に入ったバイナリがインストールされちゃいません?
#少なくとも NetBSD はそうでした。
#(流れを読まずに全く別な話をしてます)
#>enami そうですね。gauche-configはlibgaucheには依存しないので気にしてなかったのですが気持ち悪いといえば気持ち悪い。
#フレームワークの追加方法は
##に自分で書いてたw
##とかが参考になるかと思います
#なるほど。ではPocketさんにそのへんを参考にしてやってもらって、結果報告を待ちます。
#> Gauche.frameworkの中にふくまれているgoshをきどうして
#というのはうちではできないな
#(バインドしてるアプリの中から呼び出せばできるのかな)
#とおるさんのスナップショットの例ではapplicationDidFinishLaunchingでやってますが、うちではmain()でいきなり書いてました;;
#int main(int argc, char *argv[])
{
// GC
GC_INIT();
Scm_Init(GAUCHE_SIGNATURE);
ScmLoadPacket lpak;
if (Scm_Load("gauche-init.scm", 0, &lpak) < 0) {
Scm_Printf(SCM_CURERR, "gosh: WARNING: Error while loading initialization file (gauche): %A(%A).\n",
Scm_ConditionMessage(lpak.exception),
Scm_ConditionTypeName(lpak.exception));
}
// load_didi_init
if (Scm_Load("didi-init.scm", 0, &lpak) < 0) {
Scm_Printf(SCM_CURERR, "gosh: WARNING: Error while loading initialization file (didi): %A(%A).\n",
Scm_ConditionMessage(lpak.exception),
Scm_ConditionTypeName(lpak.exception));
} else {
//#ifdef DEBUG
NSLog(@"loading init file...");
//#endif
}
gosh("(print #`\"DiDi for EIJIRO by naoya_t. Powered by libgauche ,(gauche-version)\")");
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
...
#あ。タブが8文字だ
#gosh() というのは
##にもある自作関数