The branch DAG
Fifteen owning branches, three generated joins, one pinned upstream base.
The port is maintained as a graph of reviewable slices rather than a single branch. Each owning branch carries one concern and is compared against its declared base — the edge above it in the graph — instead of against upstream as one 170-file diff. Of that diff’s 122,000 added lines, about 104,500 sit in the vendored ARM64 decoder directory; the port’s own code is about 18,000 lines. The joins are generated: they are recreated from their inputs, never committed to directly. Every solid box below links to the GitHub comparison for exactly that slice.
Solid boxes are owning branches; each links to the GitHub comparison against its declared base. Dashed boxes are generated joins, recreated from their inputs. Edges flow downward, from the pinned upstream commit to the distribution branch.
Every branch
| Branch | Kind | Builds on | Diff | Carries | |
|---|---|---|---|---|---|
portable-host-footing | owning | base-7a5a649b | compare ↗ | +23 −9 | Portable host build footing, including non-x64 host guards and the base platform plumbing needed by the maintained Mac stack. |
x64-cpuid-host-cleanup | owning | portable-host-footing | compare ↗ | +24 −21 | Keeps host CPUID compilation and execution explicitly x64-only. |
mac/appkit-shell | owning | x64-cpuid-host-cleanup | compare ↗ | +4,497 −29 | AppKit shell and bundle integration, native menu and window behavior, file dialogs, input handling, and the Open Crash Dump menu command. |
mac/coretext-metal | owning | mac/appkit-shell | compare ↗ | +2,287 −57 | CoreText font provider and Metal renderer, including backing-scale, Geo3D, blur, and resize behavior. |
portable/dwarf-rdi-correctness | owning | base-7a5a649b | compare ↗ | +79 −27 | DWARF-to-RDI converter correctness fixes on the promoted upstream converter. |
portable/macho-dwarf-tools | owning | portable/dwarf-rdi-correctness | compare ↗ | +629 −15 | Mach-O DWARF section extraction, radbin Mach-O and dSYM discovery, and Mach-O binary-section translation for RDI. |
integrate/darwin-process-control-base | join | mac/coretext-metal + portable/macho-dwarf-tools | — | Joins the Mac shell and renderer with Mach-O DWARF tooling before Darwin process control. | |
darwin/process-control-x64 | owning | integrate/darwin-process-control-base | compare ↗ | +5,313 −133 | Darwin x64 process control, Mach exceptions, dyld and module handling, compact unwind, data breakpoints, and process-control hardening. |
portable/arm64-core | owning | base-7a5a649b | compare ↗ | +1,748 −10 | Portable ARM64 architecture footing, trap and control-flow support, RDI and DWARF mappings, and vector-register metadata. |
integrate/darwin-arm64-runtime-base | join | darwin/process-control-x64 + portable/arm64-core | — | Joins Darwin process control with portable ARM64 core support before the Darwin ARM64 runtime owner. | |
darwin/arm64-runtime | owning | integrate/darwin-arm64-runtime-base | compare ↗ | +1,812 −49 | Darwin ARM64 registers, traps, dyld fixups, compact unwind and fallback, function-start reads, continuation traps, and runtime tests. |
darwin/target-call-tls | owning | darwin/arm64-runtime | compare ↗ | +954 −16 | Darwin target-thread call machinery and status-bearing platform TLS resolution. |
portable/posix-base-parity | owning | base-7a5a649b | compare ↗ | +18 −3 | POSIX base and file parity, including file-read EOF guards, directory iteration hardening, and write-open truncation. |
portable/posix-linker-helper-parity | owning | portable/posix-base-parity | compare ↗ | +24 −8 | POSIX linker and helper parity needed for portable linker torture coverage. |
portable/arm64-disasm | owning | portable/arm64-core | compare ↗ | +104,968 −12 | ARM64 disassembler and lexer integration, invalid-instruction continuation, range clamping, and focused tests. |
portable/metagen-preserve-line-endings | owning | base-7a5a649b | compare ↗ | +128 −30 | Defensive metagen policy that preserves each existing generated file's LF or CRLF convention and avoids regeneration-only diff churn. |
portable/crash-dump-format-guards | owning | base-7a5a649b | compare ↗ | +21 −4 | Rejects unsupported or incomplete crash-dump formats before creating a process entity or NewProc event. |
rjw-mac-integration | join | 5 branches | compare ↗ | +122,447 −344 | Final mac8 distribution and integration branch containing every maintained mac8 owning branch. |
Diffs are each branch against its declared base.
The arm64-disasm figure is almost entirely the vendored
Binary Ninja decoder: about 100,000 lines of unmodified upstream
source plus a 4,000-line generated prefix header.
Generations
The whole DAG is rebased onto a newer pinned upstream commit as a unit — a generation. Old generations are archived intact rather than rewritten, so any past state of the port can still be inspected.
| Generation | Upstream base | Begun | Status |
|---|---|---|---|
mac5 | 58e64309 | — | frozen pre-rebase reference |
mac6 | c6a4e4c0 | June 2026 | superseded |
mac7 | 16c447bb | July 2026 | superseded |
mac8 | 7a5a649b | August 2026 | active |