You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One place for the work that comes after the near-term burn-down. Tracks #7, #8, #9, #10, #11, #19 plus the Windows research/implementation chain #91, #95, #96.
mun-lang/lld-rs is prior art, not the base (LLVM-14 era, links every driver).
Track A — Windows native COFF
The active chain. Most of the current motion is in the zackees/llvm-ld repo, which already has merged bootstrap work and its own open issues (llvm-ld#6 Tier 2 LTO corpus, llvm-ld#15 remaining link-speed work).
This is the product thesis, and it is deliberately last.
DECISION: two contradictions in DESIGN.md that block incremental #10 — resolve the two DESIGN.md contradictions that block incremental. This is a decision, not an implementation, and it is cheap; doing it early stops the contradictions propagating into Track A/B design choices.
Then Track A (Windows is the largest user-visible gap and already has a decided strategy), then Track B, then Track C, with Track D slotted once Linux is proven.
Open questions for the owner
Answered: Q2 — #7 closed as superseded. Q3 — the daemon stays in the product, gated on #6. Q4 — Track B stays a goal, gated after Track A. D5 (PDB) — via llvm-ld. Still open: Q1 (#2) and #10.
Does Track B (P4: Mach-O backend, aarch64-apple-darwin #8) stay a goal at all, or is ld64.lld bridging the permanent macOS answer? The same question will eventually apply to Track A once llvm-ld is fast.
Scope
One place for the work that comes after the near-term burn-down. Tracks #7, #8, #9, #10, #11, #19 plus the Windows research/implementation chain #91, #95, #96.
Relationship to the other metas:
zackees/llvm-ldprogram. This meta links to it and does not restate it.crates/reldis 28 lines", "everything else exits 2", the benchmarkreldcolumn readingn/a). reld links real programs on three platforms today. Recommend closing Meta: road to a working cross-platform link (Windows / Linux / macOS) #2 in favor of meta: burn-down — unblock soldr's default linker (#123) and clear the debt around it #153 (near term) and this issue (long horizon), or rewriting its status section. Its D1–D6 decisions are worth preserving wherever it lands.Decisions already made — do not re-litigate
zackees/llvm-ldas a C/C++-only minimal COFF library with a narrow C ABI, keep all Rust in reld, then prove byte-identical EXE/PDB against stock LLD before measuring gains.mun-lang/lld-rsis prior art, not the base (LLVM-14 era, links every driver).Track A — Windows native COFF
The active chain. Most of the current motion is in the
zackees/llvm-ldrepo, which already has merged bootstrap work and its own open issues (llvm-ld#6 Tier 2 LTO corpus, llvm-ld#15 remaining link-speed work).zackees/llvm-ldas a minimal COFF C++ library with mimalloc-pprof. Partly delivered in that repo; reconcile this issue with what has merged there and either close it or list the remainder._vendor/llvm-ldimport, and route Windows through it while keeping the pinnedlld-linkoracle and escape hatch.Track B — macOS native Mach-O
ld64.lldtoday, so this is a performance and independence goal, not a functionality gap. Note Meta: road to a working cross-platform link (Windows / Linux / macOS) #2 D6: ad-hoc code signing is mandatory on Apple Silicon, since unsigned arm64 Mach-O binaries do not execute.Track C — Incremental linking
This is the product thesis, and it is deliberately last.
Track D — Linker daemon
reld-linkclient plus a broker-versioned daemon holding the object graph, with zccache-embedded instrumentation. Mostly orthogonal to Tracks A–C, but it wants a stable object graph underneath it, so it follows Linux being proven (P2: Prove Linux — self-host, corpus pass rate, populate the benchmark column #6) rather than preceding it. Open question: is this still wanted now that soldr drives reld as a subprocess, or does the daemon belong to soldr's side of the boundary?Sequencing
llvm-ldrepo work, which is a separate repository with its own CI and is already moving.Open questions for the owner
Answered: Q2 — #7 closed as superseded. Q3 — the daemon stays in the product, gated on #6. Q4 — Track B stays a goal, gated after Track A. D5 (PDB) — via llvm-ld. Still open: Q1 (#2) and #10.
ld64.lldbridging the permanent macOS answer? The same question will eventually apply to Track A once llvm-ld is fast.Checklist