I8C is a compiler for Infinity notes. It compiles I8 source code to object code that can then be linked into executables or shared libraries in the usual way.
You can install I8C with PIP:
pip install --user i8c==0.0.3
or you can build from source:
git clone https://gitlab.com/gbenson/i8c.git cd i8c python setup.py test # optional python setup.py install --user
Either will install I8C in
~/.local/bin/i8c, so you may need to add
~/.local/bin to your path. Alternatively you can omit the
--user and install I8C globally on your system.
In most cases the command you want is:
i8c -c file.i8
which reads and compiles
file.i8 and writes the result to
In general I8C operates like GCC, so if you’re used to GCC then I8C should make sense. I8C uses GCC both to preprocess its input (unless invoked with
-fpreprocessed) and to assemble its output (unless invoked with
-S). If GCC is used, all options not explicitly listed by
i8c --help will be passed to GCC unmodified.
The following environment variables may be set to cause I8C to use a specific GCC executable:
- Program for compiling C programs (default:
- Program for running the C preprocessor, with results to standard output (default:
$(I8C_CC) -E -x c)
- Program for compiling assembly files (default:
$(I8C_CC) -x assembler-with-cpp)