kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

commit 71f06498a9a5b3f6eafdd71b49d3bed19615bc6a
parent 30d33c176ededa9a33f7bcd0e8c13473ff10ff46
Author: Ryan Sepassi <rsepassi@gmail.com>
Date:   Wed, 10 Jun 2026 06:54:41 -0700

doc(TODO): drop 5 entries already fixed in prior cleanup waves

B.5 (register_at_public), C.4 (rv32 reloc/PLT), C.5 (RISC-V float-abi
e_flags), F.2 (ELF strtab builder), F.4 (dist path-join) were all
completed in commits 30d33c17 / cb415ed9 but their backlog entries were
never removed. Verified against current code.

Diffstat:
Mdoc/plan/TODO.md | 15---------------
1 file changed, 0 insertions(+), 15 deletions(-)

diff --git a/doc/plan/TODO.md b/doc/plan/TODO.md @@ -106,17 +106,6 @@ Add new deferred fixes below as they are discovered. unify, behavior and add miscompile risk in a hot path. Do **A.3** first (make the three staging policies identical), then a shared `native_asm_bind_optimizer_operands` becomes safe. (The -O0 direct path is already shared via `native_asm_bind_direct_operands`.) -- **B.5 — `register_at_public` dedup.** The three arch `register_at_public` wrappers are - near-identical (differ only by the per-arch `register_iter_get` callee), but the clean - shared home needs `src/arch/arch.h` (the `ArchImpl.register_at` field signature) + - `include/kit/arch.h` (`KitArchReg`). (`backend_make`/`semantic_target_new` already - deduped into `cg/native_direct_target`.) -- **C.4 — rv32 ELF reloc map / PLT clone rv64.** `src/obj/elf/reloc_riscv32.c` clones the - rv64 reloc map (only ~3 cases differ); the rv32 PLT/IPLT emitters clone rv64 (one - LW-vs-LD instruction). Parameterize on word size. -- **C.5 — RISC-V float-ABI → `e_flags` mapping** is inlined in both the ET_REL writer - (`src/obj/elf/emit.c:698-710`) and the ET_EXEC writer (`src/obj/elf/link.c:1556`). - Extract one helper; don't encode arch direction in the format-generic ELF layer. - **E.3 — OS-neutral env code duplicated** between `driver/env/posix.c` and `windows.c` (stdio writer + thunks, `env→{context,jit_host,dbg_host}` trio, dir-handle structs + read/close, `read_stdin` grow/shrink). Move to `driver/env/common.c`. **Blocked on a @@ -125,15 +114,11 @@ Add new deferred fixes below as they are discovered. (`cc_default_obj_path_for_name`, `cc_dep_default_target`, `build_default_obj_name`); its home is the driver util layer (`driver/`), not `link_inputs.c`. (The link pipeline + flag-parse blocks were assessed and are not byte-identical — different option structs.) -- **F.2 — ELF strtab builder.** `objbb_append_str`'s dedup strtab builder is reimplemented - as `StrBuilder`/`strtab_add` ~4× in `src/obj/elf/link.c`. Use the shared builder. - **F.3 — dwarf attr-skip.** The `dw_skip_die_attrs` loop is inlined ~6× in the dwarf reader (`src/debug/dwarf_open.c` / `dwarf_die.c`); collapse the pure-skip sites onto the existing helper (leave the read+skip two-pass sites alone). (The LEB128 fork is done: `form_uleb_inline`/`form_sleb_inline` in `debug_form.c` now back the exprloc builder in `debug_emit.c`.) -- **F.4 — path-join triplicated** (2 copies in one `src/dist/` file). (The `ctx->diag` - varargs wrapper part of this finding is done — now `kit_ctx_diagf` in `core/diag`.) - **G.4 — RV disassembler dispatches sub-format by `strcmp`** on the mnemonic display string (`src/arch/riscv/disasm.c`) rather than an encoding tag. - **I.1 — C parser shadow stack** is a 3-array struct-of-arrays