| 2026-06-09 15:13 | windows: cross-compile kit + run cc/JIT natively on aarch64-windows | Ryan Sepassi | 14 | +275 | -14 |
| 2026-06-09 06:27 | env/windows: include windows.h before psapi.h (mingw cross-build) | Ryan Sepassi | 1 | +6 | -1 |
| 2026-06-09 05:54 | jit/tls: ELF Local-Exec relaxation via arch-abstracted hook | Ryan Sepassi | 11 | +209 | -59 |
| 2026-06-09 05:06 | jit/tls: uniform in-image thread-local storage; retire Mach-O TLV thunk | Ryan Sepassi | 24 | +204 | -789 |
| 2026-06-09 01:44 | link: root DSO back-referenced symbols under --gc-sections (freebsd -O1 fixed point) | Ryan Sepassi | 5 | +121 | -64 |
| 2026-06-09 01:22 | asm: don't globalize deferred-symbol tombstones in promote_undef_externs | Ryan Sepassi | 2 | +37 | -14 |
| 2026-06-09 00:18 | doc/bootstrap: record aarch64-linux and aarch64-freebsd bootstrap state | Ryan Sepassi | 1 | +117 | -10 |
| 2026-06-09 00:17 | elf: emit symbol-version (Verneed/Versym) requirements; freebsd -rdynamic + bootstrap shipping | Ryan Sepassi | 9 | +495 | -18 |
| 2026-06-09 00:12 | bootstrap: aarch64-linux self-host (musl + glibc) + Toy ELF fixes | Ryan Sepassi | 13 | +217 | -38 |
| 2026-06-08 22:00 | freebsd: bootstrap support + portable stdint.h INT64_C | Ryan Sepassi | 3 | +174 | -9 |
| 2026-06-08 21:13 | freebsd: x64/rv64 cross-compile, -lm/-lpthread, hosted lib search | Ryan Sepassi | 7 | +112 | -28 |
| 2026-06-08 20:40 | ld: default to PIE for hosted dynamic links (-lc without -static) | Ryan Sepassi | 1 | +17 | -0 |
| 2026-06-08 20:28 | freebsd: thread OS version, add cross-compile + VM verification | Ryan Sepassi | 14 | +371 | -215 |
| 2026-06-08 20:13 | docs: close out and remove the CODEGEN plan doc | Ryan Sepassi | 2 | +0 | -373 |
| 2026-06-08 20:03 | Track 4: drop dead INTRIN_MEMCPY/INTRIN_MEMSET intrinsics | Ryan Sepassi | 7 | +34 | -244 |
| 2026-06-08 19:52 | Track 1c: test conditional control ops + reject continue on block scope | Ryan Sepassi | 4 | +370 | -2 |
| 2026-06-08 19:39 | Remove multi-value from the CG API (single result) | Ryan Sepassi | 45 | +312 | -647 |
| 2026-06-08 18:42 | reloc: shrink reloc enum; neutral R_ABS8/16, R_PREL16, R_TPOFF64; rename R_RV_ADD*/SUB*/SET* to arch-neutral | Ryan Sepassi | 25 | +208 | -234 |
| 2026-06-08 18:39 | plan: clean out completed plans | Ryan Sepassi | 5 | +0 | -1618 |
| 2026-06-08 18:32 | rv32: close out riscv32-none-elf; remove completed plan doc | Ryan Sepassi | 4 | +44 | -533 |
| 2026-06-08 18:15 | plan: refresh doc index | Ryan Sepassi | 3 | +8 | -369 |
| 2026-06-06 12:17 | docs: plan llgen import | Ryan Sepassi | 2 | +391 | -0 |
| 2026-06-06 11:53 | Fix nested panic recovery | Ryan Sepassi | 12 | +178 | -78 |
| 2026-06-06 11:41 | Fix -no-pie overriding explicit PIE | Ryan Sepassi | 6 | +49 | -11 |
| 2026-06-06 11:33 | Keep volatile locals memory resident | Ryan Sepassi | 4 | +12 | -31 |
| 2026-06-06 11:15 | Fix hard-pinned native inline asm staging | Ryan Sepassi | 7 | +248 | -65 |
| 2026-06-06 10:52 | Fix C inline asm output type stack | Ryan Sepassi | 2 | +3 | -22 |
| 2026-06-06 10:34 | Support arch inline asm machine constraints | Ryan Sepassi | 21 | +692 | -210 |
| 2026-06-06 05:20 | Implement raw syscall intrinsic lowering | Ryan Sepassi | 26 | +192 | -66 |
| 2026-06-06 04:34 | Fix O1 label-address block liveness | Ryan Sepassi | 5 | +104 | -47 |
| 2026-06-06 04:12 | Fix tail sret forwarding | Ryan Sepassi | 5 | +78 | -13 |
| 2026-06-06 04:01 | Teach ld -lc to use hosted libc | Ryan Sepassi | 6 | +423 | -101 |
| 2026-06-06 04:00 | Fix aarch64 COFF weak-null ADRP relocation | Ryan Sepassi | 5 | +52 | -18 |
| 2026-06-06 02:39 | Add freestanding runtime ctype | Ryan Sepassi | 6 | +182 | -10 |
| 2026-06-06 02:26 | Fix rv64 toy TLS cross startup | Ryan Sepassi | 2 | +27 | -8 |
| 2026-06-06 02:04 | Partition the relocation byte-patcher per-arch (RELOC WS-C) | Ryan Sepassi | 15 | +809 | -437 |
| 2026-06-05 23:31 | Implement per-arch RelocDesc table + residual gates (RELOC WS-B, WS-E.2/E.3) | Ryan Sepassi | 24 | +805 | -337 |
| 2026-06-05 23:30 | Defer O1 local static data symbols | Ryan Sepassi | 8 | +196 | -42 |
| 2026-06-05 22:10 | Add stack backtrace sources to driver rt manifest | Ryan Sepassi | 1 | +8 | -3 |
| 2026-06-05 22:03 | doc/plan: rescope RELOC.md after the modularity waves landed | Ryan Sepassi | 2 | +231 | -260 |
| 2026-06-05 21:45 | Implement tool-side auto-backtrace for run & dbg (BACKTRACE L3c/WS5) | Ryan Sepassi | 14 | +573 | -25 |
| 2026-06-05 16:49 | Implement kit symbolize (BACKTRACE L3a/WS5) | Ryan Sepassi | 12 | +466 | -83 |
| 2026-06-05 16:26 | Implement __kit_print_backtrace & assert hook (BACKTRACE L3a/WS4) | Ryan Sepassi | 12 | +682 | -40 |
| 2026-06-05 15:38 | Implement stack-trace builtins & __kit_backtrace (BACKTRACE L1+L2) | Ryan Sepassi | 41 | +708 | -61 |
| 2026-06-05 21:47 | modularity: gate COFF weak-extern underscore alias on a vtable capability + fix stale objdump golden | Ryan Sepassi | 6 | +19 | -2 |
| 2026-06-05 18:51 | modularity wave 4: compiler-free language resolution + obj-owned fmt names + jit TLS hook | Ryan Sepassi | 12 | +286 | -154 |
| 2026-06-05 18:13 | modularity wave 3: route frontend/driver/backend consumers through hooks | Ryan Sepassi | 17 | +516 | -318 |
| 2026-06-05 17:51 | modularity wave 2: route obj/link/cg/api/asm/dwarf through capability hooks | Ryan Sepassi | 18 | +348 | -292 |
| 2026-06-05 17:29 | modularity wave 1: add pluggable-axis capability hooks (additive infra) | Ryan Sepassi | 25 | +1305 | -30 |
| 2026-06-05 17:06 | modularity #9: move wasm_imports to src/obj, drop cg cross-boundary leak | Ryan Sepassi | 6 | +131 | -133 |
| 2026-06-05 16:35 | Generalize VM execution into the shared exec seam + a hosted test suite | Ryan Sepassi | 14 | +904 | -322 |
| 2026-06-05 14:54 | test-toy: run the Toy corpus hosted in the FreeBSD/Windows VMs | Ryan Sepassi | 6 | +540 | -4 |
| 2026-06-05 13:40 | doc/plan: add stack-trace builtins & runtime backtrace roadmap | Ryan Sepassi | 2 | +229 | -0 |
| 2026-06-04 21:01 | Implement whole-program optimization (LTO Phase 0 + Phase 1) | Ryan Sepassi | 61 | +3663 | -583 |
| 2026-06-05 04:51 | Fix Windows x64/arm64 variadic ABI at O0 and O1 | Ryan Sepassi | 17 | +732 | -58 |
| 2026-06-05 02:00 | Fix Windows PE x64 startup and callback ABI | Ryan Sepassi | 13 | +307 | -120 |
| 2026-06-05 00:12 | Add release runtime variants | Ryan Sepassi | 6 | +142 | -72 |
| 2026-06-04 23:41 | coff: emit PE exception directory metadata | Ryan Sepassi | 1 | +24 | -5 |
| 2026-06-04 23:41 | windows: add ARM64 VM runner for COFF smoke tests | Ryan Sepassi | 5 | +1253 | -102 |
| 2026-06-04 23:40 | test: add FreeBSD hosted link VM smoke | Ryan Sepassi | 5 | +387 | -4 |
| 2026-06-04 23:39 | link: emit FreeBSD PIE metadata for rtld | Ryan Sepassi | 2 | +106 | -37 |
| 2026-06-04 23:39 | link: fix FreeBSD hosted static executables | Ryan Sepassi | 4 | +277 | -98 |
| 2026-06-04 23:37 | elf: add hosted FreeBSD relocation primitives | Ryan Sepassi | 8 | +102 | -24 |
| 2026-06-04 20:57 | freebsd: VM execution harness for amd64/aarch64/rv64 | Ryan Sepassi | 2 | +855 | -0 |
| 2026-06-04 20:57 | freebsd: cross-compile target, runtime, and link support | Ryan Sepassi | 5 | +69 | -0 |
| 2026-06-04 18:36 | windows: provision llvm-mingw UCRT sysroots for kit-only cross-compile | Ryan Sepassi | 10 | +677 | -17 |
| 2026-06-04 17:49 | test: add freestanding qemu-system smoke | Ryan Sepassi | 5 | +485 | -30 |
| 2026-06-04 17:45 | aa64: support bitfield extension aliases | Ryan Sepassi | 10 | +189 | -12 |
| 2026-06-04 16:59 | Add initial release punchlist | Ryan Sepassi | 2 | +271 | -0 |
| 2026-06-04 15:43 | Drain driver TODO backlog | Ryan Sepassi | 10 | +607 | -719 |
| 2026-06-04 15:18 | driver: add build-exe/build-lib/build-obj, retire compile | Ryan Sepassi | 17 | +2917 | -738 |
| 2026-06-04 13:56 | doc/plan: add LTO / whole-program optimization plan | Ryan Sepassi | 1 | +369 | -0 |
| 2026-06-04 13:49 | doc/plan: design for build-exe/build-lib/build-obj (replacing compile) | Ryan Sepassi | 2 | +293 | -0 |
| 2026-06-04 09:24 | wasm: tighten shared-memory max to min pages so atomics modules load | Ryan Sepassi | 1 | +8 | -8 |
| 2026-06-04 08:58 | cg/asm: reject 64-bit values in register asm constraints on 32-bit targets | Ryan Sepassi | 11 | +58 | -19 |
| 2026-06-04 08:39 | rv32 parse: resolve LP64-assumption corpus failures | Ryan Sepassi | 4 | +27 | -9 |
| 2026-06-04 05:15 | test/rv32: drop clang gate from bare-metal toy/parse lanes | Ryan Sepassi | 3 | +8 | -4 |
| 2026-06-04 05:01 | rv32 lowering fixes | Ryan Sepassi | 3 | +107 | -22 |
| 2026-06-04 05:01 | toy: pointer-width isize/usize, int widening | Ryan Sepassi | 20 | +415 | -147 |
| 2026-06-04 04:27 | Test ABI split-lane scalar query | Ryan Sepassi | 1 | +64 | -3 |
| 2026-06-04 04:22 | rv32: use ABI split-lane scalar metadata | Ryan Sepassi | 19 | +238 | -119 |
| 2026-06-04 03:55 | Fix rv32 toy target arch and wide intrinsics | Ryan Sepassi | 5 | +17 | -2 |
| 2026-06-04 03:37 | rv32: fix 8-byte variadic high-word drop, O1 label-addr width, long double, atomics | Ryan Sepassi | 18 | +137 | -25 |
| 2026-06-04 02:37 | rv32: close most remaining cross-target reds (atomics, overflow, soft-fp, TLS, __int128, CSR, asm goldens) | Ryan Sepassi | 85 | +1157 | -40 |
| 2026-06-04 00:25 | rv32: auto-build and auto-link the freestanding runtime like any target | Ryan Sepassi | 6 | +171 | -42 |
| 2026-06-04 00:02 | rv32: bring up and complete riscv32-none-elf cross target | Ryan Sepassi | 93 | +14450 | -10399 |
| 2026-06-04 03:38 | Fix Apple ARM64 variadic stack slots | Ryan Sepassi | 5 | +106 | -24 |
| 2026-06-04 03:28 | Implement wasm sandbox host shim | Ryan Sepassi | 15 | +2457 | -343 |
| 2026-06-04 02:18 | Harden wasm runtime import handling | Ryan Sepassi | 33 | +1467 | -252 |
| 2026-06-03 23:00 | aa64 asm: parse logical-immediate and lsl/lsr/asr aliases | Ryan Sepassi | 5 | +105 | -4 |
| 2026-06-03 22:24 | make: add rt to default target | Ryan Sepassi | 1 | +1 | -1 |
| 2026-06-03 22:04 | doc: regenerate CODE_SIZE.md after the economy refactor | Ryan Sepassi | 1 | +78 | -78 |
| 2026-06-03 21:53 | Exercise toy cross TLS startup with kit | Ryan Sepassi | 2 | +93 | -5 |
| 2026-06-03 21:53 | Add AA64 system register asm support | Ryan Sepassi | 4 | +247 | -0 |
| 2026-06-03 21:53 | Support explicit register asm operands | Ryan Sepassi | 38 | +1063 | -244 |
| 2026-06-03 19:12 | cg: restore out-of-range fallback in intrinsic table accessors | Ryan Sepassi | 1 | +14 | -4 |
| 2026-06-03 18:46 | plan: RV32 | Ryan Sepassi | 1 | +385 | -0 |
| 2026-06-03 18:34 | test/coff: fix stale ARM64EC test to use KitTargetSpec (feature-model API) | Ryan Sepassi | 1 | +1 | -1 |
| 2026-06-03 18:26 | cc: drop chatty "ignoring accepted compatibility flag" log | Ryan Sepassi | 2 | +6 | -29 |
| 2026-06-03 18:18 | obj/link: single-source no-location as SRCLOC_NONE; drop 22 no_loc() copies | Ryan Sepassi | 23 | +402 | -513 |
| 2026-06-03 17:45 | link: single-source synthetic-region builder + ObjSym classification | Ryan Sepassi | 6 | +290 | -594 |
| 2026-06-03 17:36 | emu/interp: drop dead cpu_state cluster, size-param load/store, de-global interp fault latch | Ryan Sepassi | 8 | +94 | -150 |
| 2026-06-03 17:30 | econ(obj-api-tables): table-drive COFF machine set; drop source.c temps | Ryan Sepassi | 3 | +61 | -68 |
| 2026-06-03 17:30 | toy: table-drive dot-const parsers, flag loops, mem-xfer scaffolding | Ryan Sepassi | 6 | +270 | -356 |
| 2026-06-03 17:30 | cpp: delete dead literal table; collapse #if binops into precedence loop | Ryan Sepassi | 8 | +193 | -168 |
| 2026-06-03 17:30 | lang/c: collapse per-TypeKind switches into one property table | Ryan Sepassi | 5 | +81 | -127 |
| 2026-06-03 17:31 | obj: single-source ELF sym tables + writer LE helpers | Ryan Sepassi | 7 | +161 | -215 |
| 2026-06-03 17:35 | debug: unify DWARF form decoders behind a section-parameterized reader | Ryan Sepassi | 5 | +55 | -140 |
| 2026-06-03 17:33 | cg/opt: single-source width-aware integer constant-fold semantics | Ryan Sepassi | 6 | +294 | -343 |
| 2026-06-03 17:45 | econ(native-shared): share inline-asm constraint + abi-clobber helpers | Ryan Sepassi | 5 | +107 | -128 |
| 2026-06-03 17:39 | econ(native-shared): share file_scope_asm + finalize in cg/native_asm | Ryan Sepassi | 5 | +48 | -34 |
| 2026-06-03 17:37 | econ(native-shared): hoist NativeLoc + scalar helpers into native_target.h | Ryan Sepassi | 5 | +340 | -397 |
| 2026-06-03 17:44 | wasm: collapse five parallel instruction switches into one WASM_INSN table | Ryan Sepassi | 6 | +495 | -1582 |
| 2026-06-03 17:21 | cg: collapse four parallel KitCgIntrinsic switches into one descriptor table | Ryan Sepassi | 2 | +72 | -187 |
| 2026-06-03 17:25 | dist: delete dead legacy kpkg v2 package-format surface | Ryan Sepassi | 2 | +0 | -395 |
| 2026-06-03 18:13 | Introduce target feature model | Ryan Sepassi | 100 | +1801 | -368 |
| 2026-06-03 18:11 | mk: move test mk files to mk/ | Ryan Sepassi | 8 | +1046 | -1042 |
| 2026-06-03 16:09 | build: give libkit.a members unique, path-flattened names | Ryan Sepassi | 3 | +70 | -33 |
| 2026-06-03 15:36 | doc: add binary code-size section from release linker map | Ryan Sepassi | 4 | +325 | -5 |
| 2026-06-03 15:29 | doc: add CODE_SIZE.md with per-component cloc counts + regen script | Ryan Sepassi | 4 | +286 | -1 |
| 2026-06-03 14:45 | build: split Makefile into mk/ includes; fold rt build into Makefile | Ryan Sepassi | 9 | +878 | -864 |
| 2026-06-03 03:11 | driver: add generic `compile` front door; frontends own their flags | Ryan Sepassi | 23 | +1086 | -114 |
| 2026-06-03 00:39 | driver: add standard-named aliases for hash and compress | Ryan Sepassi | 9 | +245 | -35 |
| 2026-06-02 23:49 | driver: add install command for drop-in toolchain symlinks | Ryan Sepassi | 14 | +695 | -31 |
| 2026-06-02 23:45 | make format: format git diff files by default | Ryan Sepassi | 1 | +15 | -1 |
| 2026-06-02 23:23 | driver: auto-resolve hosted sysroot when targeting the host | Ryan Sepassi | 14 | +849 | -232 |
| 2026-06-02 23:14 | cg+aa64: use immediate operand forms for shifts/and/cmp at -O0 | Ryan Sepassi | 6 | +273 | -77 |
| 2026-06-02 22:38 | cg/fold: strength-reduce mul/udiv/urem by powers of two at -O0 | Ryan Sepassi | 6 | +320 | -2 |
| 2026-06-02 22:18 | driver run: shebang support | Ryan Sepassi | 7 | +133 | -0 |
| 2026-06-02 21:57 | plan: kit build v2 | Ryan Sepassi | 1 | +450 | -230 |
| 2026-06-02 21:55 | rename: cfree -> kit | Ryan Sepassi | 886 | +38173 | -37732 |
| 2026-06-02 20:50 | plan: build system plan v1 | Ryan Sepassi | 2 | +442 | -0 |
| 2026-06-02 19:20 | rt: mark the remaining libc symbols weak | Ryan Sepassi | 15 | +65 | -30 |
| 2026-06-02 19:07 | compress: add standalone gzip + LZ4-frame compress tool | Ryan Sepassi | 20 | +7542 | -9 |
| 2026-06-02 18:25 | dist: ship libcfree + headers; keep on-demand rt out of install tree | Ryan Sepassi | 3 | +51 | -21 |
| 2026-06-02 18:18 | doc: document the new xxd/cmp/hash/disas/mc tools | Ryan Sepassi | 1 | +7 | -2 |
| 2026-06-02 18:17 | test: cover the new byte-utility tools + hash API | Ryan Sepassi | 4 | +181 | -2 |
| 2026-06-02 18:12 | driver: add mc tool (assemble an instruction, show its encoding) | Ryan Sepassi | 5 | +307 | -0 |
| 2026-06-02 18:09 | driver: add disas tool (disassemble raw machine-code bytes) | Ryan Sepassi | 5 | +282 | -0 |
| 2026-06-02 18:06 | hash: add public cfree/hash.h API + driver hash tool | Ryan Sepassi | 10 | +408 | -19 |
| 2026-06-02 18:05 | driver: add cmp tool (byte-by-byte file comparison) | Ryan Sepassi | 5 | +287 | -0 |
| 2026-06-02 18:02 | driver: add xxd tool (raw hex dump with reverse/plain/include modes) | Ryan Sepassi | 5 | +485 | -0 |
| 2026-06-02 16:32 | test: split test-bootstrap-toy into -debug/-release sub-targets | Ryan Sepassi | 1 | +10 | -1 |
| 2026-06-02 15:33 | cg: make CmpOp FP-compare-lossless and reach all 12 FP predicates from frontends | Ryan Sepassi | 34 | +1290 | -185 |
| 2026-06-02 15:25 | test: rename bootstrap-test-toy -> test-bootstrap-toy, add to default test targets | Ryan Sepassi | 5 | +12 | -8 |
| 2026-06-02 15:16 | cg: remove bitfield_load/store from CgTarget; impls translate (Track 3b follow-up) | Ryan Sepassi | 7 | +90 | -49 |
| 2026-06-02 14:54 | cg: drop the C frontend's stale duplicate INTRIN_BSWAP16/32/64 (Track 4a follow-up) | Ryan Sepassi | 1 | +0 | -3 |
| 2026-06-02 14:40 | cg: fix i128 -O1 null-deref — flow wide16 int constants as VALUEs (Track 7.3 follow-up) | Ryan Sepassi | 2 | +15 | -12 |
| 2026-06-02 13:34 | plan: flag i128_06 -O1 regression on this branch (blocks merge) | Ryan Sepassi | 1 | +12 | -0 |
| 2026-06-02 13:16 | plan: record CODEGEN tracks landed/attempted on codegen-tracks-7634 | Ryan Sepassi | 1 | +121 | -125 |
| 2026-06-02 13:13 | cg: supports_intrinsic query + diagnostic + CPU intrinsics (Track 4c) | Ryan Sepassi | 42 | +543 | -63 |
| 2026-06-02 12:36 | cg: make unreachable a first-class terminator hook + IR op (Track 4b) | Ryan Sepassi | 28 | +95 | -34 |
| 2026-06-02 12:07 | cg: collapse INTRIN_BSWAP16/32/64 into one width-by-type BSWAP (Track 4a) | Ryan Sepassi | 9 | +139 | -114 |
| 2026-06-02 11:47 | cg: bitfield as a PLACE subkind, drop the MemAccess bitfield rider (Track 3b) | Ryan Sepassi | 6 | +135 | -57 |
| 2026-06-02 11:09 | cg: re-enable SV_ARITH delayed-arith -O0 peephole (Track 6.3) | Ryan Sepassi | 3 | +21 | -18 |
| 2026-06-02 10:54 | cg: flow i128/f128 as VALUEs, collapse wide16 special paths (Track 7.3) | Ryan Sepassi | 2 | +19 | -100 |
| 2026-06-02 10:51 | plan: fp cg fix | Ryan Sepassi | 1 | +182 | -0 |
| 2026-06-02 10:32 | cg: explicit PLACE predicate + forbid aggregate VALUEs (Track 7.1/7.2) | Ryan Sepassi | 3 | +27 | -16 |
| 2026-06-02 09:49 | cg: strict PLACE/VALUE addressing, remove the load/store EA rider (Track 7) | Ryan Sepassi | 16 | +1104 | -1415 |
| 2026-06-02 03:04 | plan: record Track 6.2 (fold.{c,h} extraction) as landed | Ryan Sepassi | 1 | +18 | -14 |
| 2026-06-02 03:03 | cg: isolate the -O0 semantic peephole into fold.{c,h} (Track 6.2) | Ryan Sepassi | 5 | +774 | -679 |
| 2026-06-02 02:44 | plan: rework CODEGEN.md to record landed tracks + focus on what remains | Ryan Sepassi | 1 | +268 | -390 |
| 2026-06-02 02:41 | test: add bootstrap to make test | Ryan Sepassi | 1 | +2 | -1 |
| 2026-06-02 02:29 | cg: consume public CfreeCgAtomicOp/CfreeCgMemOrder directly (Track 2, atomics slice) | Ryan Sepassi | 22 | +187 | -241 |
| 2026-06-02 02:16 | cg: consume the public CfreeCgAsmDir directly (Track 2, asm-dir slice) | Ryan Sepassi | 7 | +9 | -23 |
| 2026-06-02 02:12 | cg: remove the FP_REM façade (Track 4, decision #3) | Ryan Sepassi | 4 | +3 | -13 |
| 2026-06-02 02:00 | cg: drop advertise-but-ignore MemAccess fields (Track 3a, decision #5) | Ryan Sepassi | 4 | +3 | -26 |
| 2026-06-02 01:29 | cg: expose multi-result functions in the public API (Track 5) | Ryan Sepassi | 33 | +402 | -165 |
| 2026-06-02 01:25 | cg/ir: specify IR to remove all undefined behavior; lock interpreter to it | Ryan Sepassi | 6 | +825 | -36 |
| 2026-06-02 01:05 | scripts: fail loudly on unmapped sources in gen_compile_commands | Ryan Sepassi | 1 | +18 | -1 |
| 2026-06-02 00:52 | cg: remove dead SCOPE_IF/scope_else surface and CFREE_CG_TAIL_NEVER (Track 1a/1d) | Ryan Sepassi | 31 | +26 | -214 |
| 2026-06-02 00:44 | test: fix asm corpus all-n/a and make test-asm a multi-arch aggregate | Ryan Sepassi | 3 | +31 | -20 |
| 2026-06-02 00:33 | plan: sketch RQL RSN | Ryan Sepassi | 2 | +1554 | -0 |
| 2026-06-02 00:33 | plan: codegen update | Ryan Sepassi | 1 | +459 | -0 |
| 2026-06-02 00:33 | test: expand default targets | Ryan Sepassi | 1 | +5 | -1 |
| 2026-06-02 00:22 | link: treat DSO exports as defined so archives don't shadow shared libs | Ryan Sepassi | 1 | +12 | -0 |
| 2026-06-02 00:15 | arch/c_target: re-emit file-scope asm verbatim | Ryan Sepassi | 4 | +48 | -0 |
| 2026-06-02 00:15 | arch/c_target: lower 128-bit runtime-helper calls to native __int128 | Ryan Sepassi | 1 | +130 | -0 |
| 2026-06-02 00:14 | rt: mark stdlib libc functions weak so host definitions can override | Ryan Sepassi | 1 | +22 | -13 |
| 2026-06-02 00:14 | test: use an unknown clobber_abi name in the error case | Ryan Sepassi | 1 | +1 | -1 |
| 2026-06-02 00:14 | test: allowlist libc deps pulled in by the in-lib dist subsystem | Ryan Sepassi | 1 | +4 | -0 |
| 2026-06-02 00:14 | test: build each arch's linux rt archive for test-rt-runtime | Ryan Sepassi | 1 | +29 | -17 |
| 2026-06-02 00:14 | test: accept aa64 as an alias for aarch64 in exec/image helpers | Ryan Sepassi | 2 | +23 | -20 |
| 2026-06-02 00:14 | test: scope CF_WORK per target tuple to fix parallel-dispatch races | Ryan Sepassi | 1 | +8 | -2 |
| 2026-06-02 00:14 | test: set cf_workdir's EXIT trap in the caller's shell | Ryan Sepassi | 7 | +15 | -12 |
| 2026-06-02 00:14 | api/asm_emit: symbolize PC-relative local branches at section offset 0 | Ryan Sepassi | 1 | +37 | -2 |
| 2026-06-02 00:14 | arch/wasm: load frame-resident pointer locals in indirect addressing | Ryan Sepassi | 2 | +65 | -4 |
| 2026-06-01 22:02 | dist: fix review findings in the package layer | Ryan Sepassi | 2 | +44 | -22 |
| 2026-06-01 21:57 | test: standardize all harnesses onto canonical types (U/C/K/D) | Ryan Sepassi | 76 | +6510 | -7392 |
| 2026-06-01 21:43 | arch: fix -O1 inline-asm callee-saved clobber frame panic; add FP constraints + clobber_abi | Ryan Sepassi | 19 | +318 | -53 |
| 2026-06-01 21:30 | dist: move CAS + signed-package subsystem into libcfree | Ryan Sepassi | 53 | +3355 | -2235 |
| 2026-06-01 20:36 | frontends: eliminate the C->src/abi phantom edge, tighten wasm to one boundary | Ryan Sepassi | 8 | +103 | -84 |
| 2026-06-01 20:24 | arch: known-frame prologue cost-model tiers for x64 and rv64 | Ryan Sepassi | 9 | +469 | -71 |
| 2026-06-01 20:04 | frontend: replace the cg_public_compat.h macro shim with direct pcg_* calls | Ryan Sepassi | 12 | +926 | -932 |
| 2026-06-01 19:25 | include: make frontend.h the single frontend front door | Ryan Sepassi | 10 | +34 | -24 |
| 2026-06-01 19:06 | frontend: C registers its extensions; drop the fallback-to-C | Ryan Sepassi | 5 | +36 | -13 |
| 2026-06-01 19:02 | core: unify slice helpers onto the public inline impls | Ryan Sepassi | 2 | +15 | -38 |
| 2026-06-01 18:27 | Rewrite docs | Ryan Sepassi | 73 | +8642 | -37691 |
| 2026-06-01 17:12 | test: link x64-dbg test against LIB_OBJS, not the archive | Ryan Sepassi | 1 | +5 | -2 |
| 2026-06-01 17:10 | rt: depend archive on rt/Makefile so a grown member list regenerates it | Ryan Sepassi | 1 | +8 | -1 |
| 2026-06-01 16:47 | driver/ reorganize into cmd/ lib/ subdirs | Ryan Sepassi | 48 | +74 | -66 |
| 2026-06-01 16:36 | make: cut Makefile-load overhead from ~507 to ~25 child processes | Ryan Sepassi | 2 | +32 | -70 |
| 2026-06-01 16:20 | rm stray obj file | Ryan Sepassi | 1 | +0 | -90 |
| 2026-05-31 09:00 | cg: reference code locations via per-block local symbols, not fixed offsets | Ryan Sepassi | 13 | +163 | -350 |
| 2026-05-31 06:00 | asm+test: full Toy cc -S → cfree/clang as exec parity across aa64/x64/rv64 | Ryan Sepassi | 9 | +363 | -85 |
| 2026-05-31 04:39 | rv64: emit explicit fcvt rounding mode in cc -S so clang re-encodes it exactly | Ryan Sepassi | 4 | +74 | -35 |
| 2026-05-31 04:30 | rv64: emit canonical `addi rd,rs,%pcrel_lo` (not 3-operand `mv`) — clang-standard | Ryan Sepassi | 2 | +23 | -8 |
| 2026-05-31 04:04 | x64+rv64: complete the cc -S round-trip symbolizer (cross-exec 312/312 each) | Ryan Sepassi | 13 | +635 | -124 |
| 2026-05-31 01:25 | doc: file-based incremental linking design (obj+link internals) | Ryan Sepassi | 1 | +281 | -99 |
| 2026-05-31 00:46 | test+doc: correct rv64 hostas-cross root cause (cc -S infidelity, not emulation) | Ryan Sepassi | 3 | +632 | -16 |
| 2026-05-31 00:40 | test+asm: hostas-cross gating default = aarch64-linux; x64/rv64 documented opt-in | Ryan Sepassi | 1 | +17 | -8 |
| 2026-05-31 00:37 | x64: cc -S symbolizer + disasm/as fidelity fixes (cross-assemble green) | Ryan Sepassi | 8 | +190 | -34 |
| 2026-05-30 23:54 | test+asm: cross-compile + cross-exec host-assembler lane (test-hostas-cross) | Ryan Sepassi | 3 | +343 | -8 |
| 2026-05-30 23:16 | asm: object-format-aware cc -S; aa64 Mach-O is clang-acceptable (test-hostas-toy gates) | Ryan Sepassi | 11 | +641 | -143 |
| 2026-05-30 20:16 | test+asm: host-assembler execution lane over the Toy corpus (test-hostas-toy) | Ryan Sepassi | 3 | +216 | -0 |
| 2026-05-30 18:08 | asm: round-trip SEC_OTHER named sections; toy /ld exec lane | Ryan Sepassi | 6 | +175 | -40 |
| 2026-05-30 02:17 | emu: add interpreter execution mode (cfree emu -interp) | Ryan Sepassi | 12 | +1252 | -268 |
| 2026-05-29 22:29 | C front end: implement labels-as-values (computed goto) | Ryan Sepassi | 30 | +326 | -29 |
| 2026-05-29 17:48 | Add threaded-bytecode interpreter for the opt IR (cfree run --no-jit) | Ryan Sepassi | 25 | +4033 | -50 |
| 2026-05-30 02:07 | Fix O1 bootstrap scratch register hazards | Ryan Sepassi | 3 | +160 | -185 |
| 2026-05-29 23:47 | O1: deref through a frame-resident pointer local | Ryan Sepassi | 8 | +308 | -80 |
| 2026-05-29 21:13 | doc: record 3-stage bootstrap state and the open -O1 cc.c param-bind miscompile | Ryan Sepassi | 1 | +157 | -0 |
| 2026-05-29 20:48 | O1 aa64: fix two regalloc interference bugs + add third int scratch reg | Ryan Sepassi | 3 | +34 | -9 |
| 2026-05-29 19:53 | type_qualified: intern via assignment so memcmp is padding-stable | Ryan Sepassi | 1 | +18 | -9 |
| 2026-05-29 19:38 | Auto-link cfree runtime from ld | Ryan Sepassi | 6 | +259 | -91 |
| 2026-05-29 18:32 | Fix three aa64/-O0 codegen & linkage bugs | Ryan Sepassi | 8 | +75 | -25 |
| 2026-05-30 14:05 | asm: close 9/10 toy round-trip skips (&&label, .comm, macho addend) | Ryan Sepassi | 4 | +84 | -30 |
| 2026-05-30 13:46 | test+asm: Toy-corpus L2 round-trip lane; fix .inst-dropped miscompile | Ryan Sepassi | 5 | +153 | -2 |
| 2026-05-30 06:17 | test: llvm differential cross-check (cfree as/disasm vs llvm-mc) | Ryan Sepassi | 3 | +155 | -3 |
| 2026-05-30 06:07 | asm: emit .bss as NOBITS (close the last round-trip skip) | Ryan Sepassi | 4 | +37 | -18 |
| 2026-05-30 05:57 | test+aa64: asm<->disasm self-symmetry sweep (decode<->encode) | Ryan Sepassi | 8 | +306 | -0 |
| 2026-05-30 03:23 | doc+build: round-trip covers the full core op set; wire L0+L1 into default test | Ryan Sepassi | 2 | +64 | -20 |
| 2026-05-30 03:20 | aa64: decode load/store exclusive + acquire/release atomics | Ryan Sepassi | 11 | +105 | -0 |
| 2026-05-30 03:02 | test: expand round-trip corpus to the full core op set | Ryan Sepassi | 267 | +1857 | -0 |
| 2026-05-30 03:01 | asm: FP/SIMD scalar load/store + dot-mangled symbol names | Ryan Sepassi | 5 | +118 | -22 |
| 2026-05-30 02:33 | asm: symbolize data-section relocations in cc -S (jump tables) | Ryan Sepassi | 4 | +118 | -14 |
| 2026-05-30 02:28 | asm: round-trip .L local symbols + complete the unscaled ld/st family | Ryan Sepassi | 7 | +106 | -16 |
| 2026-05-30 02:20 | asm: relax same-section local branches at finalize (round-trip P2) | Ryan Sepassi | 2 | +65 | -9 |
| 2026-05-30 01:24 | asm: implement aa64 codegen round-trip testing (L0/L1/L2) + symbolize -S | Ryan Sepassi | 20 | +815 | -10 |
| 2026-05-30 00:03 | doc: plan for asm/disasm completeness via codegen round-trip testing | Ryan Sepassi | 1 | +205 | -0 |
| 2026-05-29 23:00 | asm: fix 5 issues found by adversarial review of the session diff | Ryan Sepassi | 8 | +58 | -8 |
| 2026-05-29 22:15 | toy: make the REPL frontend compile transactional | Ryan Sepassi | 35 | +1030 | -250 |
| 2026-05-29 21:27 | build: generate compile_commands.json for clangd | Ryan Sepassi | 2 | +126 | -0 |
| 2026-05-29 21:07 | Improve dbg REPL listing and stop messages | Ryan Sepassi | 14 | +343 | -60 |
| 2026-05-29 22:42 | doc: mark native-arch asm/link completeness items done | Ryan Sepassi | 1 | +60 | -34 |
| 2026-05-29 22:39 | x64 asm: parse sym(%rip), @PLT, @GOTPCREL relocation-operator operands | Ryan Sepassi | 4 | +93 | -26 |
| 2026-05-29 22:33 | aa64 asm: parse :lo12:/:got:/:got_lo12: relocation-operator operands | Ryan Sepassi | 4 | +123 | -3 |
| 2026-05-29 22:30 | rv64 asm: parse %hi/%lo/%pcrel_hi/%pcrel_lo relocation-operator operands | Ryan Sepassi | 4 | +125 | -1 |
| 2026-05-29 22:23 | aa64 asm: encode ldst addressing modes, atomics/exclusive/LSE, mov ORR-bitmask | Ryan Sepassi | 23 | +858 | -8 |
| 2026-05-29 22:15 | aa64 disasm: decode signed sub-word loads (ldrsb/ldrsh/ldrsw) | Ryan Sepassi | 4 | +39 | -3 |
| 2026-05-29 22:15 | rv64 asm: encode call/tail/la/lla pseudos and multi-word li | Ryan Sepassi | 12 | +210 | -8 |
| 2026-05-29 22:15 | rv64 link: apply R_RISCV_SET_ULEB128/SUB_ULEB128 (DWARF diff relocs) | Ryan Sepassi | 4 | +281 | -0 |
| 2026-05-29 22:15 | x64 asm: encode SIB index/scale, bare (%rip), and ALU/MOV memory-store forms | Ryan Sepassi | 14 | +228 | -18 |
| 2026-05-29 21:34 | doc: reconcile completeness checkboxes with committed work | Ryan Sepassi | 1 | +16 | -14 |
| 2026-05-29 21:29 | test/objdump: refresh aarch64 golden for sbfm decode; honor SKIP cases | Ryan Sepassi | 2 | +15 | -3 |
| 2026-05-29 21:26 | doc: record aa64 asm-encode progress (FP/bitfield/DP1/sub-word ldst done) | Ryan Sepassi | 1 | +27 | -17 |
| 2026-05-29 21:24 | aa64 asm: encode byte/half and signed sub-word loads/stores | Ryan Sepassi | 4 | +48 | -3 |
| 2026-05-29 21:22 | aa64 asm: encode bitfield (sbfm/ubfm/bfm) and DP1 (clz/rbit/rev/rev16) | Ryan Sepassi | 5 | +84 | -0 |
| 2026-05-29 21:20 | aa64 asm: encode scalar floating-point instructions | Ryan Sepassi | 5 | +235 | -0 |
| 2026-05-29 21:15 | test/driver: assert rt auto-build via linked symbols, not the cache path | Ryan Sepassi | 1 | +13 | -6 |
| 2026-05-29 21:05 | doc: update native-arch completeness — Tier 0-1 done, most Tier 2-4 done | Ryan Sepassi | 1 | +38 | -16 |
| 2026-05-29 21:04 | mc: make the CFI prologue-PC override sticky until cfi_endproc | Ryan Sepassi | 1 | +12 | -5 |
| 2026-05-29 21:02 | test: add opt-in test-link-x64 for x64 ELF reloc application | Ryan Sepassi | 1 | +9 | -0 |
| 2026-05-29 21:01 | asm: implement .comm/.lcomm and .uleb128/.sleb128 (were silently skipped) | Ryan Sepassi | 4 | +73 | -3 |
| 2026-05-29 20:58 | rv64 link: route far calls through JIT call stubs | Ryan Sepassi | 1 | +12 | -0 |
| 2026-05-29 20:56 | test: run x64 and rv64 assembler+disassembler in the default suite | Ryan Sepassi | 2 | +16 | -2 |
| 2026-05-29 20:54 | rv64 asm: assemble symbolic branches and jumps via relocations | Ryan Sepassi | 4 | +38 | -8 |
| 2026-05-29 20:48 | aa64 disasm: decode FP, bitfield, DP1, and register-offset ldst | Ryan Sepassi | 5 | +232 | -0 |
| 2026-05-29 20:37 | doc: mark native-arch completeness progress (5 of Tier 0-2 done) | Ryan Sepassi | 1 | +17 | -19 |
| 2026-05-29 20:36 | x64/rv64: emit named parameters and locals in .debug_info | Ryan Sepassi | 2 | +34 | -2 |
| 2026-05-29 20:32 | x64 disasm: decode movd/movq (66 0F 6E/7E) and xorps/xorpd (0F 57) | Ryan Sepassi | 4 | +55 | -13 |
| 2026-05-29 20:27 | x64: map hardware GPR encoding to DWARF reg number in CFI | Ryan Sepassi | 6 | +75 | -12 |
| 2026-05-29 20:22 | rv64: emit TLS Local-Exec only, matching aa64/x64 | Ryan Sepassi | 3 | +63 | -29 |
| 2026-05-29 20:18 | aa64: emit Windows/COFF TLS Local-Exec access sequence | Ryan Sepassi | 2 | +148 | -0 |
| 2026-05-29 19:42 | test: add opt-in test-parse-rv64-wide target for rv64 128-bit scalars | Ryan Sepassi | 1 | +14 | -0 |
| 2026-05-29 19:32 | opt/x64: report the rdx:rax clobber of the unsigned multiply-overflow intrinsic | Ryan Sepassi | 2 | +17 | -0 |
| 2026-05-29 19:32 | opt: parameters mutually interfere at function entry | Ryan Sepassi | 1 | +9 | -1 |
| 2026-05-29 19:32 | cg: save the full value width when breaking an arg-shuffle cycle | Ryan Sepassi | 1 | +19 | -2 |
| 2026-05-29 19:32 | rv64: route conditional branches through a jal for ±1MiB reach | Ryan Sepassi | 2 | +36 | -13 |
| 2026-05-29 18:59 | x64: integer va_arg does offset arithmetic in its own dst register | Ryan Sepassi | 8 | +74 | -40 |
| 2026-05-29 18:47 | opt: make machine-clobber forbids survive the ABI register hints | Ryan Sepassi | 2 | +31 | -2 |
| 2026-05-29 18:22 | opt: teach the allocator about fixed-register machine-instruction clobbers | Ryan Sepassi | 5 | +162 | -3 |
| 2026-05-29 16:53 | cgpkg v3 CAS-based packages | Ryan Sepassi | 26 | +5020 | -594 |
| 2026-05-29 18:00 | doc: opt reg constraints plan | Ryan Sepassi | 1 | +180 | -0 |
| 2026-05-29 17:31 | x64 -O1: use only reserved emit scratch in va_arg/va_copy/copy_bytes | Ryan Sepassi | 1 | +87 | -56 |
| 2026-05-29 17:15 | CG runtime doc plan | Ryan Sepassi | 1 | +279 | -0 |
| 2026-05-29 16:50 | x64: make -O1 entry param-binds cycle-safe via the shared shuffle | Ryan Sepassi | 4 | +170 | -46 |
| 2026-05-29 16:40 | Share the parallel-copy arg-move scheduler; x64 NativeFrame + partial O1 | Ryan Sepassi | 5 | +290 | -294 |
| 2026-05-29 16:12 | rv64: adopt NativeFrame, implement -O1 known-frame path | Ryan Sepassi | 4 | +161 | -100 |
| 2026-05-29 16:10 | Fix O1 static data function pointer reachability | Ryan Sepassi | 1 | +95 | -22 |
| 2026-05-29 15:56 | Add shared NativeFrame module; migrate aa64 onto it | Ryan Sepassi | 4 | +339 | -126 |
| 2026-05-29 15:21 | rv64+x64: implement sibling (tail) calls | Ryan Sepassi | 2 | +193 | -26 |
| 2026-05-29 15:01 | x64: port to NativeTarget API (-O0) | Ryan Sepassi | 15 | +8618 | -4777 |
| 2026-05-29 11:55 | rv64: port to NativeTarget API (-O0 core) | Ryan Sepassi | 16 | +7684 | -4486 |
| 2026-05-29 05:15 | dbg: use standard step commands | Ryan Sepassi | 17 | +374 | -83 |
| 2026-05-29 05:14 | Add dbg line editing and completions | Ryan Sepassi | 6 | +730 | -5 |
| 2026-05-29 04:51 | test aa64 tail calls | Ryan Sepassi | 2 | +98 | -1 |
| 2026-05-29 04:30 | Emit Toy local debug info from CG | Ryan Sepassi | 10 | +135 | -14 |
| 2026-05-29 04:12 | dbg: add disasm, expand tests | Ryan Sepassi | 59 | +493 | -71 |
| 2026-05-29 03:33 | Prune unreachable static AArch64 O1 functions | Ryan Sepassi | 9 | +387 | -1 |
| 2026-05-29 03:26 | Advance Toy dbg REPL tests and TODOs | Ryan Sepassi | 22 | +358 | -109 |
| 2026-05-29 02:16 | Fix AArch64 O1 va_start save area offsets | Ryan Sepassi | 1 | +4 | -2 |
| 2026-05-29 02:12 | opt: reduce jump cleanup rescans | Ryan Sepassi | 1 | +11 | -6 |
| 2026-05-29 02:02 | doc: refresh OPT_O1_PERF_TODO standings (2026-05-28 sweep) | Ryan Sepassi | 1 | +42 | -34 |
| 2026-05-29 01:43 | Tighten package verification checks | Ryan Sepassi | 5 | +47 | -1 |
| 2026-05-29 01:32 | pkg: canonicalize artifact order | Ryan Sepassi | 3 | +472 | -47 |
| 2026-05-29 01:15 | pkg: vendor deps | Ryan Sepassi | 25 | +10085 | -216 |
| 2026-05-29 00:47 | Implement v2 package distribution | Ryan Sepassi | 15 | +1680 | -982 |
| 2026-05-28 21:20 | pkg: basic signed code distribution (cfree pkg) | Ryan Sepassi | 30 | +2866 | -19 |
| 2026-05-29 01:48 | opt/aa64: fold O1 prologue via fp-at-bottom frame layout | Ryan Sepassi | 5 | +309 | -157 |
| 2026-05-29 01:20 | opt: fold const convert-of-load_imm and thread branch targets through pass-through blocks" | Ryan Sepassi | 6 | +323 | -15 |
| 2026-05-29 00:23 | doc: add PERCALL.md detailing -O1 per-call overhead and the optimal | Ryan Sepassi | 1 | +127 | -0 |
| 2026-05-28 21:32 | doc: refresh binary-trees -O1 numbers after known-frame prologue | Ryan Sepassi | 1 | +3 | -2 |
| 2026-05-28 21:27 | opt/aa64: fix five O1 codegen bugs (i128/ldbl/variadic/asm) | Ryan Sepassi | 6 | +106 | -11 |
| 2026-05-28 20:49 | opt/aa64: plan the O1 call frame up front, drop all back-patching | Ryan Sepassi | 4 | +361 | -165 |
| 2026-05-28 20:18 | wasm: fix all 7 test/parse W-path failures | Ryan Sepassi | 12 | +226 | -80 |
| 2026-05-28 19:31 | wasm/structure: unroll nested switches to fix infinite-loop dispatch | Ryan Sepassi | 2 | +39 | -10 |
| 2026-05-28 19:02 | doc: refresh wasm test/parse W-path checklist | Ryan Sepassi | 1 | +26 | -31 |
| 2026-05-28 19:02 | wasm/obj: objdump container reader and WAT disassembler | Ryan Sepassi | 12 | +592 | -34 |
| 2026-05-28 19:02 | wasm: ir_emit lowerings for bitfields, aggregates, TLS, and conds | Ryan Sepassi | 2 | +179 | -34 |
| 2026-05-28 19:02 | wasm: opcode coverage and switch/atomic limits | Ryan Sepassi | 9 | +828 | -374 |
| 2026-05-27 23:02 | wasm: make long double binary128 and report it unsupported | Ryan Sepassi | 5 | +122 | -6 |
| 2026-05-28 20:01 | cg/ndt: O(cached) flush list, cached dispatch/class info, thin NativeOps | Ryan Sepassi | 2 | +136 | -59 |
| 2026-05-28 20:00 | opt/aa64: unify deferred in-function patches into one tagged-union list | Ryan Sepassi | 1 | +82 | -76 |
| 2026-05-28 18:46 | bench: cache fixed-compiler baseline; default opt_bench to cfree-only | Ryan Sepassi | 4 | +359 | -176 |
| 2026-05-28 18:02 | link/elf: fix PIE relocations for code-address data | Ryan Sepassi | 2 | +31 | -1 |
| 2026-05-28 17:38 | opt/aa64: resolve call-argument moves as a parallel copy | Ryan Sepassi | 3 | +166 | -13 |
| 2026-05-28 17:12 | opt+aa64: unify on AAPCS64 frame layout; hint params to incoming regs | Ryan Sepassi | 3 | +294 | -240 |
| 2026-05-28 16:34 | driver/env: add Windows host TU; extract env selection to mk/env.mk | Ryan Sepassi | 17 | +1921 | -228 |
| 2026-05-28 15:57 | driver/env: split into per-OS/arch TUs, drop ifdefs from impl | Ryan Sepassi | 20 | +2276 | -1853 |
| 2026-05-28 15:34 | opt: hint call-arg sources to ABI dest regs + propagate through copies | Ryan Sepassi | 2 | +111 | -1 |
| 2026-05-28 15:12 | opt: elide identity moves and the terminal IR_RET branch | Ryan Sepassi | 2 | +29 | -2 |
| 2026-05-28 13:39 | opt: O1 codegen batch — loop-imm hoist, ABI aliasing hints, slim prologue, IMUL strength-reduce, call copy-prop | Ryan Sepassi | 14 | +922 | -68 |
| 2026-05-28 05:38 | opt: O1 codegen wins + tiny-function inliner | Ryan Sepassi | 18 | +1660 | -596 |
| 2026-05-27 22:53 | core: add cfree_debug_getenv weak hook alongside cfree_debug_printf | Ryan Sepassi | 2 | +11 | -2 |
| 2026-05-27 22:35 | rm old opt tests | Ryan Sepassi | 4 | +0 | -7200 |
| 2026-05-27 23:09 | link/debug: retain DWARF in linked ELF/Mach-O images | Ryan Sepassi | 19 | +980 | -58 |
| 2026-05-27 22:27 | driver/link: default hosted targets to PIE; fix PE ASLR flags and static-PIE overflow | Ryan Sepassi | 7 | +47 | -11 |
| 2026-05-27 21:31 | opt: fix two O1 aa64 codegen-correctness bugs | Ryan Sepassi | 3 | +34 | -14 |
| 2026-05-27 20:36 | obj/objdump: extend image inspection — dynsym, rpath, stripped-segment disasm | Ryan Sepassi | 25 | +1093 | -67 |
| 2026-05-27 20:34 | cg: dump semantic CG IR via cc --emit=ir | Ryan Sepassi | 10 | +522 | -40 |
| 2026-05-27 19:50 | cg: clear diagnostic when target arch backend isn't built | Ryan Sepassi | 3 | +31 | -1 |
| 2026-05-27 19:44 | obj/objdump: add linked-image inspection (segments, dynamic info) | Ryan Sepassi | 10 | +1030 | -38 |
| 2026-05-27 19:38 | opt: emit param_decls into a dedicated prologue block | Ryan Sepassi | 1 | +18 | -1 |
| 2026-05-27 19:24 | aa64: pass/return long double (fp128) in full 128-bit q register | Ryan Sepassi | 2 | +14 | -8 |
| 2026-05-27 19:16 | test: depend on cross-target rt archive for JIT-path harnesses | Ryan Sepassi | 1 | +19 | -3 |
| 2026-05-27 18:57 | build: create support/rt symlink alongside bin target | Ryan Sepassi | 1 | +6 | -2 |
| 2026-05-27 18:50 | c/cg: emit FP add/sub for ++/-- on floating operands | Ryan Sepassi | 1 | +21 | -12 |
| 2026-05-27 18:38 | test/toy: rename opt-level env var to CFREE_OPT_LEVELS, default O0+O1 | Ryan Sepassi | 1 | +2 | -2 |
| 2026-05-27 18:38 | bench: replace FAST flag with per-tool skip flags; add compare script | Ryan Sepassi | 2 | +207 | -18 |
| 2026-05-27 18:38 | wasm: de-rotate for-loop CFG blocks before structurization | Ryan Sepassi | 1 | +108 | -0 |
| 2026-05-27 18:37 | opt: fold constant operands as immediates at O1; drop copy/return round-trips | Ryan Sepassi | 3 | +114 | -44 |
| 2026-05-27 18:29 | opt: implement Design B of NativeDirectTarget local register cache | Ryan Sepassi | 4 | +378 | -55 |
| 2026-05-27 18:20 | aa64: wire DWARF debug emission through the native_direct path | Ryan Sepassi | 5 | +40 | -2 |
| 2026-05-27 17:58 | driver: add strings tool and objdump --dwarf | Ryan Sepassi | 25 | +1648 | -6 |
| 2026-05-27 17:01 | opt: add write-back local register cache to NativeDirectTarget (Design A) | Ryan Sepassi | 3 | +398 | -40 |
| 2026-05-27 16:48 | driver: add dist target and move rt cache to DriverEnv | Ryan Sepassi | 5 | +51 | -67 |
| 2026-05-27 15:46 | doc: update O1 checklist — asm + direct-replay deletion + callee-saves + param-home done | Ryan Sepassi | 1 | +71 | -22 |
| 2026-05-27 15:09 | opt: route incoming params straight into their allocated register | Ryan Sepassi | 3 | +59 | -66 |
| 2026-05-27 13:37 | aa64: make callee-saved registers allocable at O1 | Ryan Sepassi | 3 | +166 | -16 |
| 2026-05-27 13:19 | opt: route inline asm through optimizer; delete direct-replay path | Ryan Sepassi | 3 | +185 | -438 |
| 2026-05-27 12:56 | doc: aggregate/sret ABI complete on optimizer path (7 asm cases remain) | Ryan Sepassi | 1 | +5 | -10 |
| 2026-05-27 12:56 | aa64: set sret x8 after argument loads in plan_call | Ryan Sepassi | 1 | +15 | -11 |
| 2026-05-27 12:50 | doc: update O1 recovery progress (aggregates mostly landed; tail-sret + asm remain) | Ryan Sepassi | 1 | +34 | -4 |
| 2026-05-27 12:49 | opt: handle aggregate-typed COPY/LOAD/STORE via byte copy | Ryan Sepassi | 1 | +37 | -0 |
| 2026-05-27 12:44 | opt: aggregate ABI lowering on optimizer path (partial) | Ryan Sepassi | 3 | +80 | -25 |
| 2026-05-27 12:33 | opt: route varargs through optimizer path; fix ADDR_OF spill writeback | Ryan Sepassi | 6 | +789 | -95 |
| 2026-05-27 01:10 | arch: split MCEmitter interface out of arch.h into mc.h | Ryan Sepassi | 19 | +178 | -156 |
| 2026-05-27 00:53 | wasm: route both emit backends through semantic IR recorder and shared opt pipeline | Ryan Sepassi | 2 | +298 | -109 |
| 2026-05-27 00:53 | aa64: convert native.c from CGTarget wrapper to NativeTarget implementation | Ryan Sepassi | 1 | +288 | -235 |
| 2026-05-27 00:53 | opt: rewrite pipeline to consume CgIrFunc input; replace pass_emit with NativeTarget | Ryan Sepassi | 13 | +3951 | -3843 |
| 2026-05-27 00:53 | cg: add i128 arithmetic via libcalls, wire supports_label_table through ir_recorder | Ryan Sepassi | 7 | +353 | -61 |
| 2026-05-27 00:53 | ir,opt,cg: define local-static-data IR ops, restructure opt pipeline boundary | Ryan Sepassi | 6 | +268 | -76 |
| 2026-05-27 00:51 | parse: fix _Bool conversion to emit compare-against-zero rather than truncate | Ryan Sepassi | 1 | +20 | -0 |
| 2026-05-27 00:50 | test: add C and W paths to default test-toy; add W path to parse runner | Ryan Sepassi | 3 | +93 | -9 |
| 2026-05-26 23:16 | arch: rm old regalloc.h/c | Ryan Sepassi | 4 | +6 | -204 |
| 2026-05-26 22:41 | build,test: add native-direct-target test, improve parse runner | Ryan Sepassi | 5 | +566 | -10 |
| 2026-05-26 22:41 | aa64: delete old CGTarget backend, switch to NativeDirectTarget | Ryan Sepassi | 10 | +3305 | -4842 |
| 2026-05-26 22:41 | wasm: convert target to semantic CG via IR recorder | Ryan Sepassi | 4 | +740 | -345 |
| 2026-05-26 22:41 | c target: emit aliases from IR module | Ryan Sepassi | 1 | +4 | -0 |
| 2026-05-26 22:41 | cg: add IR alias support, semantic label tables, switch hint, store relax | Ryan Sepassi | 7 | +105 | -16 |
| 2026-05-26 22:41 | arch,cg: introduce NativeTarget and NativeDirectTarget interfaces | Ryan Sepassi | 4 | +2050 | -16 |
| 2026-05-26 22:41 | abi: add va_list layout details per target | Ryan Sepassi | 10 | +76 | -0 |
| 2026-05-26 22:40 | rt: fix __fixtfsi overflow and auto-detect native runtime variant | Ryan Sepassi | 1 | +32 | -1 |
| 2026-05-26 22:33 | rt: auto-detect host-native runtime variant | Ryan Sepassi | 1 | +34 | -10 |
| 2026-05-26 19:02 | Add IR recorder C backend path | Ryan Sepassi | 14 | +5956 | -4187 |
| 2026-05-26 16:32 | Cut over Cg to semantic CgTarget | Ryan Sepassi | 28 | +2328 | -3689 |
| 2026-05-26 03:18 | Disable native backends for C target cutover | Ryan Sepassi | 7 | +74 | -28 |
| 2026-05-26 02:51 | bootstrap: avoid post-link strip on release binaries | Ryan Sepassi | 9 | +69 | -57 |
| 2026-05-26 01:37 | CGTARGET plan update | Ryan Sepassi | 1 | +90 | -32 |
| 2026-05-26 01:33 | format | Ryan Sepassi | 660 | +12334 | -10258 |
| 2026-05-26 01:29 | macho: lower split sections to atoms | Ryan Sepassi | 54 | +1154 | -278 |
| 2026-05-26 00:12 | Add split section codegen flags | Ryan Sepassi | 7 | +112 | -13 |
| 2026-05-25 23:52 | CGTarget plan | Ryan Sepassi | 1 | +625 | -0 |
| 2026-05-25 23:51 | Add compile-time component knobs | Ryan Sepassi | 25 | +1414 | -214 |
| 2026-05-25 23:09 | Tighten release binary size | Ryan Sepassi | 1 | +11 | -2 |
| 2026-05-25 22:23 | Fix debug DWARF test targets | Ryan Sepassi | 2 | +9 | -9 |
| 2026-05-25 20:44 | wasm: add backend and target feature support | Ryan Sepassi | 112 | +17174 | -6499 |
| 2026-05-25 22:09 | Fix test targets for public API coverage | Ryan Sepassi | 21 | +1138 | -1642 |
| 2026-05-25 22:07 | Fix C backend bitfield base addresses | Ryan Sepassi | 1 | +45 | -1 |
| 2026-05-25 21:28 | mk: one-entry-per-line for .PHONY and test: prerequisites | Ryan Sepassi | 2 | +81 | -4 |
| 2026-05-25 20:44 | cg: support tail-call realizability | Ryan Sepassi | 37 | +617 | -170 |
| 2026-05-25 21:20 | Keep CG API tests on public surface | Ryan Sepassi | 4 | +172 | -92 |
| 2026-05-25 21:13 | Fix parse harness public API boundaries | Ryan Sepassi | 5 | +83 | -82 |
| 2026-05-25 20:44 | cc: honor -x language for stdin | Ryan Sepassi | 2 | +43 | -6 |
| 2026-05-25 20:51 | Fix bootstrap partial linking issues | Ryan Sepassi | 4 | +53 | -19 |
| 2026-05-25 20:28 | build: hide non-public libcfree symbols | Ryan Sepassi | 19 | +306 | -304 |
| 2026-05-25 20:21 | Add release build toggle | Ryan Sepassi | 3 | +108 | -32 |
| 2026-05-25 20:12 | build: enforce public libcfree exports | Ryan Sepassi | 5 | +148 | -18 |
| 2026-05-25 20:12 | cc: support default symbol visibility | Ryan Sepassi | 6 | +46 | -7 |
| 2026-05-25 20:11 | driver: add check, asm output, and object tools | Ryan Sepassi | 15 | +2278 | -18 |
| 2026-05-25 20:08 | build: make optimizer sources optional | Ryan Sepassi | 10 | +47 | -3 |
| 2026-05-25 20:07 | build: isolate hosted driver environment | Ryan Sepassi | 6 | +238 | -216 |
| 2026-05-25 20:05 | core: stabilize panic save layout across C environments | Ryan Sepassi | 2 | +10 | -2 |
| 2026-05-25 20:05 | doc: describe lowered-CG IR | Ryan Sepassi | 1 | +490 | -0 |
| 2026-05-25 11:23 | Emulator redesign, RV64 Linux minimal impl | Ryan Sepassi | 34 | +7167 | -4464 |
| 2026-05-25 11:00 | Add ABI registry gating | Ryan Sepassi | 10 | +118 | -74 |
| 2026-05-25 10:45 | Refactor object formats into gated directories | Ryan Sepassi | 66 | +12893 | -12751 |
| 2026-05-25 10:10 | Add object format registry | Ryan Sepassi | 10 | +603 | -502 |
| 2026-05-25 06:12 | opt pipeline redesign | Ryan Sepassi | 27 | +3090 | -629 |
| 2026-05-24 17:47 | Integrate self-hosted bootstrap | Ryan Sepassi | 4 | +75 | -248 |
| 2026-05-24 16:02 | aa64: don't clobber aggregate-return base with first field load | Ryan Sepassi | 3 | +74 | -3 |
| 2026-05-24 13:37 | opt: don't reuse indirect-call target scratch as parallel-move temp | Ryan Sepassi | 1 | +8 | -5 |
| 2026-05-24 13:26 | cc: --sysroot triggers hosted mode; add freestanding math.h | Ryan Sepassi | 2 | +74 | -3 |
| 2026-05-24 13:05 | c_target: cast pointer operands of mem builtins to void* | Ryan Sepassi | 1 | +16 | -3 |
| 2026-05-24 13:05 | rt: implement printf '*' width/precision; fix stale rt archive members | Ryan Sepassi | 3 | +41 | -2 |
| 2026-05-24 12:42 | parse: accept compound-literal static initializers; fix bootstrap driver -Ilang | Ryan Sepassi | 2 | +28 | -2 |
| 2026-05-24 12:19 | slice: replace NUL-terminated strings with fat-pointer CfreeSlice | Ryan Sepassi | 197 | +4234 | -3331 |
| 2026-05-24 00:37 | test: add format-bounce stress harness; fix assembler local UNDEFs | Ryan Sepassi | 12 | +507 | -1 |
| 2026-05-23 23:04 | bootstrap: fix self-compilation across frontend, codegen, and harness | Ryan Sepassi | 7 | +105 | -12 |
| 2026-05-23 22:26 | ssa2 plan | Ryan Sepassi | 1 | +932 | -0 |
| 2026-05-23 21:19 | lang: extract C preprocessor into lang/cpp/ behind CFREE_LANG_CPP_ENABLED | Ryan Sepassi | 25 | +729 | -623 |
| 2026-05-23 20:37 | cc: drop --dump-tokens and the test/lex corpus | Ryan Sepassi | 38 | +19 | -1408 |
| 2026-05-23 20:30 | lang: registry-driven frontend dispatch with extensions on the vtable | Ryan Sepassi | 17 | +215 | -103 |
| 2026-05-23 17:43 | cg: introduce CGBackend; gate arch sources via config.h | Ryan Sepassi | 12 | +291 | -51 |
| 2026-05-23 17:06 | doc: add REGISTRY.md — build-time component configuration plan | Ryan Sepassi | 1 | +219 | -0 |
| 2026-05-23 17:06 | doc: prune stale checklists and plans | Ryan Sepassi | 20 | +0 | -5758 |
| 2026-05-23 17:05 | opt: O1 perf — MIR-shaped combine, block reorder, scalar promote, addr-of-global CSE | Ryan Sepassi | 7 | +2067 | -233 |
| 2026-05-23 17:03 | cg: extend memory ops with effective-address rider | Ryan Sepassi | 50 | +3211 | -1305 |
| 2026-05-22 19:34 | Add Windows PE/COFF support | Ryan Sepassi | 88 | +12910 | -330 |
| 2026-05-22 20:34 | opt regalloc: swap to MIR-shaped point-bitmap allocator at O1 | Ryan Sepassi | 3 | +339 | -543 |
| 2026-05-22 19:24 | opt emit: dedup set_loc calls; cache hard-reg scan; gate verify on NDEBUG | Ryan Sepassi | 4 | +106 | -15 |
| 2026-05-22 18:50 | metrics speedup, defer logging | Ryan Sepassi | 4 | +165 | -21 |
| 2026-05-22 18:07 | Enable coalescing and addr-xform at O1; add gap analysis and fast-bench mode | Ryan Sepassi | 9 | +458 | -20 |
| 2026-05-22 16:14 | Split optimizer design and performance docs | Ryan Sepassi | 7 | +490 | -3452 |
| 2026-05-22 15:29 | Fix O2 matrix and Darwin math blockers | Ryan Sepassi | 15 | +218 | -4 |
| 2026-05-22 11:54 | Add OPT benchmark harness | Ryan Sepassi | 4 | +646 | -10 |
| 2026-05-22 10:59 | Add CG inline policy and Toy call attrs | Ryan Sepassi | 29 | +518 | -16 |
| 2026-05-22 10:08 | test O2 jump and inline cleanup quality | Ryan Sepassi | 7 | +234 | -11 |
| 2026-05-22 09:41 | Complete optimizer Phase E inlining | Ryan Sepassi | 8 | +680 | -168 |
| 2026-05-22 05:54 | opt: add first Phase E inliner slice | Ryan Sepassi | 5 | +671 | -17 |
| 2026-05-22 04:35 | Complete x64 backend parity | Ryan Sepassi | 67 | +6545 | -1154 |
| 2026-05-22 04:32 | Implement O2 jump optimization | Ryan Sepassi | 4 | +284 | -10 |
| 2026-05-22 04:22 | Implement O2 SSA combine | Ryan Sepassi | 4 | +152 | -6 |
| 2026-05-22 02:41 | Refresh O2 optimizer plan | Ryan Sepassi | 1 | +40 | -13 |
| 2026-05-22 02:34 | Optimize pressure relief pass | Ryan Sepassi | 4 | +131 | -17 |
| 2026-05-22 01:05 | rv64: complete backend parity work | Ryan Sepassi | 210 | +10748 | -804 |
| 2026-05-22 01:00 | Implement O2 pressure relief | Ryan Sepassi | 4 | +246 | -1 |
| 2026-05-22 00:51 | Implement LICM optimization pass | Ryan Sepassi | 4 | +324 | -1 |
| 2026-05-22 00:36 | Implement O2 dead store elimination | Ryan Sepassi | 4 | +537 | -4 |
| 2026-05-22 00:26 | opt: add identity simplification pass | Ryan Sepassi | 8 | +748 | -43 |
| 2026-05-22 00:25 | opt: add path-aware memory GVN | Ryan Sepassi | 4 | +464 | -32 |
| 2026-05-21 23:07 | opt: place split spills on critical edges | Ryan Sepassi | 6 | +372 | -87 |
| 2026-05-21 22:43 | opt: add first memory-aware gvn slice | Ryan Sepassi | 4 | +719 | -23 |
| 2026-05-21 22:13 | opt: add SSA copy propagation | Ryan Sepassi | 7 | +295 | -5 |
| 2026-05-21 21:12 | Implement O2 allocation coalescing and splitting | Ryan Sepassi | 10 | +941 | -85 |
| 2026-05-21 20:37 | Align compile link and JIT session APIs | Ryan Sepassi | 28 | +2562 | -2477 |
| 2026-05-21 19:53 | Implement scalar GVN | Ryan Sepassi | 5 | +740 | -47 |
| 2026-05-21 19:19 | test opt scalar gvn red cases | Ryan Sepassi | 2 | +243 | -5 |
| 2026-05-21 19:18 | Keep O1 stack spill assignment linear | Ryan Sepassi | 3 | +296 | -53 |
| 2026-05-21 19:06 | Makefile: objs depend on Makefile | Ryan Sepassi | 1 | +8 | -7 |
| 2026-05-21 19:06 | Clean up O1 preg namespace | Ryan Sepassi | 16 | +610 | -657 |
| 2026-05-21 18:59 | Improve Toy REPL diagnostic locations | Ryan Sepassi | 6 | +38 | -13 |
| 2026-05-21 18:49 | Make optimizer pseudo-registers explicit | Ryan Sepassi | 14 | +725 | -84 |
| 2026-05-21 18:43 | Make dbg REPL frontend-driven | Ryan Sepassi | 13 | +542 | -451 |
| 2026-05-21 18:10 | VIRTUAL_REGS plan | Ryan Sepassi | 1 | +96 | -0 |
| 2026-05-21 18:06 | Make source frontends lifecycle-driven | Ryan Sepassi | 10 | +454 | -219 |
| 2026-05-21 17:47 | Update FRONTEND plan | Ryan Sepassi | 1 | +66 | -0 |
| 2026-05-21 17:46 | dbg: fallback to expr so jit/expr can be elided | Ryan Sepassi | 2 | +49 | -9 |
| 2026-05-21 17:45 | Add stateful frontend vtable | Ryan Sepassi | 10 | +281 | -104 |
| 2026-05-21 17:45 | Make test-parse build runtime first | Ryan Sepassi | 1 | +1 | -1 |
| 2026-05-21 17:35 | persistent frontend plan | Ryan Sepassi | 1 | +62 | -0 |
| 2026-05-21 17:32 | Implement JIT session resilience via setjmp/longjmp | Ryan Sepassi | 5 | +68 | -8 |
| 2026-05-21 17:30 | test run.sh ensure podman never pulls | Ryan Sepassi | 3 | +4 | -4 |
| 2026-05-21 17:29 | c_target: implement native data relocations via packed structs | Ryan Sepassi | 2 | +228 | -708 |
| 2026-05-21 17:22 | cg: preserve switch table indices under opt | Ryan Sepassi | 3 | +58 | -38 |
| 2026-05-21 17:21 | x64: fix optimized arithmetic and tail-call coverage | Ryan Sepassi | 3 | +158 | -11 |
| 2026-05-21 16:46 | C backend switch emit signed | Ryan Sepassi | 1 | +1 | -1 |
| 2026-05-21 16:32 | Add pre-GVN O2 rewrite coverage | Ryan Sepassi | 8 | +982 | -17 |
| 2026-05-21 15:39 | opt: add SSA DCE and copy cleanup | Ryan Sepassi | 14 | +571 | -199 |
| 2026-05-21 15:23 | opt: complete O2 SSA substrate | Ryan Sepassi | 12 | +296 | -140 |
| 2026-05-21 15:02 | Enable optimized toy cc coverage | Ryan Sepassi | 5 | +37 | -19 |
| 2026-05-21 14:50 | Improve AA64 compare and cset disassembly | Ryan Sepassi | 10 | +198 | -12 |
| 2026-05-21 14:24 | Implement production SSA for O2 | Ryan Sepassi | 6 | +927 | -322 |
| 2026-05-21 14:08 | opt: add O2 analysis substrate | Ryan Sepassi | 8 | +639 | -312 |
| 2026-05-21 14:06 | Add rv64 asm/disasm parity scaffolding | Ryan Sepassi | 17 | +741 | -40 |
| 2026-05-21 14:04 | x64: add asm disasm parity slice | Ryan Sepassi | 27 | +1063 | -242 |
| 2026-05-21 14:02 | docs: add x64 parity checklist | Ryan Sepassi | 1 | +92 | -0 |
| 2026-05-21 13:55 | Expand driver flag compatibility | Ryan Sepassi | 7 | +491 | -7 |
| 2026-05-21 04:41 | Improve emit-c source readability | Ryan Sepassi | 2 | +68 | -4 |
| 2026-05-21 03:49 | Place runtime cache under build rt | Ryan Sepassi | 11 | +55 | -19 |
| 2026-05-21 03:43 | Add jump-table lowering for CG switches | Ryan Sepassi | 6 | +308 | -17 |
| 2026-05-21 02:58 | test: broaden switch corpus and seed jump-table red shape test | Ryan Sepassi | 13 | +478 | -1 |
| 2026-05-21 02:58 | toy: support // line comments | Ryan Sepassi | 1 | +11 | -3 |
| 2026-05-21 02:58 | c-frontend: integer-promote switch controlling expression | Ryan Sepassi | 3 | +37 | -0 |
| 2026-05-21 02:25 | cg: support C local static label tables | Ryan Sepassi | 10 | +380 | -2 |
| 2026-05-21 02:09 | cg: redesign switch / computed_goto / label-addr around structured IR | Ryan Sepassi | 31 | +840 | -93 |
| 2026-05-20 23:33 | cg,c_target: wire cfree_cg_switch through a target hook; real C `switch` | Ryan Sepassi | 8 | +256 | -43 |
| 2026-05-20 22:48 | c_target,c-frontend: emit structured for/break/continue from SCOPE_LOOP | Ryan Sepassi | 5 | +113 | -22 |
| 2026-05-20 21:48 | rt: drop hosted libc shim, use system headers via sysroot | Ryan Sepassi | 31 | +64 | -1879 |
| 2026-05-20 21:41 | c_target: cut bridge-cast noise; support Mach-O TLS | Ryan Sepassi | 2 | +293 | -45 |
| 2026-05-20 20:28 | test/toy: wrap i64 main with i32 thunk; drop -Wno-main-return-type | Ryan Sepassi | 128 | +387 | -134 |
| 2026-05-20 20:15 | c_target: emit C that compiles under -Wall -Wextra -Werror | Ryan Sepassi | 3 | +50 | -12 |
| 2026-05-20 19:24 | c_target: fix several path-C bugs in test-parse | Ryan Sepassi | 4 | +267 | -37 |
| 2026-05-20 19:23 | obj: builder mutators + strip/objcopy drivers | Ryan Sepassi | 37 | +2820 | -218 |
| 2026-05-20 18:34 | c_target: land Phase 4 of the C-source backend | Ryan Sepassi | 4 | +925 | -99 |
| 2026-05-20 18:22 | driver: add cpp + ranlib tools and obj-roundtrip API | Ryan Sepassi | 9 | +884 | -1 |
| 2026-05-20 17:55 | c_target: land Phase 3 of the C-source backend | Ryan Sepassi | 5 | +811 | -93 |
| 2026-05-20 17:24 | c_target: land Phase 2 of the C-source backend | Ryan Sepassi | 5 | +723 | -156 |
| 2026-05-20 16:59 | c_target: land Phase 0/1 of the C-source backend | Ryan Sepassi | 16 | +1859 | -206 |
| 2026-05-20 15:21 | Enable runtime printf float formatting | Ryan Sepassi | 10 | +476 | -38 |
| 2026-05-20 15:01 | doc: rewrite CBACKEND.md plan around CGTarget seam | Ryan Sepassi | 1 | +487 | -266 |
| 2026-05-20 14:31 | rt: implement freestanding header routines | Ryan Sepassi | 9 | +995 | -44 |
| 2026-05-20 13:59 | Add bootstrap target | Ryan Sepassi | 1 | +23 | -31 |
| 2026-05-20 13:59 | Fix parse bootstrap regressions | Ryan Sepassi | 4 | +38 | -10 |
| 2026-05-20 13:43 | Fix self-hosted stage build without clang fallback | Ryan Sepassi | 58 | +689 | -376 |
| 2026-05-20 12:30 | Split target and hosted predefined macros | Ryan Sepassi | 10 | +124 | -5 |
| 2026-05-20 12:18 | Fix stage2 aggregate and aa64 bootstrap bugs | Ryan Sepassi | 14 | +231 | -21 |
| 2026-05-20 06:35 | Fix macro argument parsing for unbalanced braces | Ryan Sepassi | 6 | +28 | -3 |
| 2026-05-20 06:14 | Preserve null constants through suppressed loads | Ryan Sepassi | 3 | +11 | -1 |
| 2026-05-20 06:00 | Fix SQLite-driven codegen and Mach-O addends | Ryan Sepassi | 16 | +257 | -3 |
| 2026-05-20 05:53 | Fix Lua-driven frontend and cc regressions | Ryan Sepassi | 18 | +239 | -15 |
| 2026-05-20 05:28 | Implement relocatable ld links | Ryan Sepassi | 8 | +605 | -19 |
| 2026-05-20 05:04 | Fix signed pointer index lowering | Ryan Sepassi | 8 | +65 | -12 |
| 2026-05-20 04:28 | Decorate runtime helper linkage names | Ryan Sepassi | 1 | +3 | -1 |
| 2026-05-20 02:46 | Add hosted libc and runtime driver support | Ryan Sepassi | 11 | +1831 | -15 |
| 2026-05-20 01:23 | Broaden driver compatibility | Ryan Sepassi | 8 | +1147 | -131 |
| 2026-05-20 01:22 | Preserve ordered link inputs | Ryan Sepassi | 12 | +364 | -200 |
| 2026-05-20 01:22 | Fix C pointer constant cases | Ryan Sepassi | 16 | +256 | -117 |
| 2026-05-20 00:36 | Fix AArch64 logical immediate rotation | Ryan Sepassi | 2 | +18 | -1 |
| 2026-05-20 00:36 | Emit Mach-O TLV descriptors for TLS data | Ryan Sepassi | 2 | +162 | -0 |
| 2026-05-20 00:36 | Fix FP negation and address codegen | Ryan Sepassi | 17 | +156 | -26 |
| 2026-05-20 00:36 | Fix C record and array parameter lowering | Ryan Sepassi | 17 | +268 | -101 |
| 2026-05-19 23:55 | Fix parser CAS type stack | Ryan Sepassi | 1 | +6 | -2 |
| 2026-05-19 23:40 | Fix parse edge cases | Ryan Sepassi | 5 | +111 | -17 |
| 2026-05-19 23:12 | Reorganize public API bridge files | Ryan Sepassi | 20 | +1938 | -1950 |
| 2026-05-19 23:08 | src/opt src/cg breakup into multiple files | Ryan Sepassi | 33 | +9450 | -9483 |
| 2026-05-19 23:02 | Fix Mach-O section name pointers during sort | Ryan Sepassi | 1 | +8 | -0 |
| 2026-05-19 23:01 | C11 BUGS add red tests | Ryan Sepassi | 9 | +111 | -9 |
| 2026-05-19 22:59 | lang/wasm/ refactor into multiple files | Ryan Sepassi | 9 | +8390 | -8304 |
| 2026-05-19 22:32 | abi: classify wide16 scalars (i128, long double) in SysV-x64 | Ryan Sepassi | 3 | +276 | -3 |
| 2026-05-19 22:29 | cg: extract call-shape helpers and central storage-shape predicate | Ryan Sepassi | 2 | +406 | -131 |
| 2026-05-19 22:13 | Clean up public API: merge object headers, drop redundant accessors, use bool | Ryan Sepassi | 28 | +205 | -237 |
| 2026-05-19 21:56 | Fix Mach-O OutSec drift and clang non-extern reloc support | Ryan Sepassi | 3 | +111 | -9 |
| 2026-05-19 21:51 | Fix parser bugs from BUGS list | Ryan Sepassi | 21 | +152 | -61 |
| 2026-05-19 21:45 | Support #warning directive | Ryan Sepassi | 5 | +34 | -7 |
| 2026-05-19 21:38 | rm K&R fn defs expectations | Ryan Sepassi | 4 | +0 | -21 |
| 2026-05-19 21:37 | Support block-scope function declarations | Ryan Sepassi | 6 | +304 | -24 |
| 2026-05-19 21:30 | Fix brace-elided aggregate initializers | Ryan Sepassi | 2 | +202 | -51 |
| 2026-05-19 21:30 | Fix x64 PIC codegen and PIE dynamic-section noise | Ryan Sepassi | 3 | +166 | -28 |
| 2026-05-19 21:11 | test: add red C11 frontend coverage | Ryan Sepassi | 29 | +151 | -0 |
| 2026-05-19 21:00 | Migrate codebase to new component-split public API | Ryan Sepassi | 107 | +4397 | -3890 |
| 2026-05-19 19:44 | Public API rewrite | Ryan Sepassi | 20 | +1570 | -2006 |
| 2026-05-19 19:00 | Support Unicode transcoding in C literals | Ryan Sepassi | 11 | +370 | -156 |
| 2026-05-19 18:52 | Expand C11 parser coverage and literal support | Ryan Sepassi | 39 | +620 | -114 |
| 2026-05-19 18:30 | Fix parser constraint diagnostics | Ryan Sepassi | 7 | +242 | -5 |
| 2026-05-19 16:30 | Complete i128 and binary128 long double support | Ryan Sepassi | 25 | +1493 | -395 |
| 2026-05-19 15:01 | test: add red C11 parser conformance cases | Ryan Sepassi | 58 | +364 | -0 |
| 2026-05-19 14:32 | Add binary128 long double target tests | Ryan Sepassi | 66 | +1277 | -70 |
| 2026-05-19 13:37 | Complete freestanding runtime conformance gate | Ryan Sepassi | 15 | +509 | -41 |
| 2026-05-19 04:19 | Fix x64 atomic compare-exchange register pressure | Ryan Sepassi | 1 | +33 | -3 |
| 2026-05-19 04:12 | Build runtime with cfree | Ryan Sepassi | 16 | +643 | -38 |
| 2026-05-19 02:38 | Update lib dependency allowlist | Ryan Sepassi | 2 | +5 | -4 |
| 2026-05-19 02:34 | Complete C11 declaration and expression semantics cleanup | Ryan Sepassi | 41 | +385 | -44 |
| 2026-05-19 01:34 | Complete C11 bit-field and static initializer semantics | Ryan Sepassi | 18 | +479 | -106 |
| 2026-05-19 00:44 | Fix zero-fill static object emission | Ryan Sepassi | 2 | +2 | -2 |
| 2026-05-19 00:20 | Fix runtime bootstrap parser blockers | Ryan Sepassi | 16 | +184 | -13 |
| 2026-05-18 23:46 | Fix typed overflow builtins | Ryan Sepassi | 11 | +318 | -88 |
| 2026-05-18 22:51 | Implement typed C constant expression evaluation | Ryan Sepassi | 7 | +591 | -112 |
| 2026-05-18 22:39 | Fix macro hideset recursion in fp runtime probe | Ryan Sepassi | 17 | +115 | -18 |
| 2026-05-18 22:20 | Tighten C11 parse constraints | Ryan Sepassi | 25 | +986 | -240 |
| 2026-05-18 21:50 | test: expand C11 conformance gap coverage | Ryan Sepassi | 26 | +211 | -19 |
| 2026-05-18 21:36 | Add C semantic checks and declaration state | Ryan Sepassi | 20 | +418 | -25 |
| 2026-05-18 21:12 | Fix C11 parse error diagnostics | Ryan Sepassi | 6 | +293 | -6 |
| 2026-05-18 20:55 | Set executable permissions on linked outputs | Ryan Sepassi | 6 | +119 | -7 |
| 2026-05-18 20:26 | fix parse aggregate and VLA lowering | Ryan Sepassi | 4 | +93 | -126 |
| 2026-05-18 19:22 | Support stack args in tail calls | Ryan Sepassi | 6 | +220 | -69 |
| 2026-05-18 18:28 | Validate CG memory access mismatches | Ryan Sepassi | 4 | +322 | -50 |
| 2026-05-18 17:05 | Complete wasm feature gates and tail calls | Ryan Sepassi | 12 | +1567 | -52 |
| 2026-05-18 14:38 | Add staged wasm proposal frontend support | Ryan Sepassi | 14 | +979 | -303 |
| 2026-05-18 08:00 | Polish WASM trap lowering | Ryan Sepassi | 10 | +337 | -40 |
| 2026-05-18 07:02 | Implement Wasm runtime instance slots | Ryan Sepassi | 7 | +2695 | -2524 |
| 2026-05-18 06:43 | wasm: add instance runtime runner path | Ryan Sepassi | 7 | +859 | -364 |
| 2026-05-18 05:17 | wasm: run executable path for macho tests | Ryan Sepassi | 1 | +41 | -26 |
| 2026-05-18 05:08 | wasm: lower globals tables memory growth and locals | Ryan Sepassi | 15 | +582 | -40 |
| 2026-05-18 04:42 | Complete Wasm frontend reader validation | Ryan Sepassi | 14 | +1669 | -219 |
| 2026-05-18 04:19 | Complete wasm frontend native lowering | Ryan Sepassi | 24 | +2634 | -101 |
| 2026-05-18 03:38 | Add initial wasm frontend | Ryan Sepassi | 27 | +2411 | -10 |
| 2026-05-18 01:02 | docs: plan wasm frontend and backend | Ryan Sepassi | 1 | +794 | -0 |
| 2026-05-18 00:05 | Complete O1 codegen cleanup | Ryan Sepassi | 16 | +502 | -331 |
| 2026-05-17 23:11 | OP1.md doc refresh + perf refresh | Ryan Sepassi | 2 | +554 | -1006 |
| 2026-05-17 22:47 | toy: add fat slices | Ryan Sepassi | 13 | +406 | -8 |
| 2026-05-16 22:44 | Rewrite toy frontend toward spec | Ryan Sepassi | 437 | +11153 | -3174 |
| 2026-05-16 16:53 | Fix inline asm memory operand addresses | Ryan Sepassi | 1 | +26 | -23 |
| 2026-05-16 16:45 | Add Toy function pointer calls | Ryan Sepassi | 4 | +216 | -80 |
| 2026-05-16 16:36 | Run toy tests at O0 and O1 | Ryan Sepassi | 1 | +42 | -38 |
| 2026-05-16 16:33 | Move O1 tail calls onto planned replay | Ryan Sepassi | 22 | +192 | -79 |
| 2026-05-16 07:59 | Expand opt call-plan ABI register coverage | Ryan Sepassi | 3 | +516 | -35 |
| 2026-05-16 07:39 | Make call setup visible to opt | Ryan Sepassi | 11 | +608 | -82 |
| 2026-05-16 02:04 | Implement guarded Phase 5 register exposure | Ryan Sepassi | 7 | +286 | -38 |
| 2026-05-16 01:03 | Implement planned call replay for O1 | Ryan Sepassi | 13 | +711 | -89 |
| 2026-05-16 00:35 | Implement O1 call clobber register metadata | Ryan Sepassi | 10 | +1055 | -53 |
| 2026-05-16 00:15 | docs: plan richer opt register constraints | Ryan Sepassi | 2 | +429 | -1 |
| 2026-05-15 23:51 | opt: reserve only replayed hard regs | Ryan Sepassi | 3 | +117 | -31 |
| 2026-05-15 23:40 | Allow O1 params to bind to registers | Ryan Sepassi | 15 | +407 | -80 |
| 2026-05-15 22:49 | Tighten O1 post-rewrite cleanup | Ryan Sepassi | 3 | +270 | -16 |
| 2026-05-15 22:12 | Add O1 local jump cleanup | Ryan Sepassi | 6 | +399 | -35 |
| 2026-05-15 21:51 | Fix AArch64 large frame offset emission | Ryan Sepassi | 5 | +183 | -53 |
| 2026-05-15 21:38 | Complete O1 constfold cleanup | Ryan Sepassi | 5 | +485 | -244 |
| 2026-05-15 21:12 | Implement constfold delayed arithmetic and local shadows | Ryan Sepassi | 3 | +1122 | -31 |
| 2026-05-15 20:42 | Add vstack immediate constant folding | Ryan Sepassi | 4 | +913 | -37 |
| 2026-05-15 20:04 | opt: keep scalar locals in virtual registers | Ryan Sepassi | 15 | +941 | -78 |
| 2026-05-15 18:07 | cg: replace public frame slots with local handles | Ryan Sepassi | 10 | +294 | -133 |
| 2026-05-15 17:24 | docs: describe LocalId storage policy | Ryan Sepassi | 1 | +127 | -0 |
| 2026-05-15 14:49 | cg: defer integer compares for branch fusion | Ryan Sepassi | 1 | +210 | -116 |
| 2026-05-15 14:40 | Emit exact O1 prologues for known frames | Ryan Sepassi | 12 | +1072 | -441 |
| 2026-05-15 13:45 | Size opt prologue placeholders from planned regs | Ryan Sepassi | 12 | +270 | -57 |
| 2026-05-15 07:41 | Optimize O1 allocator occupancy | Ryan Sepassi | 3 | +203 | -127 |
| 2026-05-15 07:33 | Complete O1 performance cleanup | Ryan Sepassi | 4 | +208 | -71 |
| 2026-05-15 04:32 | Track O1 MIR-shape metrics | Ryan Sepassi | 8 | +547 | -111 |
| 2026-05-15 03:27 | Improve dbg JIT expression REPL | Ryan Sepassi | 17 | +5245 | -3547 |
| 2026-05-15 03:16 | Improve O1 wide-function allocation perf | Ryan Sepassi | 10 | +772 | -496 |
| 2026-05-15 02:42 | Implement range rewrite without live_after | Ryan Sepassi | 5 | +339 | -96 |
| 2026-05-15 02:32 | Add append-only JIT snippets to dbg | Ryan Sepassi | 6 | +1012 | -6 |
| 2026-05-15 02:25 | Implement range-based O1 assignment | Ryan Sepassi | 7 | +511 | -190 |
| 2026-05-15 02:11 | opt: add MIR-style live range model | Ryan Sepassi | 6 | +467 | -21 |
| 2026-05-15 02:03 | docs: design incremental jit linking | Ryan Sepassi | 3 | +863 | -0 |
| 2026-05-15 02:02 | opt: add pass-local block liveness | Ryan Sepassi | 7 | +717 | -210 |
| 2026-05-15 01:42 | RA phase 0 metrics and guardrails | Ryan Sepassi | 4 | +231 | -20 |
| 2026-05-15 01:34 | RA plan | Ryan Sepassi | 1 | +740 | -0 |
| 2026-05-15 00:53 | Document run JIT perf and compile metrics | Ryan Sepassi | 5 | +351 | -1 |
| 2026-05-15 00:45 | Avoid duplicate segment copies in JIT | Ryan Sepassi | 2 | +53 | -5 |
| 2026-05-15 00:34 | Add scoped timing metrics for run JIT path | Ryan Sepassi | 10 | +245 | -1 |
| 2026-05-15 00:33 | link: make section grouping linear | Ryan Sepassi | 1 | +66 | -22 |
| 2026-05-14 23:55 | Test O1 on x64 and rv64 | Ryan Sepassi | 13 | +318 | -22 |
| 2026-05-14 21:47 | Rewrite design document | Ryan Sepassi | 1 | +222 | -901 |
| 2026-05-14 21:35 | opt: model asm and call hard-reg effects | Ryan Sepassi | 3 | +374 | -10 |
| 2026-05-14 21:15 | opt: fold safe single-use post-RA operands | Ryan Sepassi | 3 | +568 | -5 |
| 2026-05-14 20:14 | Tighten O1 combine and DCE | Ryan Sepassi | 3 | +494 | -12 |
| 2026-05-14 20:13 | Consolidate arch files into subdirs | Ryan Sepassi | 59 | +6196 | -6216 |
| 2026-05-14 20:03 | Route arch helpers through descriptors | Ryan Sepassi | 9 | +172 | -106 |
| 2026-05-14 19:55 | Move linker arch cases behind descriptor | Ryan Sepassi | 10 | +252 | -383 |
| 2026-05-14 19:52 | Track exact simple regalloc usage | Ryan Sepassi | 5 | +56 | -17 |
| 2026-05-14 19:47 | Remove backend allocator pool state | Ryan Sepassi | 13 | +135 | -149 |
| 2026-05-14 19:36 | Route object relocation formats through arch descriptors | Ryan Sepassi | 10 | +123 | -72 |
| 2026-05-14 19:26 | Route ABI selection through arch descriptors | Ryan Sepassi | 6 | +43 | -27 |
| 2026-05-14 19:26 | Improve O1 live info for regalloc | Ryan Sepassi | 4 | +336 | -26 |
| 2026-05-14 19:20 | Add internal arch registration descriptor | Ryan Sepassi | 10 | +156 | -78 |
| 2026-05-14 19:13 | opt: add natural loop tree for O1 | Ryan Sepassi | 4 | +322 | -10 |
| 2026-05-14 19:06 | Move CG register allocation out of CGTarget | Ryan Sepassi | 18 | +229 | -178 |
| 2026-05-14 18:40 | Factor simple backend register allocator | Ryan Sepassi | 13 | +359 | -270 |
| 2026-05-14 18:14 | opt: prune unreachable blocks in CFG | Ryan Sepassi | 2 | +175 | -0 |
| 2026-05-14 17:50 | Wire opt level into CG target creation | Ryan Sepassi | 5 | +35 | -5 |
| 2026-05-14 17:49 | Expose frontend support API for C | Ryan Sepassi | 38 | +1709 | -1533 |
| 2026-05-14 17:25 | Refactor DWARF reader into debug module | Ryan Sepassi | 23 | +4156 | -4262 |
| 2026-05-14 17:15 | Remove src include path from C frontend build | Ryan Sepassi | 7 | +4 | -283 |
| 2026-05-14 17:04 | Move assembler parsing under src/asm | Ryan Sepassi | 20 | +1983 | -1230 |
| 2026-05-14 16:52 | Remove C Type dependencies from src | Ryan Sepassi | 69 | +1189 | -1878 |
| 2026-05-14 16:11 | Remove legacy cg implementation | Ryan Sepassi | 51 | +665 | -12937 |
| 2026-05-14 14:28 | Add CG type registry | Ryan Sepassi | 4 | +995 | -109 |
| 2026-05-14 12:39 | Port C frontend to public CG API | Ryan Sepassi | 53 | +6916 | -5634 |
| 2026-05-14 03:24 | Add neutral CG backend migration plan | Ryan Sepassi | 1 | +286 | -0 |
| 2026-05-14 03:24 | TOY.md spec | Ryan Sepassi | 2 | +839 | -623 |
| 2026-05-13 22:08 | Expand toy CG API coverage | Ryan Sepassi | 7 | +638 | -60 |
| 2026-05-13 19:15 | Update impl + toy to new CG api | Ryan Sepassi | 4 | +1096 | -574 |
| 2026-05-13 18:59 | CG api updates | Ryan Sepassi | 2 | +724 | -206 |
| 2026-05-13 17:59 | cg-ext.md plan | Ryan Sepassi | 1 | +551 | -0 |
| 2026-05-13 17:21 | Update cg impl + toy to the new cg api | Ryan Sepassi | 7 | +600 | -221 |
| 2026-05-13 17:04 | Redesign public CG API | Ryan Sepassi | 1 | +302 | -173 |
| 2026-05-13 16:11 | toy-todo.md plan | Ryan Sepassi | 1 | +623 | -0 |
| 2026-05-13 14:44 | Validate AArch64 SP and ZR asm operands | Ryan Sepassi | 2 | +73 | -0 |
| 2026-05-13 14:41 | Complete Cg inline asm API coverage | Ryan Sepassi | 6 | +264 | -24 |
| 2026-05-13 14:25 | Expand toy CG API coverage | Ryan Sepassi | 8 | +328 | -35 |
| 2026-05-13 11:33 | Implement planned CG API updates | Ryan Sepassi | 7 | +724 | -418 |
| 2026-05-13 11:08 | docs: clarify CG API status and plan | Ryan Sepassi | 1 | +256 | -162 |
| 2026-05-13 10:03 | Complete public CG API wrappers | Ryan Sepassi | 12 | +987 | -52 |
| 2026-05-13 05:33 | Expand CG API status TODOs | Ryan Sepassi | 1 | +27 | -3 |
| 2026-05-13 05:29 | Complete public CG API toy coverage | Ryan Sepassi | 35 | +1351 | -115 |
| 2026-05-13 03:58 | Implement CfreeCg public codegen API driving CGTarget directly | Ryan Sepassi | 2 | +1412 | -5 |
| 2026-05-13 02:00 | toy: use structured scopes, unop, fix call stack order and store drops | Ryan Sepassi | 1 | +880 | -58 |
| 2026-05-13 02:00 | cg api: add unop, va_list, extended intrinsics, structured scope results, push_int uint64_t, remove is_union | Ryan Sepassi | 4 | +230 | -22 |
| 2026-05-13 00:12 | cg type allocator | Ryan Sepassi | 7 | +584 | -2 |
| 2026-05-12 23:44 | cfree/cg.h and lang/toy | Ryan Sepassi | 12 | +818 | -29 |
| 2026-05-12 22:10 | Refactor setjmp longjmp as intrinsics | Ryan Sepassi | 15 | +66 | -125 |
| 2026-05-12 21:54 | LANGS.md plan | Ryan Sepassi | 1 | +456 | -0 |
| 2026-05-12 21:54 | opt: generic register coordination via CGTarget hooks | Ryan Sepassi | 17 | +853 | -192 |
| 2026-05-12 14:25 | Implement OPT1 lowering and allocation | Ryan Sepassi | 7 | +1350 | -31 |
| 2026-05-12 05:28 | TAILCALL.md plan | Ryan Sepassi | 1 | +234 | -0 |
| 2026-05-12 01:36 | PROF.md plan | Ryan Sepassi | 1 | +392 | -0 |
| 2026-05-12 01:24 | OPT.md plan update | Ryan Sepassi | 1 | +601 | -420 |
| 2026-05-12 01:16 | extract sha256 (codesign) | Ryan Sepassi | 3 | +133 | -113 |
| 2026-05-12 00:44 | jit/macho: cfree-owned TLV thunk so _Thread_local works under cfree run | Ryan Sepassi | 16 | +626 | -79 |
| 2026-05-12 00:18 | Preprocess .S inputs in assembler driver | Ryan Sepassi | 1 | +55 | -8 |
| 2026-05-12 00:17 | Move runtime make rules into rt makefile | Ryan Sepassi | 2 | +243 | -275 |
| 2026-05-12 00:02 | Parallelize parse cg and elf test harnesses | Ryan Sepassi | 4 | +760 | -305 |
| 2026-05-11 23:55 | asm: support file-scope global asm | Ryan Sepassi | 9 | +158 | -22 |
| 2026-05-11 23:51 | stage2: R1–R7 rt-ingest fixes (5/8 rt sources compile under cfree) | Ryan Sepassi | 26 | +397 | -93 |
| 2026-05-11 23:10 | link/macho: coalesce same-named sections into one section_64 per (segname,sectname) | Ryan Sepassi | 2 | +165 | -52 |
| 2026-05-11 22:56 | obj: emit Mach-O TLV descriptors so cfree-compiled _Thread_local works | Ryan Sepassi | 7 | +359 | -180 |
| 2026-05-11 22:15 | refactor: split six >2KLOC files into focused modules | Ryan Sepassi | 29 | +18546 | -20038 |
| 2026-05-11 21:42 | parse: accept _Thread_local; route TLS objects through tls_addr_of | Ryan Sepassi | 6 | +73 | -1 |
| 2026-05-11 21:23 | link/macho: set MH_HAS_TLV_DESCRIPTORS so dyld registers TLV pthread keys | Ryan Sepassi | 4 | +59 | -53 |
| 2026-05-11 21:17 | dbg: copy CfreeDbgSignalOps in signals_install, not the caller pointer | Ryan Sepassi | 1 | +11 | -7 |
| 2026-05-11 20:52 | stage2: standalone link probe + STAGE2/MACHO notes | Ryan Sepassi | 4 | +156 | -133 |
| 2026-05-11 20:50 | obj: coalesce same-named sections; add obj_align_to for intra-section padding | Ryan Sepassi | 7 | +93 | -28 |
| 2026-05-11 20:49 | link/macho: TLV section + ARM64_RELOC_TLVP_LOAD_PAGE21/PAGEOFF12 | Ryan Sepassi | 8 | +388 | -18 |
| 2026-05-11 20:07 | dbg: multi-input cfree_jit_view + DWARF suffix-match / degradation | Ryan Sepassi | 8 | +713 | -141 |
| 2026-05-11 19:49 | test/cg q05: accumulate into r_int to fit x64 INT pool | Ryan Sepassi | 1 | +10 | -5 |
| 2026-05-11 19:42 | cg: imm-form encodings for x64 and rv64 binop/unop | Ryan Sepassi | 2 | +228 | -16 |
| 2026-05-11 19:29 | cg: pre-SSA peephole — constant fold + aarch64 imm-form encodings | Ryan Sepassi | 6 | +569 | -24 |
| 2026-05-11 19:17 | STAGE2.md plan update | Ryan Sepassi | 1 | +163 | -85 |
| 2026-05-11 18:49 | cg fix INDIRECT reg leak | Ryan Sepassi | 1 | +5 | -2 |
| 2026-05-11 18:46 | jit: close out reloc-apply gaps from doc/JIT.md | Ryan Sepassi | 7 | +479 | -129 |
| 2026-05-11 18:44 | driver: share .c/.o/.a/stdin input handling between run and dbg | Ryan Sepassi | 5 | +402 | -252 |
| 2026-05-11 18:41 | parse: fix sizeof/alignof expr forms + block-scope static[] inference | Ryan Sepassi | 7 | +88 | -13 |
| 2026-05-11 18:30 | test/parse/run.sh fixup -I for cfree-roundtrip.c | Ryan Sepassi | 1 | +1 | -1 |
| 2026-05-11 18:29 | asm/inline: complete end-to-end TODOs from doc/ASM.md §6 | Ryan Sepassi | 10 | +375 | -57 |
| 2026-05-11 18:27 | cg/arch: handle OPK_INDIRECT in call-arg + return paths | Ryan Sepassi | 18 | +476 | -72 |
| 2026-05-11 18:25 | parse: land STAGE2 B1-B6 — alignof alias, ctz, addr-const + array-init gaps | Ryan Sepassi | 25 | +253 | -48 |
| 2026-05-11 18:03 | run: fix cfree run JIT runner — pipeline lifetime, dlsym mangling, synthetic argv[0] | Ryan Sepassi | 3 | +174 | -21 |
| 2026-05-11 17:59 | pp: search includer's directory first for quoted #include | Ryan Sepassi | 1 | +68 | -9 |
| 2026-05-11 17:53 | api: implement cfree_dep_iter_new/_next over SourceManager | Ryan Sepassi | 3 | +64 | -17 |
| 2026-05-11 17:45 | dbg: implement cfree_jit_view + image/runtime PC translation | Ryan Sepassi | 8 | +464 | -14 |
| 2026-05-11 17:38 | ASM.md plan update | Ryan Sepassi | 2 | +215 | -955 |
| 2026-05-11 16:58 | asm/inline: integration — wire AsmConstraint.type through binder + walker | Ryan Sepassi | 7 | +111 | -32 |
| 2026-05-11 16:42 | asm/inline: track C — aa64 backend (template walker + aa_asm_block) | Ryan Sepassi | 7 | +617 | -12 |
| 2026-05-11 16:38 | asm/inline: track B — cg_inline_asm binder + opt recorder/replay | Ryan Sepassi | 5 | +840 | -23 |
| 2026-05-11 16:47 | asm/inline: track A — frontend parser for asm() statements | Ryan Sepassi | 4 | +346 | -0 |
| 2026-05-11 17:20 | STAGE2.md plan | Ryan Sepassi | 1 | +154 | -0 |
| 2026-05-11 17:19 | dbg: JIT debugger — session, displaced single-step, REPL wire-up | Ryan Sepassi | 15 | +2528 | -116 |
| 2026-05-11 16:59 | attr: phase-2 PR-Z — parser wire-up + weak-undef JIT | Ryan Sepassi | 4 | +234 | -721 |
| 2026-05-11 16:19 | attr: phase-2 W1–W4 — honor packed/aligned/section/used/weak/visibility/alias/noreturn | Ryan Sepassi | 5 | +214 | -27 |
| 2026-05-11 16:16 | INLINEASM.md plan | Ryan Sepassi | 2 | +333 | -11 |
| 2026-05-11 16:05 | attr: phase-2 PR-0 — interface seed, plan doc, drafted tests | Ryan Sepassi | 29 | +718 | -65 |
| 2026-05-11 15:54 | asm: phase-3 + phase-4a — standalone .s assembler + disassembler overlay | Ryan Sepassi | 20 | +2703 | -156 |
| 2026-05-11 15:41 | parse: __attribute__((...)) parsing — Phase 1 carriers, no codegen | Ryan Sepassi | 23 | +977 | -29 |
| 2026-05-11 15:31 | test/parse: sizeof / nonzero subscript on direct string literal | Ryan Sepassi | 4 | +17 | -0 |
| 2026-05-11 15:25 | asm: phase-2 ISA descriptor table — AsmFlags, aliases, format backfill | Ryan Sepassi | 8 | +1144 | -105 |
| 2026-05-11 15:10 | parse: fuse adjacent string literals at the pp-pull boundary | Ryan Sepassi | 5 | +133 | -4 |
| 2026-05-11 14:56 | asm: phase-1 test harness scaffolding (test/asm + cg path S) | Ryan Sepassi | 17 | +1507 | -30 |
| 2026-05-11 14:54 | parse: aggregate-by-value params and returns — 2-reg DIRECT and INDIRECT copy | Ryan Sepassi | 21 | +226 | -19 |
| 2026-05-11 14:34 | link: LinkArchDesc vtable + obj-format C-name policy + ISA encoder lifts | Ryan Sepassi | 23 | +996 | -213 |
| 2026-05-11 12:37 | libc: rv64/x64 GOT codegen + PIE link plumbing — full 10-cell test-libc green | Ryan Sepassi | 14 | +475 | -23 |
| 2026-05-11 03:15 | libc: Linux hosted shim + test-libc 9-cell matrix (musl/glibc × x64/aa64/rv64) | Ryan Sepassi | 11 | +790 | -140 |
| 2026-05-11 02:41 | arch/aa64: GOT addressing for extern data on Mach-O; build hosted shim with cfree | Ryan Sepassi | 6 | +141 | -29 |
| 2026-05-11 01:56 | parse: route &&/|| result through a temp slot so if-cond sees merged value | Ryan Sepassi | 2 | +62 | -13 |
| 2026-05-11 01:37 | libc: platform-agnostic headers + macOS hosted shim + test-libc harness | Ryan Sepassi | 34 | +1201 | -7 |
| 2026-05-10 23:07 | link/macho: test-link Path E green on aa64-macho — 103/103 | Ryan Sepassi | 3 | +177 | -21 |
| 2026-05-10 23:06 | x64 codegen complete | Ryan Sepassi | 3 | +1007 | -306 |
| 2026-05-10 22:30 | link/macho: test-link Path E on aa64-macho — 101/103 passing | Ryan Sepassi | 13 | +476 | -111 |
| 2026-05-10 22:13 | arch/x64: codegen for Linux ELF — A–D spine + most of E–H, P, Q | Ryan Sepassi | 4 | +2172 | -254 |
| 2026-05-10 21:58 | doc: rm 7 stale design docs + strip stale references | Ryan Sepassi | 26 | +28 | -2298 |
| 2026-05-10 21:51 | parse: clear all 20 §6.2–§6.9 status-list failures | Ryan Sepassi | 2 | +593 | -617 |
| 2026-05-10 21:47 | link/x64: test-link green — PLT32, 32S, TLS LE, ifunc stub | Ryan Sepassi | 4 | +61 | -6 |
| 2026-05-10 21:32 | link/macho: dyld-loadable MH_EXECUTE writer + .tbd / dylib DSO inputs | Ryan Sepassi | 12 | +2784 | -35 |
| 2026-05-10 21:04 | build/driver: make self target + filename in diagnostics | Ryan Sepassi | 12 | +202 | -42 |
| 2026-05-10 20:57 | test/parse: §6.2–§6.9 corpus expansion — 80 new rows + status sweep | Ryan Sepassi | 164 | +494 | -11 |
| 2026-05-10 20:38 | arch/cg: thread RegClass through free_reg | Ryan Sepassi | 6 | +48 | -34 |
| 2026-05-10 20:29 | link/rv64: TLS LE — clamp SF_TLS PT_LOAD memsz to filesz | Ryan Sepassi | 3 | +29 | -25 |
| 2026-05-10 20:23 | link/test: Mach-O read + JIT — test-link path R+J green on aa64-macho | Ryan Sepassi | 12 | +203 | -24 |
| 2026-05-10 20:19 | arch/rv64: variadic save area atop frame, contiguous with stack args | Ryan Sepassi | 2 | +46 | -61 |
| 2026-05-10 20:12 | cg/parse: C atomics — full aarch64 lowering + CAS/fence parser surface | Ryan Sepassi | 30 | +357 | -28 |
| 2026-05-10 20:09 | arch/abi/cg: rv64 — real LP64D codegen mirroring aa64 | Ryan Sepassi | 9 | +2969 | -248 |
| 2026-05-10 19:59 | obj/test: macho roundtrip — fix read/emit fidelity, wire test-link path R | Ryan Sepassi | 11 | +420 | -31 |
| 2026-05-10 19:58 | parse/cg: variadic lowering + FP arithmetic dispatch | Ryan Sepassi | 31 | +389 | -41 |
| 2026-05-10 19:16 | link: rv64 — reloc applies, ifunc stub, kernel_image case + per-arch harness | Ryan Sepassi | 9 | +491 | -51 |
| 2026-05-10 19:09 | parse: array-size cexpr, sizeof unary, bitfield as storage unit | Ryan Sepassi | 1 | +22 | -21 |
| 2026-05-10 19:07 | obj/abi: MULTIOBJ Phase 2 — Mach-O writer/reader (MH_OBJECT, arm64) | Ryan Sepassi | 16 | +1711 | -187 |
| 2026-05-10 18:53 | parse: Phase 9 — __builtin_* / __atomic_* routing | Ryan Sepassi | 14 | +375 | -21 |
| 2026-05-10 18:46 | ASM.md plan | Ryan Sepassi | 1 | +487 | -0 |
| 2026-05-10 18:44 | obj/abi/link: MULTIOBJ Phase 1 — Mach-O seams + plan | Ryan Sepassi | 14 | +1190 | -80 |
| 2026-05-10 18:37 | parse: Phase 8 — qualifiers, alignment, typedefs | Ryan Sepassi | 4 | +316 | -41 |
| 2026-05-10 18:31 | obj: ELF x64 — TLS and GOT-relax reloc coverage | Ryan Sepassi | 4 | +96 | -0 |
| 2026-05-10 18:28 | obj: ELF rv64 — full reloc coverage, e_flags round-trip | Ryan Sepassi | 9 | +278 | -3 |
| 2026-05-10 18:22 | parse: Phase 7 — type breadth, conversions, suffix-typed literals | Ryan Sepassi | 6 | +281 | -31 |
| 2026-05-10 18:20 | test: parameterize harnesses by CFREE_TEST_ARCH | Ryan Sepassi | 20 | +308 | -107 |
| 2026-05-10 17:55 | arch/abi/obj: MULTIARCH Phase 2 — rv64 stubs | Ryan Sepassi | 13 | +730 | -5 |
| 2026-05-10 17:52 | parse: Phase 6 — initializers (designators, string init, compound literals) | Ryan Sepassi | 3 | +538 | -53 |
| 2026-05-10 17:46 | test: fix path-E exec on Darwin and trim default opt-levels | Ryan Sepassi | 2 | +26 | -14 |
| 2026-05-10 17:41 | arch/abi/obj: MULTIARCH Phase 2 — multi-arch seams + x64 stubs | Ryan Sepassi | 21 | +964 | -214 |
| 2026-05-10 17:35 | parse: Phase 5 — switch, goto, do-while, labels | Ryan Sepassi | 3 | +305 | -15 |
| 2026-05-10 17:34 | test: MULTIARCH Phase 1 — per-arch exec helper, x64 smoke | Ryan Sepassi | 9 | +737 | -155 |
| 2026-05-10 17:24 | opt: Phase 3 — IR-native recording, SSA construction, dry-run | Ryan Sepassi | 7 | +1966 | -1716 |
| 2026-05-10 16:10 | parse: Phase 4 — globals, storage classes, linkage, static locals | Ryan Sepassi | 3 | +378 | -24 |
| 2026-05-10 15:53 | parse: Phase 3 — struct/union/enum, member access, _Generic | Ryan Sepassi | 5 | +921 | -37 |
| 2026-05-10 14:20 | cg: CG-driven spill/reload on a finite physical-register pool | Ryan Sepassi | 7 | +1048 | -328 |
| 2026-05-10 13:14 | test: print pass/fail summary as the last line in every run script | Ryan Sepassi | 12 | +54 | -43 |
| 2026-05-10 13:03 | parse: Phase 2 — pointer/array decls, decay, subscript, brace init, VLA | Ryan Sepassi | 4 | +599 | -80 |
| 2026-05-10 12:26 | parse: Phase 1 — calls, params, multi-fn TUs, &&/||/?:, sizeof/cast | Ryan Sepassi | 5 | +1293 | -212 |
| 2026-05-10 12:23 | opt: record-replay wrapper + tape printer + constfold (phases 0-2) | Ryan Sepassi | 5 | +2164 | -158 |
| 2026-05-10 04:46 | test/parse: extend corpus to §6.2–§6.9 + builtins, clang-verified | Ryan Sepassi | 176 | +781 | -0 |
| 2026-05-10 03:42 | test/parse: author corpus cases for §6.5–§6.9 | Ryan Sepassi | 109 | +216 | -0 |
| 2026-05-10 01:37 | parse/cg/decl: scaffold C front-end vertical, pass spine corpus | Ryan Sepassi | 6 | +2346 | -28 |
| 2026-05-10 01:01 | link: place .dynamic in a PF_R+W segment for glibc compatibility | Ryan Sepassi | 3 | +66 | -37 |
| 2026-05-10 01:00 | link: linker script support (kernel.lds subset) + case 35 | Ryan Sepassi | 17 | +1600 | -50 |
| 2026-05-10 00:43 | test: batch path-E podman runs and cache start.o | Ryan Sepassi | 4 | +469 | -160 |
| 2026-05-10 00:42 | test/libc: split harness into shared cases + musl/glibc runners | Ryan Sepassi | 21 | +746 | -355 |
| 2026-05-10 00:22 | dwarf: producer + consumer + path-W harness (phases 0-3) | Ryan Sepassi | 34 | +8493 | -199 |
| 2026-05-10 00:20 | link: dynamic linking phase 5 (PLT body + import-reloc rewriting) | Ryan Sepassi | 5 | +486 | -797 |
| 2026-05-10 00:09 | OPT.md plan | Ryan Sepassi | 1 | +437 | -0 |
| 2026-05-09 23:59 | test/parse: scaffold file-driven C parser harness | Ryan Sepassi | 18 | +1088 | -2 |
| 2026-05-09 23:47 | link: dynamic linking phases 4+6 (synthetic dyn-tables, ET_DYN emit) | Ryan Sepassi | 8 | +1499 | -98 |
| 2026-05-09 23:23 | DWARF plan | Ryan Sepassi | 1 | +689 | -0 |
| 2026-05-09 23:22 | link: dynamic linking phases 1-3 (DSO read, driver, resolve) | Ryan Sepassi | 15 | +914 | -183 |
| 2026-05-09 23:15 | test/cg: scaffold Group P (set_loc/debug) + W path | Ryan Sepassi | 7 | +455 | -7 |
| 2026-05-09 23:03 | make format | Ryan Sepassi | 186 | +32505 | -30653 |
| 2026-05-09 22:58 | musl dynamic link test | Ryan Sepassi | 3 | +595 | -44 |
| 2026-05-09 22:58 | link: STT_GNU_IFUNC in static ET_EXEC via libcfree_rt preinit | Ryan Sepassi | 10 | +272 | -116 |
| 2026-05-09 22:56 | cg/aa64: implement Groups J, K, L (varargs, atomics, intrinsics) | Ryan Sepassi | 2 | +751 | -33 |
| 2026-05-09 22:46 | core: introduce SegVec; migrate typed object/image/linker tables | Ryan Sepassi | 11 | +878 | -501 |
| 2026-05-09 22:36 | cg/aa64: implement Groups N, O, Q (TLS, globals, multi-function) | Ryan Sepassi | 2 | +172 | -8 |
| 2026-05-09 22:21 | test/cg: register Groups N, O, Q (TLS, globals, multi-function) | Ryan Sepassi | 6 | +1316 | -3 |
| 2026-05-09 22:17 | cg/aa64: implement Groups G, H, I (calls, control flow, alloca) | Ryan Sepassi | 1 | +279 | -49 |
| 2026-05-09 22:15 | test/cg: register Groups J, K, L (varargs, atomics, intrinsics) | Ryan Sepassi | 6 | +1392 | -3 |
| 2026-05-09 22:14 | core: extract bytes/util/vec/hashmap and zalloc/buf-walk helpers | Ryan Sepassi | 22 | +507 | -610 |
| 2026-05-09 22:01 | test/cg: split cases.c into per-group files | Ryan Sepassi | 14 | +3535 | -3336 |
| 2026-05-09 21:49 | test/cg: register Groups G, H, I (calls, control flow, alloca) | Ryan Sepassi | 4 | +2005 | -17 |
| 2026-05-09 21:47 | link: TLS local-exec, IFUNC, and exe symtab / build-id / .eh_frame | Ryan Sepassi | 14 | +1435 | -166 |
| 2026-05-09 21:36 | cg/aa64: implement Groups D, E, F (control flow, conv, memory) | Ryan Sepassi | 2 | +454 | -18 |
| 2026-05-09 21:23 | test/cg: register Groups D, E, F (compare/branch, conv, memory) | Ryan Sepassi | 2 | +963 | -3 |
| 2026-05-09 21:07 | cg/aa64: bring up frames, params, calls, FP — pass Groups A/B/C | Ryan Sepassi | 2 | +985 | -132 |
| 2026-05-09 21:06 | link: static musl on aarch64 — link, run, hello | Ryan Sepassi | 18 | +624 | -150 |
| 2026-05-09 20:36 | arch/aa64: factor encodings into shared ISA descriptors | Ryan Sepassi | 3 | +476 | -85 |
| 2026-05-09 20:13 | link: implement --gc-sections (entry/init-fini/RETAIN/start-stop roots) | Ryan Sepassi | 40 | +678 | -78 |
| 2026-05-09 20:10 | cg: bring up type/abi spine and pass Group A on AArch64 | Ryan Sepassi | 7 | +783 | -17 |
| 2026-05-09 19:49 | test/cg: expand A/B/C corpus; harness now drives real type+abi APIs | Ryan Sepassi | 5 | +1262 | -287 |
| 2026-05-09 19:43 | link: archive ingestion, static GOT, and ar BSD long-name fix | Ryan Sepassi | 8 | +646 | -106 |
| 2026-05-09 19:24 | obj: preserve format-specific sh_type/sh_flags across roundtrip | Ryan Sepassi | 5 | +64 | -14 |
| 2026-05-09 19:24 | test/elf: expand corpus across reloc, section, symbol, and bad/ axes | Ryan Sepassi | 46 | +478 | -0 |
| 2026-05-09 19:22 | cg: add cg_tail_call and CG_CALL_TAIL flag on CGCallDesc | Ryan Sepassi | 2 | +20 | -0 |
| 2026-05-09 19:18 | test-link: add filters, per-path timing; fix slow podman exec path | Ryan Sepassi | 1 | +48 | -17 |
| 2026-05-09 19:09 | test-link: move negative tests to bad/ dir; drop link_fail marker | Ryan Sepassi | 6 | +130 | -50 |
| 2026-05-09 19:07 | elf: aarch64 TLSLE reloc roundtrip support | Ryan Sepassi | 4 | +59 | -0 |
| 2026-05-09 19:04 | test-elf: scope to ELF fidelity only; fix test-link R-path no-op | Ryan Sepassi | 20 | +113 | -660 |
| 2026-05-09 18:56 | elf: fix 09_ifunc, 13_comdat, mark 06_tls xfail | Ryan Sepassi | 7 | +108 | -4 |
| 2026-05-09 18:43 | execmem: dual-mapping JIT regions for strict W^X | Ryan Sepassi | 6 | +525 | -95 |
| 2026-05-09 18:17 | test-ar-driver | Ryan Sepassi | 9 | +205 | -2 |
| 2026-05-09 18:14 | ar verbose support | Ryan Sepassi | 2 | +91 | -32 |
| 2026-05-09 18:08 | driver --help | Ryan Sepassi | 9 | +644 | -51 |
| 2026-05-09 18:01 | lib: route exec memory and current-time through host CfreeEnv vtables | Ryan Sepassi | 11 | +362 | -81 |
| 2026-05-09 17:53 | emu: implement cfree_emu_run/new/step/lookup/free with stubbed deps | Ryan Sepassi | 12 | +1462 | -15 |
| 2026-05-09 17:46 | link: advance JIT/exec linker; fix build staleness masking test results | Ryan Sepassi | 15 | +531 | -67 |
| 2026-05-09 17:35 | emu: scaffold cfree emu driver and stubbed public API | Ryan Sepassi | 5 | +362 | -1 |
| 2026-05-09 16:58 | test/cg: scaffold codegen test harness and minimal AArch64 backend | Ryan Sepassi | 13 | +2107 | -9 |
| 2026-05-09 16:02 | test/link: add unified linker and JIT behavioral test corpus | Ryan Sepassi | 60 | +1123 | -4 |
| 2026-05-09 15:32 | pp: implement C11 preprocessor (translation phase 4) | Ryan Sepassi | 5 | +2894 | -23 |
| 2026-05-09 14:01 | test/pp: rewrite corpus as layered, clang-validated suite | Ryan Sepassi | 206 | +733 | -41 |
| 2026-05-09 12:00 | test/elf: extend corpus with symbol, section, and behavioral cases | Ryan Sepassi | 29 | +624 | -36 |
| 2026-05-09 11:30 | lex: implement line splicing and header-name lexing | Ryan Sepassi | 4 | +142 | -20 |
| 2026-05-09 11:15 | driver: update ar, cc, ld subcommands and Makefile | Ryan Sepassi | 4 | +212 | -11 |
| 2026-05-09 11:15 | api: add ar, detect, lifecycle, stubs, writer_mem; update pipeline | Ryan Sepassi | 7 | +1941 | -345 |
| 2026-05-09 11:15 | link: add linker with ELF, JIT, layout, and reloc support | Ryan Sepassi | 6 | +1792 | -0 |
| 2026-05-09 11:15 | obj: add ELF read/emit and object file support with ELF tests | Ryan Sepassi | 23 | +3026 | -0 |
| 2026-05-09 11:15 | lex: add lexer implementation and lex/pp tests | Ryan Sepassi | 52 | +1812 | -0 |
| 2026-05-09 11:15 | core: add arena, buf, diag, pool, source implementations | Ryan Sepassi | 8 | +827 | -8 |
| 2026-05-09 00:24 | C11 std docs | Ryan Sepassi | 4 | +12375 | -0 |
| 2026-05-09 00:23 | DESIGN.md update | Ryan Sepassi | 1 | +27 | -9 |
| 2026-05-09 00:19 | src: pipeline and link updates | Ryan Sepassi | 2 | +314 | -386 |
| 2026-05-09 00:19 | driver: subcommand updates | Ryan Sepassi | 9 | +1528 | -291 |
| 2026-05-09 00:19 | include: API updates | Ryan Sepassi | 1 | +393 | -144 |
| 2026-05-08 23:59 | driver: cflags/lib_resolve/target split, dbg subcommand, expanded ld/cc/objdump | Ryan Sepassi | 14 | +3966 | -446 |
| 2026-05-08 23:59 | src: JIT session, debug info, target pic/code-model plumbing | Ryan Sepassi | 10 | +716 | -99 |
| 2026-05-08 23:59 | include/cfree.h: JIT sessions, debug info, target pic/code-model | Ryan Sepassi | 1 | +637 | -17 |
| 2026-05-08 13:03 | cfree_obj_open/query, cfree_ar_iter, cfree_detect_fmt; driver objdump + ar | Ryan Sepassi | 15 | +1272 | -43 |
| 2026-05-08 05:50 | driver wired to cfree_run; libc isolated to env.c | Ryan Sepassi | 9 | +803 | -81 |
| 2026-05-08 04:37 | include/cfree.h public API + driver/ split | Ryan Sepassi | 23 | +1392 | -795 |
| 2026-05-08 01:34 | rt/Makefile | Ryan Sepassi | 8 | +214 | -225 |
| 2026-05-08 00:52 | driver/pipeline.h,c | Ryan Sepassi | 19 | +945 | -101 |
| 2026-05-08 00:39 | Create rt/ dir | Ryan Sepassi | 61 | +0 | -0 |
| 2026-05-07 21:52 | DESIGN.md and interfaces | Ryan Sepassi | 34 | +3106 | -157 |
| 2026-05-07 21:10 | stdcoro asymmetric coro_t | Ryan Sepassi | 14 | +403 | -160 |
| 2026-05-07 20:47 | setjmp.h stdcoro.h | Ryan Sepassi | 14 | +1548 | -40 |
| 2026-05-07 20:14 | setjmp.h | Ryan Sepassi | 3 | +40 | -0 |
| 2026-05-07 18:32 | lib/ consolidation into fewer files and exhaustive build.sh via clang | Ryan Sepassi | 151 | +4042 | -5163 |
| 2026-05-07 18:15 | make compiler-rt templates re-includable; add build.sh | Ryan Sepassi | 59 | +1205 | -138 |
| 2026-05-07 17:29 | README | Ryan Sepassi | 1 | +25 | -0 |
| 2026-05-07 17:27 | compiler_rt | Ryan Sepassi | 155 | +7597 | -0 |
| 2026-05-07 16:22 | assert.h, stdatomic.h | Ryan Sepassi | 5 | +387 | -100 |
| 2026-05-07 16:05 | cfree assumptions | Ryan Sepassi | 5 | +227 | -242 |
| 2026-05-07 15:49 | cfree freestanding headers | Ryan Sepassi | 11 | +596 | -0 |
| 2026-06-06 12:17 | docs: plan llgen import | Ryan Sepassi | 2 | +390 | -0 |
| 2026-06-06 11:53 | Fix nested panic recovery | Ryan Sepassi | 12 | +178 | -78 |
| 2026-06-06 11:41 | Fix -no-pie overriding explicit PIE | Ryan Sepassi | 6 | +49 | -11 |
| 2026-06-06 11:33 | Keep volatile locals memory resident | Ryan Sepassi | 4 | +12 | -31 |
| 2026-06-06 11:15 | Fix hard-pinned native inline asm staging | Ryan Sepassi | 7 | +248 | -65 |
| 2026-06-06 10:52 | Fix C inline asm output type stack | Ryan Sepassi | 2 | +3 | -22 |
| 2026-06-06 10:34 | Support arch inline asm machine constraints | Ryan Sepassi | 21 | +692 | -210 |
| 2026-06-06 05:20 | Implement raw syscall intrinsic lowering | Ryan Sepassi | 26 | +192 | -66 |
| 2026-06-06 04:34 | Fix O1 label-address block liveness | Ryan Sepassi | 5 | +104 | -47 |
| 2026-06-06 04:12 | Fix tail sret forwarding | Ryan Sepassi | 5 | +78 | -13 |
| 2026-06-06 04:01 | Teach ld -lc to use hosted libc | Ryan Sepassi | 6 | +423 | -101 |
| 2026-06-06 04:00 | Fix aarch64 COFF weak-null ADRP relocation | Ryan Sepassi | 5 | +52 | -18 |
| 2026-06-06 02:39 | Add freestanding runtime ctype | Ryan Sepassi | 6 | +182 | -10 |
| 2026-06-06 02:26 | Fix rv64 toy TLS cross startup | Ryan Sepassi | 2 | +27 | -8 |
| 2026-06-06 02:04 | Partition the relocation byte-patcher per-arch (RELOC WS-C) | Ryan Sepassi | 15 | +809 | -437 |
| 2026-06-05 23:31 | Implement per-arch RelocDesc table + residual gates (RELOC WS-B, WS-E.2/E.3) | Ryan Sepassi | 24 | +805 | -337 |
| 2026-06-05 23:30 | Defer O1 local static data symbols | Ryan Sepassi | 8 | +196 | -42 |
| 2026-06-05 22:10 | Add stack backtrace sources to driver rt manifest | Ryan Sepassi | 1 | +8 | -3 |
| 2026-06-05 22:03 | doc/plan: rescope RELOC.md after the modularity waves landed | Ryan Sepassi | 2 | +231 | -260 |
| 2026-06-05 21:45 | Implement tool-side auto-backtrace for run & dbg (BACKTRACE L3c/WS5) | Ryan Sepassi | 14 | +573 | -25 |
| 2026-06-05 16:49 | Implement kit symbolize (BACKTRACE L3a/WS5) | Ryan Sepassi | 12 | +466 | -83 |
| 2026-06-05 16:26 | Implement __kit_print_backtrace & assert hook (BACKTRACE L3a/WS4) | Ryan Sepassi | 12 | +682 | -40 |
| 2026-06-05 15:38 | Implement stack-trace builtins & __kit_backtrace (BACKTRACE L1+L2) | Ryan Sepassi | 41 | +708 | -61 |
| 2026-06-05 21:47 | modularity: gate COFF weak-extern underscore alias on a vtable capability + fix stale objdump golden | Ryan Sepassi | 6 | +19 | -2 |
| 2026-06-05 18:51 | modularity wave 4: compiler-free language resolution + obj-owned fmt names + jit TLS hook | Ryan Sepassi | 12 | +286 | -154 |
| 2026-06-05 18:13 | modularity wave 3: route frontend/driver/backend consumers through hooks | Ryan Sepassi | 17 | +516 | -318 |
| 2026-06-05 17:51 | modularity wave 2: route obj/link/cg/api/asm/dwarf through capability hooks | Ryan Sepassi | 18 | +348 | -292 |
| 2026-06-05 17:29 | modularity wave 1: add pluggable-axis capability hooks (additive infra) | Ryan Sepassi | 25 | +1305 | -30 |
| 2026-06-05 17:06 | modularity #9: move wasm_imports to src/obj, drop cg cross-boundary leak | Ryan Sepassi | 6 | +131 | -133 |
| 2026-06-05 16:35 | Generalize VM execution into the shared exec seam + a hosted test suite | Ryan Sepassi | 14 | +904 | -322 |
| 2026-06-05 14:54 | test-toy: run the Toy corpus hosted in the FreeBSD/Windows VMs | Ryan Sepassi | 6 | +540 | -4 |
| 2026-06-05 13:40 | doc/plan: add stack-trace builtins & runtime backtrace roadmap | Ryan Sepassi | 2 | +229 | -0 |
| 2026-06-04 21:01 | Implement whole-program optimization (LTO Phase 0 + Phase 1) | Ryan Sepassi | 61 | +3663 | -583 |
| 2026-06-05 04:51 | Fix Windows x64/arm64 variadic ABI at O0 and O1 | Ryan Sepassi | 17 | +732 | -58 |
| 2026-06-05 02:00 | Fix Windows PE x64 startup and callback ABI | Ryan Sepassi | 13 | +307 | -120 |
| 2026-06-05 00:12 | Add release runtime variants | Ryan Sepassi | 6 | +142 | -72 |
| 2026-06-04 23:41 | coff: emit PE exception directory metadata | Ryan Sepassi | 1 | +24 | -5 |
| 2026-06-04 23:41 | windows: add ARM64 VM runner for COFF smoke tests | Ryan Sepassi | 5 | +1253 | -102 |
| 2026-06-04 23:40 | test: add FreeBSD hosted link VM smoke | Ryan Sepassi | 5 | +387 | -4 |
| 2026-06-04 23:39 | link: emit FreeBSD PIE metadata for rtld | Ryan Sepassi | 2 | +106 | -37 |
| 2026-06-04 23:39 | link: fix FreeBSD hosted static executables | Ryan Sepassi | 4 | +277 | -98 |
| 2026-06-04 23:37 | elf: add hosted FreeBSD relocation primitives | Ryan Sepassi | 8 | +102 | -24 |
| 2026-06-04 20:57 | freebsd: VM execution harness for amd64/aarch64/rv64 | Ryan Sepassi | 2 | +855 | -0 |
| 2026-06-04 20:57 | freebsd: cross-compile target, runtime, and link support | Ryan Sepassi | 5 | +69 | -0 |
| 2026-06-04 18:36 | windows: provision llvm-mingw UCRT sysroots for kit-only cross-compile | Ryan Sepassi | 10 | +677 | -17 |
| 2026-06-04 17:49 | test: add freestanding qemu-system smoke | Ryan Sepassi | 5 | +485 | -30 |
| 2026-06-04 17:45 | aa64: support bitfield extension aliases | Ryan Sepassi | 10 | +189 | -12 |
| 2026-06-04 16:59 | Add initial release punchlist | Ryan Sepassi | 2 | +271 | -0 |
| 2026-06-04 15:43 | Drain driver TODO backlog | Ryan Sepassi | 10 | +607 | -719 |
| 2026-06-04 15:18 | driver: add build-exe/build-lib/build-obj, retire compile | Ryan Sepassi | 17 | +2917 | -738 |
| 2026-06-04 13:56 | doc/plan: add LTO / whole-program optimization plan | Ryan Sepassi | 1 | +369 | -0 |
| 2026-06-04 13:49 | doc/plan: design for build-exe/build-lib/build-obj (replacing compile) | Ryan Sepassi | 2 | +293 | -0 |
| 2026-06-04 09:24 | wasm: tighten shared-memory max to min pages so atomics modules load | Ryan Sepassi | 1 | +8 | -8 |
| 2026-06-04 08:58 | cg/asm: reject 64-bit values in register asm constraints on 32-bit targets | Ryan Sepassi | 11 | +58 | -19 |
| 2026-06-04 08:39 | rv32 parse: resolve LP64-assumption corpus failures | Ryan Sepassi | 4 | +27 | -9 |
| 2026-06-04 05:15 | test/rv32: drop clang gate from bare-metal toy/parse lanes | Ryan Sepassi | 3 | +8 | -4 |
| 2026-06-04 05:01 | rv32 lowering fixes | Ryan Sepassi | 3 | +107 | -22 |
| 2026-06-04 05:01 | toy: pointer-width isize/usize, int widening | Ryan Sepassi | 20 | +415 | -147 |
| 2026-06-04 04:27 | Test ABI split-lane scalar query | Ryan Sepassi | 1 | +64 | -3 |
| 2026-06-04 04:22 | rv32: use ABI split-lane scalar metadata | Ryan Sepassi | 19 | +238 | -119 |
| 2026-06-04 03:55 | Fix rv32 toy target arch and wide intrinsics | Ryan Sepassi | 5 | +17 | -2 |
| 2026-06-04 03:37 | rv32: fix 8-byte variadic high-word drop, O1 label-addr width, long double, atomics | Ryan Sepassi | 18 | +137 | -25 |
| 2026-06-04 02:37 | rv32: close most remaining cross-target reds (atomics, overflow, soft-fp, TLS, __int128, CSR, asm goldens) | Ryan Sepassi | 85 | +1157 | -40 |
| 2026-06-04 00:25 | rv32: auto-build and auto-link the freestanding runtime like any target | Ryan Sepassi | 6 | +171 | -42 |
| 2026-06-04 00:02 | rv32: bring up and complete riscv32-none-elf cross target | Ryan Sepassi | 93 | +14450 | -10399 |
| 2026-06-04 03:38 | Fix Apple ARM64 variadic stack slots | Ryan Sepassi | 5 | +106 | -24 |
| 2026-06-04 03:28 | Implement wasm sandbox host shim | Ryan Sepassi | 15 | +2457 | -343 |
| 2026-06-04 02:18 | Harden wasm runtime import handling | Ryan Sepassi | 33 | +1467 | -252 |
| 2026-06-03 23:00 | aa64 asm: parse logical-immediate and lsl/lsr/asr aliases | Ryan Sepassi | 5 | +105 | -4 |
| 2026-06-03 22:24 | make: add rt to default target | Ryan Sepassi | 1 | +1 | -1 |
| 2026-06-03 22:04 | doc: regenerate CODE_SIZE.md after the economy refactor | Ryan Sepassi | 1 | +78 | -78 |
| 2026-06-03 21:53 | Exercise toy cross TLS startup with kit | Ryan Sepassi | 2 | +93 | -5 |
| 2026-06-03 21:53 | Add AA64 system register asm support | Ryan Sepassi | 4 | +247 | -0 |
| 2026-06-03 21:53 | Support explicit register asm operands | Ryan Sepassi | 38 | +1063 | -244 |
| 2026-06-03 19:12 | cg: restore out-of-range fallback in intrinsic table accessors | Ryan Sepassi | 1 | +14 | -4 |
| 2026-06-03 18:46 | plan: RV32 | Ryan Sepassi | 1 | +385 | -0 |
| 2026-06-03 18:34 | test/coff: fix stale ARM64EC test to use KitTargetSpec (feature-model API) | Ryan Sepassi | 1 | +1 | -1 |
| 2026-06-03 18:26 | cc: drop chatty "ignoring accepted compatibility flag" log | Ryan Sepassi | 2 | +6 | -29 |
| 2026-06-03 18:18 | obj/link: single-source no-location as SRCLOC_NONE; drop 22 no_loc() copies | Ryan Sepassi | 23 | +402 | -513 |
| 2026-06-03 17:45 | link: single-source synthetic-region builder + ObjSym classification | Ryan Sepassi | 6 | +290 | -594 |
| 2026-06-03 17:36 | emu/interp: drop dead cpu_state cluster, size-param load/store, de-global interp fault latch | Ryan Sepassi | 8 | +94 | -150 |
| 2026-06-03 17:30 | econ(obj-api-tables): table-drive COFF machine set; drop source.c temps | Ryan Sepassi | 3 | +61 | -68 |
| 2026-06-03 17:30 | toy: table-drive dot-const parsers, flag loops, mem-xfer scaffolding | Ryan Sepassi | 6 | +270 | -356 |
| 2026-06-03 17:30 | cpp: delete dead literal table; collapse #if binops into precedence loop | Ryan Sepassi | 8 | +193 | -168 |
| 2026-06-03 17:30 | lang/c: collapse per-TypeKind switches into one property table | Ryan Sepassi | 5 | +81 | -127 |
| 2026-06-03 17:31 | obj: single-source ELF sym tables + writer LE helpers | Ryan Sepassi | 7 | +161 | -215 |
| 2026-06-03 17:35 | debug: unify DWARF form decoders behind a section-parameterized reader | Ryan Sepassi | 5 | +55 | -140 |
| 2026-06-03 17:33 | cg/opt: single-source width-aware integer constant-fold semantics | Ryan Sepassi | 6 | +294 | -343 |
| 2026-06-03 17:45 | econ(native-shared): share inline-asm constraint + abi-clobber helpers | Ryan Sepassi | 5 | +107 | -128 |
| 2026-06-03 17:39 | econ(native-shared): share file_scope_asm + finalize in cg/native_asm | Ryan Sepassi | 5 | +48 | -34 |
| 2026-06-03 17:37 | econ(native-shared): hoist NativeLoc + scalar helpers into native_target.h | Ryan Sepassi | 5 | +340 | -397 |
| 2026-06-03 17:44 | wasm: collapse five parallel instruction switches into one WASM_INSN table | Ryan Sepassi | 6 | +495 | -1582 |
| 2026-06-03 17:21 | cg: collapse four parallel KitCgIntrinsic switches into one descriptor table | Ryan Sepassi | 2 | +72 | -187 |
| 2026-06-03 17:25 | dist: delete dead legacy kpkg v2 package-format surface | Ryan Sepassi | 2 | +0 | -395 |
| 2026-06-03 18:13 | Introduce target feature model | Ryan Sepassi | 100 | +1801 | -368 |
| 2026-06-03 18:11 | mk: move test mk files to mk/ | Ryan Sepassi | 8 | +1046 | -1042 |
| 2026-06-03 16:09 | build: give libkit.a members unique, path-flattened names | Ryan Sepassi | 3 | +70 | -33 |
| 2026-06-03 15:36 | doc: add binary code-size section from release linker map | Ryan Sepassi | 4 | +325 | -5 |
| 2026-06-03 15:29 | doc: add CODE_SIZE.md with per-component cloc counts + regen script | Ryan Sepassi | 4 | +286 | -1 |
| 2026-06-03 14:45 | build: split Makefile into mk/ includes; fold rt build into Makefile | Ryan Sepassi | 9 | +878 | -864 |
| 2026-06-03 03:11 | driver: add generic `compile` front door; frontends own their flags | Ryan Sepassi | 23 | +1086 | -114 |
| 2026-06-03 00:39 | driver: add standard-named aliases for hash and compress | Ryan Sepassi | 9 | +245 | -35 |
| 2026-06-02 23:49 | driver: add install command for drop-in toolchain symlinks | Ryan Sepassi | 14 | +695 | -31 |
| 2026-06-02 23:45 | make format: format git diff files by default | Ryan Sepassi | 1 | +15 | -1 |
| 2026-06-02 23:23 | driver: auto-resolve hosted sysroot when targeting the host | Ryan Sepassi | 14 | +849 | -232 |
| 2026-06-02 23:14 | cg+aa64: use immediate operand forms for shifts/and/cmp at -O0 | Ryan Sepassi | 6 | +273 | -77 |
| 2026-06-02 22:38 | cg/fold: strength-reduce mul/udiv/urem by powers of two at -O0 | Ryan Sepassi | 6 | +320 | -2 |
| 2026-06-02 22:18 | driver run: shebang support | Ryan Sepassi | 7 | +133 | -0 |
| 2026-06-02 21:57 | plan: kit build v2 | Ryan Sepassi | 1 | +450 | -230 |
| 2026-06-02 21:55 | rename: cfree -> kit | Ryan Sepassi | 886 | +38173 | -37732 |
| 2026-06-02 20:50 | plan: build system plan v1 | Ryan Sepassi | 2 | +442 | -0 |
| 2026-06-02 19:20 | rt: mark the remaining libc symbols weak | Ryan Sepassi | 15 | +65 | -30 |
| 2026-06-02 19:07 | compress: add standalone gzip + LZ4-frame compress tool | Ryan Sepassi | 20 | +7542 | -9 |
| 2026-06-02 18:25 | dist: ship libcfree + headers; keep on-demand rt out of install tree | Ryan Sepassi | 3 | +51 | -21 |
| 2026-06-02 18:18 | doc: document the new xxd/cmp/hash/disas/mc tools | Ryan Sepassi | 1 | +7 | -2 |
| 2026-06-02 18:17 | test: cover the new byte-utility tools + hash API | Ryan Sepassi | 4 | +181 | -2 |
| 2026-06-02 18:12 | driver: add mc tool (assemble an instruction, show its encoding) | Ryan Sepassi | 5 | +307 | -0 |
| 2026-06-02 18:09 | driver: add disas tool (disassemble raw machine-code bytes) | Ryan Sepassi | 5 | +282 | -0 |
| 2026-06-02 18:06 | hash: add public cfree/hash.h API + driver hash tool | Ryan Sepassi | 10 | +408 | -19 |
| 2026-06-02 18:05 | driver: add cmp tool (byte-by-byte file comparison) | Ryan Sepassi | 5 | +287 | -0 |
| 2026-06-02 18:02 | driver: add xxd tool (raw hex dump with reverse/plain/include modes) | Ryan Sepassi | 5 | +485 | -0 |
| 2026-06-02 16:32 | test: split test-bootstrap-toy into -debug/-release sub-targets | Ryan Sepassi | 1 | +10 | -1 |
| 2026-06-02 15:33 | cg: make CmpOp FP-compare-lossless and reach all 12 FP predicates from frontends | Ryan Sepassi | 34 | +1290 | -185 |
| 2026-06-02 15:25 | test: rename bootstrap-test-toy -> test-bootstrap-toy, add to default test targets | Ryan Sepassi | 5 | +12 | -8 |
| 2026-06-02 15:16 | cg: remove bitfield_load/store from CgTarget; impls translate (Track 3b follow-up) | Ryan Sepassi | 7 | +90 | -49 |
| 2026-06-02 14:54 | cg: drop the C frontend's stale duplicate INTRIN_BSWAP16/32/64 (Track 4a follow-up) | Ryan Sepassi | 1 | +0 | -3 |
| 2026-06-02 14:40 | cg: fix i128 -O1 null-deref — flow wide16 int constants as VALUEs (Track 7.3 follow-up) | Ryan Sepassi | 2 | +15 | -12 |
| 2026-06-02 13:34 | plan: flag i128_06 -O1 regression on this branch (blocks merge) | Ryan Sepassi | 1 | +12 | -0 |
| 2026-06-02 13:16 | plan: record CODEGEN tracks landed/attempted on codegen-tracks-7634 | Ryan Sepassi | 1 | +121 | -125 |
| 2026-06-02 13:13 | cg: supports_intrinsic query + diagnostic + CPU intrinsics (Track 4c) | Ryan Sepassi | 42 | +543 | -63 |
| 2026-06-02 12:36 | cg: make unreachable a first-class terminator hook + IR op (Track 4b) | Ryan Sepassi | 28 | +95 | -34 |
| 2026-06-02 12:07 | cg: collapse INTRIN_BSWAP16/32/64 into one width-by-type BSWAP (Track 4a) | Ryan Sepassi | 9 | +139 | -114 |
| 2026-06-02 11:47 | cg: bitfield as a PLACE subkind, drop the MemAccess bitfield rider (Track 3b) | Ryan Sepassi | 6 | +135 | -57 |
| 2026-06-02 11:09 | cg: re-enable SV_ARITH delayed-arith -O0 peephole (Track 6.3) | Ryan Sepassi | 3 | +21 | -18 |
| 2026-06-02 10:54 | cg: flow i128/f128 as VALUEs, collapse wide16 special paths (Track 7.3) | Ryan Sepassi | 2 | +19 | -100 |
| 2026-06-02 10:51 | plan: fp cg fix | Ryan Sepassi | 1 | +182 | -0 |
| 2026-06-02 10:32 | cg: explicit PLACE predicate + forbid aggregate VALUEs (Track 7.1/7.2) | Ryan Sepassi | 3 | +27 | -16 |
| 2026-06-02 09:49 | cg: strict PLACE/VALUE addressing, remove the load/store EA rider (Track 7) | Ryan Sepassi | 16 | +1104 | -1415 |
| 2026-06-02 03:04 | plan: record Track 6.2 (fold.{c,h} extraction) as landed | Ryan Sepassi | 1 | +18 | -14 |
| 2026-06-02 03:03 | cg: isolate the -O0 semantic peephole into fold.{c,h} (Track 6.2) | Ryan Sepassi | 5 | +774 | -679 |
| 2026-06-02 02:44 | plan: rework CODEGEN.md to record landed tracks + focus on what remains | Ryan Sepassi | 1 | +268 | -390 |
| 2026-06-02 02:41 | test: add bootstrap to make test | Ryan Sepassi | 1 | +2 | -1 |
| 2026-06-02 02:29 | cg: consume public CfreeCgAtomicOp/CfreeCgMemOrder directly (Track 2, atomics slice) | Ryan Sepassi | 22 | +187 | -241 |
| 2026-06-02 02:16 | cg: consume the public CfreeCgAsmDir directly (Track 2, asm-dir slice) | Ryan Sepassi | 7 | +9 | -23 |
| 2026-06-02 02:12 | cg: remove the FP_REM façade (Track 4, decision #3) | Ryan Sepassi | 4 | +3 | -13 |
| 2026-06-02 02:00 | cg: drop advertise-but-ignore MemAccess fields (Track 3a, decision #5) | Ryan Sepassi | 4 | +3 | -26 |
| 2026-06-02 01:29 | cg: expose multi-result functions in the public API (Track 5) | Ryan Sepassi | 33 | +402 | -165 |
| 2026-06-02 01:25 | cg/ir: specify IR to remove all undefined behavior; lock interpreter to it | Ryan Sepassi | 6 | +825 | -36 |
| 2026-06-02 01:05 | scripts: fail loudly on unmapped sources in gen_compile_commands | Ryan Sepassi | 1 | +18 | -1 |
| 2026-06-02 00:52 | cg: remove dead SCOPE_IF/scope_else surface and CFREE_CG_TAIL_NEVER (Track 1a/1d) | Ryan Sepassi | 31 | +26 | -214 |
| 2026-06-02 00:44 | test: fix asm corpus all-n/a and make test-asm a multi-arch aggregate | Ryan Sepassi | 3 | +31 | -20 |
| 2026-06-02 00:33 | plan: sketch RQL RSN | Ryan Sepassi | 2 | +1554 | -0 |
| 2026-06-02 00:33 | plan: codegen update | Ryan Sepassi | 1 | +459 | -0 |
| 2026-06-02 00:33 | test: expand default targets | Ryan Sepassi | 1 | +5 | -1 |
| 2026-06-02 00:22 | link: treat DSO exports as defined so archives don't shadow shared libs | Ryan Sepassi | 1 | +12 | -0 |
| 2026-06-02 00:15 | arch/c_target: re-emit file-scope asm verbatim | Ryan Sepassi | 4 | +48 | -0 |
| 2026-06-02 00:15 | arch/c_target: lower 128-bit runtime-helper calls to native __int128 | Ryan Sepassi | 1 | +130 | -0 |
| 2026-06-02 00:14 | rt: mark stdlib libc functions weak so host definitions can override | Ryan Sepassi | 1 | +22 | -13 |
| 2026-06-02 00:14 | test: use an unknown clobber_abi name in the error case | Ryan Sepassi | 1 | +1 | -1 |
| 2026-06-02 00:14 | test: allowlist libc deps pulled in by the in-lib dist subsystem | Ryan Sepassi | 1 | +4 | -0 |
| 2026-06-02 00:14 | test: build each arch's linux rt archive for test-rt-runtime | Ryan Sepassi | 1 | +29 | -17 |
| 2026-06-02 00:14 | test: accept aa64 as an alias for aarch64 in exec/image helpers | Ryan Sepassi | 2 | +23 | -20 |
| 2026-06-02 00:14 | test: scope CF_WORK per target tuple to fix parallel-dispatch races | Ryan Sepassi | 1 | +8 | -2 |
| 2026-06-02 00:14 | test: set cf_workdir's EXIT trap in the caller's shell | Ryan Sepassi | 7 | +15 | -12 |
| 2026-06-02 00:14 | api/asm_emit: symbolize PC-relative local branches at section offset 0 | Ryan Sepassi | 1 | +37 | -2 |
| 2026-06-02 00:14 | arch/wasm: load frame-resident pointer locals in indirect addressing | Ryan Sepassi | 2 | +65 | -4 |
| 2026-06-01 22:02 | dist: fix review findings in the package layer | Ryan Sepassi | 2 | +44 | -22 |
| 2026-06-01 21:57 | test: standardize all harnesses onto canonical types (U/C/K/D) | Ryan Sepassi | 76 | +6510 | -7392 |
| 2026-06-01 21:43 | arch: fix -O1 inline-asm callee-saved clobber frame panic; add FP constraints + clobber_abi | Ryan Sepassi | 19 | +318 | -53 |
| 2026-06-01 21:30 | dist: move CAS + signed-package subsystem into libcfree | Ryan Sepassi | 53 | +3355 | -2235 |
| 2026-06-01 20:36 | frontends: eliminate the C->src/abi phantom edge, tighten wasm to one boundary | Ryan Sepassi | 8 | +103 | -84 |
| 2026-06-01 20:24 | arch: known-frame prologue cost-model tiers for x64 and rv64 | Ryan Sepassi | 9 | +469 | -71 |
| 2026-06-01 20:04 | frontend: replace the cg_public_compat.h macro shim with direct pcg_* calls | Ryan Sepassi | 12 | +926 | -932 |
| 2026-06-01 19:25 | include: make frontend.h the single frontend front door | Ryan Sepassi | 10 | +34 | -24 |
| 2026-06-01 19:06 | frontend: C registers its extensions; drop the fallback-to-C | Ryan Sepassi | 5 | +36 | -13 |
| 2026-06-01 19:02 | core: unify slice helpers onto the public inline impls | Ryan Sepassi | 2 | +15 | -38 |
| 2026-06-01 18:27 | Rewrite docs | Ryan Sepassi | 73 | +8642 | -37691 |
| 2026-06-01 17:12 | test: link x64-dbg test against LIB_OBJS, not the archive | Ryan Sepassi | 1 | +5 | -2 |
| 2026-06-01 17:10 | rt: depend archive on rt/Makefile so a grown member list regenerates it | Ryan Sepassi | 1 | +8 | -1 |
| 2026-06-01 16:47 | driver/ reorganize into cmd/ lib/ subdirs | Ryan Sepassi | 48 | +74 | -66 |
| 2026-06-01 16:36 | make: cut Makefile-load overhead from ~507 to ~25 child processes | Ryan Sepassi | 2 | +32 | -70 |
| 2026-06-01 16:20 | rm stray obj file | Ryan Sepassi | 1 | +0 | -90 |
| 2026-05-31 09:00 | cg: reference code locations via per-block local symbols, not fixed offsets | Ryan Sepassi | 13 | +163 | -350 |
| 2026-05-31 06:00 | asm+test: full Toy cc -S → cfree/clang as exec parity across aa64/x64/rv64 | Ryan Sepassi | 9 | +363 | -85 |
| 2026-05-31 04:39 | rv64: emit explicit fcvt rounding mode in cc -S so clang re-encodes it exactly | Ryan Sepassi | 4 | +74 | -35 |
| 2026-05-31 04:30 | rv64: emit canonical `addi rd,rs,%pcrel_lo` (not 3-operand `mv`) — clang-standard | Ryan Sepassi | 2 | +23 | -8 |
| 2026-05-31 04:04 | x64+rv64: complete the cc -S round-trip symbolizer (cross-exec 312/312 each) | Ryan Sepassi | 13 | +635 | -124 |
| 2026-05-31 01:25 | doc: file-based incremental linking design (obj+link internals) | Ryan Sepassi | 1 | +281 | -99 |
| 2026-05-31 00:46 | test+doc: correct rv64 hostas-cross root cause (cc -S infidelity, not emulation) | Ryan Sepassi | 3 | +632 | -16 |
| 2026-05-31 00:40 | test+asm: hostas-cross gating default = aarch64-linux; x64/rv64 documented opt-in | Ryan Sepassi | 1 | +17 | -8 |
| 2026-05-31 00:37 | x64: cc -S symbolizer + disasm/as fidelity fixes (cross-assemble green) | Ryan Sepassi | 8 | +190 | -34 |
| 2026-05-30 23:54 | test+asm: cross-compile + cross-exec host-assembler lane (test-hostas-cross) | Ryan Sepassi | 3 | +343 | -8 |
| 2026-05-30 23:16 | asm: object-format-aware cc -S; aa64 Mach-O is clang-acceptable (test-hostas-toy gates) | Ryan Sepassi | 11 | +641 | -143 |
| 2026-05-30 20:16 | test+asm: host-assembler execution lane over the Toy corpus (test-hostas-toy) | Ryan Sepassi | 3 | +216 | -0 |
| 2026-05-30 18:08 | asm: round-trip SEC_OTHER named sections; toy /ld exec lane | Ryan Sepassi | 6 | +175 | -40 |
| 2026-05-30 02:17 | emu: add interpreter execution mode (cfree emu -interp) | Ryan Sepassi | 12 | +1252 | -268 |
| 2026-05-29 22:29 | C front end: implement labels-as-values (computed goto) | Ryan Sepassi | 30 | +326 | -29 |
| 2026-05-29 17:48 | Add threaded-bytecode interpreter for the opt IR (cfree run --no-jit) | Ryan Sepassi | 25 | +4033 | -50 |
| 2026-05-30 02:07 | Fix O1 bootstrap scratch register hazards | Ryan Sepassi | 3 | +160 | -185 |
| 2026-05-29 23:47 | O1: deref through a frame-resident pointer local | Ryan Sepassi | 8 | +308 | -80 |
| 2026-05-29 21:13 | doc: record 3-stage bootstrap state and the open -O1 cc.c param-bind miscompile | Ryan Sepassi | 1 | +157 | -0 |
| 2026-05-29 20:48 | O1 aa64: fix two regalloc interference bugs + add third int scratch reg | Ryan Sepassi | 3 | +34 | -9 |
| 2026-05-29 19:53 | type_qualified: intern via assignment so memcmp is padding-stable | Ryan Sepassi | 1 | +18 | -9 |
| 2026-05-29 19:38 | Auto-link cfree runtime from ld | Ryan Sepassi | 6 | +259 | -91 |
| 2026-05-29 18:32 | Fix three aa64/-O0 codegen & linkage bugs | Ryan Sepassi | 8 | +75 | -25 |
| 2026-05-30 14:05 | asm: close 9/10 toy round-trip skips (&&label, .comm, macho addend) | Ryan Sepassi | 4 | +84 | -30 |
| 2026-05-30 13:46 | test+asm: Toy-corpus L2 round-trip lane; fix .inst-dropped miscompile | Ryan Sepassi | 5 | +153 | -2 |
| 2026-05-30 06:17 | test: llvm differential cross-check (cfree as/disasm vs llvm-mc) | Ryan Sepassi | 3 | +155 | -3 |
| 2026-05-30 06:07 | asm: emit .bss as NOBITS (close the last round-trip skip) | Ryan Sepassi | 4 | +37 | -18 |
| 2026-05-30 05:57 | test+aa64: asm<->disasm self-symmetry sweep (decode<->encode) | Ryan Sepassi | 8 | +306 | -0 |
| 2026-05-30 03:23 | doc+build: round-trip covers the full core op set; wire L0+L1 into default test | Ryan Sepassi | 2 | +64 | -20 |
| 2026-05-30 03:20 | aa64: decode load/store exclusive + acquire/release atomics | Ryan Sepassi | 11 | +105 | -0 |
| 2026-05-30 03:02 | test: expand round-trip corpus to the full core op set | Ryan Sepassi | 267 | +1857 | -0 |
| 2026-05-30 03:01 | asm: FP/SIMD scalar load/store + dot-mangled symbol names | Ryan Sepassi | 5 | +118 | -22 |
| 2026-05-30 02:33 | asm: symbolize data-section relocations in cc -S (jump tables) | Ryan Sepassi | 4 | +118 | -14 |
| 2026-05-30 02:28 | asm: round-trip .L local symbols + complete the unscaled ld/st family | Ryan Sepassi | 7 | +106 | -16 |
| 2026-05-30 02:20 | asm: relax same-section local branches at finalize (round-trip P2) | Ryan Sepassi | 2 | +65 | -9 |
| 2026-05-30 01:24 | asm: implement aa64 codegen round-trip testing (L0/L1/L2) + symbolize -S | Ryan Sepassi | 20 | +815 | -10 |
| 2026-05-30 00:03 | doc: plan for asm/disasm completeness via codegen round-trip testing | Ryan Sepassi | 1 | +205 | -0 |
| 2026-05-29 23:00 | asm: fix 5 issues found by adversarial review of the session diff | Ryan Sepassi | 8 | +58 | -8 |
| 2026-05-29 22:15 | toy: make the REPL frontend compile transactional | Ryan Sepassi | 35 | +1030 | -250 |
| 2026-05-29 21:27 | build: generate compile_commands.json for clangd | Ryan Sepassi | 2 | +126 | -0 |
| 2026-05-29 21:07 | Improve dbg REPL listing and stop messages | Ryan Sepassi | 14 | +343 | -60 |
| 2026-05-29 22:42 | doc: mark native-arch asm/link completeness items done | Ryan Sepassi | 1 | +60 | -34 |
| 2026-05-29 22:39 | x64 asm: parse sym(%rip), @PLT, @GOTPCREL relocation-operator operands | Ryan Sepassi | 4 | +93 | -26 |
| 2026-05-29 22:33 | aa64 asm: parse :lo12:/:got:/:got_lo12: relocation-operator operands | Ryan Sepassi | 4 | +123 | -3 |
| 2026-05-29 22:30 | rv64 asm: parse %hi/%lo/%pcrel_hi/%pcrel_lo relocation-operator operands | Ryan Sepassi | 4 | +125 | -1 |
| 2026-05-29 22:23 | aa64 asm: encode ldst addressing modes, atomics/exclusive/LSE, mov ORR-bitmask | Ryan Sepassi | 23 | +858 | -8 |
| 2026-05-29 22:15 | aa64 disasm: decode signed sub-word loads (ldrsb/ldrsh/ldrsw) | Ryan Sepassi | 4 | +39 | -3 |
| 2026-05-29 22:15 | rv64 asm: encode call/tail/la/lla pseudos and multi-word li | Ryan Sepassi | 12 | +210 | -8 |
| 2026-05-29 22:15 | rv64 link: apply R_RISCV_SET_ULEB128/SUB_ULEB128 (DWARF diff relocs) | Ryan Sepassi | 4 | +281 | -0 |
| 2026-05-29 22:15 | x64 asm: encode SIB index/scale, bare (%rip), and ALU/MOV memory-store forms | Ryan Sepassi | 14 | +228 | -18 |
| 2026-05-29 21:34 | doc: reconcile completeness checkboxes with committed work | Ryan Sepassi | 1 | +16 | -14 |
| 2026-05-29 21:29 | test/objdump: refresh aarch64 golden for sbfm decode; honor SKIP cases | Ryan Sepassi | 2 | +15 | -3 |
| 2026-05-29 21:26 | doc: record aa64 asm-encode progress (FP/bitfield/DP1/sub-word ldst done) | Ryan Sepassi | 1 | +27 | -17 |
| 2026-05-29 21:24 | aa64 asm: encode byte/half and signed sub-word loads/stores | Ryan Sepassi | 4 | +48 | -3 |
| 2026-05-29 21:22 | aa64 asm: encode bitfield (sbfm/ubfm/bfm) and DP1 (clz/rbit/rev/rev16) | Ryan Sepassi | 5 | +84 | -0 |
| 2026-05-29 21:20 | aa64 asm: encode scalar floating-point instructions | Ryan Sepassi | 5 | +235 | -0 |
| 2026-05-29 21:15 | test/driver: assert rt auto-build via linked symbols, not the cache path | Ryan Sepassi | 1 | +13 | -6 |
| 2026-05-29 21:05 | doc: update native-arch completeness — Tier 0-1 done, most Tier 2-4 done | Ryan Sepassi | 1 | +38 | -16 |
| 2026-05-29 21:04 | mc: make the CFI prologue-PC override sticky until cfi_endproc | Ryan Sepassi | 1 | +12 | -5 |
| 2026-05-29 21:02 | test: add opt-in test-link-x64 for x64 ELF reloc application | Ryan Sepassi | 1 | +9 | -0 |
| 2026-05-29 21:01 | asm: implement .comm/.lcomm and .uleb128/.sleb128 (were silently skipped) | Ryan Sepassi | 4 | +73 | -3 |
| 2026-05-29 20:58 | rv64 link: route far calls through JIT call stubs | Ryan Sepassi | 1 | +12 | -0 |
| 2026-05-29 20:56 | test: run x64 and rv64 assembler+disassembler in the default suite | Ryan Sepassi | 2 | +16 | -2 |
| 2026-05-29 20:54 | rv64 asm: assemble symbolic branches and jumps via relocations | Ryan Sepassi | 4 | +38 | -8 |
| 2026-05-29 20:48 | aa64 disasm: decode FP, bitfield, DP1, and register-offset ldst | Ryan Sepassi | 5 | +232 | -0 |
| 2026-05-29 20:37 | doc: mark native-arch completeness progress (5 of Tier 0-2 done) | Ryan Sepassi | 1 | +17 | -19 |
| 2026-05-29 20:36 | x64/rv64: emit named parameters and locals in .debug_info | Ryan Sepassi | 2 | +34 | -2 |
| 2026-05-29 20:32 | x64 disasm: decode movd/movq (66 0F 6E/7E) and xorps/xorpd (0F 57) | Ryan Sepassi | 4 | +55 | -13 |
| 2026-05-29 20:27 | x64: map hardware GPR encoding to DWARF reg number in CFI | Ryan Sepassi | 6 | +75 | -12 |
| 2026-05-29 20:22 | rv64: emit TLS Local-Exec only, matching aa64/x64 | Ryan Sepassi | 3 | +63 | -29 |
| 2026-05-29 20:18 | aa64: emit Windows/COFF TLS Local-Exec access sequence | Ryan Sepassi | 2 | +148 | -0 |
| 2026-05-29 19:42 | test: add opt-in test-parse-rv64-wide target for rv64 128-bit scalars | Ryan Sepassi | 1 | +14 | -0 |
| 2026-05-29 19:32 | opt/x64: report the rdx:rax clobber of the unsigned multiply-overflow intrinsic | Ryan Sepassi | 2 | +17 | -0 |
| 2026-05-29 19:32 | opt: parameters mutually interfere at function entry | Ryan Sepassi | 1 | +9 | -1 |
| 2026-05-29 19:32 | cg: save the full value width when breaking an arg-shuffle cycle | Ryan Sepassi | 1 | +19 | -2 |
| 2026-05-29 19:32 | rv64: route conditional branches through a jal for ±1MiB reach | Ryan Sepassi | 2 | +36 | -13 |
| 2026-05-29 18:59 | x64: integer va_arg does offset arithmetic in its own dst register | Ryan Sepassi | 8 | +74 | -40 |
| 2026-05-29 18:47 | opt: make machine-clobber forbids survive the ABI register hints | Ryan Sepassi | 2 | +31 | -2 |
| 2026-05-29 18:22 | opt: teach the allocator about fixed-register machine-instruction clobbers | Ryan Sepassi | 5 | +162 | -3 |
| 2026-05-29 16:53 | cgpkg v3 CAS-based packages | Ryan Sepassi | 26 | +5020 | -594 |
| 2026-05-29 18:00 | doc: opt reg constraints plan | Ryan Sepassi | 1 | +180 | -0 |
| 2026-05-29 17:31 | x64 -O1: use only reserved emit scratch in va_arg/va_copy/copy_bytes | Ryan Sepassi | 1 | +87 | -56 |
| 2026-05-29 17:15 | CG runtime doc plan | Ryan Sepassi | 1 | +279 | -0 |
| 2026-05-29 16:50 | x64: make -O1 entry param-binds cycle-safe via the shared shuffle | Ryan Sepassi | 4 | +170 | -46 |
| 2026-05-29 16:40 | Share the parallel-copy arg-move scheduler; x64 NativeFrame + partial O1 | Ryan Sepassi | 5 | +290 | -294 |
| 2026-05-29 16:12 | rv64: adopt NativeFrame, implement -O1 known-frame path | Ryan Sepassi | 4 | +161 | -100 |
| 2026-05-29 16:10 | Fix O1 static data function pointer reachability | Ryan Sepassi | 1 | +95 | -22 |
| 2026-05-29 15:56 | Add shared NativeFrame module; migrate aa64 onto it | Ryan Sepassi | 4 | +339 | -126 |
| 2026-05-29 15:21 | rv64+x64: implement sibling (tail) calls | Ryan Sepassi | 2 | +193 | -26 |
| 2026-05-29 15:01 | x64: port to NativeTarget API (-O0) | Ryan Sepassi | 15 | +8618 | -4777 |
| 2026-05-29 11:55 | rv64: port to NativeTarget API (-O0 core) | Ryan Sepassi | 16 | +7684 | -4486 |
| 2026-05-29 05:15 | dbg: use standard step commands | Ryan Sepassi | 17 | +374 | -83 |
| 2026-05-29 05:14 | Add dbg line editing and completions | Ryan Sepassi | 6 | +730 | -5 |
| 2026-05-29 04:51 | test aa64 tail calls | Ryan Sepassi | 2 | +98 | -1 |
| 2026-05-29 04:30 | Emit Toy local debug info from CG | Ryan Sepassi | 10 | +135 | -14 |
| 2026-05-29 04:12 | dbg: add disasm, expand tests | Ryan Sepassi | 59 | +493 | -71 |
| 2026-05-29 03:33 | Prune unreachable static AArch64 O1 functions | Ryan Sepassi | 9 | +387 | -1 |
| 2026-05-29 03:26 | Advance Toy dbg REPL tests and TODOs | Ryan Sepassi | 22 | +358 | -109 |
| 2026-05-29 02:16 | Fix AArch64 O1 va_start save area offsets | Ryan Sepassi | 1 | +4 | -2 |
| 2026-05-29 02:12 | opt: reduce jump cleanup rescans | Ryan Sepassi | 1 | +11 | -6 |
| 2026-05-29 02:02 | doc: refresh OPT_O1_PERF_TODO standings (2026-05-28 sweep) | Ryan Sepassi | 1 | +42 | -34 |
| 2026-05-29 01:43 | Tighten package verification checks | Ryan Sepassi | 5 | +47 | -1 |
| 2026-05-29 01:32 | pkg: canonicalize artifact order | Ryan Sepassi | 3 | +472 | -47 |
| 2026-05-29 01:15 | pkg: vendor deps | Ryan Sepassi | 25 | +10085 | -216 |
| 2026-05-29 00:47 | Implement v2 package distribution | Ryan Sepassi | 15 | +1680 | -982 |
| 2026-05-28 21:20 | pkg: basic signed code distribution (cfree pkg) | Ryan Sepassi | 30 | +2866 | -19 |
| 2026-05-29 01:48 | opt/aa64: fold O1 prologue via fp-at-bottom frame layout | Ryan Sepassi | 5 | +309 | -157 |
| 2026-05-29 01:20 | opt: fold const convert-of-load_imm and thread branch targets through pass-through blocks" | Ryan Sepassi | 6 | +323 | -15 |
| 2026-05-29 00:23 | doc: add PERCALL.md detailing -O1 per-call overhead and the optimal | Ryan Sepassi | 1 | +127 | -0 |
| 2026-05-28 21:32 | doc: refresh binary-trees -O1 numbers after known-frame prologue | Ryan Sepassi | 1 | +3 | -2 |
| 2026-05-28 21:27 | opt/aa64: fix five O1 codegen bugs (i128/ldbl/variadic/asm) | Ryan Sepassi | 6 | +106 | -11 |
| 2026-05-28 20:49 | opt/aa64: plan the O1 call frame up front, drop all back-patching | Ryan Sepassi | 4 | +361 | -165 |
| 2026-05-28 20:18 | wasm: fix all 7 test/parse W-path failures | Ryan Sepassi | 12 | +226 | -80 |
| 2026-05-28 19:31 | wasm/structure: unroll nested switches to fix infinite-loop dispatch | Ryan Sepassi | 2 | +39 | -10 |
| 2026-05-28 19:02 | doc: refresh wasm test/parse W-path checklist | Ryan Sepassi | 1 | +26 | -31 |
| 2026-05-28 19:02 | wasm/obj: objdump container reader and WAT disassembler | Ryan Sepassi | 12 | +592 | -34 |
| 2026-05-28 19:02 | wasm: ir_emit lowerings for bitfields, aggregates, TLS, and conds | Ryan Sepassi | 2 | +179 | -34 |
| 2026-05-28 19:02 | wasm: opcode coverage and switch/atomic limits | Ryan Sepassi | 9 | +828 | -374 |
| 2026-05-27 23:02 | wasm: make long double binary128 and report it unsupported | Ryan Sepassi | 5 | +122 | -6 |
| 2026-05-28 20:01 | cg/ndt: O(cached) flush list, cached dispatch/class info, thin NativeOps | Ryan Sepassi | 2 | +136 | -59 |
| 2026-05-28 20:00 | opt/aa64: unify deferred in-function patches into one tagged-union list | Ryan Sepassi | 1 | +82 | -76 |
| 2026-05-28 18:46 | bench: cache fixed-compiler baseline; default opt_bench to cfree-only | Ryan Sepassi | 4 | +359 | -176 |
| 2026-05-28 18:02 | link/elf: fix PIE relocations for code-address data | Ryan Sepassi | 2 | +31 | -1 |
| 2026-05-28 17:38 | opt/aa64: resolve call-argument moves as a parallel copy | Ryan Sepassi | 3 | +166 | -13 |
| 2026-05-28 17:12 | opt+aa64: unify on AAPCS64 frame layout; hint params to incoming regs | Ryan Sepassi | 3 | +294 | -240 |
| 2026-05-28 16:34 | driver/env: add Windows host TU; extract env selection to mk/env.mk | Ryan Sepassi | 17 | +1921 | -228 |
| 2026-05-28 15:57 | driver/env: split into per-OS/arch TUs, drop ifdefs from impl | Ryan Sepassi | 20 | +2276 | -1853 |
| 2026-05-28 15:34 | opt: hint call-arg sources to ABI dest regs + propagate through copies | Ryan Sepassi | 2 | +111 | -1 |
| 2026-05-28 15:12 | opt: elide identity moves and the terminal IR_RET branch | Ryan Sepassi | 2 | +29 | -2 |
| 2026-05-28 13:39 | opt: O1 codegen batch — loop-imm hoist, ABI aliasing hints, slim prologue, IMUL strength-reduce, call copy-prop | Ryan Sepassi | 14 | +922 | -68 |
| 2026-05-28 05:38 | opt: O1 codegen wins + tiny-function inliner | Ryan Sepassi | 18 | +1660 | -596 |
| 2026-05-27 22:53 | core: add cfree_debug_getenv weak hook alongside cfree_debug_printf | Ryan Sepassi | 2 | +11 | -2 |
| 2026-05-27 22:35 | rm old opt tests | Ryan Sepassi | 4 | +0 | -7200 |
| 2026-05-27 23:09 | link/debug: retain DWARF in linked ELF/Mach-O images | Ryan Sepassi | 19 | +980 | -58 |
| 2026-05-27 22:27 | driver/link: default hosted targets to PIE; fix PE ASLR flags and static-PIE overflow | Ryan Sepassi | 7 | +47 | -11 |
| 2026-05-27 21:31 | opt: fix two O1 aa64 codegen-correctness bugs | Ryan Sepassi | 3 | +34 | -14 |
| 2026-05-27 20:36 | obj/objdump: extend image inspection — dynsym, rpath, stripped-segment disasm | Ryan Sepassi | 25 | +1093 | -67 |
| 2026-05-27 20:34 | cg: dump semantic CG IR via cc --emit=ir | Ryan Sepassi | 10 | +522 | -40 |
| 2026-05-27 19:50 | cg: clear diagnostic when target arch backend isn't built | Ryan Sepassi | 3 | +31 | -1 |
| 2026-05-27 19:44 | obj/objdump: add linked-image inspection (segments, dynamic info) | Ryan Sepassi | 10 | +1030 | -38 |
| 2026-05-27 19:38 | opt: emit param_decls into a dedicated prologue block | Ryan Sepassi | 1 | +18 | -1 |
| 2026-05-27 19:24 | aa64: pass/return long double (fp128) in full 128-bit q register | Ryan Sepassi | 2 | +14 | -8 |
| 2026-05-27 19:16 | test: depend on cross-target rt archive for JIT-path harnesses | Ryan Sepassi | 1 | +19 | -3 |
| 2026-05-27 18:57 | build: create support/rt symlink alongside bin target | Ryan Sepassi | 1 | +6 | -2 |
| 2026-05-27 18:50 | c/cg: emit FP add/sub for ++/-- on floating operands | Ryan Sepassi | 1 | +21 | -12 |
| 2026-05-27 18:38 | test/toy: rename opt-level env var to CFREE_OPT_LEVELS, default O0+O1 | Ryan Sepassi | 1 | +2 | -2 |
| 2026-05-27 18:38 | bench: replace FAST flag with per-tool skip flags; add compare script | Ryan Sepassi | 2 | +207 | -18 |
| 2026-05-27 18:38 | wasm: de-rotate for-loop CFG blocks before structurization | Ryan Sepassi | 1 | +108 | -0 |
| 2026-05-27 18:37 | opt: fold constant operands as immediates at O1; drop copy/return round-trips | Ryan Sepassi | 3 | +114 | -44 |
| 2026-05-27 18:29 | opt: implement Design B of NativeDirectTarget local register cache | Ryan Sepassi | 4 | +378 | -55 |
| 2026-05-27 18:20 | aa64: wire DWARF debug emission through the native_direct path | Ryan Sepassi | 5 | +40 | -2 |
| 2026-05-27 17:58 | driver: add strings tool and objdump --dwarf | Ryan Sepassi | 25 | +1648 | -6 |
| 2026-05-27 17:01 | opt: add write-back local register cache to NativeDirectTarget (Design A) | Ryan Sepassi | 3 | +398 | -40 |
| 2026-05-27 16:48 | driver: add dist target and move rt cache to DriverEnv | Ryan Sepassi | 5 | +51 | -67 |
| 2026-05-27 15:46 | doc: update O1 checklist — asm + direct-replay deletion + callee-saves + param-home done | Ryan Sepassi | 1 | +71 | -22 |
| 2026-05-27 15:09 | opt: route incoming params straight into their allocated register | Ryan Sepassi | 3 | +59 | -66 |
| 2026-05-27 13:37 | aa64: make callee-saved registers allocable at O1 | Ryan Sepassi | 3 | +166 | -16 |
| 2026-05-27 13:19 | opt: route inline asm through optimizer; delete direct-replay path | Ryan Sepassi | 3 | +185 | -438 |
| 2026-05-27 12:56 | doc: aggregate/sret ABI complete on optimizer path (7 asm cases remain) | Ryan Sepassi | 1 | +5 | -10 |
| 2026-05-27 12:56 | aa64: set sret x8 after argument loads in plan_call | Ryan Sepassi | 1 | +15 | -11 |
| 2026-05-27 12:50 | doc: update O1 recovery progress (aggregates mostly landed; tail-sret + asm remain) | Ryan Sepassi | 1 | +34 | -4 |
| 2026-05-27 12:49 | opt: handle aggregate-typed COPY/LOAD/STORE via byte copy | Ryan Sepassi | 1 | +37 | -0 |
| 2026-05-27 12:44 | opt: aggregate ABI lowering on optimizer path (partial) | Ryan Sepassi | 3 | +80 | -25 |
| 2026-05-27 12:33 | opt: route varargs through optimizer path; fix ADDR_OF spill writeback | Ryan Sepassi | 6 | +789 | -95 |
| 2026-05-27 01:10 | arch: split MCEmitter interface out of arch.h into mc.h | Ryan Sepassi | 19 | +178 | -156 |
| 2026-05-27 00:53 | wasm: route both emit backends through semantic IR recorder and shared opt pipeline | Ryan Sepassi | 2 | +298 | -109 |
| 2026-05-27 00:53 | aa64: convert native.c from CGTarget wrapper to NativeTarget implementation | Ryan Sepassi | 1 | +288 | -235 |
| 2026-05-27 00:53 | opt: rewrite pipeline to consume CgIrFunc input; replace pass_emit with NativeTarget | Ryan Sepassi | 13 | +3951 | -3843 |
| 2026-05-27 00:53 | cg: add i128 arithmetic via libcalls, wire supports_label_table through ir_recorder | Ryan Sepassi | 7 | +353 | -61 |
| 2026-05-27 00:53 | ir,opt,cg: define local-static-data IR ops, restructure opt pipeline boundary | Ryan Sepassi | 6 | +268 | -76 |
| 2026-05-27 00:51 | parse: fix _Bool conversion to emit compare-against-zero rather than truncate | Ryan Sepassi | 1 | +20 | -0 |
| 2026-05-27 00:50 | test: add C and W paths to default test-toy; add W path to parse runner | Ryan Sepassi | 3 | +93 | -9 |
| 2026-05-26 23:16 | arch: rm old regalloc.h/c | Ryan Sepassi | 4 | +6 | -204 |
| 2026-05-26 22:41 | build,test: add native-direct-target test, improve parse runner | Ryan Sepassi | 5 | +566 | -10 |
| 2026-05-26 22:41 | aa64: delete old CGTarget backend, switch to NativeDirectTarget | Ryan Sepassi | 10 | +3305 | -4842 |
| 2026-05-26 22:41 | wasm: convert target to semantic CG via IR recorder | Ryan Sepassi | 4 | +740 | -345 |
| 2026-05-26 22:41 | c target: emit aliases from IR module | Ryan Sepassi | 1 | +4 | -0 |
| 2026-05-26 22:41 | cg: add IR alias support, semantic label tables, switch hint, store relax | Ryan Sepassi | 7 | +105 | -16 |
| 2026-05-26 22:41 | arch,cg: introduce NativeTarget and NativeDirectTarget interfaces | Ryan Sepassi | 4 | +2050 | -16 |
| 2026-05-26 22:41 | abi: add va_list layout details per target | Ryan Sepassi | 10 | +76 | -0 |
| 2026-05-26 22:40 | rt: fix __fixtfsi overflow and auto-detect native runtime variant | Ryan Sepassi | 1 | +32 | -1 |
| 2026-05-26 22:33 | rt: auto-detect host-native runtime variant | Ryan Sepassi | 1 | +34 | -10 |
| 2026-05-26 19:02 | Add IR recorder C backend path | Ryan Sepassi | 14 | +5956 | -4187 |
| 2026-05-26 16:32 | Cut over Cg to semantic CgTarget | Ryan Sepassi | 28 | +2328 | -3689 |
| 2026-05-26 03:18 | Disable native backends for C target cutover | Ryan Sepassi | 7 | +74 | -28 |
| 2026-05-26 02:51 | bootstrap: avoid post-link strip on release binaries | Ryan Sepassi | 9 | +69 | -57 |
| 2026-05-26 01:37 | CGTARGET plan update | Ryan Sepassi | 1 | +90 | -32 |
| 2026-05-26 01:33 | format | Ryan Sepassi | 660 | +12334 | -10258 |
| 2026-05-26 01:29 | macho: lower split sections to atoms | Ryan Sepassi | 54 | +1154 | -278 |
| 2026-05-26 00:12 | Add split section codegen flags | Ryan Sepassi | 7 | +112 | -13 |
| 2026-05-25 23:52 | CGTarget plan | Ryan Sepassi | 1 | +625 | -0 |
| 2026-05-25 23:51 | Add compile-time component knobs | Ryan Sepassi | 25 | +1414 | -214 |
| 2026-05-25 23:09 | Tighten release binary size | Ryan Sepassi | 1 | +11 | -2 |
| 2026-05-25 22:23 | Fix debug DWARF test targets | Ryan Sepassi | 2 | +9 | -9 |
| 2026-05-25 20:44 | wasm: add backend and target feature support | Ryan Sepassi | 112 | +17174 | -6499 |
| 2026-05-25 22:09 | Fix test targets for public API coverage | Ryan Sepassi | 21 | +1138 | -1642 |
| 2026-05-25 22:07 | Fix C backend bitfield base addresses | Ryan Sepassi | 1 | +45 | -1 |
| 2026-05-25 21:28 | mk: one-entry-per-line for .PHONY and test: prerequisites | Ryan Sepassi | 2 | +81 | -4 |
| 2026-05-25 20:44 | cg: support tail-call realizability | Ryan Sepassi | 37 | +617 | -170 |
| 2026-05-25 21:20 | Keep CG API tests on public surface | Ryan Sepassi | 4 | +172 | -92 |
| 2026-05-25 21:13 | Fix parse harness public API boundaries | Ryan Sepassi | 5 | +83 | -82 |
| 2026-05-25 20:44 | cc: honor -x language for stdin | Ryan Sepassi | 2 | +43 | -6 |
| 2026-05-25 20:51 | Fix bootstrap partial linking issues | Ryan Sepassi | 4 | +53 | -19 |
| 2026-05-25 20:28 | build: hide non-public libcfree symbols | Ryan Sepassi | 19 | +306 | -304 |
| 2026-05-25 20:21 | Add release build toggle | Ryan Sepassi | 3 | +108 | -32 |
| 2026-05-25 20:12 | build: enforce public libcfree exports | Ryan Sepassi | 5 | +148 | -18 |
| 2026-05-25 20:12 | cc: support default symbol visibility | Ryan Sepassi | 6 | +46 | -7 |
| 2026-05-25 20:11 | driver: add check, asm output, and object tools | Ryan Sepassi | 15 | +2278 | -18 |
| 2026-05-25 20:08 | build: make optimizer sources optional | Ryan Sepassi | 10 | +47 | -3 |
| 2026-05-25 20:07 | build: isolate hosted driver environment | Ryan Sepassi | 6 | +238 | -216 |
| 2026-05-25 20:05 | core: stabilize panic save layout across C environments | Ryan Sepassi | 2 | +10 | -2 |
| 2026-05-25 20:05 | doc: describe lowered-CG IR | Ryan Sepassi | 1 | +490 | -0 |
| 2026-05-25 11:23 | Emulator redesign, RV64 Linux minimal impl | Ryan Sepassi | 34 | +7167 | -4464 |
| 2026-05-25 11:00 | Add ABI registry gating | Ryan Sepassi | 10 | +118 | -74 |
| 2026-05-25 10:45 | Refactor object formats into gated directories | Ryan Sepassi | 66 | +12893 | -12751 |
| 2026-05-25 10:10 | Add object format registry | Ryan Sepassi | 10 | +603 | -502 |
| 2026-05-25 06:12 | opt pipeline redesign | Ryan Sepassi | 27 | +3090 | -629 |
| 2026-05-24 17:47 | Integrate self-hosted bootstrap | Ryan Sepassi | 4 | +75 | -248 |
| 2026-05-24 16:02 | aa64: don't clobber aggregate-return base with first field load | Ryan Sepassi | 3 | +74 | -3 |
| 2026-05-24 13:37 | opt: don't reuse indirect-call target scratch as parallel-move temp | Ryan Sepassi | 1 | +8 | -5 |
| 2026-05-24 13:26 | cc: --sysroot triggers hosted mode; add freestanding math.h | Ryan Sepassi | 2 | +74 | -3 |
| 2026-05-24 13:05 | c_target: cast pointer operands of mem builtins to void* | Ryan Sepassi | 1 | +16 | -3 |
| 2026-05-24 13:05 | rt: implement printf '*' width/precision; fix stale rt archive members | Ryan Sepassi | 3 | +41 | -2 |
| 2026-05-24 12:42 | parse: accept compound-literal static initializers; fix bootstrap driver -Ilang | Ryan Sepassi | 2 | +28 | -2 |
| 2026-05-24 12:19 | slice: replace NUL-terminated strings with fat-pointer CfreeSlice | Ryan Sepassi | 197 | +4234 | -3331 |
| 2026-05-24 00:37 | test: add format-bounce stress harness; fix assembler local UNDEFs | Ryan Sepassi | 12 | +507 | -1 |
| 2026-05-23 23:04 | bootstrap: fix self-compilation across frontend, codegen, and harness | Ryan Sepassi | 7 | +105 | -12 |
| 2026-05-23 22:26 | ssa2 plan | Ryan Sepassi | 1 | +932 | -0 |
| 2026-05-23 21:19 | lang: extract C preprocessor into lang/cpp/ behind CFREE_LANG_CPP_ENABLED | Ryan Sepassi | 25 | +729 | -623 |
| 2026-05-23 20:37 | cc: drop --dump-tokens and the test/lex corpus | Ryan Sepassi | 38 | +19 | -1408 |
| 2026-05-23 20:30 | lang: registry-driven frontend dispatch with extensions on the vtable | Ryan Sepassi | 17 | +215 | -103 |
| 2026-05-23 17:43 | cg: introduce CGBackend; gate arch sources via config.h | Ryan Sepassi | 12 | +291 | -51 |
| 2026-05-23 17:06 | doc: add REGISTRY.md — build-time component configuration plan | Ryan Sepassi | 1 | +219 | -0 |
| 2026-05-23 17:06 | doc: prune stale checklists and plans | Ryan Sepassi | 20 | +0 | -5758 |
| 2026-05-23 17:05 | opt: O1 perf — MIR-shaped combine, block reorder, scalar promote, addr-of-global CSE | Ryan Sepassi | 7 | +2067 | -233 |
| 2026-05-23 17:03 | cg: extend memory ops with effective-address rider | Ryan Sepassi | 50 | +3211 | -1305 |
| 2026-05-22 19:34 | Add Windows PE/COFF support | Ryan Sepassi | 88 | +12910 | -330 |
| 2026-05-22 20:34 | opt regalloc: swap to MIR-shaped point-bitmap allocator at O1 | Ryan Sepassi | 3 | +339 | -543 |
| 2026-05-22 19:24 | opt emit: dedup set_loc calls; cache hard-reg scan; gate verify on NDEBUG | Ryan Sepassi | 4 | +106 | -15 |
| 2026-05-22 18:50 | metrics speedup, defer logging | Ryan Sepassi | 4 | +165 | -21 |
| 2026-05-22 18:07 | Enable coalescing and addr-xform at O1; add gap analysis and fast-bench mode | Ryan Sepassi | 9 | +458 | -20 |
| 2026-05-22 16:14 | Split optimizer design and performance docs | Ryan Sepassi | 7 | +490 | -3452 |
| 2026-05-22 15:29 | Fix O2 matrix and Darwin math blockers | Ryan Sepassi | 15 | +218 | -4 |
| 2026-05-22 11:54 | Add OPT benchmark harness | Ryan Sepassi | 4 | +646 | -10 |
| 2026-05-22 10:59 | Add CG inline policy and Toy call attrs | Ryan Sepassi | 29 | +518 | -16 |
| 2026-05-22 10:08 | test O2 jump and inline cleanup quality | Ryan Sepassi | 7 | +234 | -11 |
| 2026-05-22 09:41 | Complete optimizer Phase E inlining | Ryan Sepassi | 8 | +680 | -168 |
| 2026-05-22 05:54 | opt: add first Phase E inliner slice | Ryan Sepassi | 5 | +671 | -17 |
| 2026-05-22 04:35 | Complete x64 backend parity | Ryan Sepassi | 67 | +6545 | -1154 |
| 2026-05-22 04:32 | Implement O2 jump optimization | Ryan Sepassi | 4 | +284 | -10 |
| 2026-05-22 04:22 | Implement O2 SSA combine | Ryan Sepassi | 4 | +152 | -6 |
| 2026-05-22 02:41 | Refresh O2 optimizer plan | Ryan Sepassi | 1 | +40 | -13 |
| 2026-05-22 02:34 | Optimize pressure relief pass | Ryan Sepassi | 4 | +131 | -17 |
| 2026-05-22 01:05 | rv64: complete backend parity work | Ryan Sepassi | 210 | +10748 | -804 |
| 2026-05-22 01:00 | Implement O2 pressure relief | Ryan Sepassi | 4 | +246 | -1 |
| 2026-05-22 00:51 | Implement LICM optimization pass | Ryan Sepassi | 4 | +324 | -1 |
| 2026-05-22 00:36 | Implement O2 dead store elimination | Ryan Sepassi | 4 | +537 | -4 |
| 2026-05-22 00:26 | opt: add identity simplification pass | Ryan Sepassi | 8 | +748 | -43 |
| 2026-05-22 00:25 | opt: add path-aware memory GVN | Ryan Sepassi | 4 | +464 | -32 |
| 2026-05-21 23:07 | opt: place split spills on critical edges | Ryan Sepassi | 6 | +372 | -87 |
| 2026-05-21 22:43 | opt: add first memory-aware gvn slice | Ryan Sepassi | 4 | +719 | -23 |
| 2026-05-21 22:13 | opt: add SSA copy propagation | Ryan Sepassi | 7 | +295 | -5 |
| 2026-05-21 21:12 | Implement O2 allocation coalescing and splitting | Ryan Sepassi | 10 | +941 | -85 |
| 2026-05-21 20:37 | Align compile link and JIT session APIs | Ryan Sepassi | 28 | +2562 | -2477 |
| 2026-05-21 19:53 | Implement scalar GVN | Ryan Sepassi | 5 | +740 | -47 |
| 2026-05-21 19:19 | test opt scalar gvn red cases | Ryan Sepassi | 2 | +243 | -5 |
| 2026-05-21 19:18 | Keep O1 stack spill assignment linear | Ryan Sepassi | 3 | +296 | -53 |
| 2026-05-21 19:06 | Makefile: objs depend on Makefile | Ryan Sepassi | 1 | +8 | -7 |
| 2026-05-21 19:06 | Clean up O1 preg namespace | Ryan Sepassi | 16 | +610 | -657 |
| 2026-05-21 18:59 | Improve Toy REPL diagnostic locations | Ryan Sepassi | 6 | +38 | -13 |
| 2026-05-21 18:49 | Make optimizer pseudo-registers explicit | Ryan Sepassi | 14 | +725 | -84 |
| 2026-05-21 18:43 | Make dbg REPL frontend-driven | Ryan Sepassi | 13 | +542 | -451 |
| 2026-05-21 18:10 | VIRTUAL_REGS plan | Ryan Sepassi | 1 | +96 | -0 |
| 2026-05-21 18:06 | Make source frontends lifecycle-driven | Ryan Sepassi | 10 | +454 | -219 |
| 2026-05-21 17:47 | Update FRONTEND plan | Ryan Sepassi | 1 | +66 | -0 |
| 2026-05-21 17:46 | dbg: fallback to expr so jit/expr can be elided | Ryan Sepassi | 2 | +49 | -9 |
| 2026-05-21 17:45 | Add stateful frontend vtable | Ryan Sepassi | 10 | +281 | -104 |
| 2026-05-21 17:45 | Make test-parse build runtime first | Ryan Sepassi | 1 | +1 | -1 |
| 2026-05-21 17:35 | persistent frontend plan | Ryan Sepassi | 1 | +62 | -0 |
| 2026-05-21 17:32 | Implement JIT session resilience via setjmp/longjmp | Ryan Sepassi | 5 | +68 | -8 |
| 2026-05-21 17:30 | test run.sh ensure podman never pulls | Ryan Sepassi | 3 | +4 | -4 |
| 2026-05-21 17:29 | c_target: implement native data relocations via packed structs | Ryan Sepassi | 2 | +228 | -708 |
| 2026-05-21 17:22 | cg: preserve switch table indices under opt | Ryan Sepassi | 3 | +58 | -38 |
| 2026-05-21 17:21 | x64: fix optimized arithmetic and tail-call coverage | Ryan Sepassi | 3 | +158 | -11 |
| 2026-05-21 16:46 | C backend switch emit signed | Ryan Sepassi | 1 | +1 | -1 |
| 2026-05-21 16:32 | Add pre-GVN O2 rewrite coverage | Ryan Sepassi | 8 | +982 | -17 |
| 2026-05-21 15:39 | opt: add SSA DCE and copy cleanup | Ryan Sepassi | 14 | +571 | -199 |
| 2026-05-21 15:23 | opt: complete O2 SSA substrate | Ryan Sepassi | 12 | +296 | -140 |
| 2026-05-21 15:02 | Enable optimized toy cc coverage | Ryan Sepassi | 5 | +37 | -19 |
| 2026-05-21 14:50 | Improve AA64 compare and cset disassembly | Ryan Sepassi | 10 | +198 | -12 |
| 2026-05-21 14:24 | Implement production SSA for O2 | Ryan Sepassi | 6 | +927 | -322 |
| 2026-05-21 14:08 | opt: add O2 analysis substrate | Ryan Sepassi | 8 | +639 | -312 |
| 2026-05-21 14:06 | Add rv64 asm/disasm parity scaffolding | Ryan Sepassi | 17 | +741 | -40 |
| 2026-05-21 14:04 | x64: add asm disasm parity slice | Ryan Sepassi | 27 | +1063 | -242 |
| 2026-05-21 14:02 | docs: add x64 parity checklist | Ryan Sepassi | 1 | +92 | -0 |
| 2026-05-21 13:55 | Expand driver flag compatibility | Ryan Sepassi | 7 | +491 | -7 |
| 2026-05-21 04:41 | Improve emit-c source readability | Ryan Sepassi | 2 | +68 | -4 |
| 2026-05-21 03:49 | Place runtime cache under build rt | Ryan Sepassi | 11 | +55 | -19 |
| 2026-05-21 03:43 | Add jump-table lowering for CG switches | Ryan Sepassi | 6 | +308 | -17 |
| 2026-05-21 02:58 | test: broaden switch corpus and seed jump-table red shape test | Ryan Sepassi | 13 | +478 | -1 |
| 2026-05-21 02:58 | toy: support // line comments | Ryan Sepassi | 1 | +11 | -3 |
| 2026-05-21 02:58 | c-frontend: integer-promote switch controlling expression | Ryan Sepassi | 3 | +37 | -0 |
| 2026-05-21 02:25 | cg: support C local static label tables | Ryan Sepassi | 10 | +380 | -2 |
| 2026-05-21 02:09 | cg: redesign switch / computed_goto / label-addr around structured IR | Ryan Sepassi | 31 | +840 | -93 |
| 2026-05-20 23:33 | cg,c_target: wire cfree_cg_switch through a target hook; real C `switch` | Ryan Sepassi | 8 | +256 | -43 |
| 2026-05-20 22:48 | c_target,c-frontend: emit structured for/break/continue from SCOPE_LOOP | Ryan Sepassi | 5 | +113 | -22 |
| 2026-05-20 21:48 | rt: drop hosted libc shim, use system headers via sysroot | Ryan Sepassi | 31 | +64 | -1879 |
| 2026-05-20 21:41 | c_target: cut bridge-cast noise; support Mach-O TLS | Ryan Sepassi | 2 | +293 | -45 |
| 2026-05-20 20:28 | test/toy: wrap i64 main with i32 thunk; drop -Wno-main-return-type | Ryan Sepassi | 128 | +387 | -134 |
| 2026-05-20 20:15 | c_target: emit C that compiles under -Wall -Wextra -Werror | Ryan Sepassi | 3 | +50 | -12 |
| 2026-05-20 19:24 | c_target: fix several path-C bugs in test-parse | Ryan Sepassi | 4 | +267 | -37 |
| 2026-05-20 19:23 | obj: builder mutators + strip/objcopy drivers | Ryan Sepassi | 37 | +2820 | -218 |
| 2026-05-20 18:34 | c_target: land Phase 4 of the C-source backend | Ryan Sepassi | 4 | +925 | -99 |
| 2026-05-20 18:22 | driver: add cpp + ranlib tools and obj-roundtrip API | Ryan Sepassi | 9 | +884 | -1 |
| 2026-05-20 17:55 | c_target: land Phase 3 of the C-source backend | Ryan Sepassi | 5 | +811 | -93 |
| 2026-05-20 17:24 | c_target: land Phase 2 of the C-source backend | Ryan Sepassi | 5 | +723 | -156 |
| 2026-05-20 16:59 | c_target: land Phase 0/1 of the C-source backend | Ryan Sepassi | 16 | +1859 | -206 |
| 2026-05-20 15:21 | Enable runtime printf float formatting | Ryan Sepassi | 10 | +476 | -38 |
| 2026-05-20 15:01 | doc: rewrite CBACKEND.md plan around CGTarget seam | Ryan Sepassi | 1 | +487 | -266 |
| 2026-05-20 14:31 | rt: implement freestanding header routines | Ryan Sepassi | 9 | +995 | -44 |
| 2026-05-20 13:59 | Add bootstrap target | Ryan Sepassi | 1 | +23 | -31 |
| 2026-05-20 13:59 | Fix parse bootstrap regressions | Ryan Sepassi | 4 | +38 | -10 |
| 2026-05-20 13:43 | Fix self-hosted stage build without clang fallback | Ryan Sepassi | 58 | +689 | -376 |
| 2026-05-20 12:30 | Split target and hosted predefined macros | Ryan Sepassi | 10 | +124 | -5 |
| 2026-05-20 12:18 | Fix stage2 aggregate and aa64 bootstrap bugs | Ryan Sepassi | 14 | +231 | -21 |
| 2026-05-20 06:35 | Fix macro argument parsing for unbalanced braces | Ryan Sepassi | 6 | +28 | -3 |
| 2026-05-20 06:14 | Preserve null constants through suppressed loads | Ryan Sepassi | 3 | +11 | -1 |
| 2026-05-20 06:00 | Fix SQLite-driven codegen and Mach-O addends | Ryan Sepassi | 16 | +257 | -3 |
| 2026-05-20 05:53 | Fix Lua-driven frontend and cc regressions | Ryan Sepassi | 18 | +239 | -15 |
| 2026-05-20 05:28 | Implement relocatable ld links | Ryan Sepassi | 8 | +605 | -19 |
| 2026-05-20 05:04 | Fix signed pointer index lowering | Ryan Sepassi | 8 | +65 | -12 |
| 2026-05-20 04:28 | Decorate runtime helper linkage names | Ryan Sepassi | 1 | +3 | -1 |
| 2026-05-20 02:46 | Add hosted libc and runtime driver support | Ryan Sepassi | 11 | +1831 | -15 |
| 2026-05-20 01:23 | Broaden driver compatibility | Ryan Sepassi | 8 | +1147 | -131 |
| 2026-05-20 01:22 | Preserve ordered link inputs | Ryan Sepassi | 12 | +364 | -200 |
| 2026-05-20 01:22 | Fix C pointer constant cases | Ryan Sepassi | 16 | +256 | -117 |
| 2026-05-20 00:36 | Fix AArch64 logical immediate rotation | Ryan Sepassi | 2 | +18 | -1 |
| 2026-05-20 00:36 | Emit Mach-O TLV descriptors for TLS data | Ryan Sepassi | 2 | +162 | -0 |
| 2026-05-20 00:36 | Fix FP negation and address codegen | Ryan Sepassi | 17 | +156 | -26 |
| 2026-05-20 00:36 | Fix C record and array parameter lowering | Ryan Sepassi | 17 | +268 | -101 |
| 2026-05-19 23:55 | Fix parser CAS type stack | Ryan Sepassi | 1 | +6 | -2 |
| 2026-05-19 23:40 | Fix parse edge cases | Ryan Sepassi | 5 | +111 | -17 |
| 2026-05-19 23:12 | Reorganize public API bridge files | Ryan Sepassi | 20 | +1938 | -1950 |
| 2026-05-19 23:08 | src/opt src/cg breakup into multiple files | Ryan Sepassi | 33 | +9450 | -9483 |
| 2026-05-19 23:02 | Fix Mach-O section name pointers during sort | Ryan Sepassi | 1 | +8 | -0 |
| 2026-05-19 23:01 | C11 BUGS add red tests | Ryan Sepassi | 9 | +111 | -9 |
| 2026-05-19 22:59 | lang/wasm/ refactor into multiple files | Ryan Sepassi | 9 | +8390 | -8304 |
| 2026-05-19 22:32 | abi: classify wide16 scalars (i128, long double) in SysV-x64 | Ryan Sepassi | 3 | +276 | -3 |
| 2026-05-19 22:29 | cg: extract call-shape helpers and central storage-shape predicate | Ryan Sepassi | 2 | +406 | -131 |
| 2026-05-19 22:13 | Clean up public API: merge object headers, drop redundant accessors, use bool | Ryan Sepassi | 28 | +205 | -237 |
| 2026-05-19 21:56 | Fix Mach-O OutSec drift and clang non-extern reloc support | Ryan Sepassi | 3 | +111 | -9 |
| 2026-05-19 21:51 | Fix parser bugs from BUGS list | Ryan Sepassi | 21 | +152 | -61 |
| 2026-05-19 21:45 | Support #warning directive | Ryan Sepassi | 5 | +34 | -7 |
| 2026-05-19 21:38 | rm K&R fn defs expectations | Ryan Sepassi | 4 | +0 | -21 |
| 2026-05-19 21:37 | Support block-scope function declarations | Ryan Sepassi | 6 | +304 | -24 |
| 2026-05-19 21:30 | Fix brace-elided aggregate initializers | Ryan Sepassi | 2 | +202 | -51 |
| 2026-05-19 21:30 | Fix x64 PIC codegen and PIE dynamic-section noise | Ryan Sepassi | 3 | +166 | -28 |
| 2026-05-19 21:11 | test: add red C11 frontend coverage | Ryan Sepassi | 29 | +151 | -0 |
| 2026-05-19 21:00 | Migrate codebase to new component-split public API | Ryan Sepassi | 107 | +4397 | -3890 |
| 2026-05-19 19:44 | Public API rewrite | Ryan Sepassi | 20 | +1570 | -2006 |
| 2026-05-19 19:00 | Support Unicode transcoding in C literals | Ryan Sepassi | 11 | +370 | -156 |
| 2026-05-19 18:52 | Expand C11 parser coverage and literal support | Ryan Sepassi | 39 | +620 | -114 |
| 2026-05-19 18:30 | Fix parser constraint diagnostics | Ryan Sepassi | 7 | +242 | -5 |
| 2026-05-19 16:30 | Complete i128 and binary128 long double support | Ryan Sepassi | 25 | +1493 | -395 |
| 2026-05-19 15:01 | test: add red C11 parser conformance cases | Ryan Sepassi | 58 | +364 | -0 |
| 2026-05-19 14:32 | Add binary128 long double target tests | Ryan Sepassi | 66 | +1277 | -70 |
| 2026-05-19 13:37 | Complete freestanding runtime conformance gate | Ryan Sepassi | 15 | +509 | -41 |
| 2026-05-19 04:19 | Fix x64 atomic compare-exchange register pressure | Ryan Sepassi | 1 | +33 | -3 |
| 2026-05-19 04:12 | Build runtime with cfree | Ryan Sepassi | 16 | +643 | -38 |
| 2026-05-19 02:38 | Update lib dependency allowlist | Ryan Sepassi | 2 | +5 | -4 |
| 2026-05-19 02:34 | Complete C11 declaration and expression semantics cleanup | Ryan Sepassi | 41 | +385 | -44 |
| 2026-05-19 01:34 | Complete C11 bit-field and static initializer semantics | Ryan Sepassi | 18 | +479 | -106 |
| 2026-05-19 00:44 | Fix zero-fill static object emission | Ryan Sepassi | 2 | +2 | -2 |
| 2026-05-19 00:20 | Fix runtime bootstrap parser blockers | Ryan Sepassi | 16 | +184 | -13 |
| 2026-05-18 23:46 | Fix typed overflow builtins | Ryan Sepassi | 11 | +318 | -88 |
| 2026-05-18 22:51 | Implement typed C constant expression evaluation | Ryan Sepassi | 7 | +591 | -112 |
| 2026-05-18 22:39 | Fix macro hideset recursion in fp runtime probe | Ryan Sepassi | 17 | +115 | -18 |
| 2026-05-18 22:20 | Tighten C11 parse constraints | Ryan Sepassi | 25 | +986 | -240 |
| 2026-05-18 21:50 | test: expand C11 conformance gap coverage | Ryan Sepassi | 26 | +211 | -19 |
| 2026-05-18 21:36 | Add C semantic checks and declaration state | Ryan Sepassi | 20 | +418 | -25 |
| 2026-05-18 21:12 | Fix C11 parse error diagnostics | Ryan Sepassi | 6 | +293 | -6 |
| 2026-05-18 20:55 | Set executable permissions on linked outputs | Ryan Sepassi | 6 | +119 | -7 |
| 2026-05-18 20:26 | fix parse aggregate and VLA lowering | Ryan Sepassi | 4 | +93 | -126 |
| 2026-05-18 19:22 | Support stack args in tail calls | Ryan Sepassi | 6 | +220 | -69 |
| 2026-05-18 18:28 | Validate CG memory access mismatches | Ryan Sepassi | 4 | +322 | -50 |
| 2026-05-18 17:05 | Complete wasm feature gates and tail calls | Ryan Sepassi | 12 | +1567 | -52 |
| 2026-05-18 14:38 | Add staged wasm proposal frontend support | Ryan Sepassi | 14 | +979 | -303 |
| 2026-05-18 08:00 | Polish WASM trap lowering | Ryan Sepassi | 10 | +337 | -40 |
| 2026-05-18 07:02 | Implement Wasm runtime instance slots | Ryan Sepassi | 7 | +2695 | -2524 |
| 2026-05-18 06:43 | wasm: add instance runtime runner path | Ryan Sepassi | 7 | +859 | -364 |
| 2026-05-18 05:17 | wasm: run executable path for macho tests | Ryan Sepassi | 1 | +41 | -26 |
| 2026-05-18 05:08 | wasm: lower globals tables memory growth and locals | Ryan Sepassi | 15 | +582 | -40 |
| 2026-05-18 04:42 | Complete Wasm frontend reader validation | Ryan Sepassi | 14 | +1669 | -219 |
| 2026-05-18 04:19 | Complete wasm frontend native lowering | Ryan Sepassi | 24 | +2634 | -101 |
| 2026-05-18 03:38 | Add initial wasm frontend | Ryan Sepassi | 27 | +2411 | -10 |
| 2026-05-18 01:02 | docs: plan wasm frontend and backend | Ryan Sepassi | 1 | +794 | -0 |
| 2026-05-18 00:05 | Complete O1 codegen cleanup | Ryan Sepassi | 16 | +502 | -331 |
| 2026-05-17 23:11 | OP1.md doc refresh + perf refresh | Ryan Sepassi | 2 | +554 | -1006 |
| 2026-05-17 22:47 | toy: add fat slices | Ryan Sepassi | 13 | +406 | -8 |
| 2026-05-16 22:44 | Rewrite toy frontend toward spec | Ryan Sepassi | 437 | +11153 | -3174 |
| 2026-05-16 16:53 | Fix inline asm memory operand addresses | Ryan Sepassi | 1 | +26 | -23 |
| 2026-05-16 16:45 | Add Toy function pointer calls | Ryan Sepassi | 4 | +216 | -80 |
| 2026-05-16 16:36 | Run toy tests at O0 and O1 | Ryan Sepassi | 1 | +42 | -38 |
| 2026-05-16 16:33 | Move O1 tail calls onto planned replay | Ryan Sepassi | 22 | +192 | -79 |
| 2026-05-16 07:59 | Expand opt call-plan ABI register coverage | Ryan Sepassi | 3 | +516 | -35 |
| 2026-05-16 07:39 | Make call setup visible to opt | Ryan Sepassi | 11 | +608 | -82 |
| 2026-05-16 02:04 | Implement guarded Phase 5 register exposure | Ryan Sepassi | 7 | +286 | -38 |
| 2026-05-16 01:03 | Implement planned call replay for O1 | Ryan Sepassi | 13 | +711 | -89 |
| 2026-05-16 00:35 | Implement O1 call clobber register metadata | Ryan Sepassi | 10 | +1055 | -53 |
| 2026-05-16 00:15 | docs: plan richer opt register constraints | Ryan Sepassi | 2 | +429 | -1 |
| 2026-05-15 23:51 | opt: reserve only replayed hard regs | Ryan Sepassi | 3 | +117 | -31 |
| 2026-05-15 23:40 | Allow O1 params to bind to registers | Ryan Sepassi | 15 | +407 | -80 |
| 2026-05-15 22:49 | Tighten O1 post-rewrite cleanup | Ryan Sepassi | 3 | +270 | -16 |
| 2026-05-15 22:12 | Add O1 local jump cleanup | Ryan Sepassi | 6 | +399 | -35 |
| 2026-05-15 21:51 | Fix AArch64 large frame offset emission | Ryan Sepassi | 5 | +183 | -53 |
| 2026-05-15 21:38 | Complete O1 constfold cleanup | Ryan Sepassi | 5 | +485 | -244 |
| 2026-05-15 21:12 | Implement constfold delayed arithmetic and local shadows | Ryan Sepassi | 3 | +1122 | -31 |
| 2026-05-15 20:42 | Add vstack immediate constant folding | Ryan Sepassi | 4 | +913 | -37 |
| 2026-05-15 20:04 | opt: keep scalar locals in virtual registers | Ryan Sepassi | 15 | +941 | -78 |
| 2026-05-15 18:07 | cg: replace public frame slots with local handles | Ryan Sepassi | 10 | +294 | -133 |
| 2026-05-15 17:24 | docs: describe LocalId storage policy | Ryan Sepassi | 1 | +127 | -0 |
| 2026-05-15 14:49 | cg: defer integer compares for branch fusion | Ryan Sepassi | 1 | +210 | -116 |
| 2026-05-15 14:40 | Emit exact O1 prologues for known frames | Ryan Sepassi | 12 | +1072 | -441 |
| 2026-05-15 13:45 | Size opt prologue placeholders from planned regs | Ryan Sepassi | 12 | +270 | -57 |
| 2026-05-15 07:41 | Optimize O1 allocator occupancy | Ryan Sepassi | 3 | +203 | -127 |
| 2026-05-15 07:33 | Complete O1 performance cleanup | Ryan Sepassi | 4 | +208 | -71 |
| 2026-05-15 04:32 | Track O1 MIR-shape metrics | Ryan Sepassi | 8 | +547 | -111 |
| 2026-05-15 03:27 | Improve dbg JIT expression REPL | Ryan Sepassi | 17 | +5245 | -3547 |
| 2026-05-15 03:16 | Improve O1 wide-function allocation perf | Ryan Sepassi | 10 | +772 | -496 |
| 2026-05-15 02:42 | Implement range rewrite without live_after | Ryan Sepassi | 5 | +339 | -96 |
| 2026-05-15 02:32 | Add append-only JIT snippets to dbg | Ryan Sepassi | 6 | +1012 | -6 |
| 2026-05-15 02:25 | Implement range-based O1 assignment | Ryan Sepassi | 7 | +511 | -190 |
| 2026-05-15 02:11 | opt: add MIR-style live range model | Ryan Sepassi | 6 | +467 | -21 |
| 2026-05-15 02:03 | docs: design incremental jit linking | Ryan Sepassi | 3 | +863 | -0 |
| 2026-05-15 02:02 | opt: add pass-local block liveness | Ryan Sepassi | 7 | +717 | -210 |
| 2026-05-15 01:42 | RA phase 0 metrics and guardrails | Ryan Sepassi | 4 | +231 | -20 |
| 2026-05-15 01:34 | RA plan | Ryan Sepassi | 1 | +740 | -0 |
| 2026-05-15 00:53 | Document run JIT perf and compile metrics | Ryan Sepassi | 5 | +351 | -1 |
| 2026-05-15 00:45 | Avoid duplicate segment copies in JIT | Ryan Sepassi | 2 | +53 | -5 |
| 2026-05-15 00:34 | Add scoped timing metrics for run JIT path | Ryan Sepassi | 10 | +245 | -1 |
| 2026-05-15 00:33 | link: make section grouping linear | Ryan Sepassi | 1 | +66 | -22 |
| 2026-05-14 23:55 | Test O1 on x64 and rv64 | Ryan Sepassi | 13 | +318 | -22 |
| 2026-05-14 21:47 | Rewrite design document | Ryan Sepassi | 1 | +222 | -901 |
| 2026-05-14 21:35 | opt: model asm and call hard-reg effects | Ryan Sepassi | 3 | +374 | -10 |
| 2026-05-14 21:15 | opt: fold safe single-use post-RA operands | Ryan Sepassi | 3 | +568 | -5 |
| 2026-05-14 20:14 | Tighten O1 combine and DCE | Ryan Sepassi | 3 | +494 | -12 |
| 2026-05-14 20:13 | Consolidate arch files into subdirs | Ryan Sepassi | 59 | +6196 | -6216 |
| 2026-05-14 20:03 | Route arch helpers through descriptors | Ryan Sepassi | 9 | +172 | -106 |
| 2026-05-14 19:55 | Move linker arch cases behind descriptor | Ryan Sepassi | 10 | +252 | -383 |
| 2026-05-14 19:52 | Track exact simple regalloc usage | Ryan Sepassi | 5 | +56 | -17 |
| 2026-05-14 19:47 | Remove backend allocator pool state | Ryan Sepassi | 13 | +135 | -149 |
| 2026-05-14 19:36 | Route object relocation formats through arch descriptors | Ryan Sepassi | 10 | +123 | -72 |
| 2026-05-14 19:26 | Route ABI selection through arch descriptors | Ryan Sepassi | 6 | +43 | -27 |
| 2026-05-14 19:26 | Improve O1 live info for regalloc | Ryan Sepassi | 4 | +336 | -26 |
| 2026-05-14 19:20 | Add internal arch registration descriptor | Ryan Sepassi | 10 | +156 | -78 |
| 2026-05-14 19:13 | opt: add natural loop tree for O1 | Ryan Sepassi | 4 | +322 | -10 |
| 2026-05-14 19:06 | Move CG register allocation out of CGTarget | Ryan Sepassi | 18 | +229 | -178 |
| 2026-05-14 18:40 | Factor simple backend register allocator | Ryan Sepassi | 13 | +359 | -270 |
| 2026-05-14 18:14 | opt: prune unreachable blocks in CFG | Ryan Sepassi | 2 | +175 | -0 |
| 2026-05-14 17:50 | Wire opt level into CG target creation | Ryan Sepassi | 5 | +35 | -5 |
| 2026-05-14 17:49 | Expose frontend support API for C | Ryan Sepassi | 38 | +1709 | -1533 |
| 2026-05-14 17:25 | Refactor DWARF reader into debug module | Ryan Sepassi | 23 | +4156 | -4262 |
| 2026-05-14 17:15 | Remove src include path from C frontend build | Ryan Sepassi | 7 | +4 | -283 |
| 2026-05-14 17:04 | Move assembler parsing under src/asm | Ryan Sepassi | 20 | +1983 | -1230 |
| 2026-05-14 16:52 | Remove C Type dependencies from src | Ryan Sepassi | 69 | +1189 | -1878 |
| 2026-05-14 16:11 | Remove legacy cg implementation | Ryan Sepassi | 51 | +665 | -12937 |
| 2026-05-14 14:28 | Add CG type registry | Ryan Sepassi | 4 | +995 | -109 |
| 2026-05-14 12:39 | Port C frontend to public CG API | Ryan Sepassi | 53 | +6916 | -5634 |
| 2026-05-14 03:24 | Add neutral CG backend migration plan | Ryan Sepassi | 1 | +286 | -0 |
| 2026-05-14 03:24 | TOY.md spec | Ryan Sepassi | 2 | +839 | -623 |
| 2026-05-13 22:08 | Expand toy CG API coverage | Ryan Sepassi | 7 | +638 | -60 |
| 2026-05-13 19:15 | Update impl + toy to new CG api | Ryan Sepassi | 4 | +1096 | -574 |
| 2026-05-13 18:59 | CG api updates | Ryan Sepassi | 2 | +724 | -206 |
| 2026-05-13 17:59 | cg-ext.md plan | Ryan Sepassi | 1 | +551 | -0 |
| 2026-05-13 17:21 | Update cg impl + toy to the new cg api | Ryan Sepassi | 7 | +600 | -221 |
| 2026-05-13 17:04 | Redesign public CG API | Ryan Sepassi | 1 | +302 | -173 |
| 2026-05-13 16:11 | toy-todo.md plan | Ryan Sepassi | 1 | +623 | -0 |
| 2026-05-13 14:44 | Validate AArch64 SP and ZR asm operands | Ryan Sepassi | 2 | +73 | -0 |
| 2026-05-13 14:41 | Complete Cg inline asm API coverage | Ryan Sepassi | 6 | +264 | -24 |
| 2026-05-13 14:25 | Expand toy CG API coverage | Ryan Sepassi | 8 | +328 | -35 |
| 2026-05-13 11:33 | Implement planned CG API updates | Ryan Sepassi | 7 | +724 | -418 |
| 2026-05-13 11:08 | docs: clarify CG API status and plan | Ryan Sepassi | 1 | +256 | -162 |
| 2026-05-13 10:03 | Complete public CG API wrappers | Ryan Sepassi | 12 | +987 | -52 |
| 2026-05-13 05:33 | Expand CG API status TODOs | Ryan Sepassi | 1 | +27 | -3 |
| 2026-05-13 05:29 | Complete public CG API toy coverage | Ryan Sepassi | 35 | +1351 | -115 |
| 2026-05-13 03:58 | Implement CfreeCg public codegen API driving CGTarget directly | Ryan Sepassi | 2 | +1412 | -5 |
| 2026-05-13 02:00 | toy: use structured scopes, unop, fix call stack order and store drops | Ryan Sepassi | 1 | +880 | -58 |
| 2026-05-13 02:00 | cg api: add unop, va_list, extended intrinsics, structured scope results, push_int uint64_t, remove is_union | Ryan Sepassi | 4 | +230 | -22 |
| 2026-05-13 00:12 | cg type allocator | Ryan Sepassi | 7 | +584 | -2 |
| 2026-05-12 23:44 | cfree/cg.h and lang/toy | Ryan Sepassi | 12 | +818 | -29 |
| 2026-05-12 22:10 | Refactor setjmp longjmp as intrinsics | Ryan Sepassi | 15 | +66 | -125 |
| 2026-05-12 21:54 | LANGS.md plan | Ryan Sepassi | 1 | +456 | -0 |
| 2026-05-12 21:54 | opt: generic register coordination via CGTarget hooks | Ryan Sepassi | 17 | +853 | -192 |
| 2026-05-12 14:25 | Implement OPT1 lowering and allocation | Ryan Sepassi | 7 | +1350 | -31 |
| 2026-05-12 05:28 | TAILCALL.md plan | Ryan Sepassi | 1 | +234 | -0 |
| 2026-05-12 01:36 | PROF.md plan | Ryan Sepassi | 1 | +392 | -0 |
| 2026-05-12 01:24 | OPT.md plan update | Ryan Sepassi | 1 | +601 | -420 |
| 2026-05-12 01:16 | extract sha256 (codesign) | Ryan Sepassi | 3 | +133 | -113 |
| 2026-05-12 00:44 | jit/macho: cfree-owned TLV thunk so _Thread_local works under cfree run | Ryan Sepassi | 16 | +626 | -79 |
| 2026-05-12 00:18 | Preprocess .S inputs in assembler driver | Ryan Sepassi | 1 | +55 | -8 |
| 2026-05-12 00:17 | Move runtime make rules into rt makefile | Ryan Sepassi | 2 | +243 | -275 |
| 2026-05-12 00:02 | Parallelize parse cg and elf test harnesses | Ryan Sepassi | 4 | +760 | -305 |
| 2026-05-11 23:55 | asm: support file-scope global asm | Ryan Sepassi | 9 | +158 | -22 |
| 2026-05-11 23:51 | stage2: R1–R7 rt-ingest fixes (5/8 rt sources compile under cfree) | Ryan Sepassi | 26 | +397 | -93 |
| 2026-05-11 23:10 | link/macho: coalesce same-named sections into one section_64 per (segname,sectname) | Ryan Sepassi | 2 | +165 | -52 |
| 2026-05-11 22:56 | obj: emit Mach-O TLV descriptors so cfree-compiled _Thread_local works | Ryan Sepassi | 7 | +359 | -180 |
| 2026-05-11 22:15 | refactor: split six >2KLOC files into focused modules | Ryan Sepassi | 29 | +18546 | -20038 |
| 2026-05-11 21:42 | parse: accept _Thread_local; route TLS objects through tls_addr_of | Ryan Sepassi | 6 | +73 | -1 |
| 2026-05-11 21:23 | link/macho: set MH_HAS_TLV_DESCRIPTORS so dyld registers TLV pthread keys | Ryan Sepassi | 4 | +59 | -53 |
| 2026-05-11 21:17 | dbg: copy CfreeDbgSignalOps in signals_install, not the caller pointer | Ryan Sepassi | 1 | +11 | -7 |
| 2026-05-11 20:52 | stage2: standalone link probe + STAGE2/MACHO notes | Ryan Sepassi | 4 | +156 | -133 |
| 2026-05-11 20:50 | obj: coalesce same-named sections; add obj_align_to for intra-section padding | Ryan Sepassi | 7 | +93 | -28 |
| 2026-05-11 20:49 | link/macho: TLV section + ARM64_RELOC_TLVP_LOAD_PAGE21/PAGEOFF12 | Ryan Sepassi | 8 | +388 | -18 |
| 2026-05-11 20:07 | dbg: multi-input cfree_jit_view + DWARF suffix-match / degradation | Ryan Sepassi | 8 | +713 | -141 |
| 2026-05-11 19:49 | test/cg q05: accumulate into r_int to fit x64 INT pool | Ryan Sepassi | 1 | +10 | -5 |
| 2026-05-11 19:42 | cg: imm-form encodings for x64 and rv64 binop/unop | Ryan Sepassi | 2 | +228 | -16 |
| 2026-05-11 19:29 | cg: pre-SSA peephole — constant fold + aarch64 imm-form encodings | Ryan Sepassi | 6 | +569 | -24 |
| 2026-05-11 19:17 | STAGE2.md plan update | Ryan Sepassi | 1 | +163 | -85 |
| 2026-05-11 18:49 | cg fix INDIRECT reg leak | Ryan Sepassi | 1 | +5 | -2 |
| 2026-05-11 18:46 | jit: close out reloc-apply gaps from doc/JIT.md | Ryan Sepassi | 7 | +479 | -129 |
| 2026-05-11 18:44 | driver: share .c/.o/.a/stdin input handling between run and dbg | Ryan Sepassi | 5 | +402 | -252 |
| 2026-05-11 18:41 | parse: fix sizeof/alignof expr forms + block-scope static[] inference | Ryan Sepassi | 7 | +88 | -13 |
| 2026-05-11 18:30 | test/parse/run.sh fixup -I for cfree-roundtrip.c | Ryan Sepassi | 1 | +1 | -1 |
| 2026-05-11 18:29 | asm/inline: complete end-to-end TODOs from doc/ASM.md §6 | Ryan Sepassi | 10 | +375 | -57 |
| 2026-05-11 18:27 | cg/arch: handle OPK_INDIRECT in call-arg + return paths | Ryan Sepassi | 18 | +476 | -72 |
| 2026-05-11 18:25 | parse: land STAGE2 B1-B6 — alignof alias, ctz, addr-const + array-init gaps | Ryan Sepassi | 25 | +253 | -48 |
| 2026-05-11 18:03 | run: fix cfree run JIT runner — pipeline lifetime, dlsym mangling, synthetic argv[0] | Ryan Sepassi | 3 | +174 | -21 |
| 2026-05-11 17:59 | pp: search includer's directory first for quoted #include | Ryan Sepassi | 1 | +68 | -9 |
| 2026-05-11 17:53 | api: implement cfree_dep_iter_new/_next over SourceManager | Ryan Sepassi | 3 | +64 | -17 |
| 2026-05-11 17:45 | dbg: implement cfree_jit_view + image/runtime PC translation | Ryan Sepassi | 8 | +464 | -14 |
| 2026-05-11 17:38 | ASM.md plan update | Ryan Sepassi | 2 | +215 | -955 |
| 2026-05-11 16:58 | asm/inline: integration — wire AsmConstraint.type through binder + walker | Ryan Sepassi | 7 | +111 | -32 |
| 2026-05-11 16:42 | asm/inline: track C — aa64 backend (template walker + aa_asm_block) | Ryan Sepassi | 7 | +617 | -12 |
| 2026-05-11 16:38 | asm/inline: track B — cg_inline_asm binder + opt recorder/replay | Ryan Sepassi | 5 | +840 | -23 |
| 2026-05-11 16:47 | asm/inline: track A — frontend parser for asm() statements | Ryan Sepassi | 4 | +346 | -0 |
| 2026-05-11 17:20 | STAGE2.md plan | Ryan Sepassi | 1 | +154 | -0 |
| 2026-05-11 17:19 | dbg: JIT debugger — session, displaced single-step, REPL wire-up | Ryan Sepassi | 15 | +2528 | -116 |
| 2026-05-11 16:59 | attr: phase-2 PR-Z — parser wire-up + weak-undef JIT | Ryan Sepassi | 4 | +234 | -721 |
| 2026-05-11 16:19 | attr: phase-2 W1–W4 — honor packed/aligned/section/used/weak/visibility/alias/noreturn | Ryan Sepassi | 5 | +214 | -27 |
| 2026-05-11 16:16 | INLINEASM.md plan | Ryan Sepassi | 2 | +333 | -11 |
| 2026-05-11 16:05 | attr: phase-2 PR-0 — interface seed, plan doc, drafted tests | Ryan Sepassi | 29 | +718 | -65 |
| 2026-05-11 15:54 | asm: phase-3 + phase-4a — standalone .s assembler + disassembler overlay | Ryan Sepassi | 20 | +2703 | -156 |
| 2026-05-11 15:41 | parse: __attribute__((...)) parsing — Phase 1 carriers, no codegen | Ryan Sepassi | 23 | +977 | -29 |
| 2026-05-11 15:31 | test/parse: sizeof / nonzero subscript on direct string literal | Ryan Sepassi | 4 | +17 | -0 |
| 2026-05-11 15:25 | asm: phase-2 ISA descriptor table — AsmFlags, aliases, format backfill | Ryan Sepassi | 8 | +1144 | -105 |
| 2026-05-11 15:10 | parse: fuse adjacent string literals at the pp-pull boundary | Ryan Sepassi | 5 | +133 | -4 |
| 2026-05-11 14:56 | asm: phase-1 test harness scaffolding (test/asm + cg path S) | Ryan Sepassi | 17 | +1507 | -30 |
| 2026-05-11 14:54 | parse: aggregate-by-value params and returns — 2-reg DIRECT and INDIRECT copy | Ryan Sepassi | 21 | +226 | -19 |
| 2026-05-11 14:34 | link: LinkArchDesc vtable + obj-format C-name policy + ISA encoder lifts | Ryan Sepassi | 23 | +996 | -213 |
| 2026-05-11 12:37 | libc: rv64/x64 GOT codegen + PIE link plumbing — full 10-cell test-libc green | Ryan Sepassi | 14 | +475 | -23 |
| 2026-05-11 03:15 | libc: Linux hosted shim + test-libc 9-cell matrix (musl/glibc × x64/aa64/rv64) | Ryan Sepassi | 11 | +790 | -140 |
| 2026-05-11 02:41 | arch/aa64: GOT addressing for extern data on Mach-O; build hosted shim with cfree | Ryan Sepassi | 6 | +141 | -29 |
| 2026-05-11 01:56 | parse: route &&/|| result through a temp slot so if-cond sees merged value | Ryan Sepassi | 2 | +62 | -13 |
| 2026-05-11 01:37 | libc: platform-agnostic headers + macOS hosted shim + test-libc harness | Ryan Sepassi | 34 | +1201 | -7 |
| 2026-05-10 23:07 | link/macho: test-link Path E green on aa64-macho — 103/103 | Ryan Sepassi | 3 | +177 | -21 |
| 2026-05-10 23:06 | x64 codegen complete | Ryan Sepassi | 3 | +1007 | -306 |
| 2026-05-10 22:30 | link/macho: test-link Path E on aa64-macho — 101/103 passing | Ryan Sepassi | 13 | +476 | -111 |
| 2026-05-10 22:13 | arch/x64: codegen for Linux ELF — A–D spine + most of E–H, P, Q | Ryan Sepassi | 4 | +2172 | -254 |
| 2026-05-10 21:58 | doc: rm 7 stale design docs + strip stale references | Ryan Sepassi | 26 | +28 | -2298 |
| 2026-05-10 21:51 | parse: clear all 20 §6.2–§6.9 status-list failures | Ryan Sepassi | 2 | +593 | -617 |
| 2026-05-10 21:47 | link/x64: test-link green — PLT32, 32S, TLS LE, ifunc stub | Ryan Sepassi | 4 | +61 | -6 |
| 2026-05-10 21:32 | link/macho: dyld-loadable MH_EXECUTE writer + .tbd / dylib DSO inputs | Ryan Sepassi | 12 | +2784 | -35 |
| 2026-05-10 21:04 | build/driver: make self target + filename in diagnostics | Ryan Sepassi | 12 | +202 | -42 |
| 2026-05-10 20:57 | test/parse: §6.2–§6.9 corpus expansion — 80 new rows + status sweep | Ryan Sepassi | 164 | +494 | -11 |
| 2026-05-10 20:38 | arch/cg: thread RegClass through free_reg | Ryan Sepassi | 6 | +48 | -34 |
| 2026-05-10 20:29 | link/rv64: TLS LE — clamp SF_TLS PT_LOAD memsz to filesz | Ryan Sepassi | 3 | +29 | -25 |
| 2026-05-10 20:23 | link/test: Mach-O read + JIT — test-link path R+J green on aa64-macho | Ryan Sepassi | 12 | +203 | -24 |
| 2026-05-10 20:19 | arch/rv64: variadic save area atop frame, contiguous with stack args | Ryan Sepassi | 2 | +46 | -61 |
| 2026-05-10 20:12 | cg/parse: C atomics — full aarch64 lowering + CAS/fence parser surface | Ryan Sepassi | 30 | +357 | -28 |
| 2026-05-10 20:09 | arch/abi/cg: rv64 — real LP64D codegen mirroring aa64 | Ryan Sepassi | 9 | +2969 | -248 |
| 2026-05-10 19:59 | obj/test: macho roundtrip — fix read/emit fidelity, wire test-link path R | Ryan Sepassi | 11 | +420 | -31 |
| 2026-05-10 19:58 | parse/cg: variadic lowering + FP arithmetic dispatch | Ryan Sepassi | 31 | +389 | -41 |
| 2026-05-10 19:16 | link: rv64 — reloc applies, ifunc stub, kernel_image case + per-arch harness | Ryan Sepassi | 9 | +491 | -51 |
| 2026-05-10 19:09 | parse: array-size cexpr, sizeof unary, bitfield as storage unit | Ryan Sepassi | 1 | +22 | -21 |
| 2026-05-10 19:07 | obj/abi: MULTIOBJ Phase 2 — Mach-O writer/reader (MH_OBJECT, arm64) | Ryan Sepassi | 16 | +1711 | -187 |
| 2026-05-10 18:53 | parse: Phase 9 — __builtin_* / __atomic_* routing | Ryan Sepassi | 14 | +375 | -21 |
| 2026-05-10 18:46 | ASM.md plan | Ryan Sepassi | 1 | +487 | -0 |
| 2026-05-10 18:44 | obj/abi/link: MULTIOBJ Phase 1 — Mach-O seams + plan | Ryan Sepassi | 14 | +1190 | -80 |
| 2026-05-10 18:37 | parse: Phase 8 — qualifiers, alignment, typedefs | Ryan Sepassi | 4 | +316 | -41 |
| 2026-05-10 18:31 | obj: ELF x64 — TLS and GOT-relax reloc coverage | Ryan Sepassi | 4 | +96 | -0 |
| 2026-05-10 18:28 | obj: ELF rv64 — full reloc coverage, e_flags round-trip | Ryan Sepassi | 9 | +278 | -3 |
| 2026-05-10 18:22 | parse: Phase 7 — type breadth, conversions, suffix-typed literals | Ryan Sepassi | 6 | +281 | -31 |
| 2026-05-10 18:20 | test: parameterize harnesses by CFREE_TEST_ARCH | Ryan Sepassi | 20 | +308 | -107 |
| 2026-05-10 17:55 | arch/abi/obj: MULTIARCH Phase 2 — rv64 stubs | Ryan Sepassi | 13 | +730 | -5 |
| 2026-05-10 17:52 | parse: Phase 6 — initializers (designators, string init, compound literals) | Ryan Sepassi | 3 | +538 | -53 |
| 2026-05-10 17:46 | test: fix path-E exec on Darwin and trim default opt-levels | Ryan Sepassi | 2 | +26 | -14 |
| 2026-05-10 17:41 | arch/abi/obj: MULTIARCH Phase 2 — multi-arch seams + x64 stubs | Ryan Sepassi | 21 | +964 | -214 |
| 2026-05-10 17:35 | parse: Phase 5 — switch, goto, do-while, labels | Ryan Sepassi | 3 | +305 | -15 |
| 2026-05-10 17:34 | test: MULTIARCH Phase 1 — per-arch exec helper, x64 smoke | Ryan Sepassi | 9 | +737 | -155 |
| 2026-05-10 17:24 | opt: Phase 3 — IR-native recording, SSA construction, dry-run | Ryan Sepassi | 7 | +1966 | -1716 |
| 2026-05-10 16:10 | parse: Phase 4 — globals, storage classes, linkage, static locals | Ryan Sepassi | 3 | +378 | -24 |
| 2026-05-10 15:53 | parse: Phase 3 — struct/union/enum, member access, _Generic | Ryan Sepassi | 5 | +921 | -37 |
| 2026-05-10 14:20 | cg: CG-driven spill/reload on a finite physical-register pool | Ryan Sepassi | 7 | +1048 | -328 |
| 2026-05-10 13:14 | test: print pass/fail summary as the last line in every run script | Ryan Sepassi | 12 | +54 | -43 |
| 2026-05-10 13:03 | parse: Phase 2 — pointer/array decls, decay, subscript, brace init, VLA | Ryan Sepassi | 4 | +599 | -80 |
| 2026-05-10 12:26 | parse: Phase 1 — calls, params, multi-fn TUs, &&/||/?:, sizeof/cast | Ryan Sepassi | 5 | +1293 | -212 |
| 2026-05-10 12:23 | opt: record-replay wrapper + tape printer + constfold (phases 0-2) | Ryan Sepassi | 5 | +2164 | -158 |
| 2026-05-10 04:46 | test/parse: extend corpus to §6.2–§6.9 + builtins, clang-verified | Ryan Sepassi | 176 | +781 | -0 |
| 2026-05-10 03:42 | test/parse: author corpus cases for §6.5–§6.9 | Ryan Sepassi | 109 | +216 | -0 |
| 2026-05-10 01:37 | parse/cg/decl: scaffold C front-end vertical, pass spine corpus | Ryan Sepassi | 6 | +2346 | -28 |
| 2026-05-10 01:01 | link: place .dynamic in a PF_R+W segment for glibc compatibility | Ryan Sepassi | 3 | +66 | -37 |
| 2026-05-10 01:00 | link: linker script support (kernel.lds subset) + case 35 | Ryan Sepassi | 17 | +1600 | -50 |
| 2026-05-10 00:43 | test: batch path-E podman runs and cache start.o | Ryan Sepassi | 4 | +469 | -160 |
| 2026-05-10 00:42 | test/libc: split harness into shared cases + musl/glibc runners | Ryan Sepassi | 21 | +746 | -355 |
| 2026-05-10 00:22 | dwarf: producer + consumer + path-W harness (phases 0-3) | Ryan Sepassi | 34 | +8493 | -199 |
| 2026-05-10 00:20 | link: dynamic linking phase 5 (PLT body + import-reloc rewriting) | Ryan Sepassi | 5 | +486 | -797 |
| 2026-05-10 00:09 | OPT.md plan | Ryan Sepassi | 1 | +437 | -0 |
| 2026-05-09 23:59 | test/parse: scaffold file-driven C parser harness | Ryan Sepassi | 18 | +1088 | -2 |
| 2026-05-09 23:47 | link: dynamic linking phases 4+6 (synthetic dyn-tables, ET_DYN emit) | Ryan Sepassi | 8 | +1499 | -98 |
| 2026-05-09 23:23 | DWARF plan | Ryan Sepassi | 1 | +689 | -0 |
| 2026-05-09 23:22 | link: dynamic linking phases 1-3 (DSO read, driver, resolve) | Ryan Sepassi | 15 | +914 | -183 |
| 2026-05-09 23:15 | test/cg: scaffold Group P (set_loc/debug) + W path | Ryan Sepassi | 7 | +455 | -7 |
| 2026-05-09 23:03 | make format | Ryan Sepassi | 186 | +32505 | -30653 |
| 2026-05-09 22:58 | musl dynamic link test | Ryan Sepassi | 3 | +595 | -44 |
| 2026-05-09 22:58 | link: STT_GNU_IFUNC in static ET_EXEC via libcfree_rt preinit | Ryan Sepassi | 10 | +272 | -116 |
| 2026-05-09 22:56 | cg/aa64: implement Groups J, K, L (varargs, atomics, intrinsics) | Ryan Sepassi | 2 | +751 | -33 |
| 2026-05-09 22:46 | core: introduce SegVec; migrate typed object/image/linker tables | Ryan Sepassi | 11 | +878 | -501 |
| 2026-05-09 22:36 | cg/aa64: implement Groups N, O, Q (TLS, globals, multi-function) | Ryan Sepassi | 2 | +172 | -8 |
| 2026-05-09 22:21 | test/cg: register Groups N, O, Q (TLS, globals, multi-function) | Ryan Sepassi | 6 | +1316 | -3 |
| 2026-05-09 22:17 | cg/aa64: implement Groups G, H, I (calls, control flow, alloca) | Ryan Sepassi | 1 | +279 | -49 |
| 2026-05-09 22:15 | test/cg: register Groups J, K, L (varargs, atomics, intrinsics) | Ryan Sepassi | 6 | +1392 | -3 |
| 2026-05-09 22:14 | core: extract bytes/util/vec/hashmap and zalloc/buf-walk helpers | Ryan Sepassi | 22 | +507 | -610 |
| 2026-05-09 22:01 | test/cg: split cases.c into per-group files | Ryan Sepassi | 14 | +3535 | -3336 |
| 2026-05-09 21:49 | test/cg: register Groups G, H, I (calls, control flow, alloca) | Ryan Sepassi | 4 | +2005 | -17 |
| 2026-05-09 21:47 | link: TLS local-exec, IFUNC, and exe symtab / build-id / .eh_frame | Ryan Sepassi | 14 | +1435 | -166 |
| 2026-05-09 21:36 | cg/aa64: implement Groups D, E, F (control flow, conv, memory) | Ryan Sepassi | 2 | +454 | -18 |
| 2026-05-09 21:23 | test/cg: register Groups D, E, F (compare/branch, conv, memory) | Ryan Sepassi | 2 | +963 | -3 |
| 2026-05-09 21:07 | cg/aa64: bring up frames, params, calls, FP — pass Groups A/B/C | Ryan Sepassi | 2 | +985 | -132 |
| 2026-05-09 21:06 | link: static musl on aarch64 — link, run, hello | Ryan Sepassi | 18 | +624 | -150 |
| 2026-05-09 20:36 | arch/aa64: factor encodings into shared ISA descriptors | Ryan Sepassi | 3 | +476 | -85 |
| 2026-05-09 20:13 | link: implement --gc-sections (entry/init-fini/RETAIN/start-stop roots) | Ryan Sepassi | 40 | +678 | -78 |
| 2026-05-09 20:10 | cg: bring up type/abi spine and pass Group A on AArch64 | Ryan Sepassi | 7 | +783 | -17 |
| 2026-05-09 19:49 | test/cg: expand A/B/C corpus; harness now drives real type+abi APIs | Ryan Sepassi | 5 | +1262 | -287 |
| 2026-05-09 19:43 | link: archive ingestion, static GOT, and ar BSD long-name fix | Ryan Sepassi | 8 | +646 | -106 |
| 2026-05-09 19:24 | obj: preserve format-specific sh_type/sh_flags across roundtrip | Ryan Sepassi | 5 | +64 | -14 |
| 2026-05-09 19:24 | test/elf: expand corpus across reloc, section, symbol, and bad/ axes | Ryan Sepassi | 46 | +478 | -0 |
| 2026-05-09 19:22 | cg: add cg_tail_call and CG_CALL_TAIL flag on CGCallDesc | Ryan Sepassi | 2 | +20 | -0 |
| 2026-05-09 19:18 | test-link: add filters, per-path timing; fix slow podman exec path | Ryan Sepassi | 1 | +48 | -17 |
| 2026-05-09 19:09 | test-link: move negative tests to bad/ dir; drop link_fail marker | Ryan Sepassi | 6 | +130 | -50 |
| 2026-05-09 19:07 | elf: aarch64 TLSLE reloc roundtrip support | Ryan Sepassi | 4 | +59 | -0 |
| 2026-05-09 19:04 | test-elf: scope to ELF fidelity only; fix test-link R-path no-op | Ryan Sepassi | 20 | +113 | -660 |
| 2026-05-09 18:56 | elf: fix 09_ifunc, 13_comdat, mark 06_tls xfail | Ryan Sepassi | 7 | +108 | -4 |
| 2026-05-09 18:43 | execmem: dual-mapping JIT regions for strict W^X | Ryan Sepassi | 6 | +525 | -95 |
| 2026-05-09 18:17 | test-ar-driver | Ryan Sepassi | 9 | +205 | -2 |
| 2026-05-09 18:14 | ar verbose support | Ryan Sepassi | 2 | +91 | -32 |
| 2026-05-09 18:08 | driver --help | Ryan Sepassi | 9 | +644 | -51 |
| 2026-05-09 18:01 | lib: route exec memory and current-time through host CfreeEnv vtables | Ryan Sepassi | 11 | +362 | -81 |
| 2026-05-09 17:53 | emu: implement cfree_emu_run/new/step/lookup/free with stubbed deps | Ryan Sepassi | 12 | +1462 | -15 |
| 2026-05-09 17:46 | link: advance JIT/exec linker; fix build staleness masking test results | Ryan Sepassi | 15 | +531 | -67 |
| 2026-05-09 17:35 | emu: scaffold cfree emu driver and stubbed public API | Ryan Sepassi | 5 | +362 | -1 |
| 2026-05-09 16:58 | test/cg: scaffold codegen test harness and minimal AArch64 backend | Ryan Sepassi | 13 | +2107 | -9 |
| 2026-05-09 16:02 | test/link: add unified linker and JIT behavioral test corpus | Ryan Sepassi | 60 | +1123 | -4 |
| 2026-05-09 15:32 | pp: implement C11 preprocessor (translation phase 4) | Ryan Sepassi | 5 | +2894 | -23 |
| 2026-05-09 14:01 | test/pp: rewrite corpus as layered, clang-validated suite | Ryan Sepassi | 206 | +733 | -41 |
| 2026-05-09 12:00 | test/elf: extend corpus with symbol, section, and behavioral cases | Ryan Sepassi | 29 | +624 | -36 |
| 2026-05-09 11:30 | lex: implement line splicing and header-name lexing | Ryan Sepassi | 4 | +142 | -20 |
| 2026-05-09 11:15 | driver: update ar, cc, ld subcommands and Makefile | Ryan Sepassi | 4 | +212 | -11 |
| 2026-05-09 11:15 | api: add ar, detect, lifecycle, stubs, writer_mem; update pipeline | Ryan Sepassi | 7 | +1941 | -345 |
| 2026-05-09 11:15 | link: add linker with ELF, JIT, layout, and reloc support | Ryan Sepassi | 6 | +1792 | -0 |
| 2026-05-09 11:15 | obj: add ELF read/emit and object file support with ELF tests | Ryan Sepassi | 23 | +3026 | -0 |
| 2026-05-09 11:15 | lex: add lexer implementation and lex/pp tests | Ryan Sepassi | 52 | +1812 | -0 |
| 2026-05-09 11:15 | core: add arena, buf, diag, pool, source implementations | Ryan Sepassi | 8 | +827 | -8 |
| 2026-05-09 00:24 | C11 std docs | Ryan Sepassi | 4 | +12375 | -0 |
| 2026-05-09 00:23 | DESIGN.md update | Ryan Sepassi | 1 | +27 | -9 |
| 2026-05-09 00:19 | src: pipeline and link updates | Ryan Sepassi | 2 | +314 | -386 |
| 2026-05-09 00:19 | driver: subcommand updates | Ryan Sepassi | 9 | +1528 | -291 |
| 2026-05-09 00:19 | include: API updates | Ryan Sepassi | 1 | +393 | -144 |
| 2026-05-08 23:59 | driver: cflags/lib_resolve/target split, dbg subcommand, expanded ld/cc/objdump | Ryan Sepassi | 14 | +3966 | -446 |
| 2026-05-08 23:59 | src: JIT session, debug info, target pic/code-model plumbing | Ryan Sepassi | 10 | +716 | -99 |
| 2026-05-08 23:59 | include/cfree.h: JIT sessions, debug info, target pic/code-model | Ryan Sepassi | 1 | +637 | -17 |
| 2026-05-08 13:03 | cfree_obj_open/query, cfree_ar_iter, cfree_detect_fmt; driver objdump + ar | Ryan Sepassi | 15 | +1272 | -43 |
| 2026-05-08 05:50 | driver wired to cfree_run; libc isolated to env.c | Ryan Sepassi | 9 | +803 | -81 |
| 2026-05-08 04:37 | include/cfree.h public API + driver/ split | Ryan Sepassi | 23 | +1392 | -795 |
| 2026-05-08 01:34 | rt/Makefile | Ryan Sepassi | 8 | +214 | -225 |
| 2026-05-08 00:52 | driver/pipeline.h,c | Ryan Sepassi | 19 | +945 | -101 |
| 2026-05-08 00:39 | Create rt/ dir | Ryan Sepassi | 61 | +0 | -0 |
| 2026-05-07 21:52 | DESIGN.md and interfaces | Ryan Sepassi | 34 | +3106 | -157 |
| 2026-05-07 21:10 | stdcoro asymmetric coro_t | Ryan Sepassi | 14 | +403 | -160 |
| 2026-05-07 20:47 | setjmp.h stdcoro.h | Ryan Sepassi | 14 | +1548 | -40 |
| 2026-05-07 20:14 | setjmp.h | Ryan Sepassi | 3 | +40 | -0 |
| 2026-05-07 18:32 | lib/ consolidation into fewer files and exhaustive build.sh via clang | Ryan Sepassi | 151 | +4042 | -5163 |
| 2026-05-07 18:15 | make compiler-rt templates re-includable; add build.sh | Ryan Sepassi | 59 | +1205 | -138 |
| 2026-05-07 17:29 | README | Ryan Sepassi | 1 | +25 | -0 |
| 2026-05-07 17:27 | compiler_rt | Ryan Sepassi | 155 | +7597 | -0 |
| 2026-05-07 16:22 | assert.h, stdatomic.h | Ryan Sepassi | 5 | +387 | -100 |
| 2026-05-07 16:05 | cfree assumptions | Ryan Sepassi | 5 | +227 | -242 |
| 2026-05-07 15:49 | cfree freestanding headers | Ryan Sepassi | 11 | +596 | -0 |