This is an old revision of the document!
The purpose of this page is to track support for critical programming languages.
| Language | arm64 | amd64 | risc-v | powerpc | powerpc64 | powerpc64le |
|---|---|---|---|---|---|---|
| Erlang | ✔ | ✔ | ❌ [1] | ❌ | ✔ | ✔ |
| Fortran | ✔ | ✔ | ❌ [2] | ✔ | ✔ | ✔ |
| GHC | ❌ [10] | ✔ | ❌ | ❌ | ❌ | ❌ |
| Go | ✔ | ✔ | ❌ [3] | ❌ | ❌ | ❌ |
| Guile | ❌ [11] | ✔ | ✔ | ❌ [14] | ✔ | ✔ |
| Janet | ✔ | ✔ | ❌ [4] | ✔ | ✔ | ✔ |
| Java | ✔ | ✔ | ❌ [5] | ❌ | ✔ | ✔ |
| Lua | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Ocaml | ❌ [12] | ✔ | ❌ [6] | ✔ | ✔ | ✔ |
| Perl | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| PHP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Python | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Racket | ✔ | ✔ | ❌ [7] | ❌ | ❌ | ❌ |
| Ruby | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Rust | ✔ | ✔ | ❌ [8] | ✔ | ✔ | ✔ |
| Scheme | ✔ | ✔ | ✔ | |||
| SBCL | ❌ [13] | ✔ | ❌ [9] | ❌ | ❌ | ❌ |
[1] Target: riscv64-unknown-freebsd13.0
[2] Ignoring lang/gcc10: is only for aarch64 amd64 arm armv6 armv7 i386 powerpc powerpc64 powerpc64le, while you are running riscv64
[3] Ignoring lang/go: is only for aarch64 amd64 armv6 armv7 i386, while you are running riscv64
[4] Assertion failed: (sizeof(void *) == 4), function system_test, file ../src/boot/system_test.c, line 33. qemu: uncaught target signal 6 (Abort trap) - core dumped
[5] Ignoring java/bootstrap-openjdk11: is only for aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le, while you are running riscv64
[6] Ignoring lang/ocaml: is marked as broken on riscv64: fails to build: hasgot.c:3:12: use of undeclared identifier 'secure_getenv'
[7] Ignoring lang/racket: does not run on riscv64, while you are running riscv64 (reason: unsupported platform)
[8] Ignoring lang/rust: is only for aarch64 amd64 armv6 armv7 i386 powerpc powerpc64 powerpc64le, while you are running riscv64 (reason: requires prebuilt bootstrap compiler)
[9] Ignoring lang/sbcl: is only for amd64 i386, while you are running riscv64
[10] rts/posix/OSThreads.c:314:5: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'?
[11] posix.c:2173:3: error: unknown type name 'cpu_set_t'; did you mean 'cpusetid_t'?
[12] Ignoring lang/ocaml: is marked as broken on aarch64: Does not build: sh: as: not found
[13] Ignoring lang/sbcl: is only for amd64 i386, while you are running aarch64
[14] guile2 works