Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d171cbd
Update left-over reference to Core.GlobalMethods (#59976)
fingolfin Oct 29, 2025
aec2423
Revert "precompile: fail in (closer to) linear time and linear error …
giordano Oct 29, 2025
a72530b
fix: TOML parsing of fractional seconds (#59999)
haakon-e Oct 31, 2025
7ccd641
cgutils: fix write barrier of atomic-setonce (#59991)
vtjnash Nov 1, 2025
0054bda
REPL: make interactive precompiles test more robust (#60006)
IanButterworth Nov 1, 2025
53e2577
Fix compile-database target (#59980)
fingolfin Nov 1, 2025
f1e0d1c
fix `pointerarith_tfunc` for Const ptr (#60011)
oscardssmith Nov 1, 2025
6cc6441
doc: workaround for lowering scope mistake (#60002)
vtjnash Nov 2, 2025
9df3c83
LibGit2: expose the depth option to clone and fetch (#60024)
KristofferC Nov 3, 2025
4fa4f8a
loading: improve precompilation cache reason messages (#60012)
vtjnash Nov 3, 2025
81ff9f2
Type-assert the return type of `collect(...)` in TOML (#59932)
JamesWrigley Nov 4, 2025
4d7b977
MozillaCACerts: Update to 2025-11-04 (#60041)
eschnett Nov 4, 2025
d78b8a1
CI: Use the 1.13-specific Buildkite branch
DilumAluthge Nov 5, 2025
ee54df2
update Pkg branch (#60005)
IanButterworth Nov 6, 2025
bb9d31e
bump Pkg to latest 1.13
KristofferC Nov 10, 2025
54749bc
Don't trigger full rebuild if git is dirty (#60023)
IanButterworth Nov 5, 2025
54e1e97
fix waitall deadlock if any errors occur (#60030)
vtjnash Nov 5, 2025
9627e91
p7zip 17.7.0 (#60025)
nhz2 Nov 7, 2025
020d257
Markdown: don't allow space between parts of a link (#59977)
fingolfin Nov 7, 2025
16198e5
improve behavior of bracket insertion in some situations (#60060)
KristofferC Nov 7, 2025
02ca408
only show unique entries in history search when filtering (#60066)
KristofferC Nov 7, 2025
48c0e38
Avoid hardcoding paths in Profile and Sys (#59998)
nalimilan Nov 8, 2025
8ce7579
disable compiling for typeinf world during incremental compile (#60079)
vtjnash Nov 9, 2025
954df87
Fix windows profiler deadlock (#60056)
xal-0 Nov 10, 2025
761b05f
deps: fix rpath of 7z after moving to libexecdir (#60098)
vtjnash Nov 11, 2025
79c3bba
fix string completion with cursor in the middle of text (#60082)
KristofferC Nov 10, 2025
3a769ea
Backport to 1.13: bump Documenter to 1.15.0 (#60127)
fingolfin Nov 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .buildkite-external-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
main
release-julia-1.13
2 changes: 1 addition & 1 deletion Compiler/src/tfuncs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -708,7 +708,7 @@ function pointer_eltype(@nospecialize(ptr))
end

@nospecs function pointerarith_tfunc(𝕃::AbstractLattice, ptr, offset)
return ptr
return widenconst(ptr)
end
@nospecs function pointerref_tfunc(𝕃::AbstractLattice, a, i, align)
return pointer_eltype(a)
Expand Down
7 changes: 7 additions & 0 deletions Compiler/test/effects.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1486,3 +1486,10 @@ let effects = Base.infer_effects((Core.SimpleVector,Int); optimize=false) do sve
end

@test Compiler.is_nothrow(Base.infer_effects(length, (Core.SimpleVector,)))


# https://github.com/JuliaLang/julia/issues/60009
function null_offset(offset)
Ptr{UInt8}(C_NULL) + offset
end
@test null_offset(Int(100)) == Ptr{UInt8}(UInt(100))
3 changes: 1 addition & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,6 @@ ifneq ($(DARWIN_FRAMEWORK),1)
endif
else ifneq (,$(findstring $(OS),Linux FreeBSD))
for j in $(JL_PRIVATE_EXES) ; do \
[ $$j = 7z ] && continue; \
[ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(reverse_private_libexecdir_rel)' $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
done
Expand Down Expand Up @@ -712,7 +711,7 @@ distcleanall: cleanall

# Generate compilation database (leverages existing clang tooling setup)
compile-database:
@$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/src compile-database-src
@$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/src compile-database

test: check-whitespace $(JULIA_BUILD_MODE)
@$(MAKE) $(QUIET_MAKE) -C $(BUILDROOT)/test default JULIA_BUILD_MODE=$(JULIA_BUILD_MODE)
Expand Down
1 change: 1 addition & 0 deletions base/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
/uv_constants.jl
/version_git.jl
/version_git.jl.phony
/version_git_dirty
/userimg.jl
/JuliaSyntax
2 changes: 2 additions & 0 deletions base/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ endif
@printf "%s\n" "const PRIVATE_LIBDIR = "$(call shell_escape,$(call julia_escape,$(call normalize_path,$(private_libdir_rel)))) >> $@
@printf "%s\n" "const PRIVATE_LIBEXECDIR = "$(call shell_escape,$(call julia_escape,$(call normalize_path,$(private_libexecdir_rel)))) >> $@
@printf "%s\n" "const INCLUDEDIR = "$(call shell_escape,$(call julia_escape,$(call normalize_path,$(includedir_rel)))) >> $@
@printf "%s\n" "const SOURCEDIR = "$(call shell_escape,$(call julia_escape,$(call normalize_path,$(shell echo $(call cygpath_w,$(JULIAHOME)))))) >> $@
ifeq ($(DARWIN_FRAMEWORK), 1)
@printf "%s\n" "const DARWIN_FRAMEWORK = true" >> $@
@printf "%s\n" "const DARWIN_FRAMEWORK_NAME = \"$(FRAMEWORK_NAME)\"" >> $@
Expand Down Expand Up @@ -306,4 +307,5 @@ clean:
-rm -f $(BUILDDIR)/file_constants.jl
-rm -f $(BUILDDIR)/version_git.jl
-rm -f $(BUILDDIR)/version_git.jl.phony
-rm -f $(BUILDDIR)/version_git_dirty
-rm -f $(build_private_libdir)/lib*.$(SHLIB_EXT)*
4 changes: 4 additions & 0 deletions base/docs/Docs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,10 @@ function objectdoc(__source__, __module__, str, def, expr, sig = :(Union{}))
# Special case: `global x` should return nothing to avoid syntax errors with assigning to a value
val = nothing
else
if isexpr(def, :(=), 2) && isexpr(def.args[1], :curly)
# workaround for lowering bug #60001
exdef = Expr(:block, exdef)
end
val = :val
exdef = Expr(:(=), val, exdef)
end
Expand Down
2 changes: 1 addition & 1 deletion base/initdefs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ const DEPOT_PATH = String[]
function append_bundled_depot_path!(DEPOT_PATH)
path = abspath(Sys.BINDIR, "..", "local", "share", "julia")
path in DEPOT_PATH || push!(DEPOT_PATH, path)
path = abspath(Sys.BINDIR, "..", "share", "julia")
path = abspath(Sys.BINDIR, Base.DATAROOTDIR, "julia")
path in DEPOT_PATH || push!(DEPOT_PATH, path)
return DEPOT_PATH
end
Expand Down
44 changes: 22 additions & 22 deletions base/loading.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4018,7 +4018,7 @@ end
record_reason(::Nothing, ::String) = nothing
function list_reasons(reasons::Dict{String,Int})
isempty(reasons) && return ""
return " (cache misses: $(join(("$k ($v)" for (k,v) in reasons), ", ")))"
return " (caches not reused: $(join(("$v for $k" for (k,v) in reasons), ", ")))"
end
list_reasons(::Nothing) = ""

Expand All @@ -4027,7 +4027,7 @@ function any_includes_stale(includes::Vector{CacheHeaderIncludes}, cachefile::St
f, fsize_req, hash_req, ftime_req = chi.filename, chi.fsize, chi.hash, chi.mtime
if startswith(f, string("@depot", Filesystem.pathsep()))
@debug("Rejecting stale cache file $cachefile because its depot could not be resolved")
record_reason(reasons, "nonresolveable depot")
record_reason(reasons, "file location uses unresolved depot path")
return true
end
if !ispath(f)
Expand All @@ -4036,7 +4036,7 @@ function any_includes_stale(includes::Vector{CacheHeaderIncludes}, cachefile::St
continue
end
@debug "Rejecting stale cache file $cachefile because file $f does not exist"
record_reason(reasons, "missing sourcefile")
record_reason(reasons, "source file not found")
return true
end
if ftime_req >= 0.0
Expand All @@ -4050,21 +4050,21 @@ function any_includes_stale(includes::Vector{CacheHeaderIncludes}, cachefile::St
!( 0 < (ftime_req - ftime) < 1e-6 ) # PR #45552: Compensate for Windows tar giving mtimes that may be incorrect by up to one microsecond
if is_stale
@debug "Rejecting stale cache file $cachefile because mtime of include_dependency $f has changed (mtime $ftime, before $ftime_req)"
record_reason(reasons, "include_dependency mtime change")
record_reason(reasons, "file modification time changed")
return true
end
else
fstat = stat(f)
fsize = filesize(fstat)
if fsize != fsize_req
@debug "Rejecting stale cache file $cachefile because file size of $f has changed (file size $fsize, before $fsize_req)"
record_reason(reasons, "include_dependency fsize change")
record_reason(reasons, "file size changed")
return true
end
hash = isdir(fstat) ? _crc32c(join(readdir(f))) : open(_crc32c, f, "r")
if hash != hash_req
@debug "Rejecting stale cache file $cachefile because hash of $f has changed (hash $hash, before $hash_req)"
record_reason(reasons, "include_dependency fhash change")
record_reason(reasons, "file content changed")
return true
end
end
Expand Down Expand Up @@ -4092,7 +4092,7 @@ end
checksum = isvalid_cache_header(io)
if iszero(checksum)
@debug "Rejecting cache file $cachefile due to it containing an incompatible cache header"
record_reason(reasons, "incompatible header")
record_reason(reasons, "different Julia build configuration")
return true # incompatible cache file
end
modules, (includes, _, requires), required_modules, srctextpos, prefs, prefs_hash, clone_targets, actual_flags = parse_cache_header(io, cachefile)
Expand All @@ -4105,7 +4105,7 @@ end
requested flags: $(requested_flags) [$(_cacheflag_to_uint8(requested_flags))]
cache file: $(CacheFlags(actual_flags)) [$actual_flags]
"""
record_reason(reasons, "mismatched flags")
record_reason(reasons, "different compilation options")
return true
end
pkgimage = !isempty(clone_targets)
Expand All @@ -4114,7 +4114,7 @@ end
if JLOptions().use_pkgimages == 0
# presence of clone_targets means native code cache
@debug "Rejecting cache file $cachefile for $modkey since it would require usage of pkgimage"
record_reason(reasons, "requires pkgimages")
record_reason(reasons, "native code caching disabled")
return true
end
rejection_reasons = check_clone_targets(clone_targets)
Expand All @@ -4123,12 +4123,12 @@ end
Reasons=rejection_reasons,
var"Image Targets"=parse_image_targets(clone_targets),
var"Current Targets"=current_image_targets())
record_reason(reasons, "target mismatch")
record_reason(reasons, "different system or CPU target")
return true
end
if !isfile(ocachefile)
@debug "Rejecting cache file $cachefile for $modkey since pkgimage $ocachefile was not found"
record_reason(reasons, "missing ocachefile")
record_reason(reasons, "native code cache file not found")
return true
end
else
Expand All @@ -4137,15 +4137,15 @@ end
id = first(modules)
if id.first != modkey && modkey != PkgId("")
@debug "Rejecting cache file $cachefile for $modkey since it is for $id instead"
record_reason(reasons, "for different pkgid")
record_reason(reasons, "different package identifier")
return true
end
id_build = id.second
id_build = (UInt128(checksum) << 64) | (id_build % UInt64)
if build_id != UInt128(0)
if id_build != build_id
@debug "Ignoring cache file $cachefile for $modkey ($(UUID(id_build))) since it does not provide desired build_id ($((UUID(build_id))))"
record_reason(reasons, "for different buildid")
record_reason(reasons, "different build identifier")
return true
end
end
Expand All @@ -4171,20 +4171,20 @@ end
continue
elseif M == Core
@debug "Rejecting cache file $cachefile because it was made with a different julia version"
record_reason(reasons, "wrong julia version")
record_reason(reasons, "different Julia version")
return true # Won't be able to fulfill dependency
elseif ignore_loaded || !stalecheck
# Used by Pkg.precompile given that there it's ok to precompile different versions of loaded packages
else
@debug "Rejecting cache file $cachefile because module $req_key is already loaded and incompatible."
record_reason(reasons, "wrong dep version loaded")
record_reason(reasons, "different dependency version already loaded")
return true # Won't be able to fulfill dependency
end
end
path = locate_package(req_key) # TODO: add env and/or skip this when stalecheck is false
if path === nothing
@debug "Rejecting cache file $cachefile because dependency $req_key not found."
record_reason(reasons, "dep missing source")
record_reason(reasons, "dependency source file not found")
return true # Won't be able to fulfill dependency
end
depmods[i] = (path, req_key, req_build_id)
Expand All @@ -4203,7 +4203,7 @@ end
break
end
@debug "Rejecting cache file $cachefile because it provides the wrong build_id (got $((UUID(build_id)))) for $req_key (want $(UUID(req_build_id)))"
record_reason(reasons, "wrong dep buildid")
record_reason(reasons, "different dependency build identifier")
return true # cachefile doesn't provide the required version of the dependency
end
end
Expand All @@ -4219,7 +4219,7 @@ end
if !(isreadable(stdlib_path) && samefile(stdlib_path, modpath))
!samefile(fixup_stdlib_path(includes[1].filename), modpath)
@debug "Rejecting cache file $cachefile because it is for file $(includes[1].filename) not file $modpath"
record_reason(reasons, "wrong source")
record_reason(reasons, "different source file path")
return true # cache file was compiled from a different path
end
end
Expand All @@ -4228,7 +4228,7 @@ end
pkg = identify_package(modkey, req_modkey.name)
if pkg != req_modkey
@debug "Rejecting cache file $cachefile because uuid mapping for $modkey => $req_modkey has changed, expected $modkey => $(repr("text/plain", pkg))"
record_reason(reasons, "dep uuid changed")
record_reason(reasons, "dependency identifier changed")
return true
end
end
Expand All @@ -4239,22 +4239,22 @@ end

if !isvalid_file_crc(io)
@debug "Rejecting cache file $cachefile because it has an invalid checksum"
record_reason(reasons, "invalid checksum")
record_reason(reasons, "cache file checksum is invalid")
return true
end

if pkgimage
if !isvalid_pkgimage_crc(io, ocachefile::String)
@debug "Rejecting cache file $cachefile because $ocachefile has an invalid checksum"
record_reason(reasons, "ocachefile invalid checksum")
record_reason(reasons, "native code cache checksum is invalid")
return true
end
end

curr_prefs_hash = get_preferences_hash(id.uuid, prefs)
if prefs_hash != curr_prefs_hash
@debug "Rejecting cache file $cachefile because preferences hash does not match 0x$(string(prefs_hash, base=16)) != 0x$(string(curr_prefs_hash, base=16))"
record_reason(reasons, "preferences hash mismatch")
record_reason(reasons, "package preferences changed")
return true
end

Expand Down
2 changes: 1 addition & 1 deletion base/methodshow.jl
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ function fixup_stdlib_path(path::String)
if isdefined(@__MODULE__, :Core) && isdefined(Core, :Compiler)
compiler_folder = dirname(String(Base.moduleloc(Core.Compiler).file))
if dirname(path) == compiler_folder
return abspath(Sys.STDLIB, "..", "..", "Compiler", "src", basename(path))
return abspath(Sys.BINDIR, Base.DATAROOTDIR, "julia", "Compiler", "src", basename(path))
end
end
end
Expand Down
Loading