Skip to content

meta: the long-horizon program — native backends, incremental, daemon #154

Description

@zackees

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:

Decisions already made — do not re-litigate

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).

Track B — macOS native Mach-O

Track C — Incremental linking

This is the product thesis, and it is deliberately last.

Track D — Linker daemon

Sequencing

  1. meta: burn-down — unblock soldr's default linker (#123) and clear the debt around it #153 first. The near-term gate (Polylinker no-gaps gate: classify every flag, route by target not host, prove coverage before reld becomes soldr's default #123) is what unblocks a real user (soldr), and it keeps the native engine honest, which every later track depends on.
  2. Two exceptions may run in parallel: DECISION: two contradictions in DESIGN.md that block incremental #10, because it is a decision and its absence corrupts later design; and the llvm-ld repo work, which is a separate repository with its own CI and is already moving.
  3. 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.

  1. Close Meta: road to a working cross-platform link (Windows / Linux / macOS) #2, or rewrite its status section?
  2. Is P3: PE/COFF backend, MinGW (windows-gnu) ABI #7 superseded by the Research: Windows PE/COFF fast-linking strategy - optimize LLD-COFF fork vs retrofit COFF into Wild #91 LLD-COFF decision, or re-scoped to MinGW ABI?
  3. Is the daemon (Linker daemon: thin reld-link client + broker-versioned daemon holding the object graph (running-process broker v2, zccache-embedded instrumentation) #19) still in the product, given soldr already drives reld as a subprocess?
  4. 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.

Checklist

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions