Rebuild server requests through the positional constructor for trim-compatibility - #1349
Merged
Merged
Conversation
The internal request rebuilds in _stream_request_metadata and _buffer_server_request went through the public keyword constructor. On current Julia master (1.14-dev) that Core.kwcall is no longer statically resolvable, so these two sites fail juliac --trim=safe verification (they verified on earlier 1.14-dev revisions; likely an upstream inference or verifier behavior change, worth tracking separately). Rebuilding through the positional _request_nocopy constructor sidesteps the kwcall entirely, reproduces the keyword constructor's header/trailer copy semantics explicitly, and gives _buffer_server_request one concrete-body construction per branch instead of a Union-typed rebuild. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1349 +/- ##
==========================================
- Coverage 88.53% 88.52% -0.02%
==========================================
Files 31 31
Lines 11961 11961
==========================================
- Hits 10590 10588 -2
- Misses 1371 1373 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
quinnj
added a commit
to quinnj/juliacon-2026-workshop
that referenced
this pull request
Aug 10, 2026
…rror The pinned Julia advances from early-July master (f9654c3) to the 1.14.0-DEV.2878 nightly commit, which fixes typed JSON parsing of doubly-nested shapes under trim (JuliaLang/julia#62661) — so the flattened NativeStoredSummaryDisk mirror folds back into storing StoredSolarSummary directly, typed all the way down. Three build adaptations came with the newer Julia: the libquadmath patch is gone (the guard landed upstream, and the HAMT and Base64 patches are rebased onto the moved code); HTTP pins the positional server-request rebuild (JuliaWeb/HTTP.jl#1349) since the keyword-constructor kwcall no longer resolves statically on master; and JLL module initializers are pinned as explicit juliac entrypoints because the new trim drops them from the image despite the runtime invoking them at startup. The bundle-slimming step now checks for real ELF objects before stripping — the new bundle ships an unversioned linker-script .so. juliac --trim=safe verifies with zero errors; the 62.7MB from-scratch container serves the generated typed client, round-tripping the fully nested summary through the mirror-free store. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The internal request rebuilds in
_stream_request_metadataand_buffer_server_requestroute through the public keyword constructor. On current Julia master (1.14.0-DEV.2878), thatCore.kwcallis no longer statically resolvable, so both sites failjuliac --trim=safeverification with sevenunresolved call from statement kwcall(…)errors — they verify clean on earlier 1.14-dev revisions (f9654c3) with identical HTTP source, so this looks like an upstream inference/verifier behavior change; worth tracking separately, but the server paths shouldn't depend on kwcall resolvability either way.This rebuilds through the positional
_request_nocopyconstructor instead:_buffer_server_requestone concrete-body construction per branch (EmptyBody/BytesBody) instead of a Union-typed rebuild--trim=safeworkload exercising both functions goes from 7 verifier errors to zero on 1.14.0-DEV.2878, and the full test suite passes locallyFound while bumping the JuliaCon workshop's native-image build to a newer Julia; with this plus the two remaining Julia-side patches, the whole Soleil server trim-verifies on current master.
🤖 Generated with Claude Code