Roadmap¶
Where things stand¶
The examples, docs and CI coverage planned for this guide are done. There are thirteen example programs. CI builds all of them on Linux and on Apple Silicon and Intel Macs, and runs all of them except the two OpenGL ones on macOS. Every example that draws is checked against a recorded image checksum (the OpenGL ones on llvmpipe), and the audio example against a checksum of its samples. Everything targets hcc 0.0.15-beta (commit 06ca611), which was still the newest upstream version when the compiler quirks were last re-tested in October 2026.
Every hcc bug found here is reported upstream. What's left is keeping up with hcc as it changes.
Ongoing¶
- Re-test every entry in Compiler quirks against each new hcc release, drop the ones that are fixed, and move the pinned commit in
scripts/common.shforward once the examples pass on it.
Done¶
Examples¶
- Bitmap font text. Draw strings into the canvas from a font stored in the source, the same way sprites are.
- Tilemap scroller. A level stored as a string grid, a camera that follows the player, collision against tiles.
- Audio. Square-wave beeps through
SDL_QueueAudio, with no callbacks. - Textured OpenGL. Upload a canvas as a GL texture and draw it on a quad, which bridges the two halves of this guide.
- Gamepad input.
SDL_GameControllerdeclarations and a small test program. - Image loading. A PPM reader in HolyC, and an SDL2_image binding.
Docs¶
- A page on memory arenas for per-level allocation.
- A worked example of porting a small TempleOS graphics program.
- Notes on profiling hcc output (
perf, Instruments).
Testing¶
- CI builds hcc and runs every example on Linux, including the OpenGL ones on Mesa's software renderer.
- macOS CI job (Apple Silicon and Intel).
- Pixel checksums for the headless examples, so rendering changes are caught as well as crashes.
- The gamepad example is tested with SDL's virtual controller, including unplugging and replugging.
- The audio example's samples are checked through SDL's disk driver, on SDL2 and on sdl2-compat.
-
--ppmmodes forsprite-demo,sdl-demo,opengl-demoandgl-texture. The OpenGL frames match on llvmpipe across Mesa 25.2 and 26.2; other drivers differ by a few pixels, so those checks run on llvmpipe only.
Tracking hcc¶
- Every bug in Compiler quirks reported to hcc (#283 to #294, plus the existing #117 and #206).
Contributions are welcome. Open an issue first for anything large.