Skip to content

Conversation

KristofferC
Copy link
Member

@KristofferC KristofferC commented Sep 22, 2025

Backported PRs:

Need manual backport:

Contains multiple commits, manual intervention needed:

Non-merged PRs with backport label:

@KristofferC KristofferC added the release Release management and versioning. label Sep 22, 2025
#59601)

Further improves the implementation from #59548.
Specifically, uses `widenconst` to enable conversion of `tuple` calls
that have become `PartialStruct`, and removes incorrect comments and
unused arguments.

Also adds some Julia-IR level tests.
@DilumAluthge DilumAluthge added the don't squash Don't squash merge label Sep 22, 2025
@ViralBShah
Copy link
Member

ViralBShah commented Sep 23, 2025

Can #59627 be pulled into 1.12-rc3?

@DilumAluthge
Copy link
Member

My thinking would be to hold off for now, to let us get 1.12.0 out the door first, and then plan to put #59627 into 1.12.1. Just in the interest of getting 1.12.0 out.

But I'll let's see what @KristofferC says

@ViralBShah
Copy link
Member

Only reason to do this in a haste would be to have nogpl binaries starting 1.12.0.

Otherwise we can have them from 1.12.1.

@DilumAluthge
Copy link
Member

#59627 only affects the build if USE_GPL_LIBS=0, right? It doesn't affect anything in the default path (USE_GPL_LIBS=1)?

So maybe #59627 would be safe to pull into 1.12.0. It certainly will be a lot more convenient to just have all binaries starting with 1.12 have the nogpl variant available - kind of annoying if we have to specify that for 1.12 it only starts at 1.12.1.

@ViralBShah
Copy link
Member

Correct. It doesn’t affect anything on the default path.

@DilumAluthge
Copy link
Member

Then I think I should be safe to add to rc3, unless @KristofferC disagrees.

In 6d78a4a we introduced an inference barrier to the various
AnnotatedX/StyledStrings methods whose implementations are frustratingly
split between Base and a Stdlib, to ease the pain of invalidations.

As has recently been pointed out in the re-opened #57997, this missed
a `printstyled` method. We address that here, together with a tweak to
the StyledStrings library.

Reported-by: Neven Sajko <[email protected]>
(cherry picked from commit 406d37b)
@ViralBShah
Copy link
Member

ViralBShah commented Sep 23, 2025

LinearAlgebra.jl also needs a bump. I still don't know how to do this right. Basically we need to pull in the latest release-1.12 from LinearAlgebra.jl: JuliaLang/LinearAlgebra.jl#1429

This could also go into 1.12.1 if we don't have the bandwidth for it now.

KristofferC and others added 2 commits September 23, 2025 17:55
)

Currently we support removing GPL dependencies in the full source build.
This will also remove the GPL dependencies from the binary-dist target
when built with JLLs.

I almost feel like it would be simpler to have a new
SuiteSparse_NOGPL_jll package. Then in the default build, things stay as
they are. In the no gpl build use the new JLL. In the no GPL build, if
someone then tries to use a GPL SuiteSparse library, a warning can be
printed asking them to get a different build of Julia.

@DilumAluthge @andreasnoack @giordano Thoughts?

Co-authored-by: Viral B. Shah <[email protected]>
(cherry picked from commit 441ebf9)
@KristofferC
Copy link
Member Author

Bumped LinearAlgebra and added the gpl PR.

@DilumAluthge
Copy link
Member

Ah, Kristoffer beat me to it on the LinearAlgebra bump.

@ViralBShah For future bumps, instructions for making the bump are here: https://julialang.github.io/BumpStdlibs.jl/dev/usage/

For "Target branch", you'd put backports-release-1.12

For "Comma-separated list of stdlibs", you'd put LinearAlgebra.

topolarity and others added 3 commits September 24, 2025 09:43
Adding notes as I go through this code in detail.

Co-authored-by: Jameson Nash <[email protected]>
(cherry picked from commit f2cc6b0)
Also add `@constprop :none` and `@noinline` to prevent the measuring code from
interfering with the subject code.

Fixes #58780

(cherry picked from commit 23633c2)
(cherry picked from commit 084dab1)
@KristofferC KristofferC force-pushed the backports-release-1.12 branch from 9d96029 to 644f40e Compare September 24, 2025 07:43
There seems to be no reason to always load this unconditionally -
especially since it's in the critical startup path. If we never print
colored output or our IO is not a TTY, we don't need to load this at
all. While we're at it, remove the `term_type` argument to
`ttyhascolor`, which didn't work as advertised anyway, since it still
looked at the current_terminfo. If clients want to do a full TermInfo
check, they can do that explicitly.

(Written by Claude Code)

(cherry picked from commit 72e2c45)
@KristofferC
Copy link
Member Author

@tecosaur, some problem with the backport of the StyledStrings bump:

Error During Test at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-macmini-x64-4.0/build/default-macmini-x64-4-0/julialang/julia-release-1-dot-12/julia-644f40ec6e/share/julia/test/testdefs.jl:24
  Got exception outside of a @test
  LoadError: MethodError: objects of type Base.TermInfo are not callable
  The object of type `Base.TermInfo` exists, but no method is defined for this combination of argument types when trying to treat it as a callable object.
  Stacktrace:
    [1] termstyle(io::IOBuffer, face::StyledStrings.Face, lastface::StyledStrings.Face)
      @ StyledStrings /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-macmini-x64-4.0/build/default-macmini-x64-4-0/julialang/julia-release-1-dot-12/julia-644f40ec6e/share/julia/stdlib/v1.12/StyledStrings/src/io.jl:179
    [2] _ansi_writer(string_writer::typeof(write), io::IOContext{IOBuffer}, s::SubString{Base.AnnotatedString{String}})
      @ StyledStrings /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-macmini-x64-4.0/build/default-macmini-x64-4-0/julialang/julia-release-1-dot-12/julia-644f40ec6e/share/julia/stdlib/v1.12/StyledStrings/src/io.jl:246
    [3] ansi_write(f::typeof(write), io::IOContext{IOBuffer}, s::SubString{Base.AnnotatedString{String}})
      @ StyledStrings /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-macmini-x64-4.0/build/default-macmini-x64-4-0/julialang/julia-release-1-dot-12/julia-644f40ec6e/share/julia/stdlib/v1.12/StyledStrings/src/io.jl:264
    [4] ansi_write_

@jakobnissen
Copy link
Member

jakobnissen commented Sep 24, 2025

This occurs due to the change in Base commit 72e2c45 , and the corresponding change in StyledStrings commit JuliaLang/StyledStrings.jl@1aafc2f. The consequence is that the latest StyledString commit is only compatible with Julia 1.13+.
One solution is to keep a dedicated 1.12 branch of StyledStrings which is stuck at the previous commit (with potential future bugfixes). In general, since StyledStrings hooks into Base internals, it might be a good idea to keep branches for specific minor Julia versions.

@jakobnissen
Copy link
Member

jakobnissen commented Sep 24, 2025

Maybe #58854 should just be backported instead, actually.

@KristofferC KristofferC merged commit d3df0d6 into release-1.12 Sep 24, 2025
7 checks passed
@KristofferC KristofferC deleted the backports-release-1.12 branch September 24, 2025 18:25
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.

10 participants