From Infinity Wiki
Jump to: navigation, search

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 file.o.

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 -E or -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: gcc)
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)


Python package
Integration testing
Bug tracker
https://sourceware.org/bugzilla/ (product "infinity", component "i8c")
Mailing list
infinity@sourceware.org, https://sourceware.org/ml/infinity/