Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backports for 1.8-rc1/beta4 #44789

Merged
merged 68 commits into from
May 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
c38e892
Distributed test suite: wrap another non-thread-safe test in `poll_wh…
DilumAluthge Feb 22, 2022
9daeadd
Pass around effects during cacheing (#44777)
Mar 28, 2022
dc89240
errors: fix handling of `.op` in lowering (#44770)
simeonschaub Mar 28, 2022
807b74c
fix #44732, propagate effects of a thrown concrete call correctly (#4…
aviatesk Mar 29, 2022
f560674
fix `===` when encountering null pointer (#44749)
Moelf Mar 29, 2022
c4a53a8
inference: implement missing effects propagation from `abstract_invok…
aviatesk Mar 28, 2022
e71e722
effects: change the `overlayed::Bool` property to `nonoverlayed::Bool…
aviatesk Mar 30, 2022
0b1be4b
effects: add reflection utility for the new effect analysis (#44785)
aviatesk Mar 31, 2022
1693503
follow up #44786, fix `findsup` to return correct `overlayed` value (…
aviatesk Apr 1, 2022
5ff15cb
effects: replaces usages of `ALWAYS_FALSE` with `TRISTATE_UNKNOWN` (#…
aviatesk Apr 1, 2022
87ea300
add new `:total_may_throw` utility setting for `@assume_effects` (#44…
aviatesk Apr 1, 2022
520c089
remove `isvarargtype` assertions from `subtype` and `intersect` (#44761)
aviatesk Apr 8, 2022
27fc73e
inference: properly compare vararg-tuple `PartialStruct`s
aviatesk Apr 13, 2022
72f3643
inference: more `Vararg` handling
aviatesk Apr 13, 2022
9d56f9a
inference: don't forget to add backedge for effect-free frame (#45017)
aviatesk Apr 19, 2022
d49e065
Improve inference for string operations (#44500)
timholy Mar 16, 2022
477dfb9
Fix performance issue with diagonal multiplication (#44651)
dkarrasch Mar 29, 2022
efb28d2
profile: fix async deadlock (#44781)
vtjnash Mar 29, 2022
ddc620f
restore MSVC support to julia.h file (#44842)
Taaitaaiger Apr 4, 2022
2a0f4de
[Zlib_jll] Update to v1.2.12+3 (#44810)
giordano Apr 4, 2022
7cfc43f
fix missing field type initialization vars (#44797)
vtjnash Apr 7, 2022
09e14a4
Fix "anonymous types declared in an anonymous union" warnings (#44807)
fingolfin Apr 10, 2022
1f6dc03
Fix 44921 by properly setting Vboxed field (#44942)
Apr 12, 2022
a897847
distributed docs (#44940)
Apr 12, 2022
0997684
asyncevents: fix missing GC root and race (#44956)
vtjnash Apr 13, 2022
81c8819
[REPL] Fix a REPL test failure by removing an erroneous space in test…
vtjnash Apr 14, 2022
fe0faad
Fix embedding with MSVC (#44976)
barche Apr 14, 2022
26a25e2
Update Example header in admonition to render PDF better, see #44866.…
ViralBShah Apr 19, 2022
cc5743c
Initialize jl_page_size when not calling julia_init. (#44699)
maleadt Mar 30, 2022
f13039e
Change type of donotdelete intrinsics
vchuravy Apr 19, 2022
5073c4e
Fix attributes for donotdelete intrinsic
Keno Apr 19, 2022
bbb53ac
inference: relax backedge optimization condition (#45030)
aviatesk Apr 20, 2022
c6dc6d1
Fix some inference failures in Base.require call graph (#44628)
timholy Mar 16, 2022
b1e1c52
gc-ext: only sweep unmarked objects (#45035)
vtjnash Apr 20, 2022
68ddba3
[doc] Add a Cover page to PDF doc (#45034)
inkydragon Apr 23, 2022
eadbeec
correct man-custom-indices ref in devdocs (#45071)
xlxs4 Apr 23, 2022
c2ce2a1
Correct typo in devdocs gc-sa (#45072)
xlxs4 Apr 24, 2022
515a5ce
[deps] Fix compillation of LLVM with system zlib (#45119)
giordano Apr 29, 2022
f5e292a
Create a copy while evaluating eigvals(::Diagonal) (#45048)
jishnub May 2, 2022
6d4b8d0
Fix bug in `pinv` (#45009)
hyrodium May 2, 2022
f89f049
[deps] Remove Python workaround in LLVM build, no longer necessary (#…
giordano May 4, 2022
e0e24c1
Fix different .cachepath initialization points for precompile load (#…
Keno May 7, 2022
66ba1ad
Avoid race condition in cleaning up cache files (#45214)
simonbyrne May 8, 2022
fb45a1a
Consider additional default ssh keys for LibGit2. (#44767)
GunnarFarneback May 9, 2022
a380056
syntax: keyword sorter location should just be definition line (#45199)
JeffBezanson May 9, 2022
51f8ac2
fix #45162, function arg not specialized if only called with keywords…
JeffBezanson May 9, 2022
b3dde45
Fix a concurrency bug in `iterate(::Dict)` (#44534)
tkf Mar 12, 2022
293b513
Bump Documenter to get the new pdf improvements for the manual.
May 16, 2022
b11258a
codegen: add handling for undefined phinode values (#45155)
vtjnash May 11, 2022
834c8e6
Use `CartesianIndices(Rsrc)` as the shared iterator. (#45289)
N5N3 May 16, 2022
3dfa74d
Typo fix. (#45333)
N5N3 May 17, 2022
43ba8ae
Resurrect libunwind patches (#45189)
fxcoudert May 17, 2022
1f9140f
[deps] Use newer `config.sub` when building nghttp2 (#45346)
giordano May 18, 2022
1ccb618
fix #45024, lost `expected assignment after const` error (#45344)
JeffBezanson May 18, 2022
eb82f18
codegen: explicitly handle Float16 intrinsics (#45249)
pchintalapudi Mar 12, 2022
945a2db
Guard GCC-specific macros with `_COMPILER_GCC_` (#44353)
giordano Feb 28, 2022
8c69941
Fix error in validating complex row-first hvncat (#45365)
BioTurboNick May 19, 2022
8c33506
Apply patch for GMP CVE-2021-43618 (#45375)
ViralBShah May 20, 2022
dea62ee
Use root module when determining UUID in @artifact_str (#45392)
May 21, 2022
823071e
OpenBLAS: Find objconv in its proper path (#45391)
fxcoudert May 21, 2022
b8943ec
Update PCRE2 to 10.40 (#45398)
fxcoudert May 21, 2022
a02630e
set default blas num threads to Sys.CPU_THREADS / 2 (#45412)
Moelf May 22, 2022
6acc46b
Don't error when transposing a single character (#45420)
perryprog May 23, 2022
5403c43
bump Pkg version to latest 1.8
May 24, 2022
11a1ee2
Update p7zip to 17.04 (#45435)
fxcoudert May 24, 2022
7a4cef7
[Distributed] Set stdin to devnull before closing it
vtjnash Jan 26, 2022
2cf85b6
Fix use-after-free bugs in debuginfo (#45016)
pchintalapudi May 24, 2022
8bca2f4
fix #45440, improve the robustness of concrete-evaled callsite inlining
aviatesk May 25, 2022
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
4 changes: 4 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ New library functions
New library features
--------------------

* A known concurrency issue of `iterate` methods on `Dict` and other derived objects such
as `keys(::Dict)`, `values(::Dict)`, and `Set` is fixed. These methods of `iterate` can
now be called on a dictionary or set shared by arbitrary tasks provided that there are no
tasks mutating the dictionary or set ([#44534]).
* `@time` and `@timev` now take an optional description to allow annotating the source of time reports,
e.g. `@time "Evaluating foo" foo()` ([#42431]).
* `range` accepts either `stop` or `length` as a sole keyword argument ([#39241]).
Expand Down
5 changes: 4 additions & 1 deletion base/abstractarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2375,14 +2375,17 @@ function _typed_hvncat_dims(::Type{T}, dims::NTuple{N, Int}, row_first::Bool, as
# validate shapes for lowest level of concatenation
d = findfirst(>(1), dims)
if d !== nothing # all dims are 1
if row_first && d < 3
d = d == 1 ? 2 : 1
end
nblocks = length(as) ÷ dims[d]
for b ∈ 1:nblocks
offset = ((b - 1) * dims[d])
startelementi = offset + 1
for i ∈ offset .+ (2:dims[d])
for dd ∈ 1:N
dd == d && continue
if size(as[startelementi], dd) != size(as[i], dd)
if cat_size(as[startelementi], dd) != cat_size(as[i], dd)
throw(ArgumentError("incompatible shape in element $i"))
end
end
Expand Down
67 changes: 42 additions & 25 deletions base/asyncevent.jl
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,22 @@ the async condition object itself.
"""
function AsyncCondition(cb::Function)
async = AsyncCondition()
t = @task while _trywait(async)
cb(async)
isopen(async) || return
t = @task begin
unpreserve_handle(async)
while _trywait(async)
cb(async)
isopen(async) || return
end
end
# here we are mimicking parts of _trywait, in coordination with task `t`
preserve_handle(async)
@lock async.cond begin
if async.set
schedule(t)
else
_wait2(async.cond, t)
end
end
lock(async.cond)
_wait2(async.cond, t)
unlock(async.cond)
return async
end

Expand Down Expand Up @@ -115,6 +124,7 @@ function _trywait(t::Union{Timer, AsyncCondition})
# full barrier now for AsyncCondition
t isa Timer || Core.Intrinsics.atomic_fence(:acquire_release)
else
t.isopen || return false
t.handle == C_NULL && return false
iolock_begin()
set = t.set
Expand All @@ -123,14 +133,12 @@ function _trywait(t::Union{Timer, AsyncCondition})
lock(t.cond)
try
set = t.set
if !set
if t.handle != C_NULL
iolock_end()
set = wait(t.cond)
unlock(t.cond)
iolock_begin()
lock(t.cond)
end
if !set && t.isopen && t.handle != C_NULL
iolock_end()
set = wait(t.cond)
unlock(t.cond)
iolock_begin()
lock(t.cond)
end
finally
unlock(t.cond)
Expand Down Expand Up @@ -266,19 +274,28 @@ julia> begin
"""
function Timer(cb::Function, timeout::Real; interval::Real=0.0)
timer = Timer(timeout, interval=interval)
t = @task while _trywait(timer)
try
cb(timer)
catch err
write(stderr, "Error in Timer:\n")
showerror(stderr, err, catch_backtrace())
return
t = @task begin
unpreserve_handle(timer)
while _trywait(timer)
try
cb(timer)
catch err
write(stderr, "Error in Timer:\n")
showerror(stderr, err, catch_backtrace())
return
end
isopen(timer) || return
end
end
# here we are mimicking parts of _trywait, in coordination with task `t`
preserve_handle(timer)
@lock timer.cond begin
if timer.set
schedule(t)
else
_wait2(timer.cond, t)
end
isopen(timer) || return
end
lock(timer.cond)
_wait2(timer.cond, t)
unlock(timer.cond)
return timer
end

Expand Down
4 changes: 3 additions & 1 deletion base/binaryplatforms.jl
Original file line number Diff line number Diff line change
Expand Up @@ -667,7 +667,7 @@ const libstdcxx_version_mapping = Dict{String,String}(

Parses a string platform triplet back into a `Platform` object.
"""
function Base.parse(::Type{Platform}, triplet::AbstractString; validate_strict::Bool = false)
function Base.parse(::Type{Platform}, triplet::String; validate_strict::Bool = false)
# Helper function to collapse dictionary of mappings down into a regex of
# named capture groups joined by "|" operators
c(mapping) = string("(",join(["(?<$k>$v)" for (k, v) in mapping], "|"), ")")
Expand Down Expand Up @@ -751,6 +751,8 @@ function Base.parse(::Type{Platform}, triplet::AbstractString; validate_strict::
end
throw(ArgumentError("Platform `$(triplet)` is not an officially supported platform"))
end
Base.parse(::Type{Platform}, triplet::AbstractString; kwargs...) =
parse(Platform, convert(String, triplet)::String; kwargs...)

function Base.tryparse(::Type{Platform}, triplet::AbstractString)
try
Expand Down
2 changes: 1 addition & 1 deletion base/cmd.jl
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ function show(io::IO, cmd::Cmd)
print(io, '`')
if print_cpus
print(io, ", ")
show(io, collect(Int, cmd.cpus))
show(io, collect(Int, something(cmd.cpus)))
print(io, ")")
end
print_env && (print(io, ","); show(io, cmd.env))
Expand Down
Loading