2011/12/8 Benedikt Meurer > > > > The problem is IMHO that there is no one at INRIA caring about ARM. In an > open model we would have maintainers for the ARM port(s). > Note that if Ocaml compiler would have a C backend, all these problems or architecture port would disappear... Ocaml would have more than 30 target[1] In my Opinion, trying to generate assembler is a bad idea because modern CPU require a lot of work to generate good assembler. Only the GCC and LLVM team are big enough to be able to make a good job. In the Lisaac project, we were able to compete with C[2]. Lisaac is a compiler for a Smalltalk like language : the if/then/else is unknown to the compiler, it is defined in the true/false object. So it is a proof that a very high level language can reach C performance. Ocaml can do this, because the compiler is able to know a lot of type informations. The Lisaac compiler use strong flow analysis and, more importantly generate C code. To reach performance, Lisaac tailor C code to help GCC to generate very optimized code. For instance, GCC is able to produce MMX/SSE/AVX code when you write code like this : http://gcc.gnu.org/projects/tree-ssa/vectorization.html#vectorizab AutoVectorization is just an example of what you can do with GCC (or LLVM soon certainly) and which would require a lot of work with an own asm generator. [1] http://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures [2] http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=lisaac&lang2=gcc -- --------------------- https://twitter.com/#!/ontologiae/ http://linuxfr.org/users/montaigne