Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ik8b Compiler

ik8b is a Rust-based compiler that translates the ik language directly into standard Intel HEX files for the AVR-8 architecture.


Building and Compiling

Clone with submodules

Clone the repository and initialize submodules in one step:

git clone --recurse-submodules https://github.com/isakruas/ik8b.git

If you already cloned the repository without submodules:

cd ik8b
git submodule update --init --recursive

After git pull, if submodule pointers changed:

git submodule update --recursive

Build the compiler

Builds the native binary ./ik8b via a standard Rust container:

make build

Compile a source file to Intel HEX

./ik8b build <input.ik> -o <output.hex>

A bare ./ik8b <input.ik> -o <output.hex> also works. The source must declare its target, e.g. target atmega328p.

Commands

./ik8b build <file.ik> [-o <out.hex>] [--emit <hex|ir>] [--report]
./ik8b run   <file.ik>                   # compile, then simulate
./ik8b sim   <file.hex> --mcu <device>   # simulate an existing HEX
./ik8b devices                           # list supported targets
./ik8b info | version | license | help

Run ./ik8b help for the full list of options.

Clean build artifacts

make clean

Testing

make test               # compile + simulate the suite across all fitting MCUs
make test-interrupts    # validate interrupt-vector binding for all devices
make benchmark          # compare against avr-gcc C / asm

Documentation

The language reference, standard-library reference, and toolchain guide are in docs/ (Sphinx). Build them with make html inside docs/.

About

ik8b — a self-contained Rust compiler that turns the ik language into Intel HEX firmware for 8-bit AVR microcontrollers. No assembler, linker, or C runtime.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Sponsor this project

Contributors

Languages