tombkeeper / BitKindle
git clone https://github.com/tombkeeper/BitKindle.git
—
+119
stars, 24h · #114
+119
stars, 7 days · #1,080
+119
stars, 30 days · #4,528
190
★ total · +119% this week
22
forks · 0 open issues
Star history (as recorded here)
LanguageC
LicenseMIT
Created2026-10-20 (2d ago)
Last push2d ago
Watchers0
OwnerUser
Links
README excerpt
简体中文 · English # BitKindle ### A Windows x64 C compiler bootstrapped from a 3,584-byte machine-code seed Quick start · Bootstrap design · Walkthrough · Usage · Examples Mario example built with the BitKindle toolchain Actual gameplay recording · Built-in automated player completes the level · Preview at 2× speed Build and run instructions --- ## Overview BitKindle includes the complete sources for the A0/A1 assemblers, C0 transitional compiler, self-hosted **C1** compiler written in C, runtime library, and PE linker. **Building requires no MSVC, GCC, Clang, Windows SDK, or external linker, and downloads no dependencies.** PowerShell 5.1 decodes the seed and orchestrates the build. After decoding, every machine-code binary, object file, and EXE is generated by previously built custom tools. ## Bootstrap pipeline [code] See BOOTSTRAP.md for stage dependencies and WALKTHROUGH.md for building individual stages with `build-stage.ps1`. ## Quick start Requires **Windows x64 and Windows PowerShell 5.1** (`powershell.exe`); the verified environment is Windows 10 x64. Place the complete source tree in a writable local directory with a short path, preserving the name and hierarchy of `src/`. Reserve **5 GiB** for the full test run. Run from the release root: [code] The default builds the compiler, linker, and C89/C99 runtimes, **without running regression tests**. After a successful build, compile and run hello: [code] Expected output: `hello`. ### Build modes Append a mode option to the build command. All three modes build from the seed and check self-compilation identity and the compiler baseline. `-All` and `-Full` are mutually exclusive. | Option | Build and test scope | | :--- | :--- | | None | Toolchain and runtimes; no regression tests | | `-All` | Default mode plus compilation of hello, the argument example, minicurl, and Mario; does not run examples or regression tests | | `-Full` | Stage regressions, full audit, three supplemental suites, hello and argument examples, and minicurl local HTTP tests; Mario has separate build and test entry points | Logs and results are in `work/release-run/`. For default and `-All`, `RESULT.json` reports `Status=BUILT` and `TestsRun=false`. A successful `-Full` reports `Status=PASS`, `TestsRun=true`, and prints `PASS release build and verification`. An output directory alone is not evidence of success. `build-all.ps1` refuses to run if `src/bootstrap-c99/build-from-seed/` or `work/release-run/` already exists. Before rebuilding or changing modes, clean the default outputs or use a fresh source copy. ## Examples | Example | Features and interfaces | Documentation | | :--- | :--- | :--- | | **Hello / command-line arguments** | C runtime, startup, `argc/argv` | Compilation and usage | | **minicurl** | HTTP/TLS through system WinHTTP; retrieve content and save it to a file | Source and usage | | **Mario first level** | Side scrolling, keyboard input, collisions, timers, and GDI double buffering; graphics draw