The RAD Debugger on macOS

generation mac8 · upstream base 7a5a649b · september 2026

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.

mac8/base-7a5a649b — the pinned upstream commit mac8/portable-host-footing — compare against its base mac8/ portable-host-footing mac8/portable/dwarf-rdi-correctness — compare against its base mac8/portable/ dwarf-rdi-correctness mac8/portable/arm64-core — compare against its base mac8/portable/ arm64-core mac8/portable/posix-base-parity — compare against its base mac8/portable/ posix-base-parity mac8/portable/metagen-preserve-line-endings — compare against its base mac8/portable/ metagen-preserve-line-endings mac8/portable/crash-dump-format-guards — compare against its base mac8/portable/ crash-dump-format-guards mac8/x64-cpuid-host-cleanup — compare against its base mac8/ x64-cpuid-host-cleanup mac8/portable/macho-dwarf-tools — compare against its base mac8/portable/ macho-dwarf-tools mac8/portable/arm64-disasm — compare against its base mac8/portable/ arm64-disasm mac8/portable/posix-linker-helper-parity — compare against its base mac8/portable/ posix-linker-helper-parity mac8/mac/appkit-shell — compare against its base mac8/mac/ appkit-shell mac8/mac/coretext-metal — compare against its base mac8/mac/ coretext-metal mac8/integrate/ · generated join darwin-process-control-base mac8/darwin/process-control-x64 — compare against its base mac8/darwin/ process-control-x64 mac8/integrate/ · generated join darwin-arm64-runtime-base mac8/darwin/arm64-runtime — compare against its base mac8/darwin/ arm64-runtime mac8/darwin/target-call-tls — compare against its base mac8/darwin/ target-call-tls mac8/rjw-mac-integration — the whole port against upstream mac8/rjw-mac-integration — the distribution branch · generated from every owning branch above

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

BranchKindBuilds onDiffCarries
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.

GenerationUpstream baseBegunStatus
mac5 58e64309 frozen pre-rebase reference
mac6 c6a4e4c0 June 2026 superseded
mac7 16c447bb July 2026 superseded
mac8 7a5a649b August 2026 active