#みなさん、本当にありがとうございます。。。
#僕の手順が間違っているかもしれないので、自分のやっている手順を一つ一つ書いてみます。
#1. Gauche-0.9.tarをダウンロード、展開
#2. シェルから中に入って./configure --enable-framework && make framework する
#3. 出来上がったGauche.frameworkをアプリケーションの開発フォルダ(xcodeprojなどが入っているフォルダ)につくったFrameworksフォルダにコピー
#4. Xcodeのプロジェクトに追加=>既存のフレームワークで出てくるメニューからその他を追加をクリック
#5.先ほどFrameworksに入れたフォルダを選択->追加
#6.ターゲットを右クリック=>追加=>新規ビルドフェーズ=>新規コピーファイル
#7.デスティネーションにフレームワークを選択して終了
#8.出来上がったファイルをコピーにGauche.frameworkを追加
#でビルドして実行しています。
#コードは
##include <stdio.h>
#include <Gauche/gauche.h>
int main (int argc, const char * argv[]) {
GC_INIT();
Scm_Init(GAUCHE_SIGNATURE);
/* load_gauche_init() */
ScmLoadPacket lpak;
if (Scm_Load("gauche-init.scm", 0, &lpak) < 0) {
Scm_Printf(SCM_CURERR, "gosh: WARNING: Error while loading initialization file: %A(%A).\n",
Scm_ConditionMessage(lpak.exception),
Scm_ConditionTypeName(lpak.exception));
}
/* open output stream */
ScmObj os = Scm_MakeOutputStringPort(TRUE);
/* init load packet */
Scm_LoadPacketInit(&lpak);
/* load test.scm */
if (Scm_Load("test",0, &lpak) < 0) {
Scm_Printf(SCM_CURERR, "gosh: WARNING: Error while loading test.scm: %A(%A).\n",
Scm_ConditionMessage(lpak.exception),
Scm_ConditionTypeName(lpak.exception));
}
/* eval cstring and write result to port */
ScmEvalPacket epak;
Scm_Write(Scm_EvalCString("*load-path*",SCM_OBJ(Scm_UserModule()), &epak),
os,
SCM_WRITE_DISPLAY);
/* get object from port and convert to string and output */
puts(Scm_GetString(Scm_GetOutputString(SCM_PORT(os), 0)));
Scm_ClosePort(SCM_PORT(os));
Scm_Exit(0);
return 0;
}
#こんな感じです。test.scmはちゃんとVersions/Current/share/gauche/site/lib/test.scm
#に置いてあります。
#エラーメッセージは
#gosh: WARNING: Error while loading test.scm: cannot find file "test" in *load-path* ("/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.9/lib")(error).
#です。
#以前に Mingw の gcc4 だと number のテストでエラーになると報告しましたが、0.9だと問題ないみたいです。 WiLiKi の Gauche:Bugs に挙がってた文字が負数になる件と関連があるんでしょうかね。
#あれからCocoaアプリケーションでやってみたところ無事動き、*load-path*もきちんと設定されている事が解りました。
#ありがとうございました。
#Pocketさん無事動いたとの事で。安心しましたです
#>齊藤 む、謎。文字のあれはunicode範囲外の文字を食わせないと発現しないのでnumberのエラーとは一見関係なさそうだけど、でもそれ以外で全体に影響を与えるような変更ってしてないよなあ。
#もしかするとあのあたりの変更が最適化に影響を与えてバグを隠してるって可能性はある。それだと厄介だ。