Skip to content

Commit 006853a

Browse files
authored
Merge pull request #38122 from JuliaLang/backports-release-1.5
Backports release 1.5.3
2 parents 5905ede + 0305b7c commit 006853a

File tree

61 files changed

+505
-320
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+505
-320
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ endif
477477

478478
exe:
479479
# run Inno Setup to compile installer
480-
$(call spawn,$(JULIAHOME)/dist-extras/inno/iscc.exe /DAppVersion=$(JULIA_VERSION) /DSourceDir="$(call cygpath_w,$(BUILDROOT)/julia-$(JULIA_COMMIT))" /DRepoDir="$(call cygpath_w,$(JULIAHOME))" /F"$(JULIA_BINARYDIST_FILENAME)" /O"$(call cygpath_w,$(BUILDROOT))" $(call cygpath_w,$(JULIAHOME)/contrib/windows/build-installer.iss))
480+
$(call spawn,$(JULIAHOME)/dist-extras/inno/iscc.exe /DAppVersion=$(JULIA_VERSION) /DSourceDir="$(call cygpath_w,$(BUILDROOT)/julia-$(JULIA_COMMIT))" /DRepoDir="$(call cygpath_w,$(JULIAHOME))" /F"$(JULIA_BINARYDIST_FILENAME)" /O"$(call cygpath_w,$(BUILDROOT))" $(INNO_ARGS) $(call cygpath_w,$(JULIAHOME)/contrib/windows/build-installer.iss))
481481
chmod a+x "$(BUILDROOT)/$(JULIA_BINARYDIST_FILENAME).exe"
482482

483483
app:

base/compiler/tfuncs.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ function getfield_tfunc(@nospecialize(s00), @nospecialize(name))
770770
nv = fieldindex(widenconst(s), nv, false)
771771
end
772772
if isa(nv, Int) && 1 <= nv <= length(s.fields)
773-
return s.fields[nv]
773+
return unwrapva(s.fields[nv])
774774
end
775775
end
776776
s = widenconst(s)

base/compiler/typeutils.jl

-9
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,6 @@ function typesubtract(@nospecialize(a), @nospecialize(b))
7070
if isa(a, Union)
7171
return Union{typesubtract(a.a, b),
7272
typesubtract(a.b, b)}
73-
elseif a isa DataType
74-
if b isa DataType
75-
if a.name === b.name === Tuple.name && length(a.types) == length(b.types)
76-
ta = switchtupleunion(a)
77-
if length(ta) > 1
78-
return typesubtract(Union{ta...}, b)
79-
end
80-
end
81-
end
8273
end
8374
return a # TODO: improve this bound?
8475
end

base/file.jl

+31-1
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,32 @@ function tempdir()
458458
end
459459
end
460460

