- February 15, 2015 at 8:47 am #31968
What programming languages are a good fit for the CI20? My wish list is:
– native code compilation
– source portability (to at least armel, aarch64, amd64, and 64-bit MIPS)
– strongly-typed or decent type inference
Go doesn’t want to build, and gccgo is too far behind the main Go version to be terribly interesting. OCaml doesn’t have native code compilation for MIPS. Haskell (ghc 7.8.4) is building, so that’s a bright point. 🙂
What languages are people developing in on the CI20?
kjwFebruary 17, 2015 at 3:00 pm #39462
Here’s a list of what should work from browsing what is currently in Debian (32 bit). I haven’t actually tested most of these though.
Primary GCC Frontends:
C, C++, Objective-C, Objective-C++, Ada, Fortran, Go, Java
D - compiler works, but standard library is unported
Clang / LLVM:
C, C++, Objective-C, Objective-C++
Mono (.NET - native jit):
Little endian only
C#, F#, VB.NET, ASP.NET (+ various others)
Other languages which compile to native code / jit:
COBOL (OpenCobol - via-c, possibly unmaintained?)
Haskell (GHC - via-c)
node.js (uses V8)
Some interpreted languages:
Bash / various shells
Common Lisp (GNU CLISP)
Forth (GNU Forth)
(+ other languages based on java)
Octave (similar to MATLAB)
Smalltalk (GNU Smalltalk)
Probably a lot more that I haven't thought of.
Notable languages which do not work on mips at all:
Google Go (official version rather than GCC's version)
For 64-bit mips the above list roughly the same except for (at the time of writing):
Ada, Haskell - Not bootstrapped yet (but might work).
GCJ - Doesn't seem to work on 64-bit mips.
LuaJIT - unported (but interpreter works)
Mono - unported + has no interpreted mode
Racket - build fails on mips64
V8 / Node.js - there is a port but the version in Debian is too old.
February 18, 2015 at 6:52 am #39463
Thanks for the summary. My first choice was Go but it’s definitely a no-go on MIPS for now. Hopefully Haskell will do the trick.February 18, 2015 at 7:35 am #39464
For anyone that follows who’s interested, the haskell-platform package in the apt repos (which is quite dated) seems to be able to bootstrap GHC 7.8.4 from source. It takes a few days (multi-stage bootstrap including the test suite) on the CI20. A few more tests fail than on x86_64, but so far the latest Cabal and related libraries seem to be building okay.