Skip to content

Backports for Julia 1.10.11#58889

Merged
KristofferC merged 57 commits intorelease-1.10from
backports-release-1.10
Feb 19, 2026
Merged

Backports for Julia 1.10.11#58889
KristofferC merged 57 commits intorelease-1.10from
backports-release-1.10

Conversation

@KristofferC
Copy link
Copy Markdown
Member

@KristofferC KristofferC commented Jul 3, 2025

Backported PRs:

Need manual backport:

Contains multiple commits, manual intervention needed:

Non-merged PRs with backport label:

DilumAluthge and others added 15 commits July 8, 2025 18:50
…n-link-local IPv4 address (#58895)

This is a manual backport of
JuliaLang/Distributed.jl#137 to Julia 1.10.x.

Targets `backports-release-1.10` (#58889).

This is a bugfix, and thus it is eligible to be backported.
Skip setName on folded inputs, and ensure
the correct pointer address space is used.

(cherry picked from commit baca8ba)
…54840)

Like #54671, but for
`speccache_eq`.

Saw another segfault with this in the stack trace, hence this fix. I
also looked for other uses of `jl_smallintset_lookup` and there's one in
`idset.c`. That doesn't appear to be racy but I'm not familiar with the
code, so maybe you can take a look at it in case we need to push a fix
for that one too @gbaraldi or @vtjnash?

(cherry picked from commit dd1ed17)
Closes #57376
Closes #34037

- Adds a lock in `SimpleLogger` and `ConsoleLogger` for use on maxlog
tracking and stream writes to improve threadsafety.
Closely similar to #54497

- Turns the internal `_min_enabled_level` into a `Threads.Atomic`. There
are [some direct
interactions](https://juliahub.com/ui/Search?type=code&q=_min_enabled_level&w=true)
to this internal in the ecosystem, but they should still work
```
julia> Base.CoreLogging._min_enabled_level[] = Logging.Info+1
LogLevel(1)
```

- Brings tests over from #57448

Performance seems highly similar:

### Master
```
julia> @time for i in 1:10000
          @info "foo" maxlog=10000000
       end
[ Info: foo
...
  0.481446 seconds (1.33 M allocations: 89.226 MiB, 0.49% gc time)
```

### This PR
```
  0.477235 seconds (1.31 M allocations: 79.002 MiB, 1.77% gc time)
```

(cherry picked from commit 9af9650)
When this API was added, this function inlined, which is important,
because the API relies on the allocation of the `Ref` being elided. At
some point (I went back to 1.8) this regressed. For example, it is
currently responsible for substantially all non-Expr allocations in
JuliaParser. Before (parsing all of Base with JuliaParser):
```
│     Memory estimate: 76.93 MiB, allocs estimate: 719922.
```
After:
```
│     Memory estimate: 53.31 MiB, allocs estimate: 156.
```

Also add a test to make sure this doesn't regress again.

(cherry picked from commit d6294ba)
Currently, `similar(::CodeUnits)` works as expected by going through the
generic `AbstractArray` method. However, the fallback method hit by
`similar(::Type{<:CodeUnits}, dims)` does not work, as it assumes the
existence of a constructor that accepts an `UndefInitializer`. This can
be made to work by defining a corresponding `similar` method that
returns an `Array`.

One could make a case that this is a bugfix since it was arguably a bug
that this method didn't work given that `CodeUnits` is an
`AbstractArray` subtype and the other `similar` methods work. If anybody
buys that argument, it could be nice to backport this; it came up in
some internal code that uses Arrow.jl and JSON3.jl together.

(cherry picked from commit 8e524c7)
[The "parsing" section of the "eval" dev docs
page](https://docs.julialang.org/en/v1/devdocs/eval/#dev-parsing) was
not updated when JuliaSyntax.jl was adopted in 1.10. This updates the
text to reflect that it is the default parser and briefly mentions how
to switch back.

(cherry picked from commit ec27274)
@imciner2
Copy link
Copy Markdown
Contributor

Two open PRs to this branch currently:

…orted (#59351)

This BFloat16 part was backported to 1.10 as part of
#54471, but 1.10 doesn't actually
have the BFloat16 support that this goes along with, and it has broken
the build. So remove the condition.

cc @gbaraldi
imciner2 and others added 5 commits September 12, 2025 17:31
This updates 1.10 to contain two new OpenBLAS patches that come from
upstream (they are included in newer OpenBLAS versions already).
Specifically the patches do:
* Use AVX512 kernels on modern processors
* Fix incorrect CASUM computation in fallback kernel

This fixes the reported linear algebra issue:
JuliaLang/LinearAlgebra.jl#1406.

I believe I updated all the checksums/files to make this work,
specifically I did

* Updated version number in `stdlib/OpenBLAS_jll/Project.toml`
* Updated version number and sha in `deps/openblas.version`
* Refresh checksums by running` make -f contrib/refresh_checksums.mk -j
openblas`

cc @giordano, @ViralBShah
This was originally added as a workaround for the behavior of sh to try
to become the terminal process group leader, but no longer relevant
since #25006 removed that flag again:
```
julia> run(detach(`bash -i -c "sleep 0"`))
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
Process(`bash -i -c 'sleep 0'`, ProcessExited(0))
```

Long explanation: Julia recieves SIGTTOU when a process like "sh -i -c"
exits (at least for bash and zsh, but not dash, ksh, or csh),
since "sh -i" sometimes takes over the controlling terminal, causing
julia to stop once the bash process exits. This can be quite annoying,
but julia goes through some pains (in libuv) to ensure it doesn't steal
the controlling terminal from the parent, and apparently bash is not so
careful about it. However, since PR #25006, julia hasn't needed this
workaround for this issue, so we can now follow the intended behavior
when the child is in the same session group and steals the controlling
terminal from the parent. Even if such behavior seems odd, this seems
to be the intended behavior per posix design implementation that it
gets SIGTTOU when julia later tries to change mode (from cooked -> raw
after printing the prompt):
http://curiousthing.org/sigttin-sigttou-deep-dive-linux.

For some background on why this is a useful signal and behavior and
should not be just blocked, see nodejs/node#35536.

According to glibc, there's a half page of code for how to correctly
implement a REPL mode change call:
https://www.gnu.org/software/libc/manual/html_node/Initializing-the-Shell.html

```
$ ./julia -q
shell> bash -i -c "sleep 1"

[1]+  Stopped                 ./julia

julia> run(`zsh -i -c "sleep 0"`)
Process(`zsh -i -c 'sleep 0'`, ProcessExited(0))

julia>
[1]+  Stopped                 ./julia
```

(cherry picked from commit 0cbe466)
The fields of `StringIndexError` are abstractly typed, so there's no
reason to specialize on a concrete type. The change seems like
it could prevent some invalidation on loading user code.

---------

Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
(cherry picked from commit bc33a3e)
The current method :jl_type_to_llvm takes a pointer-to-bool parameter
isboxed, which if non-null, is set to true if the Julia Type requires
boxing. However, one may want to know the julia type without boxing and
there is no mechanism for doing so. Now there is `julia_struct_to_llvm`.

(cherry picked from commit 85f1b8c)
@DilumAluthge DilumAluthge added the release Release management and versioning. label Sep 13, 2025
@DilumAluthge DilumAluthge marked this pull request as draft September 13, 2025 00:10
@DilumAluthge DilumAluthge added the don't squash Don't squash merge label Sep 13, 2025
The test on master uses opaque pointers which older LLVM versions don't
support.

Co-authored-by: Simeon David Schaub <simeon@schaub.rocks>
DilumAluthge and others added 6 commits January 29, 2026 18:58
Changes from #43151, github just
didn't want me to re-open it.

As discussed on slack, any `hygienic-scope` within an outer
`hygienic-scope` can read and write variables in the outer one, so it's
not particularly hygienic. The result is that we can't safely nest macro
calls unless they know the contents of all inner macro calls.

Should fix #48910.

Co-authored-by: Michiel Dral <m.c.dral@gmail.com>
(cherry picked from commit ff33305)
That is, if it is called twice (e.g. because precompilation is disabled)
with identical arguments, then this should not trigger an assertion.

This should resolve oscar-system/GAP.jl#1314

(cherry picked from commit 1708d99)
Test suite: switch to `httpbingo.julialang`, fall back to `httpbin.julialang` on failure

(cherry picked from commit 5ab8db3)
@DilumAluthge DilumAluthge force-pushed the backports-release-1.10 branch from 5982ccd to ec3ef8b Compare January 29, 2026 23:59
Found by claude-code debugging a random zygote issue:
SciML/NeuralPDE.jl#1020 (comment).

`spvals` just doesn't exist within this function. This issue has
apparently existed since Julia 1.6

(cherry picked from commit 94e72bb)
@KristofferC
Copy link
Copy Markdown
Member Author

KristofferC commented Feb 2, 2026

Last commit here (3c13ebe#diff-1756dda6c0a8d1636babf826421db423fe144b9d6db8aeb3358068269a5bfd6c) looks like it added some unrelated tests that fail. I'll remove them.

Edit: Done.

…60744)

This PR bumps MbedTLS on Julia 1.10 to
[2.28.1010](JuliaPackaging/Yggdrasil#12380),
which is upstream 2.28.10 plus Debian's (2.16.9) security patches.

[devdocs](https://docs.julialang.org/en/v1.12/devdocs/build/build/#Update-the-version-number-of-a-dependency))

Version numbers:
- [x] `deps/$(libname).version`: `LIBNAME_VER`, `LIBNAME_BRANCH`,
`LIBNAME_SHA1` and `LIBNAME_JLL_VER`
- [x] `stdlib/$(LIBNAME_JLL_NAME)_jll/Project.toml`: `version`

Checksum:
- [x] `deps/checksums/$(libname)`
- [ ] `deps/checksums/$(LIBNAME_JLL_NAME)-*/`: `md5` and `sha512`
- I don't think this file exists anymore. It looks like the checksums
have been combined into `deps/checksums/mbedtls`.

Patches:
- [x] `deps/$(libname).mk`
- [x] `deps/patches/$(libname)-*.patch`

---------

Co-authored-by: Andy Dienes <51664769+adienes@users.noreply.github.com>
Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com>
Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
Co-authored-by: Max Horn <max@quendi.de>
Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr>
Co-authored-by: Eddie Groshev <eddie_g_89@hotmail.com>
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Co-authored-by: Valentin Churavy <v.churavy@gmail.com>
Co-authored-by: Jeff Bezanson <jeff.bezanson@gmail.com>
Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
Co-authored-by: Em Chu <61633163+mlechu@users.noreply.github.com>
Co-authored-by: Michiel Dral <m.c.dral@gmail.com>
Co-authored-by: Erik Schnetter <schnetter@gmail.com>
@KristofferC KristofferC force-pushed the backports-release-1.10 branch from 3c13ebe to c8be17d Compare February 2, 2026 12:05
@KristofferC KristofferC marked this pull request as ready for review February 2, 2026 12:05
@KristofferC KristofferC requested a review from a team as a code owner February 2, 2026 12:05
@KristofferC
Copy link
Copy Markdown
Member Author

@nanosoldier runtests()

@KristofferC
Copy link
Copy Markdown
Member Author

@nanosoldier runbenchmarks(ALL; vs=":release-1.10")

@lgoettgens
Copy link
Copy Markdown
Contributor

#60215 was already manually backported in #60218, and could thus be checked off

@nanosoldier
Copy link
Copy Markdown
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.

@DilumAluthge DilumAluthge removed the request for review from a team February 2, 2026 18:46
@nanosoldier
Copy link
Copy Markdown
Collaborator

The package evaluation job you requested has completed - possible new issues were detected.
The full report is available.

Report summary

❗ Packages that crashed

9 packages crashed only on the current version.

  • The process was aborted: 9 packages

383 packages crashed on the previous version too.

✖ Packages that failed

45 packages failed only on the current version.

  • Package fails to precompile: 11 packages
  • Package has test failures: 3 packages
  • Package tests unexpectedly errored: 19 packages
  • Package requires a missing binary dependency: 1 packages
  • Tests became inactive: 3 packages
  • Test duration exceeded the time limit: 7 packages
  • Test log exceeded the size limit: 1 packages

2768 packages failed on the previous version too.

✔ Packages that passed tests

29 packages passed tests only on the current version.

  • Other: 29 packages

6633 packages passed tests on the previous version too.

➖ Packages that were skipped altogether

1207 packages were skipped on the previous version too.

@KristofferC
Copy link
Copy Markdown
Member Author

KristofferC commented Feb 3, 2026

Old PrecompileTools.jl seems to not work here:

⌅ [aea7be01] PrecompileTools v1.2.1

ERROR: LoadError: UndefVarError: `logstate` not defined
Stacktrace:
  [1] macro expansion
    @ ~/.julia/packages/ScopedValues/z27HA/src/ScopedValues.jl:221 [inlined]
  [2] (::Supposition.var"#45#46"{Supposition.CheckConfig, Supposition.Data.Integers{Int8, UInt8}})()
    @ Supposition ~/.julia/packages/Supposition/LzWE1/src/precompile.jl:29
  [3] (::Base.RedirectStdStream)(thunk::Supposition.var"#45#46"{Supposition.CheckConfig, Supposition.Data.Integers{Int8, UInt8}}, stream::Base.DevNull)
    @ Base ./stream.jl:1434
  [4] macro expansion
    @ ~/.julia/packages/Supposition/LzWE1/src/precompile.jl:28 [inlined]
  [5] macro expansion
    @ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:78 [inlined]

My guess is due to a6d3bd2.

@KristofferC
Copy link
Copy Markdown
Member Author

@nanosoldier runtests(["AdaptivePredicates", "TestReadme", "Delaunator", "ScopedValues", "EnvironmentMigrators", "MoreMaps", "ScopedStreams", "JuliaInterpreter", "ScopedSettings", "MbedTLS", "AutoPrettyPrinting", "Supposition", "OpenTelemetrySDK", "Pipelines", "UCX", "DynamicExpressions", "SlimOptim", "DOI2BibTeX", "Arblib", "ArbExtras", "MathOptBenchmarkInstances", "OpenTelemetryExporterOtlpProtoHttp", "BM3DDenoise", "StochasticRounding", "OpenTelemetry", "LaTeXCompilers", "ValueFunctionIterations", "JobSchedulers", "Ziggurats", "MatrixLMnet", "BasisFunctions", "MPIFiles", "Tsunami", "OnlinePCA", "NeuronBuilder", "DiskArrayEngine", "CoralBlox", "HighVoronoi", "Sindbad"])

@nanosoldier
Copy link
Copy Markdown
Collaborator

The package evaluation job you requested has completed - possible new issues were detected.
The full report is available.

Report summary

✖ Packages that failed

2 packages failed only on the current version.

  • Package has test failures: 1 packages
  • Package tests unexpectedly errored: 1 packages

3 packages failed on the previous version too.

✔ Packages that passed tests

34 packages passed tests on the previous version too.

@KristofferC
Copy link
Copy Markdown
Member Author

Lookgs good, should be mergable once CI goes through.

@DilumAluthge
Copy link
Copy Markdown
Member

The test x86_64-linux-gnuassertrr job has now failed three times in a row with the same failure:

Error in testset intrinsics:
Error During Test at none:1
  Got exception outside of a @test
  ProcessExitedException(15)

Buildkite CI logs:

  1. First attempt
  2. Second attempt
  3. Third attempt

That job runs under rr, so we have rr traces for all three runs.

When I look on release-1.10, I don't see this failure. (I see some other failures, but I don't see any intrinsics failures.)

@DilumAluthge
Copy link
Copy Markdown
Member

DilumAluthge commented Feb 9, 2026

For the first attempt:

From worker 12: julia: /cache/build/builder-amdci4-2/julialang/julia-release-1-dot-10/src/ccall.cpp:963: jl_cgval_t emit_llvmcall(jl_codectx_t&, jl_value_t**, size_t): Assertion `f->getReturnType() == rettype' failed.

For the second attempt:

From worker 3: julia: /cache/build/builder-amdci4-2/julialang/julia-release-1-dot-10/src/ccall.cpp:963: jl_cgval_t emit_llvmcall(jl_codectx_t&, jl_value_t**, size_t): Assertion `f->getReturnType() == rettype' failed.

For the third attempt:

From worker 15: julia: /cache/build/builder-amdci4-2/julialang/julia-release-1-dot-10/src/ccall.cpp:963: jl_cgval_t emit_llvmcall(jl_codectx_t&, jl_value_t**, size_t): Assertion `f->getReturnType() == rettype' failed.

So, it looks like the same assertion failing every time.

@DilumAluthge
Copy link
Copy Markdown
Member

@KristofferC CI is all green now (after 925f31f - thank you @gbaraldi!)

@KristofferC KristofferC merged commit ba37fb0 into release-1.10 Feb 19, 2026
5 checks passed
@KristofferC KristofferC deleted the backports-release-1.10 branch February 19, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

don't squash Don't squash merge release Release management and versioning.

Projects

None yet

Development

Successfully merging this pull request may close these issues.