Skip to content


Subversion checkout URL

You can clone with
Download ZIP
The Managed Compiler Infrastructure is a modern and intuitive compiler back end for managed languages.
D Python Other
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bootdoc @ ef5d0ca
libffi-d @ 3db96e1 Update libffi-d and libgc-d submodules.
libgc-d @ 4d0e22c
src/mci Update copyright year.
syntax Remove all array and field get/set instructions.
tests Only allow tail calls in functions with standard CC.
.gitignore Make the test runner able to check output against expected output.
LICENSE Update copyright year.
README Some docs updates.
STYLE Update STYLE regarding contracts.
THANKS Update THANKS. Simplify the bootstrap script and make it more Python 3-friendly.
mci.gdb Correctly return a non-zero exit code from GDB upon an unhandled crash.
wscript Add lint tests.


            == MCI: Managed Compiler Infrastructure ==

                -- Introduction --

Welcome to the MCI!

The MCI (Managed Compiler Infrastructure) is a project that seeks to
write a complete compiler infrastructure and JIT (just-in-time) compiler
in the D language (version 2.0). The goal is a modern, intuitive, and
future-proof API usable by as many front ends as possible.

The rationale for such a project is that developing and maintaining such
systems in C/C++ (or similar languages) is tedious and error-prone. Other
languages also don't offer the possibility to expose a clean and simple
API, particularly due to the lack of a garbage collector and an exhaustive
standard library.

The MCI presents an intuitive, four-address intermediate representation that
will easily represent common constructs in programming languages today. At
the same time, it is powerful enough to represent languages as low-level as C.

The MCI is also a virtual machine: It provides threading infrastructure,
automatic memory management through garbage collection, foreign function (FFI)
invocation, and many other features commonly needed by managed virtual
machines and languages.

We don't mean for the MCI to be usable as a virtual machine by itself, however.
It is generally meant to be a fundamental building block for higher-level
virtual machines.

For further information, see:

      - Licensing and copyright information.
      - Supported compilers, architectures, operating systems, etc.
      - Instructions on building and installing the MCI.
      - Names and contact information for MCI developers.
    * THANKS
      - Credits and appreciation where due.
    * STYLE
      - Coding style rules (only relevant if you're a contributor).

See also the documentation in the 'docs' directory.

You can reach the MCI community in several ways:

    * IRC channels
      - #lycus @
      - #mci @
    * Mailing lists
      - lycus-announce:
      - lycus-discuss:
      - lycus-develop:
Something went wrong with that request. Please try again.