#macOS Mojaveです。
#あーうちのOSXまだ上げてないや。OSXだけ別のことをやってるのでバグ出る可能性はあります。src/paths.cのget_executable_pathでproc_pidpathを呼んでるあたり。
#ビルドした段階で、src以下で./gosh -ftestで走らせて、((with-module gauche.internal %gauche-executable-path)) を評価するとどうなります?
#あれ、そんなことないや。うちのもMojaveだ。
#んんー? Gaucheをアンインストールした状態でtarballからビルドして再現できなかったんで、何か他の要素がありそう。*load-path*の表示を見る感じでは、パスを切り出した後にNULバイトが落ちてるっぽい?
#GCでアロケートしてる時は0-fillされてるはずだけど、一応これやるとどうなります?
--- a/src/paths.c
+++ b/src/paths.c
@@ -182,6 +182,7 @@ static const char *get_executable_path()
if (r == PROC_PIDPATHINFO_MAXSIZE) return NULL; /* too long? something's funny */
char *path = PATH_ALLOC(r+1);
memcpy(path, buf, r);
+ path[r] = '\0';
return path;
}
#このパッチでgoshをアンインストールした状態でも通るようになりました。
#うちでもgoshをインストールしている状態だとtarballからビルドしても再現しません。
#goshがインストールされてると、おかしなパスでヒットしなくてもインストール済みのライブラリを読めちゃうからですね。なぜかうちのMacだと全てのGaucheの痕跡を消し去ってからでも通っちゃうんですが。
#なるほど