Skip to content

Consume external cl-cc-ast and cl-cc-type in the Nix build#7

Open
takeokunn wants to merge 1 commit into
mainfrom
split/externalize-ast-type-clean
Open

Consume external cl-cc-ast and cl-cc-type in the Nix build#7
takeokunn wants to merge 1 commit into
mainfrom
split/externalize-ast-type-clean

Conversation

@takeokunn

Copy link
Copy Markdown
Collaborator

First integration step of the cl-cc repository split (design: docs/repo-split-design.md).

What

Wire the two freshly-extracted subsystems — nerima-lisp/cl-cc-ast and nerima-lisp/cl-cc-type — as flake inputs, built with sbcl.buildASDFSystem and injected into the internal ASDF system graph under their original names via an externalCcSystems overlay on the productionAsdfSystems fixpoint. Every consuming deps = [ "cl-cc-ast" … ] / "cl-cc-type" resolves to the external derivation with no change to the consuming specs.

  • flake.nix: cl-cc-ast / cl-cc-type inputs (+ clCcAst / clCcType derivations)
  • nix/asdf-systems.nix: remove ast/type from leafSpec, overlay externals into the fixpoint, add them to the umbrella deps

Verified

  • .#cl-cc-parse (ast dependent) builds against external cl-cc-ast
  • .#cl-cc-optimize (type dependent) builds against external cl-cc-type
  • .#cl-cc umbrella builds against both; closure references both external systems

Not in this PR (follow-up)

Physically removing packages/ast + packages/type needs:

  • self-host source enumeration rework (tests/e2e/selfhost-test-support.lisp reads packages/ast/ sources)
  • prolog-tools coverage check (nix/checks.nix) repointed off packages/ast
  • a full self-host e2e run

Branched from clean main (a5b8f01); independent of unrelated in-progress working-tree changes.

Wire nerima-lisp/cl-cc-ast and nerima-lisp/cl-cc-type (the first two
repository-split subsystems) as flake inputs, built with sbcl.buildASDFSystem
and injected into the internal system graph under their original names via an
externalCcSystems overlay on the productionAsdfSystems fixpoint. Every
consuming spec's 'deps = [ "cl-cc-ast" ... ]' / '"cl-cc-type"' resolves to
the external derivation with no change.

Verified: .#cl-cc-parse (ast dep) and .#cl-cc-optimize (type dep) build
against the external derivations.

Physically removing packages/ast + packages/type is a follow-up: it needs the
self-host source enumeration (tests/e2e/selfhost-test-support.lisp) and the
prolog-tools coverage check (nix/checks.nix) reworked, plus a selfhost e2e run.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants