Gauche > Archives > 2009/11/25

2009/11/25 00:42:22 UTCshiro
#
これはおもしろいC++0xのlambdaの解説 http://cpplover.blogspot.com/2009/11/lambda.html
#
int main () { [](){}(); } ああ何て恐ろしい。Lispがカッコだらけなんて言ったのは誰だ。
2009/11/25 00:46:27 UTCeyasuyuki@twitter
#
括弧の呪縛から逃れたいならScheme
2009/11/25 00:48:42 UTCshiro
#
どうして変数キャプチャ指定させるんだろう、代入あったらキャプチャ、無ければコピーでいいじゃん、と思ってたんだけど、そうか、lambda body内でポインタや参照を取って他の関数に渡されると書き換えがあるかどうかわからんのだね。
#
C++0xの仕様を10年前に持っていってStroustrupの偽インタビュー http://harmful.cat-v.org/software/c++/I_did_it_for_you_all と並べたら、絶対ジョークだと思われると思う。
#
(それとも偽インタビューの方をシリアスととられるか?)
2009/11/25 01:19:28 UTC(び)
#
www.kahua.org上で動かしているGaucheを0.9にしました
#
今のところ快調
#
[
#
うげ
2009/11/25 01:21:05 UTCshiro
#
どうした?
2009/11/25 01:23:33 UTC(び)
#
いや、何でもないです
2009/11/25 05:28:00 UTC(び)
#
http://www.reddit.com/r/programming/comments/a7x5m/scheme_in_the_realtime_cg_content_production_2002/
#
redditで取り上げられてますね
#
RSSで眺めてて、見たことあるようなタイトルだと思ったらやはりshiroさんのだった
2009/11/25 06:08:52 UTCshiro
#
ずいぶん昔のやつを…
2009/11/25 06:57:17 UTC(び)
#
日付入ってるからいいんじゃないですかね
#
Web上の文書はちゃんと日付を入れといてくれないと、賞味期限内かどうか判断できない
2009/11/25 07:27:59 UTCyuumi3@twitter
#
RT : shiro: これはおもしろいC++0xのlambdaの解説 http://cpplover.blogspot.com/2009/11/lambda.html
2009/11/25 07:41:12 UTCとおる。
#
% ./Versions/Current/bin/gosh 
dyld: Library not loaded: @executable_path/../Frameworks/Gauche.framework/libgauche.dylib
#
framework つくったら何を試せばいいでしょうか?
2009/11/25 07:44:23 UTCshiro
#
そのframeworkを利用するアプリをコンパイルしてみる、とか。
2009/11/25 08:06:12 UTCとおる。
#
実際にリンクはしてないんですが、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 にシンボリックリンクをはったら、とりあえずエラーは出なくなりました。
2009/11/25 08:22:18 UTCshiro
#
Frameworksの置き方が変わったのかな? よく覚えてないんだけど、.appフォルダの中のFrameworksの中に以前は置いてたんじゃないかな。それが変わったとか?
#
シンボリックリンクをはる前のGauche.frameworkはどこに置いてたの?
2009/11/25 08:27:49 UTCとおる。
#
あ、コマンドラインアプリにしたから .app をつくってないのかな。Cocoa のプロジェクトもためしてみます。
#
えっと、framework は Gauche をビルドしたディレクトリにおいたままです。
2009/11/25 08:29:35 UTCshiro
#
Gauche.frameworkはappの中に含めるためのものなので、(XCodeが勝手にやってくれたのか自分でコピーしたのか覚えてないけど) 最終的にはappフォルダ中にコピーされてないとだめなはず。
#
そうそう、アプリケーションバンドルっていうんだっけ。このへんの"Embedding a Private Framework in Your Application Bundle"あたり参考にならないかな。 http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPFrameworks/Tasks/CreatingFrameworks.html
2009/11/25 08:39:22 UTCとおる。
#
お、ファイルをコピーするように設定したら動きました。
#
http://grab.by/Ne7
#
あ、で、問題は *load-path* でしたっけ。
#
まえ iPhone SDK で遊んでたときにこの辺もいじってたんですが、すっかりわすれちゃった。
2009/11/25 09:14:36 UTCとおる。
#
お、うごいた。
#
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/ 以下ははいってないですね。
2009/11/25 09:17:59 UTCshiro
#
ああ、それが意図してる動作です。確認ありがとうございます。
#
アプリをどこに持っていってもアプリの位置からの相対で*load-path*が設定されるはず。
2009/11/25 09:19:39 UTCとおる。
#
http://grab.by/Nfx <- Xcode のスクリーンショット。
2009/11/25 09:29:54 UTCnaoya_t
#
こんばんは
#
今日は繋がった!
#
Gauche.frameworkネタで盛り上がっているので来てみました
2009/11/25 09:30:25 UTCとおる。
#
こんばんはこんばんは。
#
ぼくよくわかってないので、確認していただけるとうれしいです。
#
と言い残して寝落ち……。
2009/11/25 09:32:22 UTCnaoya_t
#
おやすみなさいw
2009/11/25 09:32:36 UTCとおる。
#
おやすみなさい。
2009/11/25 09:33:53 UTCnaoya_t
#
うちで使ってるGauche.frameworkは、PowerPCとintelの両方で動く必要があったのでMakefileとか色々手で書き直してました。(0.8.14前後)
#
とりあえず何を確認したらよいですかね
2009/11/25 09:36:17 UTCshiro
#
多分Pocketさんのやり方で、XCodeがprivate frameworkとしてGauche.frameworkを取り込む設定になってないっていうことのような気がするんです。
2009/11/25 09:36:34 UTCnaoya_t
#
出来上がったGauche.frameworkの使い方はとおるさんので合ってると思いますが
2009/11/25 09:37:14 UTCshiro
#
はい、とおるさんので動いてるので、そういうことだと思います。
#
Gauche.frameworkをバンドルにコピーするのは自分でビルド手順を書かないとだめなんでしたっけ。
2009/11/25 09:38:25 UTCenami
#
gauche-config も install 前に link し直さないと build directory が rpath に入ったバイナリがインストールされちゃいません?
#
少なくとも NetBSD はそうでした。
#
(流れを読まずに全く別な話をしてます)
2009/11/25 09:41:14 UTCshiro
#
>enami そうですね。gauche-configはlibgaucheには依存しないので気にしてなかったのですが気持ち悪いといえば気持ち悪い。
2009/11/25 09:41:21 UTCnaoya_t
#
フレームワークの追加方法は
#
http://practical-scheme.net/wiliki/wiliki.cgi?naoya_t%3aMacOSX%3aGauche.frameworkを使おう
#
に自分で書いてたw
#
http://www8.ocn.ne.jp/~sonoisa/OgreKit/#FAQ2
#
とかが参考になるかと思います
2009/11/25 09:42:57 UTCshiro
#
なるほど。ではPocketさんにそのへんを参考にしてやってもらって、結果報告を待ちます。
2009/11/25 09:46:20 UTCnaoya_t
#
> Gauche.frameworkの中にふくまれているgoshをきどうして
#
というのはうちではできないな
#
(バインドしてるアプリの中から呼び出せばできるのかな)
2009/11/25 09:54:48 UTCnaoya_t
#
とおるさんのスナップショットの例では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() というのは
#
http://practical-scheme.net/wiliki/wiliki.cgi?naoya_t%3aMacOSX%3aGauche.frameworkを使おう
#
にもある自作関数