Skip to content

Conversation

@KristofferC
Copy link
Member

No description provided.

KristofferC and others added 8 commits November 28, 2025 21:08
…e now stdlibs (#60061)

This helps handling manifest from earlier julia versions. This is kind
of the `locate` version of the `identify` fallback in
#56148.

Need to write a test when this happens (and verify that this fix works).

Noted in a slack #gripes comment.

---------

Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com>
Co-authored-by: Max Horn <max@quendi.de>
(cherry picked from commit 6fddac8)
When starting julia, `Base.Filesystem.TEMP_CLEANUP` should be empty,
but is being left with these two files. The proposed fix is to set up
temporary files created by function `generate_precompile_statements` in
`contrib/generate_precompile.jl` to have no automatic cleanup. This
won't do harm since they will be removed by the cleanup of the
temporary directory created by the call to `mktempdir` in function
`generate_precompile_statements` (see the call `rm(tmpdir,
recursive=true)` in `base/file.jl`). These should be removed by the
atexit hook, but we didn't run `Base.__init__` or
`Base.Filesystem.__postinit__` hooks to re-register this cleanup
handler in the sys.so generation process (only in sysbase.so).

To test this issue, one can do:
`$ mkdir $TMPDIR/JuliaBuild`
`$ OLDTMPDIR=$TMPDIR`
`$ export TMPDIR=$TMPDIR/JuliaBuild`
`$ cd <julia's build root>`
`$ <build julia>`
`$ strings usr/lib/julia/sys.dylib|less # shows that the temp. dir.
JuliaBuild is hardcoded in the binaries`
`$ TMPDIR=$OLDTMPDIR`
`$ chmod u-x $TMPDIR/JuliaBuild`
`$ <run the built julia with ./julia and exit> # should try to use
$TMPDIR/JuliaBuild which is now inaccessible`

Without the fix, the last step triggers the infinite loop of ``Failed to
clean up temporary path''. With the fix, one can see that the binaries
(`usr/lib/julia/sys.dylib`) do not contain the temp. dir. anymore, and
the infinite loop of errors is not triggered.

Or simply by observing that `./julia -E 'Base.Filesystem.TEMP_CLEANUP'`
is not empty.

Fix #60078

(cherry picked from commit 1eea4b6)
…60171)

This adds a single-use autoinit trampoline for multiversioning-aliased functions.

"First call" sequence: trampoline -> autoinit trampoline -> arch-specific call
Subsequent calls: trampoline -> arch-specific call

(cherry picked from commit b1afe03)
Resolves #50351 albeit with a bit of a hack.

I deliberately left "The Julia REPL" alone (so it is still sorted under
"REPL") as that felt more natural to me compared to sorting it under
"Julia" but obviously this could easily be changed as well.

(cherry picked from commit 9af9b15)
(cherry picked from commit ae42e5f)
Fix #59786

Many of these links do not even exist and are broken. But even then, it
is simply not the right place for such deep dive content.

Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com>
(cherry picked from commit 6d6224d)
@KristofferC
Copy link
Member Author

KristofferC commented Nov 29, 2025

stdlib_dependencies                                          (9) |         failed at 2025-11-28T22:04:01.222
Error During Test at /cache/build/tester-amdci5-10/julialang/julia-release-1-dot-13/julia-7146fc3541/share/julia/test/testdefs.jl:25
  Got exception outside of a @test
  LoadError: Build path for ObjectFile does not exist: /cache/build/tester-amdci5-10/julialang/julia-release-1-dot-13/tmp/jl_GKlaDf/packages/ObjectFile/08SxU
  Stacktrace:
    [1] error(s::String)
      @ Base ./error.jl:44
    [2] build_versions(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}; verbose::Bool, allow_reresolve::Bool)
      @ Pkg.Operations /cache/build/tester-amdci5-10/julialang/julia-release-1-dot-13/julia-7146fc3541/share/julia/stdlib/v1.13/Pkg/src/Operations.jl:1780
    [3] build_versions
      @ /cache/build/tester-amdci5-10/julialang/julia-release-1-dot-13/julia-7146fc3541/share/julia/stdlib/v1.13/Pkg/src/Operations.jl:1759 [inlined]
    [4] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; allow_autoprecomp::Bool, preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, target::Symbol)
      @ Pkg.Operations /cache/build/tester-amdci5-10/julialang/julia-release-1-dot-13/julia-7146fc3541/share/julia/stdlib/v1.13/Pkg/src/Operations.jl:2258
    [5] add



LoadError: Error when installing package ObjectFile:
  IOError: mkdir("/cache/build/tester-amdci5-13/julialang/julia-release-1-dot-13/tmp/jl_MDfh4V/packages/temp/jl_Ahy1gdqz47U7UASA"; mode=0o777): no such file or directory (ENOENT)
  Stacktrace:
    [1] _uv_error(prefix::String, c::Int32)
      @ Base ./libuv.jl:114
    [2] uv_error
      @ ./libuv.jl:113 [inlined]
    [3] mkdir(path::String; mode::UInt16)
      @ Base.Filesystem ./file.jl:185
    [4] mkdir

Maybe fixed by #60232..?

@KristofferC KristofferC force-pushed the backports-release-1.13 branch from 5682b2c to af3e3bb Compare November 29, 2025 19:58
@KristofferC
Copy link
Member Author

Woho, green!

@KristofferC KristofferC merged commit 1fb4d20 into release-1.13 Nov 30, 2025
7 checks passed
@KristofferC KristofferC deleted the backports-release-1.13 branch November 30, 2025 08:28
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.

7 participants