The first release of MIR project
Hello, everyone. I'd like to announce the very first release of MIR code.
MIR is the light-weight JIT compiler with very fast start up time. It can generate code for the following platforms:
- x86-64 Linux
- x86-64 MacOS
- aarch64 Linux
- aarch64 (M1) MacOS
- ppc64 big endian Linux
- ppc64 little endian Linux
- s390x Linux
- RISCV Linux. Minimal requirement is I64 (64-bit integer support), M (integer multiplication and division), F and D (single and double precision IEEE FP numbers)
x86-64 Windows is not officially supported yet although some people already successfully use MIR on this platform.
You can generate machine code in memory from Medium Internal Representation or/and C code.
The JIT compiler is designed to work in multi-threaded environment and can generate machine code for different MIR functions and/or C files in parallel.
The generated code should work with code generated by other compilers (e.g. GCC/Clang) as a lot of efforts were spent to achieve target C ABI compatibility (argument passing, memory layout, etc).
The part of release is a standalone C11 compiler/interpreter c2m
. It permits to use C as a scripting language.
The more details about the release can be found on https://github.com/vnmakarov/mir/tree/v_0_1
I would like to thank numerous people who are interested in the project, provided invaluable feedback and pull requests, tried the code before any release, and were patient in waiting the promised release.
The project work will continue. The future development directions are
- improvement in generated code and compilation speed
- support of speculation/deoptimization on MIR and C code level which is important for JITs of dynamic programming languages
- more platforms support
- more interoperability with other compiler IRs