Self-hosting toolchain for the XR/station and Fox32 platforms.
Features a self-hosting compiler for the Jackal language, an assembler, a linker, and a multi-threaded build tool; all written in Jackal. These tools can run on any little-endian platform that has a C compiler, and also on the XR/17032 and Fox32 architectures.
Cf/ - Common Frontend code shared between the tools.
Library/ - Common library code shared between the tools.
Rtl/ - Common native runtime code.
XrAsm/ - Assembler.
Jackal/ - Jackal compiler.
XrLink/ - Linker.
XrBuildTool/ - Build system.
XrDiskUpdateTool/ - Disk image management tool.
To initially build the Jackal compiler, type ./bootstrap.sh
to cause the "precompiled" C files to be built into the initial compiler at ./bin/jkl.exe
. The custom build system will also be built at ./bin/xrbt.exe
.
Typing ./buildall.sh [desired multithread count]
will then do a "proper" build of all of the tools.
Subsequent compilations of the tools can be performed as:
./bin/xrbt.exe ./build.xrbt JOBS=[desired multithread count] [toolname]
Where toolname is one of the following choices:
Jackal - The Jackal compiler.
XrBuildTool - The build system.
XrAsm - The assembler.
XrLink - The linker.
XrDiskUpdateTool - The disk tool.
- Jackal -> C bootstrap transpiler.
- Self-hosted Jackal compiler with C, Fox32, and XR/17032 backends.
- Self-hosted build tool
xrbt
to replacemake
. - New generic assembler written in Jackal with XR/17032 and Fox32 support.
- New linker written in Jackal with XR/17032 and Fox32 support.
- Disk image creation and partitioning tool. Also with support for formatting, reading, and writing AisixFS.
-
xrbt
support for automatically creating and updating rebuilt files in disk images if configured to do so. - Complete rewrite of the MINTIA OS in Jackal.
- New middle-end and backends for the Jackal compiler, since those turned out suboptimal (it was my first time!).