MacPorts の gprolog 1.4.0 で Segmentation Violation

7つの言語 7つの世界 第4章 Prolog のセルフスタディをやろうとして、MacPortsGNU Prolog 1.4.0 をインストールしてみました。

$ sport install gprolog

(sport は sudo port への alias です。詳しくは、MacPorts 2.0.1 インストールメモ: PATH とファイルシステムの case-sensitivity に注意 - passingloopの日記

しかし、

GNU Prolog 1.4.0 で例えば次のような計算をすると,次のようなエラーが出て,prolog自体が終了してしまいます.

?- X is 0 + 1

Fatal Error: Segmentation Violation

■【Mac】【Prolog】is を使った計算をするとエラーが出る: メモ帳

この人と同じエラーに遭遇しました。

調べてみると、gprolog 1.4 は x86_64 をサポートしていなかったので、CC='gcc -arch i386' してみたところ、エラーが再現しなくなりました。

かなりのやっつけ仕事ですが、Mac OS X への Io のインストール - passingloopの日記 で紹介した passingloop-ports に追加して、

$ sudo port install gnuprolog

で修正版をインストールできるようにしました。