Skip to content
The Managed Compiler Infrastructure is a modern and intuitive compiler back end for managed languages.
D Python Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bootdoc @ ef5d0ca Update bootdoc submodule. Nov 14, 2012
docs Only allow tail calls in functions with standard CC. Nov 13, 2012
libffi-d @ 3db96e1
libgc-d @ 4d0e22c Update libffi-d and libgc-d submodules. Jun 6, 2013
src/mci Update copyright year. Jun 6, 2013
syntax Remove all array and field get/set instructions. Oct 26, 2012
tests Only allow tail calls in functions with standard CC. Nov 13, 2012
.gitignore Make the test runner able to check output against expected output. Oct 26, 2012
.gitmodules Remove libphlycus submodule. Jun 6, 2013
AUTHORS Update AUTHORS. May 15, 2012
COMPATIBILITY Add a bootstrap script. Oct 20, 2012
LICENSE Update copyright year. Jun 6, 2013
README Some docs updates. May 27, 2012
STYLE Update STYLE regarding contracts. Jun 19, 2012
THANKS Update THANKS. Jul 5, 2012 Simplify the bootstrap script and make it more Python 3-friendly. Oct 28, 2012
mci.valgrind Update the Valgrind suppressions file. Aug 2, 2012
wscript Add lint tests. Oct 26, 2012


            == 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.