Nicolas Ojeda Bar
2015-06-07 17:44:38 UTC
Dear list,
I am happy two announce an ALPHA release of a new native-code backend
for the OCaml compiler.
It targets the RISC-V instruction set (http://riscv.org) being
developed at UC Berkeley. The lowRISC project at the University of
Cambridge (http://www.lowrisc.org) is developing open-source SoCs
based on this instruction set.
This release is in the form of a cross-compiler. It depends on the
cross-compiling support recently added to 4.02.0+trunk. It outputs
ELF binaries that can be simulated directly on the RISC-V ISA
simulator (spike) or run natively in a suitable virtual machine.
For detailed installation instructions, please visit:
https://github.com/nojb/riscv-ocamlopt.
The new backend is based on the old 3.12 MIPS backend and the
currently shipping arm64 backend. Most compiler tests that can
compile in the RISC-V environment pass successfully (including the
"big" ones such as misc-bk, misc/hamming, misc/boyer, misc/nucleic,
misc/bdd, etc.).
Limitations (some are due to the state of RISC-V software tools, some
are due to limitations of the cross-compiling support in the current
OCaml compiler, some just need work):
- Only 64-bit for now (in particular the host has to be 64-bit as well)
- Unix module is not yet supported
- The current version uses the Newlib C library, which is somewhat
less capable than glibc.
- Shared library support may or may not work (has not been tested)
Planned short term improvements (patches welcome!):
- 32-bit support
- cfi directives (and/or frame pointer inclusion) for easier debugging
- switch to glibc
- soft float support
- Unix support
Development is ongoing.
Suggestions, questions of any kind very welcome!
Thanks very much,
Best wishes,
Nicolas
I am happy two announce an ALPHA release of a new native-code backend
for the OCaml compiler.
It targets the RISC-V instruction set (http://riscv.org) being
developed at UC Berkeley. The lowRISC project at the University of
Cambridge (http://www.lowrisc.org) is developing open-source SoCs
based on this instruction set.
This release is in the form of a cross-compiler. It depends on the
cross-compiling support recently added to 4.02.0+trunk. It outputs
ELF binaries that can be simulated directly on the RISC-V ISA
simulator (spike) or run natively in a suitable virtual machine.
For detailed installation instructions, please visit:
https://github.com/nojb/riscv-ocamlopt.
The new backend is based on the old 3.12 MIPS backend and the
currently shipping arm64 backend. Most compiler tests that can
compile in the RISC-V environment pass successfully (including the
"big" ones such as misc-bk, misc/hamming, misc/boyer, misc/nucleic,
misc/bdd, etc.).
Limitations (some are due to the state of RISC-V software tools, some
are due to limitations of the cross-compiling support in the current
OCaml compiler, some just need work):
- Only 64-bit for now (in particular the host has to be 64-bit as well)
- Unix module is not yet supported
- The current version uses the Newlib C library, which is somewhat
less capable than glibc.
- Shared library support may or may not work (has not been tested)
Planned short term improvements (patches welcome!):
- 32-bit support
- cfi directives (and/or frame pointer inclusion) for easier debugging
- switch to glibc
- soft float support
- Unix support
Development is ongoing.
Suggestions, questions of any kind very welcome!
Thanks very much,
Best wishes,
Nicolas
--
Caml-list mailing list. Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
Caml-list mailing list. Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs