markdown · 2675 bytes Raw Blame History

afs-ld Sprint Index

32 sprints across 10 phases. Small bites, clear milestones, testable deliverables at every stage. Each sprint is independently reviewable and mergeable; every sprint that lands new surface area also lands corpus fixtures and differential coverage.

Phase 0 — Scaffolding

  • Sprint 0 — Scaffolding, References, Harness

Phase 1 — Mach-O Reading

  • Sprint 1 — MH_OBJECT Header & Load Commands
  • Sprint 2 — Sections, Symbols, String Tables
  • Sprint 3 — Relocations (Read-Side)

Phase 2 — Archives & Dylibs

Phase 3 — Symbol Resolution

Phase 4 — Output Construction (MH_EXECUTE and MH_DYLIB both first-class)

  • Sprint 10 — Output Segment & Section Layout (dylib-aware)
  • Sprint 11 — Core Relocation Application (ARM64)
  • Sprint 12 — GOT, Stubs, Lazy Pointers
  • Sprint 13 — TLV Relocations
  • Sprint 14 — LC_SYMTAB / LC_DYSYMTAB / String Table

Phase 5 — Dynamic Linker Metadata

Phase 6 — First End-to-End

Phase 7 — CLI & Driver Integration

Phase 8 — Runtime Compatibility

Phase 9 — Advanced Features

Phase 10 — Production Hardening

View source
1 # afs-ld Sprint Index
2
3 32 sprints across 10 phases. Small bites, clear milestones, testable deliverables at every stage. Each sprint is independently reviewable and mergeable; every sprint that lands new surface area also lands corpus fixtures and differential coverage.
4
5 ## Phase 0 — Scaffolding
6 - [Sprint 0](sprint00.md) — Scaffolding, References, Harness
7
8 ## Phase 1 — Mach-O Reading
9 - [Sprint 1](sprint01.md) — MH_OBJECT Header & Load Commands
10 - [Sprint 2](sprint02.md) — Sections, Symbols, String Tables
11 - [Sprint 3](sprint03.md) — Relocations (Read-Side)
12
13 ## Phase 2 — Archives & Dylibs
14 - [Sprint 4](sprint04.md) — Static Archives (ar)
15 - [Sprint 5](sprint05.md) — Dylibs (MH_DYLIB binary)
16 - [Sprint 6](sprint06.md) — TAPI TBD Text Stubs
17
18 ## Phase 3 — Symbol Resolution
19 - [Sprint 7](sprint07.md) — Symbol Model & Table
20 - [Sprint 8](sprint08.md) — Name Resolution Pass
21 - [Sprint 9](sprint09.md) — Subsections-via-Symbols Atomization
22
23 ## Phase 4 — Output Construction (MH_EXECUTE and MH_DYLIB both first-class)
24 - [Sprint 10](sprint10.md) — Output Segment & Section Layout (dylib-aware)
25 - [Sprint 11](sprint11.md) — Core Relocation Application (ARM64)
26 - [Sprint 12](sprint12.md) — GOT, Stubs, Lazy Pointers
27 - [Sprint 13](sprint13.md) — TLV Relocations
28 - [Sprint 14](sprint14.md) — LC_SYMTAB / LC_DYSYMTAB / String Table
29
30 ## Phase 5 — Dynamic Linker Metadata
31 - [Sprint 15](sprint15.md) — Classic LC_DYLD_INFO Opcodes
32 - [Sprint 15.5](sprint15_5.md) — Chained Fixups (LC_DYLD_CHAINED_FIXUPS)
33 - [Sprint 16](sprint16.md) — LC_FUNCTION_STARTS & LC_DATA_IN_CODE
34 - [Sprint 17](sprint17.md) — Unwind Info
35
36 ## Phase 6 — First End-to-End
37 - [Sprint 18](sprint18.md) — HELLO WORLD MILESTONE (Executable)
38 - [Sprint 18.5](sprint18_5.md) — HELLO LIBRARY MILESTONE (Dylib)
39
40 ## Phase 7 — CLI & Driver Integration
41 - [Sprint 19](sprint19.md) — CLI Surface + Diagnostics (-map, -why_live)
42 - [Sprint 20](sprint20.md) — Driver Swap
43
44 ## Phase 8 — Runtime Compatibility
45 - [Sprint 21](sprint21.md) — Runtime Archive Linking
46 - [Sprint 22](sprint22.md) — Code Signature (Ad-Hoc)
47
48 ## Phase 9 — Advanced Features
49 - [Sprint 23](sprint23.md) — Dead Strip (`-dead_strip`)
50 - [Sprint 24](sprint24.md) — ICF (`-icf=safe`)
51 - [Sprint 25](sprint25.md) — LOH Relaxation
52 - [Sprint 26](sprint26.md) — Thunks for Out-of-Range Branches
53
54 ## Phase 10 — Production Hardening
55 - [Sprint 27](sprint27.md) — Differential Harness vs Apple ld
56 - [Sprint 28](sprint28.md) — Performance & Parallelism
57 - [Sprint 29](sprint29.md) — fortsh Link Audit
58 - [Sprint 30](sprint30.md) — Diagnostics & Polish
59 - [Sprint 31](sprint31.md) — Final Audit