Skip to content

fix(compiler): keep intrinsics registered across recompilation (#119) - #121

Merged
skydread1 merged 3 commits into
developfrom
fix/intrinsic-registry-defonce
Aug 4, 2026
Merged

fix(compiler): keep intrinsics registered across recompilation (#119)#121
skydread1 merged 3 commits into
developfrom
fix/intrinsic-registry-defonce

Conversation

@skydread1

@skydread1 skydread1 commented Aug 4, 2026

Copy link
Copy Markdown
Member

Closes #119

  • intrinsic-forms becomes a defonce, so recompiling magic.analyzer.intrinsics mid-bootstrap no longer replaces the filled registry with a fresh empty atom.
  • Refreshes the 13 DLLs that were emitted without intrinsics, clojure.walk among them, so its magic-unity Export and magic-unity-dual copies move too.
  • refresh.clj's exclusion list drops from 21 entries to the 9 of the clojure.core family, so check-drift byte-verifies 28 stdlib DLLs instead of 25.
  • Measured effect is in the issue comment: compile time unchanged, clojure.walk faster at run time, and one pre-existing inlining gap surfaced for its own issue.

intrinsic-forms becomes a defonce. build.clj compiles magic.analyzer.intrinsics
13 entries before magic.intrinsics refills it, and the require graph forces that
order, so the plain def rebound the registry to an empty atom and clojure.walk
plus 11 compiler namespaces were emitted without intrinsics.
@skydread1 skydread1 self-assigned this Aug 4, 2026
bootstrap-namespaces drops clojure.string, clojure.set, clojure.walk and the 9
clojure.tools.analyzer entries. The first three recompile to the committed bytes
now the registry survives, the analyzer ones have no source under src/stdlib.
check-drift byte-verifies 28 stdlib DLLs instead of 25.
@skydread1
skydread1 force-pushed the fix/intrinsic-registry-defonce branch from 77db1dc to 783b7bb Compare August 4, 2026 05:54
@skydread1
skydread1 merged commit da8b627 into develop Aug 4, 2026
1 check passed
@skydread1
skydread1 deleted the fix/intrinsic-registry-defonce branch August 4, 2026 06:51
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.

clojure.walk and 11 analyzer namespaces are compiled without intrinsics

1 participant