Skip to content

upstream: Review Julia through 346d02acc25c - #21

Closed
github-actions[bot] wants to merge 14 commits into
masterfrom
sync/julia-81093121d4e6-346d02acc25c
Closed

github-actions[bot] wants to merge 14 commits into
masterfrom
sync/julia-81093121d4e6-346d02acc25c

Conversation

@github-actions

Copy link
Copy Markdown

Upstream Julia 81093121d4e6cf469154d977e2ecd6b7488ea0de → 346d02acc25c3c4c7d56f2fa825a0af0b6b5cd79.

Every incoming commit was reviewed in a separate job against the full merged batch.

Draft for human review. Automatic merging is disabled.

The upstream history is preserved in a merge commit; any Joolia adaptations are committed separately. The publisher explicitly dispatches Joolia CI on this branch; inspect its result before merging.

Review record: contrib/upstream-sync/reports/346d02acc25c3c4c7d56f2fa825a0af0b6b5cd79.json.

Incoming commits:

  • a414ee183a31f255b75f82f0dd110ac64e74ab9c — codegen: redesign aliasinfo again (change 62904)
  • 7485f7ad53e7a52bc834bbcbd2bfbcfcd8ea2810 — Declare _reinterpret up front to avoid a ton of invalidations (change 62871)
  • 22e4766fdef43e6b52949531596ea8d924b1b328 — deps: pass CMAKE_POLICY_VERSION_MINIMUM when configuring ittapi (change 63265)
  • 377e4c1869f827140ad5491d123dfda878c50de6 — deps: do not build a dependency in order to uninstall it (change 63264)
  • a0c011e53a598d22360a1859ee69471ed719acc4 — fixup big rational hashing (change 63266)
  • 4d76908384bc853a4faeab2172d669c4ba8ec4ef — gc: never skip weak-processing pages in the quick sweep (change 63234)
  • a261da0be47a8b359c42fe0edfe2d1703c87964a — gc: Make stock-GC memory copies safe under concurrent mutation (change 63244)
  • 035f7c9c2348982153d39d3a552dfe0d5c7b1aae — doc: split latex symbols from emojis
  • e177e01f81c8571b2e21e84964446704b7645942 — Merge upstream branch JuliaLang/rk/split-latex-emoji-docs
  • 58e8bb8cb772cbcb030a9affb061e0e7cf0265f9 — Hide kwcall frames in stacktraces again (change 63192)
  • 346d02acc25c3c4c7d56f2fa825a0af0b6b5cd79 — reflection: Add world keyword argument to Base.bodyfunction (change 63239)

Merge integrated batches with a merge commit, never squash/rebase, to preserve the upstream ancestry.
Passing CI covers only contrib/ci/coverage.json; it does not certify the entire port.

vtjnash and others added 14 commits September 18, 2026 09:51
In past AA attempts, we tried to be more accurate, in the belief that would
lead to better code. But actually it turns out that LLVM is so terrible at
expressing and using aliasing information, that actually using chaotic and
obviously worse information leads to much better code outcomes on benchmarks.
This has been vaguely known for a long time (e.g.
https://discourse.llvm.org/t/separate-aa-metadata-for-load-store-portions-of-memcpy/44617I),
so we've been fighting LLVM for a long time, until this gets a proper fix
upstream.

Claude finds that this particular combination is consistently faster across a
range of benchmarks, as well as fixes a variety of soundness risks still
remaining in the code. We can redesign this again once LLVM fixes the design.

Assisted-by: Claude Code (Opus 5, Fable 5)
…ang#62871)

The binding invalidation code is really coarse-grained, so it's better to
declare `_reinterpret` up front, in `essentials.jl`, rather than refer to an
undefined function and define it later.

Reduces the system image size by about 4 MiB (2.2%) and program text by 184
KiB (1.2%).
In lieu of increasing page limit sizes split latex symbols from emojis.

Done to fix JuliaLang#60263

Assisted-by: Claude Code (Opus 5)
…Lang#63244)

A mutable source Memory can receive young references after its generation
state is checked, and a source scan can disagree with the values later
copied. Neither can justify skipping the destination barrier.

Copy first, then remember old destinations without inspecting the source.
For copies containing at most four pointer fields, atomically scan the
copied destination instead of remembering it unconditionally. There is no
intervening safepoint, and concurrent replacement stores carry their own
barriers. This bounds mutator scanning independently of destination size.

Assisted-by: Codex (GPT-6)
…i-docs

doc: split latex symbols from emojis for page size load limits during the Documenter.jl make step.
* Handle CodeInstance linfo

* Add test

* comment on purpose of branch

* Use existing helper method

Co-authored-by: Andy Dienes <51664769+adienes@users.noreply.github.com>

---------

Co-authored-by: Andy Dienes <51664769+adienes@users.noreply.github.com>
…aLang#63239)

`Base.bodyfunction` resolved the keyword body function with
`getfield(mod, name)`, which looks up the binding in the world age of
the calling task. A long-lived task that was spawned before the method
was defined therefore hit the backdated binding path, which prints the
`access to binding in a world prior to its definition world` warning
and throws `UndefVarError` under `--depwarn=error`. JETLS ran into this
when its analysis worker tasks inspected methods that were defined
after the workers had started.

This change adds a `world::UInt=get_world_counter()` keyword argument
and performs the binding lookup with `invoke_in_world`, consistently
with other reflection utilities such as `hasmethod` and `kwarg_decl`.
Existing positional calls keep working, and they now resolve the body
function in the latest world regardless of the world age of the caller.

Assisted-by: Claude Code (Fable 5.1)
Assisted-by: Codex (GPT-5.6 Luna)
Assisted-by: Codex (GPT-5.6 Luna)
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.

10 participants