461+
"""
462+
prepare_for_deletion(path::AbstractString)
463+
464+
Prepares the given `path` for deletion by ensuring that all directories within that
465+
`path` have write permissions, so that files can be removed from them. This is
466+
automatically invoked by methods such as `mktempdir()` to ensure that no matter what
467+
weird permissions a user may have created directories with within the temporary prefix,
468+
it will always be deleted.
469+
"""
470+
function prepare_for_deletion(path::AbstractString)
471+
# Nothing to do for non-directories
472+
if !isdir(path)
473+
return
474+
end
475+
476+
try chmod(path, filemode(path) | 0o333)
477+
catch; end
478+
for (root, dirs, files) in walkdir(path)
479+
for dir in dirs
480+
dpath = joinpath(root, dir)
481+
try chmod(dpath, filemode(dpath) | 0o333)
482+
catch; end
483+
end
484+
end
485+
end
486+
461487
const TEMP_CLEANUP_MIN = Ref(1024)
462488
const TEMP_CLEANUP_MAX = Ref(1024)
463489
const TEMP_CLEANUP = Dict{String,Bool}()
@@ -484,6 +510,7 @@ function temp_cleanup_purge(all::Bool=true)
484510
if (all || asap) && ispath(path)
485511
need_gc && GC.gc(true)
486512
need_gc = false
513+
prepare_for_deletion(path)
487514
rm(path, recursive=true, force=true)
488515
end
489516
!ispath(path) && delete!(TEMP_CLEANUP, path)
@@ -682,7 +709,10 @@ function mktempdir(fn::Function, parent::AbstractString=tempdir();
682709
fn(tmpdir)
683710
finally
684711
try
685-
ispath(tmpdir) && rm(tmpdir, recursive=true)
712+
if ispath(tmpdir)
713+
prepare_for_deletion(tmpdir)
714+
rm(tmpdir, recursive=true)
715+
end
686716
catch ex
687717
@error "mktempdir cleanup" _group=:file exception=(ex, catch_backtrace())
688718
# might be possible to remove later

base/methodshow.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function argtype_decl(env, n, sig::DataType, i::Int, nargs, isva::Bool) # -> (ar
1313
s = string(n)
1414
i = findfirst(isequal('#'), s)
1515
if i !== nothing
16-
s = s[1:i-1]
16+
s = s[1:prevind(s, i)]
1717
end
1818
if t === Any && !isempty(s)
1919
return s, ""

base/process.jl

+3-4
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ Returns successfully if the process has already exited, but throws an
546546
error if killing the process failed for other reasons (e.g. insufficient
547547
permissions).
548548
"""
549-
function kill(p::Process, signum::Integer)
549+
function kill(p::Process, signum::Integer=SIGTERM)
550550
iolock_begin()
551551
if process_running(p)
552552
@assert p.handle != C_NULL
@@ -558,9 +558,8 @@ function kill(p::Process, signum::Integer)
558558
iolock_end()
559559
nothing
560560
end
561-
kill(ps::Vector{Process}) = foreach(kill, ps)
562-
kill(ps::ProcessChain) = foreach(kill, ps.processes)
563-
kill(p::Process) = kill(p, SIGTERM)
561+
kill(ps::Vector{Process}, signum::Integer=SIGTERM) = for p in ps; kill(p, signum); end
562+
kill(ps::ProcessChain, signum::Integer=SIGTERM) = kill(ps.processes, signum)
564563

565564
"""
566565
getpid(process) -> Int32

contrib/windows/build-installer.iss

+3
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ UninstallDisplayName={#AppNameLong}
7474
UninstallDisplayIcon={app}\{#AppMainExeName}
7575
UninstallFilesDir={app}\uninstall
7676

77+
#ifdef Sign
78+
SignTool=mysigntool
79+
#endif
7780

7881
[Languages]
7982
Name: "english"; MessagesFile: "compiler:Default.isl"

deps/Versions.make

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ CURL_BB_REL = 1
3030
LIBGIT2_VER = 0.28.2
3131
LIBGIT2_BB_REL = 1
3232
LIBUV_VER = 1.29.1
33-
LIBUV_BB_REL = 0
33+
LIBUV_BB_REL = 9
3434
OBJCONV_VER = 2.49.0
3535
OBJCONV_BB_REL = 0
3636
ZLIB_VER = 1.2.11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2bd32030f78a45b6195999407f510aa5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1ccc3ffa4f5473e74f4ce342423bddc268a6f70d9743aa2f11124163db27f3e56711e85555895e2ff506a025f9dfbfec686ff457e949aa45d86ffef5ec6c2037
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
c3b6f24843c4be53fa72d995a9296450
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1659c0fa80c162411c284bcf85dfac2d6a699bf2b09bbfe7868ebade0c5e424e3bda416b345cc101f946dbbbd7fea677318d733ad12bf3bb6ba5555accbe8d45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
71b09d3e80394d283756348854a65017
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b360975c81b574a9ed673c106ab0a520eac42e594b48933a9e0526a1e00462da524b86a516d860945e04fe395ddba31acebe1ed8609aa65ccc7eea784ef0fb68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
40bf3062a91d1c24122e71be0479ed94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
aa66897bd05f13daf682104b16329093f1234922c07d97e8134db0a1f499d17c8716704e4c8b21a00d148afa920f4fa1d2fd884a545c973b8a6734d7aada5fc6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
11477f56cffc636d48245ad623eea1c7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
da82d92db2ba2bf0c0b52928390bbf0ee5a8212883fd23a772c7735c7f427ca229229b75e8d7ff8964d42a2ab0614f1adfd156e0ef067b682931e0236fe7ef7b
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
739be10627a93a419f0a9f193232931c
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8abf48cf61ef7dd1a7d619bb062ba919d97d9d68f2e3d04dd7c4fdfacf01e5bcc864ecd6fe5e8782ba72822764883583d60c5164c96fe030a979d3436278f2bd
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3e27de72945d3eda858798b8faaaa2f9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
c0dd0c3dea0f9e2b7319f46733685a5ac1ecb6423886e669aeb14e1bc8aae4017ad994b8802dcc9f57cceaebf138f3f4328b97d2f0a64c317243ce3fe282dd52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
4231a4b2c1adb333f2ed603ad22b92c5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
aef5f19dc6b1061f1ebd205e4663779498e0094435dc875e4ebca3dda67b0c11d5cb8eb88a20f9baaf82d59a1e83a5fedcdb7a6be9255d738aca1981656523bf
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ac719bf85a3619e9d238d0efb1291ef0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
753e640aeca665b6e35deed35860d8e3f3076b9c1cfae382d029827e138bc3ff65a90bbee2f828a8371ac15bca29469c1720b3c1b9c29f56d8b402790c7608e8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
446e2ffac64e64b24c47d17d03cdc3a3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
185ec913e17aa00b866c1c7f2b4645c80ab8ff067ee1c176cc33c75e6161450994a795feeb46ca0bcbb80bbc727de8a4532ddee5b658fdc9bbf10b1676a54026
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0f7913302512ad1002ce77b2c619a4c8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
c8cc6d5a27bc21f28a1cb7e75b40947e9870ace136e50040fefe067c30398f3a1655ce28fa43b28e09ff743d5f1bbce061dff2f47ab67ca81cd3d1e6f360317a
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2fd4a5b814194d588186485b8cc5b73d
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
4b72488b5afa6dcc64763155489a4aad0f438266bdc039c03ed8835cf14f6159c5151751cdbc61cdfb54253bf458b2af4a7d3d8cb6ad70ffb154df0082c2149b
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
bab85c5eae8370f4058e06b6779c7dc7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
78f42e12f99a9dddfec221c03e43fb76ac0ab664b6aec7f3f1a5f55fbc72c9cf03e2e7f99a4bb22b9a0e568cd448d52f5b91f22cf4aff6a3a3e5ddc6e5c963b7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
d6a6ee3e1575e3b0cf64adf6d2c7c28d
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3aa17ba7f7a9b76be7a8ddcebfa55c2eb62961c9dd3b4d06551a85fb58cacfcd53a40d2c2dd168f25f8ef5630fb01b3a41537dc9e4b4d54b409fe7d52a748cfa
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
9388aa4d36915724f1de4b20b205ed35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
70b0c738a60b4e476750b7de8d120e735359e2c36fcb3a8a38628a0ae326210ed3b15d793dfd5443d7aa5603e83e7d99f567aa4c1696846d950df9f83648669c

deps/libuv.mk

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ fastcheck-libuv: #none
6464
check-libuv: $(LIBUV_BUILDDIR)/build-checked
6565

6666
else # USE_BINARYBUILDER_LIBUV
67-
LIBUV_BB_URL_BASE := https://github.com/JuliaPackaging/Yggdrasil/releases/download/LibUV-v2+$(LIBUV_VER)-julia+$(LIBUV_BB_REL)
68-
LIBUV_BB_NAME := LibUV.v2.0.0+$(LIBUV_VER)-julia
67+
LIBUV_BB_URL_BASE := https://github.com/JuliaBinaryWrappers/LibUV_jll.jl/releases/download/LibUV-v2.0.0+$(LIBUV_BB_REL)
68+
LIBUV_BB_NAME := LibUV.v2.0.0
6969

7070
$(eval $(call bb-install,libuv,LIBUV,false))
7171
endif

deps/libuv.version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
LIBUV_BRANCH=julia-uv2-1.29.1
2-
LIBUV_SHA1=35b1504507a7a4168caae3d78db54d1121b121e1
2+
LIBUV_SHA1=1fcc6d66f9df74189c74d3d390f02202bb7db953

doc/src/devdocs/locks.md

+1

src/datatype.c

+3
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ jl_datatype_t *jl_new_uninitialized_datatype(void)
9595
t->zeroinit = 0;
9696
t->isinlinealloc = 0;
9797
t->has_concrete_subtype = 1;
98+
t->name = NULL;
99+
t->super = NULL;
100+
t->parameters = NULL;
98101
t->layout = NULL;
99102
t->names = NULL;
100103
t->types = NULL;

0 commit comments

Comments
 (0)