- Install the required packages (if not already installed)
sudo apt update
sudo apt upgrade
sudo apt install llvm g++
- Compile the Jimbo compiler.
This is done thorugh the shell file jimpilier.sh
. Simply run
./jimpilier.sh main.cpp
This will output a new executable file called jmb
. In the current iteration, this file dumps LLVM-IR to stderr.
This setup will remain until I have the foundations & syntax of the language complete; once that part is done, I'll begin working on the LLVM passes to optimize what it puts out. After that, i'll work on having this compile directly into asm
- Run the Jimbo compiler
I have included is a test file, test.txt
that demonstrates some of the features included in the Jimbo programming language. Feel free to test off of this, or create new files to run them in.
Here is the shell command that I use to test any code I write:
./jmb test.txt &> jmb.ll ; lli jmb.ll
I plan to have Jimbo files use a .jmb
file extension, but this is currently low on my priority list.
Right now my main priority is getting the language off the ground (When i'm not in class); once I do that, I plan of updating the file setup to be more easy to navigate and clean. Until then, jimpilier.h
will be a big monolith of a file for anything compiler related.
I have various TODO markers spread out throughout jimpilier.h
reminding me that I still have a lot of progress to make. Feel free to take a look through and see my progress!