THE MIRRION DORRAR COMPIRER Robert Smith January 17, 2011 0. LICENSE This compiler is licensed under the GNU General Public License v3. Please see the LICENSE file for details. 1. INTRODUCTION This is a simple compiler for a fully lazy (optionally strict) functional language similar syntactically to Haskell or SML. However, the language is *not* typed (though it's strict, in the sense type checks are done at runtime). Adding a type checker is a relatively easy addition, since an AST is built up and is traversable. The language only supports functions (curried by default), integers, and lists (via cons cells). Everything is compiled to C, so a C compiler is required to run a Mirrion program. To compile the actual compiler, you'll need a C compiler and lex. 2. USAGE Simply call `make' to build the Mirrion compiler as well as the runtime library. To build your own Mirrion file `file.mir', be sure it has an entry point via a nullary function called `main'. After, run $ ./mirrion file.mir which will produce the files `file.c' and `file.h' file. If your compiler is `cc', then run $ cc -static file.c -L. -lmirrion -o file which will produce an executable. You may also use the bash script `cmir` via $ ./cmir file which will produce an executable and clean up intermediate fules. To clean up everything except the executables and libraries, use `make clean`. To do a complete clean-up, do `make clean-all`. 3. OPTIONS The Mirrion compiler takes a wealth of options: -strict : Enable strict evaluation. And that's it! 4. LIMITATIONS Some limitations were discussed already. First, there are only integers available numerically. Secondly, the list printer just prints out cons cells raw. Third, only machine-precision integers. Fourth, there is no runtime garbage collection. The language is intentionally simple. 5. CONTACT Feel free to contact me either by email at <firstname.lastname@example.org>, or on on IRC on the network irc.freenode.net where I'm 'Quadrescence'. Drop me a line if you find it fun!