Gauche > Archives > 2021/12/26

2021/12/26 04:46:29 UTCkaki
#
macOS Mojaveです。
2021/12/26 04:52:32 UTCshiro
#
あーうちのOSXまだ上げてないや。OSXだけ別のことをやってるのでバグ出る可能性はあります。src/paths.cのget_executable_pathでproc_pidpathを呼んでるあたり。
#
ビルドした段階で、src以下で./gosh -ftestで走らせて、((with-module gauche.internal %gauche-executable-path)) を評価するとどうなります?
2021/12/26 05:06:38 UTCshiro
#
あれ、そんなことないや。うちのも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;
 }
2021/12/26 05:51:25 UTCkaki
#
このパッチでgoshをアンインストールした状態でも通るようになりました。
#
うちでもgoshをインストールしている状態だとtarballからビルドしても再現しません。
2021/12/26 05:55:59 UTCshiro
#
goshがインストールされてると、おかしなパスでヒットしなくてもインストール済みのライブラリを読めちゃうからですね。なぜかうちのMacだと全てのGaucheの痕跡を消し去ってからでも通っちゃうんですが。
2021/12/26 06:02:53 UTCkaki
#
なるほど