Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-その他- Apple Silicon (M1 cpu)上のCommon Lispの状況

巷ではApple Silicon搭載Macのスピードが異常に速い、と話題になっています。今使っているMac (iMac 21inch late 2013)は最新のmacos Big Surが降ってこないこともあり、Apple Silicon搭載のmac miniの購入を真剣に考えています。

 

Apple Silicon上ではDockerやVirtualboxなどの仮想環境系が全滅なのはいつかサポートされると信じるとして、肝心のCommon Lispの動作状況はどうなっているのでしょうか。なかなかまとまった情報がない中、2つの情報を見つけたので共有します。

 

SBCLがRosetta2の上である程度動作するようです。

Intel cpu向けにコンパイルされたSBCL最新版がRosetta2の上で動いていますね。続報として関数のコンパイルや実行もできるそうです。残念ながらメモリエラーが発生すること、quicklispのロードで失敗すること、などでまだ実用には供さないそうです。

 

もう1つの情報は、Clozure Common Lispは苦戦している、というものです。

Rosetta vs. the INT instruction | Apple Developer Forums

Clozure Common Lispをメンテしている会社の人の投稿で、intel cpu向けのバイナリを実行してもRosetta2上でエラーが発生するがどうしたら良いか、という相談です。GCの起動などでソフトウェア割り込みを使っているが、ソフトウェア割り込み命令はサポートされていない、というエラーのようで、開発者フォーラムで相談しているようです。

ARM64版を作るにはコンパイラのバックエンドを加える必要がありそれも時間がかかる、とのことです。

 

この手の情報を見ているとやはりコンパイラの移植は大変だな、と思うのと同時に、Maxima on Androidで使っているECL (Embeddable Common Lisp)ならば割と簡単に動くかも、、、とも思ったりもします。

 

mac mini買うべきか、、、