Skip to content

Rebuild server requests through the positional constructor for trim-compatibility - #1349

Merged
quinnj merged 1 commit into
masterfrom
jq/trim-static-server-request-rebuild
Aug 8, 2026
Merged

Rebuild server requests through the positional constructor for trim-compatibility#1349
quinnj merged 1 commit into
masterfrom
jq/trim-static-server-request-rebuild

Conversation

@quinnj

@quinnj quinnj commented Aug 8, 2026

Copy link
Copy Markdown
Member

The internal request rebuilds in _stream_request_metadata and _buffer_server_request route through the public keyword constructor. On current Julia master (1.14.0-DEV.2878), that Core.kwcall is no longer statically resolvable, so both sites fail juliac --trim=safe verification with seven unresolved 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_nocopy constructor instead:

  • reproduces the keyword constructor's header/trailer copy semantics explicitly
  • gives _buffer_server_request one concrete-body construction per branch (EmptyBody / BytesBody) instead of a Union-typed rebuild
  • verified: a juliac --trim=safe workload exercising both functions goes from 7 verifier errors to zero on 1.14.0-DEV.2878, and the full test suite passes locally

Found 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

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

codecov Bot commented Aug 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.52%. Comparing base (d18d3b4) to head (1d6e094).

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@quinnj
quinnj merged commit f4cb20f into master Aug 8, 2026
7 of 8 checks passed
@quinnj
quinnj deleted the jq/trim-static-server-request-rebuild branch August 8, 2026 16:56
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>
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.

1 participant