【讨论】各编程语言对 Apple Silicon 以及 ARM64 的支持度

支持度包括的讨论范围:

  • 编译器/解释器/转译器
  • 包管理器
  • 构建系统
  • IDE、Language Server
2 个赞

Haskell

  • 编译器:GHC 在 ARM 架构上仍存在一系列问题,
  • Language Server:在 ARM 架构的支持是试验性的
  • stack:GHCup 无法为 ARM 架构提供该工具

Ada

Ada 相关工具链目前使用 Alire 发行,并非全提供了 Apple Silicon Native 版本,需要通过 Rosetta 2 转译,可能会出现链接错误等问题。

Common Lisp

SBCL 提供了 ARM64 的支持(包括 Apple Silicon),但最新版需要自行编译:

Not all platforms have the latest binaries, but SBCL is still supported and working on these platforms. An older binary (or provided by an OS repository / homebrew / macports) or even a different CL implementation can be used to build the latest source by following the directions for compiling it.

https://www.sbcl.org/platform-table.html

Clozure CL 尚未提供 ARM64 支持(包括 Apple Silicon):

https://ccl.clozure.com/#:~:text=reasonably%20recent%20macOS%20(x86-64)

J

J 支持 Apple Silicon,有 SIMD 加速版本和普通版本,如果平台支持 SIMD 会在第一次更新时替換到 SIMD。虽然通常把 SIMD 版本叫 AVX2,在 Apple Sillicon 和其它支持的 ARM CPU 上是会用 ARM Neon 指令集(主要通过 sse2neon)加速的。

Dyalog APL

从 v19.0 开始支持 Apple Silicon。对其它 ARM64 的支持也已发布。

1 个赞

14 个帖子被合并到现有话题中:【继续讨论】各编程语言对 Apple Silicon 以及 ARM64 的支持度

OCaml

1 个赞

ocaml 升级到 5.1 了。最近两年升级很勤。

1 个赞

2 个帖子被拆分为一个新话题:Vintage software 讨论

ML/1

我成功利用装在 x86-64 的 NetBSD 服务器上的 LLVM 生成了 AArch64 汇编,在 M4 上成功编译和运行了

最新的 CLT 没有提供 yacc 到 bison 的软链接,要注意一下,重复安装 CLT 会导致 clang++ 找不到 C++ 标准库头,这时需要 rm 了重新装过

FriCAS

因为 Clozure CL 不行了,换用 SBCL,结果指定了 heap size 4GB 都能在编译的时候爆栈,发狠指定 30GB 才过。用倒是没问题

Chez Scheme

10.0 版本能正常编译使用

Swift

搞笑的是,最新的 Sequoia 上 swiftc 报错工具链比 SDK 新所以没法装了 CLT 就开箱即用

喜报(?) Xcode 16.1 下载只要 3GB,因为默认只带 macOS SDK,安装后大约不到 14GB,比以前下载 11GB 安装 40GB 强多了

PVS

8.0 Beta 开始支持 SBCL,因为不能保证分发的 binary 能工作不再发 binary release

C-XSC (C++)

因为编译脚本没考虑过 ARM64,一些 C macro 冲突了,导致链接失败,抽空看看怎么回事

结论:调整一下编译选项后能用 CMake 编译,但是因为完全没有对 ARM64 浮点数指令的适配,正确性测试是通不过的 x86_64 macOS 和 Windows 也都过不去,那就算了。

TECO-64

能用

Mitsuharu Mac Emacs

停在 29 太久了,不过还能用

之前在我的 m1 上编译能过 (还有一个 homebrew 的脚本 fricas.rb).

但是很久没有用过了, 不清楚如何, 当时只用了 4GB 的 dynamic-space-size, 有一定几率会卡在 make test 上.

Clean

有 Linux AAarch64,沒有 Apple Silicon

FASM

能生成 ARM64 的目标码,本身还是只能在 x86 上运行。

HPTools for HP50g

用 C 写的,在 Apple M4 上编译无问题。

GNU Common Lisp

2.6.14 在 Apple M4 上 ./configure 失败: checking that sbrk is (now) non-random… configure: error: cannot trap sbrk

ACL2

用 SBCL 无问题。

HOL4, Poly/ML(SML)

native code compiler 支持 ARM64.