From cafb27a159ba387451ad64edb72539bccad1afe9 Mon Sep 17 00:00:00 2001 From: Keno Fischer Date: Tue, 31 Dec 2019 09:51:02 -0500 Subject: [PATCH 01/46] Fix CI hangs on win32 After much debugging, it turns out that OpenBlas is sometimes hanging on exit due to bad assumptions in its thread management. The upstream discussion is at https://github.com/xianyi/OpenBLAS/pull/2350, but this should fix our frequent win32 CI failures in the meantime. --- deps/blas.mk | 7 ++++++- deps/patches/openblas-winexit.patch | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 deps/patches/openblas-winexit.patch diff --git a/deps/blas.mk b/deps/blas.mk index cd6026319c5dc..89656c1844365 100644 --- a/deps/blas.mk +++ b/deps/blas.mk @@ -99,7 +99,12 @@ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-skylakexdgemm.patch-applied: $(BUILDDIR patch -p1 -f < $(SRCDIR)/patches/openblas-skylakexdgemm.patch echo 1 > $@ -$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-skylakexdgemm.patch-applied +$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-winexit.patch-applied: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/source-extracted + cd $(BUILDDIR)/$(OPENBLAS_SRC_DIR) && \ + patch -p1 -f < $(SRCDIR)/patches/openblas-winexit.patch + echo 1 > $@ + +$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-skylakexdgemm.patch-applied $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-winexit.patch-applied echo 1 > $@ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-compiled: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured diff --git a/deps/patches/openblas-winexit.patch b/deps/patches/openblas-winexit.patch new file mode 100644 index 0000000000000..6e46a647932df --- /dev/null +++ b/deps/patches/openblas-winexit.patch @@ -0,0 +1,27 @@ +commit 7f4a96a353c06c2fdecb0b2464800bcf8fab6fd7 +Author: Keno Fischer +Date: Sun Dec 29 15:08:13 2019 -0500 + + win32: Don't run cleanup if we're about to exit anyway + + If the process is about to exit, there's no point trying to do + a bunch of work to clean up resources. The kernel will release + them much more efficiently when the process exits at the end + of this function. + +diff --git a/exports/dllinit.c b/exports/dllinit.c +index 02ff092e..56aafa95 100644 +--- a/exports/dllinit.c ++++ b/exports/dllinit.c +@@ -48,7 +48,10 @@ BOOL APIENTRY DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved) { + } + + if (reason == DLL_PROCESS_DETACH) { +- gotoblas_quit(); ++ // If the process is about to exit, don't bother releasing any resources ++ // The kernel is much better at bulk releasing then. ++ if (!reserved) ++ gotoblas_quit(); + } + + return TRUE; From 8b57f642c45b6158db0dce145e1c1aa8c1ba425c Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Thu, 2 Jan 2020 17:03:56 -0500 Subject: [PATCH 02/46] fix #33954, recursion through field types in `is_derived_type` (#34223) --- base/compiler/typelimits.jl | 15 --------------- src/datatype.c | 3 +++ test/compiler/inference.jl | 7 +++++++ test/core.jl | 16 ++++++++++++++++ 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/base/compiler/typelimits.jl b/base/compiler/typelimits.jl index 48f38ff7980aa..dec0e60aa260a 100644 --- a/base/compiler/typelimits.jl +++ b/base/compiler/typelimits.jl @@ -57,21 +57,6 @@ function is_derived_type(@nospecialize(t), @nospecialize(c), mindepth::Int) for p in cP is_derived_type(t, p, mindepth) && return true end - if isconcretetype(c) && isbitstype(c) - # see if it was extracted from a fieldtype - # however, only look through types that can be inlined - # to ensure monotonicity of derivation - # since we know that for immutable, concrete, bits types, - # the field types must have been constructed prior to the type, - # it cannot have a reference cycle in the type graph - cF = c.types - for f in cF - # often a parameter is also a field type; avoid searching twice - if !contains_is(c.parameters, f) - is_derived_type(t, f, mindepth) && return true - end - end - end end return false end diff --git a/src/datatype.c b/src/datatype.c index aef6245f2c61a..57f2111127bfa 100644 --- a/src/datatype.c +++ b/src/datatype.c @@ -306,6 +306,8 @@ static int references_name(jl_value_t *p, jl_typename_t *name) JL_NOTSAFEPOINT if (jl_is_datatype(p)) { if (((jl_datatype_t*)p)->name == name) return 1; + if (((jl_datatype_t*)p)->layout && jl_datatype_nfields(p) == 0) + return 0; size_t i, l = jl_nparams(p); for (i = 0; i < l; i++) { if (references_name(jl_tparam(p, i), name)) @@ -401,6 +403,7 @@ void jl_compute_field_offsets(jl_datatype_t *st) jl_value_t *fld = jl_svecref(w->types, i); if (references_name(fld, w->name)) { isinlinealloc = 0; + isbitstype = 0; break; } } diff --git a/test/compiler/inference.jl b/test/compiler/inference.jl index 5f78cf7c97269..b275cdf904757 100644 --- a/test/compiler/inference.jl +++ b/test/compiler/inference.jl @@ -2485,3 +2485,10 @@ end # constant prop of `Symbol("")` f_getf_computed_symbol(p) = getfield(p, Symbol("first")) @test Base.return_types(f_getf_computed_symbol, Tuple{Pair{Int8,String}}) == [Int8] + +# issue #33954 +struct X33954 + x::Ptr{X33954} +end +f33954(x) = rand(Bool) ? f33954((x,)) : x +@test Base.return_types(f33954, Tuple{X33954})[1] >: X33954 diff --git a/test/core.jl b/test/core.jl index 57a4f64688758..2fe30592e9f14 100644 --- a/test/core.jl +++ b/test/core.jl @@ -7140,3 +7140,19 @@ end struct SplatBadIterate; end Base.iterate(s::SplatBadIterate, args...) = () @test_throws BoundsError (SplatBadIterate()...,) + +# issue #33954, layout with circular type parameters but not fields +struct P33954{T} +end +struct A33954 + x::P33954{A33954} +end +@test isbitstype(Tuple{A33954}) +struct Q33954{T} + x::Int +end +struct B33954 + x::Q33954{B33954} +end +@test_broken isbitstype(Tuple{B33954}) +@test_broken isbitstype(B33954) From 6d185e41fcfd94e69a1a4570ef30ded5b73110c9 Mon Sep 17 00:00:00 2001 From: Jan Weidner Date: Fri, 3 Jan 2020 00:12:22 +0100 Subject: [PATCH 03/46] fix #34157, searchsorted corner case (e.g. searching for Inf) (#34224) --- base/sort.jl | 26 ++++++++++++++++++++++---- test/sorting.jl | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/base/sort.jl b/base/sort.jl index 8d7bfba5a0093..6400b722c9829 100644 --- a/base/sort.jl +++ b/base/sort.jl @@ -250,19 +250,37 @@ end function searchsortedlast(a::AbstractRange{<:Integer}, x::Real, o::DirectOrdering) require_one_based_indexing(a) - if step(a) == 0 + h = step(a) + if h == 0 lt(o, x, first(a)) ? 0 : length(a) + elseif h > 0 && x < first(a) + firstindex(a) - 1 + elseif h > 0 && x >= last(a) + lastindex(a) + elseif h < 0 && x > first(a) + firstindex(a) - 1 + elseif h < 0 && x <= last(a) + lastindex(a) else - clamp( fld(floor(Integer, x) - first(a), step(a)) + 1, 0, length(a)) + fld(floor(Integer, x) - first(a), h) + 1 end end function searchsortedfirst(a::AbstractRange{<:Integer}, x::Real, o::DirectOrdering) require_one_based_indexing(a) - if step(a) == 0 + h = step(a) + if h == 0 lt(o, first(a), x) ? length(a)+1 : 1 + elseif h > 0 && x <= first(a) + firstindex(a) + elseif h > 0 && x > last(a) + lastindex(a) + 1 + elseif h < 0 && x >= first(a) + firstindex(a) + elseif h < 0 && x < last(a) + lastindex(a) + 1 else - clamp(-fld(floor(Integer, -x) + first(a), step(a)) + 1, 1, length(a) + 1) + -fld(floor(Integer, -x) + first(a), h) + 1 end end diff --git a/test/sorting.jl b/test/sorting.jl index 57c70f3105aa5..4559deddd3fd0 100644 --- a/test/sorting.jl +++ b/test/sorting.jl @@ -138,6 +138,42 @@ end @test searchsortedlast(500:1.0:600, -1.0e20) == 0 @test searchsortedlast(500:1.0:600, 1.0e20) == 101 end + @testset "issue #34157" begin + @test searchsorted(1:2.0, -Inf) === 1:0 + @test searchsorted([1,2], -Inf) === 1:0 + @test searchsorted(1:2, -Inf) === 1:0 + + @test searchsorted(1:2.0, Inf) === 3:2 + @test searchsorted([1,2], Inf) === 3:2 + @test searchsorted(1:2, Inf) === 3:2 + + for coll in [ + Base.OneTo(10), + 1:2, + -4:6, + 5:2:10, + [1,2], + 1.0:4, + [10.0,20.0], + ] + for huge in [Inf, 1e300] + @test searchsortedfirst(coll, huge) === lastindex(coll) + 1 + @test searchsortedfirst(coll, -huge)=== firstindex(coll) + @test searchsortedlast(coll, huge) === lastindex(coll) + @test searchsortedlast(coll, -huge) === firstindex(coll) - 1 + @test searchsorted(coll, huge) === lastindex(coll)+1 : lastindex(coll) + @test searchsorted(coll, -huge) === firstindex(coll) : firstindex(coll) - 1 + + @test searchsortedfirst(reverse(coll), huge, rev=true) === firstindex(coll) + @test searchsortedfirst(reverse(coll), -huge, rev=true) === lastindex(coll) + 1 + @test searchsortedlast(reverse(coll), huge, rev=true) === firstindex(coll) - 1 + @test searchsortedlast(reverse(coll), -huge, rev=true) === lastindex(coll) + @test searchsorted(reverse(coll), huge, rev=true) === firstindex(coll):firstindex(coll) - 1 + @test searchsorted(reverse(coll), -huge, rev=true) === lastindex(coll)+1:lastindex(coll) + + end + end + end end # exercise the codepath in searchsorted* methods for ranges that check for zero step range struct ConstantRange{T} <: AbstractRange{T} From 53ba0cc3c7313a66e781e18088379b75f395e0ce Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Thu, 2 Jan 2020 23:13:35 +0000 Subject: [PATCH 04/46] outline rng length assert (#34237) --- stdlib/Random/src/RNGs.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stdlib/Random/src/RNGs.jl b/stdlib/Random/src/RNGs.jl index a10f820edef65..9b1d2fce6ac1e 100644 --- a/stdlib/Random/src/RNGs.jl +++ b/stdlib/Random/src/RNGs.jl @@ -295,7 +295,7 @@ seed!(seed::Union{Integer,Vector{UInt32}}) = seed!(default_rng(), seed) const THREAD_RNGs = MersenneTwister[] @inline default_rng() = default_rng(Threads.threadid()) @noinline function default_rng(tid::Int) - @assert 0 < tid <= length(THREAD_RNGs) + 0 < tid <= length(THREAD_RNGs) || _rng_length_assert() if @inbounds isassigned(THREAD_RNGs, tid) @inbounds MT = THREAD_RNGs[tid] else @@ -304,6 +304,8 @@ const THREAD_RNGs = MersenneTwister[] end return MT end +@noinline _rng_length_assert() = @assert false "0 < tid <= length(THREAD_RNGs)" + function __init__() resize!(empty!(THREAD_RNGs), Threads.nthreads()) # ensures that we didn't save a bad object end From 0b034fd9fa7994b5f60b0f519f2038352e7c221c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Papp?= Date: Fri, 3 Jan 2020 09:13:15 -0500 Subject: [PATCH 05/46] Add hpmv! to BLAS in stdlib/LinearAlgebra (#34211) --- NEWS.md | 1 + stdlib/LinearAlgebra/src/blas.jl | 77 +++++++++++++++++++++++++++++++ stdlib/LinearAlgebra/test/blas.jl | 41 ++++++++++++++++ 3 files changed, 119 insertions(+) diff --git a/NEWS.md b/NEWS.md index c3dced6b7139e..139c9238de7f1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -31,6 +31,7 @@ Standard library changes #### LinearAlgebra +* The BLAS submodule now supports the level-2 BLAS subroutine `hpmv!` ([#34211]). #### Markdown diff --git a/stdlib/LinearAlgebra/src/blas.jl b/stdlib/LinearAlgebra/src/blas.jl index c44305bd8b6a8..1f9badcf162ab 100644 --- a/stdlib/LinearAlgebra/src/blas.jl +++ b/stdlib/LinearAlgebra/src/blas.jl @@ -28,6 +28,7 @@ export gemv, hemv!, hemv, + hpmv!, sbmv!, sbmv, symv!, @@ -823,6 +824,82 @@ Only the [`ul`](@ref stdlib-blas-uplo) triangle of `A` is used. """ hemv(ul, A, x) +### hpmv!, (HP) Hermitian packed matrix-vector operation defined as y := alpha*A*x + beta*y. +for (fname, elty) in ((:zhpmv_, :ComplexF64), + (:chpmv_, :ComplexF32)) + @eval begin + # SUBROUTINE ZHPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) + # Y <- ALPHA*AP*X + BETA*Y + # * .. Scalar Arguments .. + # DOUBLE PRECISION ALPHA,BETA + # INTEGER INCX,INCY,N + # CHARACTER UPLO + # * .. Array Arguments .. + # DOUBLE PRECISION A(N,N),X(N),Y(N) + function hpmv!(uplo::AbstractChar, + n::BlasInt, + α::$elty, + AP::Union{Ptr{$elty}, AbstractArray{$elty}}, + x::Union{Ptr{$elty}, AbstractArray{$elty}}, + incx::Integer, + β::$elty, + y::Union{Ptr{$elty}, AbstractArray{$elty}}, + incy::Integer) + + ccall((@blasfunc($fname), libblas), Cvoid, + (Ref{UInt8}, # uplo, + Ref{BlasInt}, # n, + Ref{$elty}, # α, + Ptr{$elty}, # AP, + Ptr{$elty}, # x, + Ref{BlasInt}, # incx, + Ref{$elty}, # β, + Ptr{$elty}, # y, output + Ref{BlasInt}), # incy + uplo, + n, + α, + AP, + x, + incx, + β, + y, + incy) + end + end +end + +function hpmv!(uplo::AbstractChar, + α::Number, AP::Union{DenseArray{T}, AbstractVector{T}}, x::Union{DenseArray{T}, AbstractVector{T}}, + β::Number, y::Union{DenseArray{T}, AbstractVector{T}}) where {T <: BlasComplex} + require_one_based_indexing(AP, x, y) + N = length(x) + if N != length(y) + throw(DimensionMismatch("x has length $(N), but y has length $(length(y))")) + end + if length(AP) < Int64(N*(N+1)/2) + throw(DimensionMismatch("Packed Hermitian matrix A has size smaller than length(x) = $(N).")) + end + GC.@preserve x y AP hpmv!(uplo, N, convert(T, α), AP, pointer(x), BlasInt(stride(x, 1)), convert(T, β), pointer(y), BlasInt(stride(y, 1))) + y +end + +""" + hpmv!(uplo, α, AP, x, β, y) + +Update vector `y` as `α*AP*x + β*y` where `AP` is a packed Hermitian matrix. +The storage layout for `AP` is described in the reference BLAS module, level-2 BLAS at +. + +The scalar inputs `α` and `β` shall be numbers. + +The array inputs `x`, `y` and `AP` must be complex one-dimensional julia arrays of the +same type that is either `ComplexF32` or `ComplexF64`. + +Return the updated `y`. +""" +hpmv! + ### sbmv, (SB) symmetric banded matrix-vector multiplication for (fname, elty) in ((:dsbmv_,:Float64), (:ssbmv_,:Float32)) diff --git a/stdlib/LinearAlgebra/test/blas.jl b/stdlib/LinearAlgebra/test/blas.jl index b2a9b1ea67d45..4a21fbb3a5a3d 100644 --- a/stdlib/LinearAlgebra/test/blas.jl +++ b/stdlib/LinearAlgebra/test/blas.jl @@ -8,6 +8,7 @@ using LinearAlgebra: BlasReal, BlasComplex Random.seed!(100) ## BLAS tests - testing the interface code to BLAS routines @testset for elty in [Float32, Float64, ComplexF32, ComplexF64] + @testset "syr2k!" begin U = randn(5,2) V = randn(5,2) @@ -200,6 +201,46 @@ Random.seed!(100) @test_throws DimensionMismatch BLAS.trmm('R','U','N','N',one(elty),triu(Cnn),Cnm) end + # hpmv! + if elty in (ComplexF32, ComplexF64) + @testset "hpmv!" begin + # Both matrix dimensions n coincide, as we have Hermitian matrices. + # Define the inputs and outputs of hpmv!, y = α*A*x+β*y + α = rand(elty) + M = rand(elty, n, n) + A = (M+M')/elty(2.0) + x = rand(elty, n) + β = rand(elty) + y = rand(elty, n) + + y_result_julia = α*A*x+β*y + + # Create lower triangular packing of A + AP = typeof(A[1,1])[] + for j in 1:n + for i in j:n + push!(AP, A[i,j]) + end + end + + y_result_blas_lower = copy(y) + BLAS.hpmv!('L', α, AP, x, β, y_result_blas_lower) + @test y_result_julia≈y_result_blas_lower + + # Create upper triangular packing of A + AP = typeof(A[1,1])[] + for j in 1:n + for i in 1:j + push!(AP, A[i,j]) + end + end + + y_result_blas_upper = copy(y) + BLAS.hpmv!('U', α, AP, x, β, y_result_blas_upper) + @test y_result_julia≈y_result_blas_upper + end + end + #trsm A = triu(rand(elty,n,n)) B = rand(elty,(n,n)) From 007cb29e9d435026df87c330f9fc0df9907c9525 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Fri, 3 Jan 2020 14:01:08 -0500 Subject: [PATCH 06/46] fix codegen for getfield of homogeneous tuples (#34243) fix #34206, fix #34207 --- src/codegen.cpp | 5 ++++- test/core.jl | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/codegen.cpp b/src/codegen.cpp index deafe43d8a399..a7ee60d934e8c 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -2903,8 +2903,11 @@ static bool emit_builtin_call(jl_codectx_t &ctx, jl_cgval_t *ret, jl_value_t *f, emit_datatype_nfields(ctx, emit_typeof_boxed(ctx, obj)), jl_true); } + bool isboxed = !jl_datatype_isinlinealloc(jt); Value *ptr = maybe_decay_tracked(data_pointer(ctx, obj)); - *ret = typed_load(ctx, ptr, vidx, jt, obj.tbaa, nullptr, false); + *ret = typed_load(ctx, ptr, vidx, + isboxed ? (jl_value_t*)jl_any_type : jt, + obj.tbaa, nullptr, false); return true; } } diff --git a/test/core.jl b/test/core.jl index 2fe30592e9f14..23ed03072ea5a 100644 --- a/test/core.jl +++ b/test/core.jl @@ -7156,3 +7156,11 @@ struct B33954 end @test_broken isbitstype(Tuple{B33954}) @test_broken isbitstype(B33954) + +# Issue #34206/34207 +function mre34206(a, n) + va = view(a, :) + b = ntuple(_ -> va, n)::Tuple{Vararg{typeof(va)}} + return b[1].offset1 +end +@test mre34206([44], 1) == 0 From a85fbb9d6cc5a6a90309ecdce4bb1e2903222869 Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Sat, 4 Jan 2020 05:16:22 +0900 Subject: [PATCH 07/46] add docstring for Sockets.DNSError (#34189) --- stdlib/Sockets/docs/src/index.md | 1 + stdlib/Sockets/src/addrinfo.jl | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/stdlib/Sockets/docs/src/index.md b/stdlib/Sockets/docs/src/index.md index a67d945f16748..2bcdb3f2cbd13 100644 --- a/stdlib/Sockets/docs/src/index.md +++ b/stdlib/Sockets/docs/src/index.md @@ -10,6 +10,7 @@ Sockets.getaddrinfo Sockets.getipaddr Sockets.getipaddrs Sockets.getalladdrinfo +Sockets.DNSError Sockets.getnameinfo Sockets.getsockname Sockets.getpeername diff --git a/stdlib/Sockets/src/addrinfo.jl b/stdlib/Sockets/src/addrinfo.jl index 3ee81257267da..affcc350af310 100644 --- a/stdlib/Sockets/src/addrinfo.jl +++ b/stdlib/Sockets/src/addrinfo.jl @@ -1,5 +1,12 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license +""" + DNSError + +The type of exception thrown when an error occurs in DNS lookup. +The `host` field indicates the host URL string. +The `code` field indicates the error code based on libuv. +""" struct DNSError <: Exception host::String code::Int32 From 552e219c47be63eff4a7bba0fcc0990ed075777b Mon Sep 17 00:00:00 2001 From: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Date: Sat, 4 Jan 2020 05:22:16 +0900 Subject: [PATCH 08/46] enable completions for identifiers following ! operator (#34182) --- stdlib/REPL/src/REPLCompletions.jl | 8 ++++++- stdlib/REPL/test/replcompletions.jl | 36 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/stdlib/REPL/src/REPLCompletions.jl b/stdlib/REPL/src/REPLCompletions.jl index edc7468e199cb..c35d8e75481bd 100644 --- a/stdlib/REPL/src/REPLCompletions.jl +++ b/stdlib/REPL/src/REPLCompletions.jl @@ -612,7 +612,9 @@ function completions(string, pos, context_module=Main)::Completions inc_tag==:string && return String[], 0:-1, false if inc_tag === :other && should_method_complete(partial) frange, method_name_end = find_start_brace(partial) - ex = Meta.parse(partial[frange] * ")", raise=false, depwarn=false) + # strip preceding ! operator + s = replace(partial[frange], r"\!+([^=\(]+)" => s"\1") + ex = Meta.parse(s * ")", raise=false, depwarn=false) if isa(ex, Expr) if ex.head==:call @@ -627,6 +629,10 @@ function completions(string, pos, context_module=Main)::Completions dotpos = something(findprev(isequal('.'), string, pos), 0) startpos = nextind(string, something(findprev(in(non_identifier_chars), string, pos), 0)) + # strip preceding ! operator + if (m = match(r"^\!+", string[startpos:pos])) !== nothing + startpos += length(m.match) + end ffunc = (mod,x)->true suggestions = Completion[] diff --git a/stdlib/REPL/test/replcompletions.jl b/stdlib/REPL/test/replcompletions.jl index 92fdfb8b747f7..b43fdb9b46118 100644 --- a/stdlib/REPL/test/replcompletions.jl +++ b/stdlib/REPL/test/replcompletions.jl @@ -138,6 +138,21 @@ let s = "Main.CompletionFoo.f" @test !("foobar" in c) end +# test method completions when `!` operator precedes +let + s = "!is" + c, r = test_complete(s) + @test "isa" in c + @test s[r] == "is" + @test !("!" in c) + + s = "!!is" + c, r = test_complete(s) + @test "isa" in c + @test s[r] == "is" + @test !("!" in c) +end + # issue #6424 let s = "Main.CompletionFoo.@f" c, r = test_complete(s) @@ -302,6 +317,27 @@ let s = "max(" @test s[r] == "max" end +# test method completions when `!` operator precedes +let + s = "!(" + c, r, res = test_complete(s) + @test !res + @test all(m -> string(m) in c, methods(!)) + @test s[r] == s[1:end-1] + + s = "!isnothing(" + c, r, res = test_complete(s) + @test !res + @test all(m -> string(m) in c, methods(isnothing)) + @test s[r] == s[1:end-1] + + s = "!!isnothing(" + c, r, res = test_complete(s) + @test !res + @test all(m -> string(m) in c, methods(isnothing)) + @test s[r] == s[1:end-1] +end + # Test completion of methods with input concrete args and args where typeinference determine their type let s = "CompletionFoo.test(1,1, " c, r, res = test_complete(s) From 11e7c3377163fb730b81b0e782e37f5958ffa747 Mon Sep 17 00:00:00 2001 From: Matt Bauman Date: Fri, 3 Jan 2020 15:29:37 -0500 Subject: [PATCH 09/46] fix #32442, broadcasting over non-offset arrays with mismatched axis eltypes (#34230) In cases where we have multiple arrays with `OneTo` axes that do not share the same axis eltype, we should simply default to constructing a new array with `OneTo{Int}` axes. --- base/broadcast.jl | 1 + test/ranges.jl | 52 +++++++++++++++++++++++++++++++---------------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/base/broadcast.jl b/base/broadcast.jl index a27cb7ba74180..e68253c03ec24 100644 --- a/base/broadcast.jl +++ b/base/broadcast.jl @@ -496,6 +496,7 @@ _bcsm(a::Number, b::Number) = a == b || b == 1 # (We may not want to define general promotion rules between, say, OneTo and Slice, but if # we get here we know the axes are at least consistent for the purposes of broadcasting) axistype(a::T, b::T) where T = a +axistype(a::OneTo, b::OneTo) = OneTo{Int}(a) axistype(a, b) = UnitRange{Int}(a) ## Check that all arguments are broadcast compatible with shape diff --git a/test/ranges.jl b/test/ranges.jl index 878cd48077db7..4c3ef70d6d480 100644 --- a/test/ranges.jl +++ b/test/ranges.jl @@ -572,24 +572,40 @@ end @test sum(0:0.000001:1) == 500000.5 @test sum(0:0.1:10) == 505. end -@testset "broadcasted operations with scalars" begin - @test broadcast(-, 1:3) === -1:-1:-3 - @test broadcast(-, 1:3, 2) === -1:1 - @test broadcast(-, 1:3, 0.25) === 1-0.25:3-0.25 - @test broadcast(+, 1:3) === 1:3 - @test broadcast(+, 1:3, 2) === 3:5 - @test broadcast(+, 1:3, 0.25) === 1+0.25:3+0.25 - @test broadcast(+, 1:2:6, 1) === 2:2:6 - @test broadcast(+, 1:2:6, 0.3) === 1+0.3:2:5+0.3 - @test broadcast(-, 1:2:6, 1) === 0:2:4 - @test broadcast(-, 1:2:6, 0.3) === 1-0.3:2:5-0.3 - @test broadcast(-, 2, 1:3) === 1:-1:-1 -end -@testset "operations between ranges and arrays" begin - @test all(([1:5;] + (5:-1:1)) .== 6) - @test all(((5:-1:1) + [1:5;]) .== 6) - @test all(([1:5;] - (1:5)) .== 0) - @test all(((1:5) - [1:5;]) .== 0) +@testset "broadcasted operations with scalars" for T in (Int, UInt, Int128) + @test broadcast(-, T(1):3, 2) === T(1)-2:1 + @test broadcast(-, T(1):3, 0.25) === T(1)-0.25:3-0.25 + @test broadcast(+, T(1):3) === T(1):3 + @test broadcast(+, T(1):3, 2) === T(3):5 + @test broadcast(+, T(1):3, 0.25) === T(1)+0.25:3+0.25 + @test broadcast(+, T(1):2:6, 1) === T(2):2:6 + @test broadcast(+, T(1):2:6, 0.3) === T(1)+0.3:2:5+0.3 + @test broadcast(-, T(1):2:6, 1) === T(0):2:4 + @test broadcast(-, T(1):2:6, 0.3) === T(1)-0.3:2:5-0.3 + if T <: Unsigned + @test_broken broadcast(-, T(1):3) == -T(1):-1:-T(3) + @test_broken broadcast(-, 2, T(1):3) == T(1):-1:-T(1) + else + @test length(broadcast(-, T(1):3, 2)) === length(T(1)-2:T(3)-2) + @test broadcast(-, T(1):3) == -T(1):-1:-T(3) + @test broadcast(-, 2, T(1):3) == T(1):-1:-T(1) + end +end +@testset "operations between ranges and arrays" for T in (Int, UInt, Int128) + @test all(([T(1):5;] + (T(5):-1:1)) .=== T(6)) + @test all(((T(5):-1:1) + [T(1):5;]) .=== T(6)) + @test all(([T(1):5;] - (T(1):5)) .=== T(0)) + @test all(((T(1):5) - [T(1):5;]) .=== T(0)) +end +@testset "issue #32442: Broadcasting over views with non-`Int` indices" begin + a=rand(UInt32,20) + c=rand(UInt64,5) + @test reinterpret(UInt64,view(a,UInt64.(11:20))) .- c == + reinterpret(UInt64,view(a,(11:20))) .- c == + reinterpret(UInt64,view(a,(UInt64(11):UInt64(20)))) .- c == + copy(reinterpret(UInt64,view(a,(UInt64(11):UInt64(20))))) .- c + + @test view(a,(Int32(11):Int32(20))) .+ [1] == a[11:20] .+ 1 end @testset "tricky floating-point ranges" begin for (start, step, stop, len) in ((1, 1, 3, 3), (0, 1, 3, 4), From 2c4db8f6940592ff9dddac1db6306a7d10705111 Mon Sep 17 00:00:00 2001 From: Tim Holy Date: Fri, 3 Jan 2020 14:31:06 -0600 Subject: [PATCH 10/46] Profile: add line number correction (Revise) (#34235) This ensures that Profiling will report the current line number in interactively-modified code. --- stdlib/Profile/src/Profile.jl | 11 +++++++++-- stdlib/Profile/test/runtests.jl | 18 ++++++++++++++++++ test/errorshow.jl | 20 ++++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/stdlib/Profile/src/Profile.jl b/stdlib/Profile/src/Profile.jl index 057bb4d287a40..f484486ed29d7 100644 --- a/stdlib/Profile/src/Profile.jl +++ b/stdlib/Profile/src/Profile.jl @@ -196,9 +196,16 @@ function retrieve() end function getdict(data::Vector{UInt}) + # Lookup is expensive, so do it only once per ip. + udata = unique(data) dict = LineInfoDict() - for ip in data - get!(() -> lookup(convert(Ptr{Cvoid}, ip)), dict, UInt64(ip)) + for ip in udata + st = lookup(convert(Ptr{Cvoid}, ip)) + # To correct line numbers for moving code, put it in the form expected by + # Base.update_stackframes_callback[] + stn = map(x->(x, 1), st) + try Base.invokelatest(Base.update_stackframes_callback[], stn) catch end + dict[UInt64(ip)] = map(first, stn) end return dict end diff --git a/stdlib/Profile/test/runtests.jl b/stdlib/Profile/test/runtests.jl index b26f1f70e5d46..dcb49d4c02d09 100644 --- a/stdlib/Profile/test/runtests.jl +++ b/stdlib/Profile/test/runtests.jl @@ -93,3 +93,21 @@ end @test delay_ == 0.0005 Profile.init(n=1_000_000, delay=def_delay) end + +@testset "Line number correction" begin + @profile busywait(1, 20) + _, fdict0 = Profile.flatten(Profile.retrieve()...) + Base.update_stackframes_callback[] = function(list) + modify((sf, n)) = sf.func == :busywait ? (StackTraces.StackFrame(sf.func, sf.file, sf.line+2, sf.linfo, sf.from_c, sf.inlined, sf.pointer), n) : (sf, n) + map!(modify, list, list) + end + _, fdictc = Profile.flatten(Profile.retrieve()...) + Base.update_stackframes_callback[] = identity + function getline(sfs) + for sf in sfs + sf.func == :busywait && return sf.line + end + nothing + end + @test getline(values(fdictc)) == getline(values(fdict0)) + 2 +end diff --git a/test/errorshow.jl b/test/errorshow.jl index 581afae53391c..02492b5668dd3 100644 --- a/test/errorshow.jl +++ b/test/errorshow.jl @@ -596,6 +596,26 @@ end end end +@testset "Line number correction" begin + getbt() = backtrace() + bt = getbt() + Base.update_stackframes_callback[] = function(list) + modify((sf, n)) = sf.func == :getbt ? (StackTraces.StackFrame(sf.func, sf.file, sf.line+2, sf.linfo, sf.from_c, sf.inlined, sf.pointer), n) : (sf, n) + map!(modify, list, list) + end + io = IOBuffer() + Base.show_backtrace(io, bt) + outputc = split(String(take!(io)), '\n') + Base.update_stackframes_callback[] = identity + Base.show_backtrace(io, bt) + output0 = split(String(take!(io)), '\n') + function getline(output) + idx = findfirst(str->occursin("getbt", str), output) + return parse(Int, match(r":(\d*)$", output[idx]).captures[1]) + end + @test getline(outputc) == getline(output0) + 2 +end + # issue #30633 @test_throws ArgumentError("invalid index: \"foo\" of type String") [1]["foo"] @test_throws ArgumentError("invalid index: nothing of type Nothing") [1][nothing] From ccfc55f66f27a317afa06bf1cec5d9c291f68f91 Mon Sep 17 00:00:00 2001 From: Klaus Crusius Date: Sat, 4 Jan 2020 01:41:49 +0100 Subject: [PATCH 11/46] provide enough space when `sparse(Unit..Triangular(Sparse..))` (#34124) --- stdlib/SparseArrays/src/sparseconvert.jl | 7 ++++--- stdlib/SparseArrays/test/sparse.jl | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/stdlib/SparseArrays/src/sparseconvert.jl b/stdlib/SparseArrays/src/sparseconvert.jl index 040e705f4da3c..e235d332ac291 100644 --- a/stdlib/SparseArrays/src/sparseconvert.jl +++ b/stdlib/SparseArrays/src/sparseconvert.jl @@ -183,9 +183,10 @@ function _sparsem(A::AbstractTriangularSparse{Tv}) where Tv Ti = eltype(rowval) fnzrange = A isa Union{UpperTriangular,UnitUpperTriangular} ? nzrangeup : nzrangelo unit = A isa Union{UnitUpperTriangular,UnitLowerTriangular} + nz = nnz(S) + n * unit newcolptr = Vector{Ti}(undef, n+1) - newrowval = Vector{Ti}(undef, nnz(S)) - newnzval = Vector{Tv}(undef, nnz(S)) + newrowval = Vector{Ti}(undef, nz) + newnzval = Vector{Tv}(undef, nz) newcolptr[1] = 1 uplo = fnzrange == nzrangeup newk = 1 @@ -233,7 +234,7 @@ function _sparsem(taA::Union{Transpose{Tv,<:AbstractTriangularSparse}, uplo = A isa Union{UpperTriangular,UnitUpperTriangular} newcolptr = Vector{Ti}(undef, n+1) - fill!(newcolptr, 1unit) + fill!(newcolptr, unit) newcolptr[1] = 1 @inbounds for j = 1:n for k = fnzrange(A, j) diff --git a/stdlib/SparseArrays/test/sparse.jl b/stdlib/SparseArrays/test/sparse.jl index 6d72046a5ed2a..a6b1d1cfd94e3 100644 --- a/stdlib/SparseArrays/test/sparse.jl +++ b/stdlib/SparseArrays/test/sparse.jl @@ -2694,6 +2694,9 @@ end @test sparse([1,2,3,4,5]') == SparseMatrixCSC([1 2 3 4 5]) @test sparse(UpperTriangular(A')) == UpperTriangular(B') @test sparse(Adjoint(UpperTriangular(A'))) == Adjoint(UpperTriangular(B')) + @test sparse(UnitUpperTriangular(spzeros(5,5))) == I + deepwrap(A) = (Adjoint(LowerTriangular(view(Symmetric(A), 5:7, 4:6)))) + @test sparse(deepwrap(A)) == Matrix(deepwrap(B)) end @testset "unary operations on matrices where length(nzval)>nnz" begin From 18783434e9c0e48152b99d5e3717deb8711f492b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1ll=20Haraldsson?= Date: Sat, 4 Jan 2020 00:48:15 +0000 Subject: [PATCH 12/46] SuiteSparse files moved (#33966) * Remove SuiteSparse driver mention in the license, since it is the same as the rest of Julia. Co-authored-by: Viral B. Shah --- LICENSE.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 0d5d98311766c..dddf00f56412f 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -52,11 +52,6 @@ own licenses: - [LLVM](https://releases.llvm.org/6.0.0/LICENSE.TXT) [BSD-3, effectively] - [UTF8PROC](https://github.com/JuliaStrings/utf8proc) [MIT] -The following components included in `stdlib` have their own separate licenses: - -- stdlib/SuiteSparse/umfpack.jl (see [SUITESPARSE](http://suitesparse.com)) -- stdlib/SuiteSparse/cholmod.jl (see [SUITESPARSE](http://suitesparse.com)) - Julia's `stdlib` uses the following external libraries, which have their own licenses: - [DSFMT](http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/LICENSE.txt) [BSD-3] From 675cb4f747fb60b264f3281559d77b67b6962616 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Mon, 6 Jan 2020 10:16:45 -0500 Subject: [PATCH 13/46] Add xrefs and some missing example headers --- stdlib/LinearAlgebra/src/bunchkaufman.jl | 2 +- stdlib/LinearAlgebra/src/cholesky.jl | 8 ++++---- stdlib/LinearAlgebra/src/eigen.jl | 6 +++--- stdlib/LinearAlgebra/src/lq.jl | 6 +++--- stdlib/LinearAlgebra/src/lu.jl | 8 ++++---- stdlib/LinearAlgebra/src/qr.jl | 2 +- stdlib/LinearAlgebra/src/symmetric.jl | 10 ++++++---- 7 files changed, 22 insertions(+), 20 deletions(-) diff --git a/stdlib/LinearAlgebra/src/bunchkaufman.jl b/stdlib/LinearAlgebra/src/bunchkaufman.jl index c57dedc66776e..7c9024920aaeb 100644 --- a/stdlib/LinearAlgebra/src/bunchkaufman.jl +++ b/stdlib/LinearAlgebra/src/bunchkaufman.jl @@ -120,7 +120,7 @@ end Compute the Bunch-Kaufman [^Bunch1977] factorization of a symmetric or Hermitian matrix `A` as `P'*U*D*U'*P` or `P'*L*D*L'*P`, depending on -which triangle is stored in `A`, and return a `BunchKaufman` object. +which triangle is stored in `A`, and return a [`BunchKaufman`](@ref) object. Note that if `A` is complex symmetric then `U'` and `L'` denote the unconjugated transposes, i.e. `transpose(U)` and `transpose(L)`. diff --git a/stdlib/LinearAlgebra/src/cholesky.jl b/stdlib/LinearAlgebra/src/cholesky.jl index bd28a2e1f351e..dfc5631ba2471 100644 --- a/stdlib/LinearAlgebra/src/cholesky.jl +++ b/stdlib/LinearAlgebra/src/cholesky.jl @@ -302,8 +302,8 @@ end cholesky(A, Val(false); check = true) -> Cholesky Compute the Cholesky factorization of a dense symmetric positive definite matrix `A` -and return a `Cholesky` factorization. The matrix `A` can either be a [`Symmetric`](@ref) or [`Hermitian`](@ref) -`StridedMatrix` or a *perfectly* symmetric or Hermitian `StridedMatrix`. +and return a [`Cholesky`](@ref) factorization. The matrix `A` can either be a [`Symmetric`](@ref) or [`Hermitian`](@ref) +[`StridedMatrix`](@ref) or a *perfectly* symmetric or Hermitian `StridedMatrix`. The triangular Cholesky factor can be obtained from the factorization `F` with: `F.L` and `F.U`. The following functions are available for `Cholesky` objects: [`size`](@ref), [`\\`](@ref), [`inv`](@ref), [`det`](@ref), [`logdet`](@ref) and [`isposdef`](@ref). @@ -353,8 +353,8 @@ cholesky(A::Union{StridedMatrix,RealHermSymComplexHerm{<:Real,<:StridedMatrix}}, cholesky(A, Val(true); tol = 0.0, check = true) -> CholeskyPivoted Compute the pivoted Cholesky factorization of a dense symmetric positive semi-definite matrix `A` -and return a `CholeskyPivoted` factorization. The matrix `A` can either be a [`Symmetric`](@ref) -or [`Hermitian`](@ref) `StridedMatrix` or a *perfectly* symmetric or Hermitian `StridedMatrix`. +and return a [`CholeskyPivoted`](@ref) factorization. The matrix `A` can either be a [`Symmetric`](@ref) +or [`Hermitian`](@ref) [`StridedMatrix`](@ref) or a *perfectly* symmetric or Hermitian `StridedMatrix`. The triangular Cholesky factor can be obtained from the factorization `F` with: `F.L` and `F.U`. The following functions are available for `CholeskyPivoted` objects: [`size`](@ref), [`\\`](@ref), [`inv`](@ref), [`det`](@ref), and [`rank`](@ref). diff --git a/stdlib/LinearAlgebra/src/eigen.jl b/stdlib/LinearAlgebra/src/eigen.jl index 253466091b038..d956988cee61f 100644 --- a/stdlib/LinearAlgebra/src/eigen.jl +++ b/stdlib/LinearAlgebra/src/eigen.jl @@ -179,7 +179,7 @@ end """ eigen(A; permute::Bool=true, scale::Bool=true, sortby) -> Eigen -Computes the eigenvalue decomposition of `A`, returning an `Eigen` factorization object `F` +Computes the eigenvalue decomposition of `A`, returning an [`Eigen`](@ref) factorization object `F` which contains the eigenvalues in `F.values` and the eigenvectors in the columns of the matrix `F.vectors`. (The `k`th eigenvector can be obtained from the slice `F.vectors[:, k]`.) @@ -195,7 +195,7 @@ make rows and columns more equal in norm. The default is `true` for both options By default, the eigenvalues and vectors are sorted lexicographically by `(real(λ),imag(λ))`. A different comparison function `by(λ)` can be passed to `sortby`, or you can pass `sortby=nothing` to leave the eigenvalues in an arbitrary order. Some special matrix types -(e.g. `Diagonal` or `SymTridiagonal`) may implement their own sorting convention and not +(e.g. [`Diagonal`](@ref) or [`SymTridiagonal`](@ref)) may implement their own sorting convention and not accept a `sortby` keyword. # Examples @@ -457,7 +457,7 @@ end eigen(A, B) -> GeneralizedEigen Computes the generalized eigenvalue decomposition of `A` and `B`, returning a -`GeneralizedEigen` factorization object `F` which contains the generalized eigenvalues in +[`GeneralizedEigen`](@ref) factorization object `F` which contains the generalized eigenvalues in `F.values` and the generalized eigenvectors in the columns of the matrix `F.vectors`. (The `k`th generalized eigenvector can be obtained from the slice `F.vectors[:, k]`.) diff --git a/stdlib/LinearAlgebra/src/lq.jl b/stdlib/LinearAlgebra/src/lq.jl index 8006fc5509765..bc740c434a1c6 100644 --- a/stdlib/LinearAlgebra/src/lq.jl +++ b/stdlib/LinearAlgebra/src/lq.jl @@ -5,7 +5,7 @@ LQ <: Factorization Matrix factorization type of the `LQ` factorization of a matrix `A`. The `LQ` -decomposition is the `QR` decomposition of `transpose(A)`. This is the return +decomposition is the [`QR`](@ref) decomposition of `transpose(A)`. This is the return type of [`lq`](@ref), the corresponding matrix factorization function. If `S::LQ` is the factorization object, the lower triangular component can be @@ -67,7 +67,7 @@ LQPackedQ(factors::AbstractMatrix{T}, τ::Vector{T}) where {T} = LQPackedQ{T,typ """ lq!(A) -> LQ -Compute the LQ factorization of `A`, using the input +Compute the [`LQ`](@ref) factorization of `A`, using the input matrix as a workspace. See also [`lq`](@ref). """ lq!(A::StridedMatrix{<:BlasFloat}) = LQ(LAPACK.gelqf!(A)...) @@ -75,7 +75,7 @@ lq!(A::StridedMatrix{<:BlasFloat}) = LQ(LAPACK.gelqf!(A)...) lq(A) -> S::LQ Compute the LQ decomposition of `A`. The decomposition's lower triangular -component can be obtained from the `LQ` object `S` via `S.L`, and the +component can be obtained from the [`LQ`](@ref) object `S` via `S.L`, and the orthogonal/unitary component via `S.Q`, such that `A ≈ S.L*S.Q`. Iterating the decomposition produces the components `S.L` and `S.Q`. diff --git a/stdlib/LinearAlgebra/src/lu.jl b/stdlib/LinearAlgebra/src/lu.jl index af2669855ac91..5a240478a1123 100644 --- a/stdlib/LinearAlgebra/src/lu.jl +++ b/stdlib/LinearAlgebra/src/lu.jl @@ -9,7 +9,7 @@ Matrix factorization type of the `LU` factorization of a square matrix `A`. This is the return type of [`lu`](@ref), the corresponding matrix factorization function. -The individual components of the factorization `F::LU` can be accessed via `getproperty`: +The individual components of the factorization `F::LU` can be accessed via [`getproperty`](@ref): | Component | Description | |:----------|:-----------------------------------------| @@ -210,10 +210,10 @@ validity (via [`issuccess`](@ref)) lies with the user. In most cases, if `A` is a subtype `S` of `AbstractMatrix{T}` with an element type `T` supporting `+`, `-`, `*` and `/`, the return type is `LU{T,S{T}}`. If -pivoting is chosen (default) the element type should also support `abs` and -`<`. +pivoting is chosen (default) the element type should also support [`abs`](@ref) and +[`<`](@ref). -The individual components of the factorization `F` can be accessed via `getproperty`: +The individual components of the factorization `F` can be accessed via [`getproperty`](@ref): | Component | Description | |:----------|:------------------------------------| diff --git a/stdlib/LinearAlgebra/src/qr.jl b/stdlib/LinearAlgebra/src/qr.jl index 15c6bf2d5bc0a..995aa1ce8c895 100644 --- a/stdlib/LinearAlgebra/src/qr.jl +++ b/stdlib/LinearAlgebra/src/qr.jl @@ -256,7 +256,7 @@ qr!(A::StridedMatrix{<:BlasFloat}, ::Val{true}) = QRPivoted(LAPACK.geqp3!(A)...) qr!(A, pivot=Val(false); blocksize) `qr!` is the same as [`qr`](@ref) when `A` is a subtype of -`StridedMatrix`, but saves space by overwriting the input `A`, instead of creating a copy. +[`StridedMatrix`](@ref), but saves space by overwriting the input `A`, instead of creating a copy. An [`InexactError`](@ref) exception is thrown if the factorization produces a number not representable by the element type of `A`, e.g. for integer types. diff --git a/stdlib/LinearAlgebra/src/symmetric.jl b/stdlib/LinearAlgebra/src/symmetric.jl index 423331011fc03..d9cb6cfe2858f 100644 --- a/stdlib/LinearAlgebra/src/symmetric.jl +++ b/stdlib/LinearAlgebra/src/symmetric.jl @@ -668,7 +668,7 @@ eigen!(A::RealHermSymComplexHerm{<:BlasReal,<:StridedMatrix}, irange::UnitRange) """ eigen(A::Union{SymTridiagonal, Hermitian, Symmetric}, irange::UnitRange) -> Eigen -Computes the eigenvalue decomposition of `A`, returning an `Eigen` factorization object `F` +Computes the eigenvalue decomposition of `A`, returning an [`Eigen`](@ref) factorization object `F` which contains the eigenvalues in `F.values` and the eigenvectors in the columns of the matrix `F.vectors`. (The `k`th eigenvector can be obtained from the slice `F.vectors[:, k]`.) @@ -676,7 +676,7 @@ Iterating the decomposition produces the components `F.values` and `F.vectors`. The following functions are available for `Eigen` objects: [`inv`](@ref), [`det`](@ref), and [`isposdef`](@ref). -The `UnitRange` `irange` specifies indices of the sorted eigenvalues to search for. +The [`UnitRange`](@ref) `irange` specifies indices of the sorted eigenvalues to search for. !!! note If `irange` is not `1:n`, where `n` is the dimension of `A`, then the returned factorization @@ -694,7 +694,7 @@ eigen!(A::RealHermSymComplexHerm{T,<:StridedMatrix}, vl::Real, vh::Real) where { """ eigen(A::Union{SymTridiagonal, Hermitian, Symmetric}, vl::Real, vu::Real) -> Eigen -Computes the eigenvalue decomposition of `A`, returning an `Eigen` factorization object `F` +Computes the eigenvalue decomposition of `A`, returning an [`Eigen`](@ref) factorization object `F` which contains the eigenvalues in `F.values` and the eigenvectors in the columns of the matrix `F.vectors`. (The `k`th eigenvector can be obtained from the slice `F.vectors[:, k]`.) @@ -736,9 +736,10 @@ eigvals!(A::RealHermSymComplexHerm{<:BlasReal,<:StridedMatrix}, irange::UnitRang eigvals(A::Union{SymTridiagonal, Hermitian, Symmetric}, irange::UnitRange) -> values Returns the eigenvalues of `A`. It is possible to calculate only a subset of the -eigenvalues by specifying a `UnitRange` `irange` covering indices of the sorted eigenvalues, +eigenvalues by specifying a [`UnitRange`](@ref) `irange` covering indices of the sorted eigenvalues, e.g. the 2nd to 8th eigenvalues. +# Examples ```jldoctest julia> A = SymTridiagonal([1.; 2.; 1.], [2.; 3.]) 3×3 SymTridiagonal{Float64,Array{Float64,1}}: @@ -778,6 +779,7 @@ eigvals!(A::RealHermSymComplexHerm{T,<:StridedMatrix}, vl::Real, vh::Real) where Returns the eigenvalues of `A`. It is possible to calculate only a subset of the eigenvalues by specifying a pair `vl` and `vu` for the lower and upper boundaries of the eigenvalues. +# Examples ```jldoctest julia> A = SymTridiagonal([1.; 2.; 1.], [2.; 3.]) 3×3 SymTridiagonal{Float64,Array{Float64,1}}: From b80702968ebca5559805a49c4a0e3f8decd7cb4d Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Mon, 6 Jan 2020 11:01:36 -0500 Subject: [PATCH 14/46] [GCLowering] correctly handle GC.preserve for demoted objects (#34241) --- src/codegen.cpp | 25 ++++++++++++++----------- src/llvm-late-gc-lowering.cpp | 18 +++++++++++++++--- test/llvmpasses/gcroots.ll | 24 ++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 14 deletions(-) diff --git a/src/codegen.cpp b/src/codegen.cpp index a7ee60d934e8c..a89e0270ceee2 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -4317,20 +4317,22 @@ static jl_cgval_t emit_expr(jl_codectx_t &ctx, jl_value_t *expr, ssize_t ssaval) for (size_t i = 0; i < nargs; ++i) { argv[i] = emit_expr(ctx, args[i]); } - size_t nargsboxed = 0; - Value **vals = (Value**)alloca(sizeof(Value *) * nargs); + std::vector vals; for (size_t i = 0; i < nargs; ++i) { - if (!argv[i].isboxed) { - // This is intentionally not an error to allow writing - // generic code more easily. - continue; - } else if (argv[i].constant) { + const jl_cgval_t &ai = argv[i]; + if (ai.constant) continue; + if (ai.isboxed) { + vals.push_back(ai.Vboxed); + } + else if (!jl_is_pointerfree(ai.typ)) { + Type *at = julia_type_to_llvm(ai.typ); + vals.push_back(emit_unbox(ctx, at, ai, ai.typ)); } - vals[nargsboxed++] = argv[i].Vboxed; } - Value *token = ctx.builder.CreateCall(prepare_call(gc_preserve_begin_func), - ArrayRef(vals, nargsboxed)); + Value *token = vals.empty() + ? (Value*)ConstantTokenNone::get(jl_LLVMContext) + : ctx.builder.CreateCall(prepare_call(gc_preserve_begin_func), vals); jl_cgval_t tok(token, NULL, false, (jl_value_t*)jl_void_type, NULL); return tok; } @@ -4343,7 +4345,8 @@ static jl_cgval_t emit_expr(jl_codectx_t &ctx, jl_value_t *expr, ssize_t ssaval) } jl_cgval_t token = emit_expr(ctx, args[0]); assert(token.V->getType()->isTokenTy()); - ctx.builder.CreateCall(prepare_call(gc_preserve_end_func), {token.V}); + if (!isa(token.V)) + ctx.builder.CreateCall(prepare_call(gc_preserve_end_func), {token.V}); return jl_cgval_t((jl_value_t*)jl_void_type); } else { diff --git a/src/llvm-late-gc-lowering.cpp b/src/llvm-late-gc-lowering.cpp index e2a48171c27a0..c34d1c7d4527a 100644 --- a/src/llvm-late-gc-lowering.cpp +++ b/src/llvm-late-gc-lowering.cpp @@ -1340,9 +1340,21 @@ State LateLowerGCFrame::LocalScan(Function &F) { Value *V = U; if (isa(V)) continue; - int Num = Number(S, V); - if (Num >= 0) - args.push_back(Num); + if (isa(V->getType())) { + if (isSpecialPtr(V->getType())) { + int Num = Number(S, V); + if (Num >= 0) + args.push_back(Num); + } + } else { + std::vector Nums = NumberAll(S, V); + for (int Num : Nums) { + if (Num < 0) + continue; + if (Num >= 0) + args.push_back(Num); + } + } } S.GCPreserves[CI] = args; continue; diff --git a/test/llvmpasses/gcroots.ll b/test/llvmpasses/gcroots.ll index fbccd3592b77a..c14a2425a04a6 100644 --- a/test/llvmpasses/gcroots.ll +++ b/test/llvmpasses/gcroots.ll @@ -288,6 +288,30 @@ top: ret void } +define void @gc_preserve_vec([2 x <2 x %jl_value_t addrspace(10)*>] addrspace(11)* nocapture nonnull readonly dereferenceable(16)) { +; CHECK-LABEL: @gc_preserve_vec +; CHECK: %gcframe = alloca %jl_value_t addrspace(10)*, i32 6 +top: + %ptls = call %jl_value_t*** @julia.ptls_states() + %v = load [2 x <2 x %jl_value_t addrspace(10)*>], [2 x <2 x %jl_value_t addrspace(10)*>] addrspace(11)* %0, align 8 +; CHECK-DAG: [[EXTRACT11:%.*]] = extractvalue [2 x <2 x %jl_value_t addrspace(10)*>] %v, 0 +; CHECK-DAG: [[EXTRACT12:%.*]] = extractvalue [2 x <2 x %jl_value_t addrspace(10)*>] %v, 0 +; CHECK-DAG: [[EXTRACT21:%.*]] = extractvalue [2 x <2 x %jl_value_t addrspace(10)*>] %v, 1 +; CHECK-DAG: [[EXTRACT22:%.*]] = extractvalue [2 x <2 x %jl_value_t addrspace(10)*>] %v, 1 +; CHECK-DAG: [[V11:%.*]] = extractelement <2 x %jl_value_t addrspace(10)*> [[EXTRACT11]], i32 0 +; CHECK-DAG: [[V12:%.*]] = extractelement <2 x %jl_value_t addrspace(10)*> [[EXTRACT12]], i32 1 +; CHECK-DAG: [[V21:%.*]] = extractelement <2 x %jl_value_t addrspace(10)*> [[EXTRACT21]], i32 0 +; CHECK-DAG: [[V22:%.*]] = extractelement <2 x %jl_value_t addrspace(10)*> [[EXTRACT22]], i32 1 +; CHECK-DAG: store %jl_value_t addrspace(10)* [[V11]] +; CHECK-DAG: store %jl_value_t addrspace(10)* [[V12]] +; CHECK-DAG: store %jl_value_t addrspace(10)* [[V21]] +; CHECK-DAG: store %jl_value_t addrspace(10)* [[V22]] + %tok = call token (...) @llvm.julia.gc_preserve_begin([2 x <2 x %jl_value_t addrspace(10)*>] %v, i64 addrspace(10)* null, %jl_value_t*** %ptls) + call void @jl_safepoint() + ret void +} + + @gv1 = external global %jl_value_t* @gv2 = external global %jl_value_t addrspace(10)* From 38a0ea5f60b64f797492c9b9e01c18ef32e133c9 Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Mon, 6 Jan 2020 11:42:34 -0500 Subject: [PATCH 15/46] handle lack of uv_os_get_passwd (#34255) On some configurations, getpwuid_r might be unavailable for the current user. Work around that by checking return values and ensuring HOME is set for various tests. --- src/runtime_ccall.cpp | 14 +++++++++----- test/cmdlineargs.jl | 22 ++++++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/runtime_ccall.cpp b/src/runtime_ccall.cpp index fe9db86cc8db0..49c91041484b5 100644 --- a/src/runtime_ccall.cpp +++ b/src/runtime_ccall.cpp @@ -136,18 +136,21 @@ std::string jl_format_filename(StringRef output_pattern) for (auto c : output_pattern) { if (special) { if (!got_pwd && (c == 'i' || c == 'd' || c == 'u')) { - uv_os_get_passwd(&pwd); - got_pwd = true; + int r = uv_os_get_passwd(&pwd); + if (r == 0) + got_pwd = true; } switch (c) { case 'p': outfile << jl_getpid(); break; case 'd': - outfile << pwd.homedir; + if (got_pwd) + outfile << pwd.homedir; break; case 'i': - outfile << pwd.uid; + if (got_pwd) + outfile << pwd.uid; break; case 'l': case 'L': @@ -163,7 +166,8 @@ std::string jl_format_filename(StringRef output_pattern) #endif break; case 'u': - outfile << pwd.username; + if (got_pwd) + outfile << pwd.username; break; default: outfile << c; diff --git a/test/cmdlineargs.jl b/test/cmdlineargs.jl index b9769b74bcbf2..8329048dc780f 100644 --- a/test/cmdlineargs.jl +++ b/test/cmdlineargs.jl @@ -34,7 +34,13 @@ end let fn = format_filename("a%d %p %i %L %l %u z") hd = withenv("HOME" => nothing) do - homedir() + # get the homedir, as reported by uv_os_get_passwd, as used by jl_format_filename + try + homedir() + catch ex + (ex isa Base.IOError && ex.code == Base.UV_ENOENT) || rethrow(ex) + "" + end end @test startswith(fn, "a$hd ") @test endswith(fn, " z") @@ -48,13 +54,17 @@ let exename = `$(Base.julia_cmd()) --startup-file=no` # tests for handling of ENV errors let v = writereadpipeline("println(\"REPL: \", @which(less), @isdefined(InteractiveUtils))", setenv(`$exename -i -E 'empty!(LOAD_PATH); @isdefined InteractiveUtils'`, - "JULIA_LOAD_PATH"=>"", "JULIA_DEPOT_PATH"=>"")) + "JULIA_LOAD_PATH" => "", + "JULIA_DEPOT_PATH" => "", + "HOME" => homedir())) @test v[1] == "false\nREPL: InteractiveUtilstrue\n" @test v[2] end let v = writereadpipeline("println(\"REPL: \", InteractiveUtils)", setenv(`$exename -i -e 'const InteractiveUtils = 3'`, - "JULIA_LOAD_PATH"=>";;;:::", "JULIA_DEPOT_PATH"=>";;;:::")) + "JULIA_LOAD_PATH" => ";;;:::", + "JULIA_DEPOT_PATH" => ";;;:::", + "HOME" => homedir())) # TODO: ideally, `@which`, etc. would still work, but Julia can't handle `using $InterativeUtils` @test v[1] == "REPL: 3\n" @test v[2] @@ -71,13 +81,13 @@ let exename = `$(Base.julia_cmd()) --startup-file=no` end real_threads = string(ccall(:jl_cpu_threads, Int32, ())) for nc in ("0", "-2", "x", "2x", " ", "") - v = readchomperrors(setenv(`$exename -i -E 'Sys.CPU_THREADS'`, "JULIA_CPU_THREADS" => nc)) + v = readchomperrors(setenv(`$exename -i -E 'Sys.CPU_THREADS'`, "JULIA_CPU_THREADS" => nc, "HOME" => homedir())) @test v[1] @test v[2] == real_threads @test v[3] == "WARNING: couldn't parse `JULIA_CPU_THREADS` environment variable. Defaulting Sys.CPU_THREADS to $real_threads." end for nc in ("1", " 1 ", " +1 ", " 0x1 ") - v = readchomperrors(setenv(`$exename -i -E 'Sys.CPU_THREADS'`, "JULIA_CPU_THREADS" => nc)) + v = readchomperrors(setenv(`$exename -i -E 'Sys.CPU_THREADS'`, "JULIA_CPU_THREADS" => nc, "HOME" => homedir())) @test v[1] @test v[2] == "1" @test isempty(v[3]) @@ -101,7 +111,7 @@ let exename = `$(Base.julia_cmd()) --startup-file=no` if !Sys.iswindows() expanded = abspath(expanduser("~/foo")) @test occursin(expanded, readchomp(`$exename --project='~/foo' -E 'Base.active_project()'`)) - @test occursin(expanded, readchomp(setenv(`$exename -E 'Base.active_project()'`, "JULIA_PROJECT"=>"~/foo"))) + @test occursin(expanded, readchomp(setenv(`$exename -E 'Base.active_project()'`, "JULIA_PROJECT" => "~/foo", "HOME" => homedir()))) end # --quiet, --banner From 74e7287b3a3f077b4e0724c5a9a8a30a14539a25 Mon Sep 17 00:00:00 2001 From: josobar <42105448+josobar@users.noreply.github.com> Date: Mon, 6 Jan 2020 11:58:45 -0600 Subject: [PATCH 16/46] regex.jl: add new doctests for `findall` (#34271) --- base/regex.jl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/base/regex.jl b/base/regex.jl index 3154c56cb9712..1c94e245e3189 100644 --- a/base/regex.jl +++ b/base/regex.jl @@ -340,6 +340,23 @@ matching sequence is found, like the return value of [`findnext`](@ref). If `overlap=true`, the matching sequences are allowed to overlap indices in the original string, otherwise they must be from disjoint character ranges. + +# Examples +```jldoctest +julia> findall("a", "apple") +1-element Array{UnitRange{Int64},1}: + 1:1 + +julia> findall("nana", "banana") +1-element Array{UnitRange{Int64},1}: + 3:6 + +julia> findall("a", "banana") +3-element Array{UnitRange{Int64},1}: + 2:2 + 4:4 + 6:6 +``` """ function findall(t::Union{AbstractString,Regex}, s::AbstractString; overlap::Bool=false) found = UnitRange{Int}[] From 9b7ea2f0b3bf4f1062eb2cee86f3cfcb197e54eb Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Mon, 6 Jan 2020 20:14:40 -0500 Subject: [PATCH 17/46] Some missing xrefs for Threads (#34280) --- base/threadingconstructs.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/threadingconstructs.jl b/base/threadingconstructs.jl index 8ca8ef0517362..b346786b2c459 100644 --- a/base/threadingconstructs.jl +++ b/base/threadingconstructs.jl @@ -14,7 +14,7 @@ threadid() = Int(ccall(:jl_threadid, Int16, ())+1) Threads.nthreads() Get the number of threads available to the Julia process. This is the inclusive upper bound -on `threadid()`. +on [`threadid()`](@ref). """ nthreads() = Int(unsafe_load(cglobal(:jl_n_threads, Cint))) @@ -75,7 +75,7 @@ end """ Threads.@threads -A macro to parallelize a for-loop to run with multiple threads. This spawns `nthreads()` +A macro to parallelize a for-loop to run with multiple threads. This spawns [`nthreads()`](@ref) number of threads, splits the iteration space amongst them, and iterates in parallel. A barrier is placed at the end of the loop which waits for all the threads to finish execution, and the loop returns. From 8e6a2aeaf3c7d9d7901a187f6fe6dde05746170f Mon Sep 17 00:00:00 2001 From: Morten Piibeleht Date: Tue, 7 Jan 2020 19:56:05 +1300 Subject: [PATCH 18/46] Use correct version for master docs (#34260) * Use correct version for master docs Ideally, it should have been updated in #34218. Fix #34259. * Update release checklist --- Makefile | 19 ++++++++++--------- doc/make.jl | 4 ++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 44c053ec3230f..e638ead8279a5 100644 --- a/Makefile +++ b/Makefile @@ -123,15 +123,16 @@ release-candidate: release testall @echo 2. Update references to the julia version in the source directories, such as in README.md @echo 3. Bump VERSION @echo 4. Increase SOMAJOR and SOMINOR if needed. - @echo 5. Create tag, push to github "\(git tag v\`cat VERSION\` && git push --tags\)" #"` # These comments deal with incompetent syntax highlighting rules - @echo 6. Clean out old .tar.gz files living in deps/, "\`git clean -fdx\`" seems to work #"` - @echo 7. Replace github release tarball with tarballs created from make light-source-dist and make full-source-dist - @echo 8. Check that 'make && make install && make test' succeed with unpacked tarballs even without Internet access. - @echo 9. Follow packaging instructions in DISTRIBUTING.md to create binary packages for all platforms - @echo 10. Upload to AWS, update https://julialang.org/downloads and http://status.julialang.org/stable links - @echo 11. Update checksums on AWS for tarball and packaged binaries - @echo 12. Announce on mailing lists - @echo 13. Change master to release-0.X in base/version.jl and base/version_git.sh as in 4cb1e20 + @echo 5. Update versions in deploydocs (at the end of doc/make.jl) if needed. + @echo 6. Create tag, push to github "\(git tag v\`cat VERSION\` && git push --tags\)" #"` # These comments deal with incompetent syntax highlighting rules + @echo 7. Clean out old .tar.gz files living in deps/, "\`git clean -fdx\`" seems to work #"` + @echo 8. Replace github release tarball with tarballs created from make light-source-dist and make full-source-dist + @echo 9. Check that 'make && make install && make test' succeed with unpacked tarballs even without Internet access. + @echo 10. Follow packaging instructions in DISTRIBUTING.md to create binary packages for all platforms + @echo 11. Upload to AWS, update https://julialang.org/downloads and http://status.julialang.org/stable links + @echo 12. Update checksums on AWS for tarball and packaged binaries + @echo 13. Announce on mailing lists + @echo 14. Change master to release-0.X in base/version.jl and base/version_git.sh as in 4cb1e20 @echo $(build_man1dir)/julia.1: $(JULIAHOME)/doc/man/julia.1 | $(build_man1dir) diff --git a/doc/make.jl b/doc/make.jl index 8ec30a198f518..a316867d8a7c6 100644 --- a/doc/make.jl +++ b/doc/make.jl @@ -209,6 +209,6 @@ deploydocs( deploy_config = BuildBotConfig(), target = joinpath(buildroot, "doc", "_build", "html", "en"), dirname = "en", - devurl = "v1.4-dev", - versions = ["v#.#", "v1.4-dev" => "v1.4-dev"] + devurl = "v1.5-dev", + versions = ["v#.#", "v1.5-dev" => "v1.5-dev"] ) From 8f9dd5d02d0afa675220e77c85f1bd872524239c Mon Sep 17 00:00:00 2001 From: ssikdar1 Date: Tue, 7 Jan 2020 03:12:51 -0500 Subject: [PATCH 19/46] #34234 normalize(a) for multidimensional arrays (#34239) * Add support normalize multi dim arrays * remove trailing whitespace from test * var name v => a for inner function * Update normalize tests Case for OffsetArray where A[1] would fail but first(A) would not. Also some more test cases to compare with the vector case * add NEWS item * make docstring example w/ array more julia-thonic * reduce redundant test cases * add test for normalize on Int64 array * add 0 1 and high dim test cases --- NEWS.md | 2 +- stdlib/LinearAlgebra/src/generic.jl | 54 +++++++++++++++++----------- stdlib/LinearAlgebra/test/generic.jl | 24 +++++++++++++ 3 files changed, 59 insertions(+), 21 deletions(-) diff --git a/NEWS.md b/NEWS.md index 139c9238de7f1..ba021b1d4adca 100644 --- a/NEWS.md +++ b/NEWS.md @@ -30,8 +30,8 @@ Standard library changes #### LinearAlgebra - * The BLAS submodule now supports the level-2 BLAS subroutine `hpmv!` ([#34211]). +* `normalize` now supports multidimensional arrays ([#34239]) #### Markdown diff --git a/stdlib/LinearAlgebra/src/generic.jl b/stdlib/LinearAlgebra/src/generic.jl index 0b5c1af380257..fd5da53c9ba87 100644 --- a/stdlib/LinearAlgebra/src/generic.jl +++ b/stdlib/LinearAlgebra/src/generic.jl @@ -1582,39 +1582,39 @@ function isapprox(x::AbstractArray, y::AbstractArray; end """ - normalize!(v::AbstractVector, p::Real=2) + normalize!(a::AbstractArray, p::Real=2) -Normalize the vector `v` in-place so that its `p`-norm equals unity, -i.e. `norm(v, p) == 1`. +Normalize the array `a` in-place so that its `p`-norm equals unity, +i.e. `norm(a, p) == 1`. See also [`normalize`](@ref) and [`norm`](@ref). """ -function normalize!(v::AbstractVector, p::Real=2) - nrm = norm(v, p) - __normalize!(v, nrm) +function normalize!(a::AbstractArray, p::Real=2) + nrm = norm(a, p) + __normalize!(a, nrm) end -@inline function __normalize!(v::AbstractVector, nrm::AbstractFloat) +@inline function __normalize!(a::AbstractArray, nrm::AbstractFloat) # The largest positive floating point number whose inverse is less than infinity δ = inv(prevfloat(typemax(nrm))) if nrm ≥ δ # Safe to multiply with inverse invnrm = inv(nrm) - rmul!(v, invnrm) + rmul!(a, invnrm) else # scale elements to avoid overflow εδ = eps(one(nrm))/δ - rmul!(v, εδ) - rmul!(v, inv(nrm*εδ)) + rmul!(a, εδ) + rmul!(a, inv(nrm*εδ)) end - v + a end """ - normalize(v::AbstractVector, p::Real=2) + normalize(a::AbstractArray, p::Real=2) -Normalize the vector `v` so that its `p`-norm equals unity, -i.e. `norm(v, p) == 1`. +Normalize the array `a` so that its `p`-norm equals unity, +i.e. `norm(a, p) == 1`. See also [`normalize!`](@ref) and [`norm`](@ref). # Examples @@ -1638,15 +1638,29 @@ julia> c = normalize(a, 1) julia> norm(c, 1) 1.0 + +julia> a = [1 2 4 ; 1 2 4] +2×3 Array{Int64,2}: + 1 2 4 + 1 2 4 + +julia> norm(a) +6.48074069840786 + +julia> normalize(a) +2×3 Array{Float64,2}: + 0.154303 0.308607 0.617213 + 0.154303 0.308607 0.617213 + ``` """ -function normalize(v::AbstractVector, p::Real = 2) - nrm = norm(v, p) - if !isempty(v) - vv = copy_oftype(v, typeof(v[1]/nrm)) - return __normalize!(vv, nrm) +function normalize(a::AbstractArray, p::Real = 2) + nrm = norm(a, p) + if !isempty(a) + aa = copy_oftype(a, typeof(first(a)/nrm)) + return __normalize!(aa, nrm) else - T = typeof(zero(eltype(v))/nrm) + T = typeof(zero(eltype(a))/nrm) return T[] end end diff --git a/stdlib/LinearAlgebra/test/generic.jl b/stdlib/LinearAlgebra/test/generic.jl index 407aa2e8423f7..933029f540f2c 100644 --- a/stdlib/LinearAlgebra/test/generic.jl +++ b/stdlib/LinearAlgebra/test/generic.jl @@ -5,9 +5,14 @@ module TestGeneric using Test, LinearAlgebra, Random const BASE_TEST_PATH = joinpath(Sys.BINDIR, "..", "share", "julia", "test") + isdefined(Main, :Quaternions) || @eval Main include(joinpath($(BASE_TEST_PATH), "testhelpers", "Quaternions.jl")) using .Main.Quaternions +isdefined(Main, :OffsetArrays) || @eval Main include(joinpath($(BASE_TEST_PATH), "testhelpers", "OffsetArrays.jl")) +using .Main.OffsetArrays + + Random.seed!(123) n = 5 # should be odd @@ -248,6 +253,25 @@ end end end +@testset "normalize for multidimensional arrays" begin + + for arr in ( + fill(10.0, ()), # 0 dim + [1.0], # 1 dim + [1.0 2.0 3.0; 4.0 5.0 6.0], # 2-dim + rand(1,2,3), # higher dims + rand(1,2,3,4), + OffsetArray([-1,0], (-2,)) # no index 1 + ) + @test normalize(arr) == normalize!(copy(arr)) + @test size(normalize(arr)) == size(arr) + @test axes(normalize(arr)) == axes(arr) + @test vec(normalize(arr)) == normalize(vec(arr)) + end + + @test typeof(normalize([1 2 3; 4 5 6])) == Array{Float64,2} +end + @testset "Issue #30466" begin @test norm([typemin(Int), typemin(Int)], Inf) == -float(typemin(Int)) @test norm([typemin(Int), typemin(Int)], 1) == -2float(typemin(Int)) From cec4c3210986ba045f0d8ecf6396647337361d8e Mon Sep 17 00:00:00 2001 From: Alan Edelman Date: Tue, 7 Jan 2020 06:30:22 -0500 Subject: [PATCH 20/46] Update svd.jl (#30239) * Update svd.jl * Update svd.jl Make doc more useful to the reader. * Fix grammar and one trailing whitespace * Update svd.jl * Fix doctests * Avoid duplicating documentation between mutating and non-mutating versions of svd functions. * Reorganize generalized svd docstring and doctests * Break some long lines Co-authored-by: Viral B. Shah Co-authored-by: Andreas Noack --- stdlib/LinearAlgebra/src/svd.jl | 189 +++++++------------------------- 1 file changed, 38 insertions(+), 151 deletions(-) diff --git a/stdlib/LinearAlgebra/src/svd.jl b/stdlib/LinearAlgebra/src/svd.jl index 843235a615d3b..ccf025be062e4 100644 --- a/stdlib/LinearAlgebra/src/svd.jl +++ b/stdlib/LinearAlgebra/src/svd.jl @@ -87,32 +87,7 @@ default_svd_alg(A) = DivideAndConquer() svd!(A; full::Bool = false, alg::Algorithm = default_svd_alg(A)) -> SVD `svd!` is the same as [`svd`](@ref), but saves space by -overwriting the input `A`, instead of creating a copy. - -# Examples -```jldoctest -julia> A = [1. 0. 0. 0. 2.; 0. 0. 3. 0. 0.; 0. 0. 0. 0. 0.; 0. 2. 0. 0. 0.] -4×5 Array{Float64,2}: - 1.0 0.0 0.0 0.0 2.0 - 0.0 0.0 3.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 - 0.0 2.0 0.0 0.0 0.0 - -julia> F = svd!(A); - -julia> F.U * Diagonal(F.S) * F.Vt -4×5 Array{Float64,2}: - 1.0 0.0 0.0 0.0 2.0 - 0.0 0.0 3.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 - 0.0 2.0 0.0 0.0 0.0 - -julia> A -4×5 Array{Float64,2}: - -2.23607 0.0 0.0 0.0 0.618034 - 0.0 -3.0 1.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 -2.0 0.0 0.0 +overwriting the input `A`, instead of creating a copy. See documentation of [`svd`](@ref) for details. ``` """ function svd!(A::StridedMatrix{T}; full::Bool = false, alg::Algorithm = default_svd_alg(A)) where T<:BlasFloat @@ -161,25 +136,21 @@ Another (typically slower but more accurate) option is `alg = QRIteration()`. # Examples ```jldoctest -julia> A = [1. 0. 0. 0. 2.; 0. 0. 3. 0. 0.; 0. 0. 0. 0. 0.; 0. 2. 0. 0. 0.] -4×5 Array{Float64,2}: - 1.0 0.0 0.0 0.0 2.0 - 0.0 0.0 3.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 - 0.0 2.0 0.0 0.0 0.0 +julia> A = rand(4,3); -julia> F = svd(A); +julia> F = svd(A); # Store the Factorization Object -julia> F.U * Diagonal(F.S) * F.Vt -4×5 Array{Float64,2}: - 1.0 0.0 0.0 0.0 2.0 - 0.0 0.0 3.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 - 0.0 2.0 0.0 0.0 0.0 +julia> A ≈ F.U * Diagonal(F.S) * F.Vt +true -julia> u, s, v = F; # destructuring via iteration +julia> U, S, V = F; # destructuring via iteration -julia> u == F.U && s == F.S && v == F.V +julia> A ≈ U * Diagonal(S) * V' +true + +julia> Uonly, = svd(A); # Store U only + +julia> Uonly == U true ``` """ @@ -217,29 +188,6 @@ Base.propertynames(F::SVD, private::Bool=false) = Return the singular values of `A`, saving space by overwriting the input. See also [`svdvals`](@ref) and [`svd`](@ref). - -# Examples -```jldoctest -julia> A = [1. 0. 0. 0. 2.; 0. 0. 3. 0. 0.; 0. 0. 0. 0. 0.; 0. 2. 0. 0. 0.] -4×5 Array{Float64,2}: - 1.0 0.0 0.0 0.0 2.0 - 0.0 0.0 3.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 - 0.0 2.0 0.0 0.0 0.0 - -julia> svdvals!(A) -4-element Array{Float64,1}: - 3.0 - 2.23606797749979 - 2.0 - 0.0 - -julia> A -4×5 Array{Float64,2}: - -2.23607 0.0 0.0 0.0 0.618034 - 0.0 -3.0 1.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 -2.0 0.0 0.0 ``` """ svdvals!(A::StridedMatrix{T}) where {T<:BlasFloat} = isempty(A) ? zeros(real(T), 0) : LAPACK.gesdd!('N', A)[2] @@ -409,41 +357,7 @@ Base.iterate(S::GeneralizedSVD, ::Val{:done}) = nothing svd!(A, B) -> GeneralizedSVD `svd!` is the same as [`svd`](@ref), but modifies the arguments -`A` and `B` in-place, instead of making copies. - -# Examples -```jldoctest -julia> A = [1. 0.; 0. -1.] -2×2 Array{Float64,2}: - 1.0 0.0 - 0.0 -1.0 - -julia> B = [0. 1.; 1. 0.] -2×2 Array{Float64,2}: - 0.0 1.0 - 1.0 0.0 - -julia> F = svd!(A, B); - -julia> F.U*F.D1*F.R0*F.Q' -2×2 Array{Float64,2}: - 1.0 0.0 - 0.0 -1.0 - -julia> F.V*F.D2*F.R0*F.Q' -2×2 Array{Float64,2}: - 0.0 1.0 - 1.0 0.0 - -julia> A -2×2 Array{Float64,2}: - 1.41421 0.0 - 0.0 -1.41421 - -julia> B -2×2 Array{Float64,2}: - 1.0 -0.0 - 0.0 -1.0 +`A` and `B` in-place, instead of making copies. See documentation of [`svd`](@ref) for details. ``` """ function svd!(A::StridedMatrix{T}, B::StridedMatrix{T}) where T<:BlasFloat @@ -458,12 +372,11 @@ end svd(A::StridedMatrix{T}, B::StridedMatrix{T}) where {T<:BlasFloat} = svd!(copy(A),copy(B)) """ + svd(A, B) -> GeneralizedSVD Compute the generalized SVD of `A` and `B`, returning a `GeneralizedSVD` factorization -object `F`, such that `A = F.U*F.D1*F.R0*F.Q'` and `B = F.V*F.D2*F.R0*F.Q'`. - -For an M-by-N matrix `A` and P-by-N matrix `B`, +object `F` such that `[A;B] = [F.U * F.D1; F.V * F.D2] * F.R0 * F.Q'` - `U` is a M-by-M orthogonal matrix, - `V` is a P-by-P orthogonal matrix, @@ -477,35 +390,36 @@ For an M-by-N matrix `A` and P-by-N matrix `B`, Iterating the decomposition produces the components `U`, `V`, `Q`, `D1`, `D2`, and `R0`. -The entries of `F.D1` and `F.D2` are related, as explained in the LAPACK -documentation for the -[generalized SVD](http://www.netlib.org/lapack/lug/node36.html) and the -[xGGSVD3](http://www.netlib.org/lapack/explore-html/d6/db3/dggsvd3_8f.html) -routine which is called underneath (in LAPACK 3.6.0 and newer). +The generalized SVD is used in applications such as when one wants to compare how much belongs +to `A` vs. how much belongs to `B`, as in human vs yeast genome, or signal vs noise, or between +clusters vs within clusters. (See Edelman and Wang for discussion: https://arxiv.org/abs/1901.00485) + +It decomposes `[A; B]` into `[UC; VS]H`, where `[UC; VS]` is a natural orthogonal basis for the +column space of `[A; B]`, and `H = RQ'` is a natural non-orthogonal basis for the rowspace of `[A;B]`, +where the top rows are most closely attributed to the `A` matrix, and the bottom to the `B` matrix. +The multi-cosine/sine matrices `C` and `S` provide a multi-measure of how much `A` vs how much `B`, +and `U` and `V` provide directions in which these are measured. # Examples ```jldoctest -julia> A = [1. 0.; 0. -1.] -2×2 Array{Float64,2}: - 1.0 0.0 - 0.0 -1.0 - -julia> B = [0. 1.; 1. 0.] -2×2 Array{Float64,2}: - 0.0 1.0 - 1.0 0.0 +julia> A = randn(3,2); B=randn(4,2); julia> F = svd(A, B); -julia> F.U*F.D1*F.R0*F.Q' -2×2 Array{Float64,2}: - 1.0 0.0 - 0.0 -1.0 +julia> U,V,Q,C,S,R = F; -julia> F.V*F.D2*F.R0*F.Q' -2×2 Array{Float64,2}: - 0.0 1.0 - 1.0 0.0 +julia> H = R*Q'; + +julia> [A; B] ≈ [U*C; V*S]*H +true + +julia> [A; B] ≈ [F.U*F.D1; F.V*F.D2]*F.R0*F.Q' +true + +julia> Uonly, = svd(A,B); + +julia> U == Uonly +true ``` """ function svd(A::StridedMatrix{TA}, B::StridedMatrix{TB}) where {TA,TB} @@ -582,33 +496,6 @@ end Return the generalized singular values from the generalized singular value decomposition of `A` and `B`, saving space by overwriting `A` and `B`. See also [`svd`](@ref) and [`svdvals`](@ref). - -# Examples -```jldoctest -julia> A = [1. 0.; 0. -1.] -2×2 Array{Float64,2}: - 1.0 0.0 - 0.0 -1.0 - -julia> B = [0. 1.; 1. 0.] -2×2 Array{Float64,2}: - 0.0 1.0 - 1.0 0.0 - -julia> svdvals!(A, B) -2-element Array{Float64,1}: - 1.0 - 1.0 - -julia> A -2×2 Array{Float64,2}: - 1.41421 0.0 - 0.0 -1.41421 - -julia> B -2×2 Array{Float64,2}: - 1.0 -0.0 - 0.0 -1.0 ``` """ function svdvals!(A::StridedMatrix{T}, B::StridedMatrix{T}) where T<:BlasFloat From a3eb2749b48aa1b650a103ad06e07074c0608ce2 Mon Sep 17 00:00:00 2001 From: Fredrik Ekre Date: Tue, 7 Jan 2020 14:43:17 +0100 Subject: [PATCH 21/46] Fix trailing whitespace in svd docs introduced in cec4c3210986ba045f0d8ecf6396647337361d8e. --- stdlib/LinearAlgebra/src/svd.jl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/stdlib/LinearAlgebra/src/svd.jl b/stdlib/LinearAlgebra/src/svd.jl index ccf025be062e4..2a49512eeb2ec 100644 --- a/stdlib/LinearAlgebra/src/svd.jl +++ b/stdlib/LinearAlgebra/src/svd.jl @@ -390,14 +390,14 @@ object `F` such that `[A;B] = [F.U * F.D1; F.V * F.D2] * F.R0 * F.Q'` Iterating the decomposition produces the components `U`, `V`, `Q`, `D1`, `D2`, and `R0`. -The generalized SVD is used in applications such as when one wants to compare how much belongs -to `A` vs. how much belongs to `B`, as in human vs yeast genome, or signal vs noise, or between +The generalized SVD is used in applications such as when one wants to compare how much belongs +to `A` vs. how much belongs to `B`, as in human vs yeast genome, or signal vs noise, or between clusters vs within clusters. (See Edelman and Wang for discussion: https://arxiv.org/abs/1901.00485) -It decomposes `[A; B]` into `[UC; VS]H`, where `[UC; VS]` is a natural orthogonal basis for the -column space of `[A; B]`, and `H = RQ'` is a natural non-orthogonal basis for the rowspace of `[A;B]`, -where the top rows are most closely attributed to the `A` matrix, and the bottom to the `B` matrix. -The multi-cosine/sine matrices `C` and `S` provide a multi-measure of how much `A` vs how much `B`, +It decomposes `[A; B]` into `[UC; VS]H`, where `[UC; VS]` is a natural orthogonal basis for the +column space of `[A; B]`, and `H = RQ'` is a natural non-orthogonal basis for the rowspace of `[A;B]`, +where the top rows are most closely attributed to the `A` matrix, and the bottom to the `B` matrix. +The multi-cosine/sine matrices `C` and `S` provide a multi-measure of how much `A` vs how much `B`, and `U` and `V` provide directions in which these are measured. # Examples From 831e21babd9191497b515a5e1add0029e9faa3f7 Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 7 Jan 2020 17:28:34 +0100 Subject: [PATCH 22/46] Fixes @less on windows (line off-by-one) (#33587) Fixes https://github.com/JuliaLang/julia/issues/27017 --- stdlib/InteractiveUtils/src/editless.jl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/stdlib/InteractiveUtils/src/editless.jl b/stdlib/InteractiveUtils/src/editless.jl index fcd91f834a55e..bb4f94795a5be 100644 --- a/stdlib/InteractiveUtils/src/editless.jl +++ b/stdlib/InteractiveUtils/src/editless.jl @@ -226,7 +226,12 @@ edit(m::Module) = edit(pathof(m)) if Sys.iswindows() function less(file::AbstractString, line::Integer) pager = shell_split(get(ENV, "PAGER", "more")) - g = pager[1] == "more" ? "" : "g" + if pager[1] == "more" + g = "" + line -= 1 + else + g = "g" + end run(Cmd(`$pager +$(line)$(g) \"$file\"`, windows_verbatim = true)) nothing end From 194a38bbe22168556d4d0bd816a947abeb5c2f0e Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Tue, 7 Jan 2020 13:44:58 -0500 Subject: [PATCH 23/46] add `local` to testset vars that should be local (#34282) --- stdlib/Test/src/Test.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/Test/src/Test.jl b/stdlib/Test/src/Test.jl index 9d556b9186c7e..732aa4347fe31 100644 --- a/stdlib/Test/src/Test.jl +++ b/stdlib/Test/src/Test.jl @@ -1100,7 +1100,7 @@ function testset_beginend(args, tests, source) # action (such as reporting the results) ex = quote _check_testset($testsettype, $(QuoteNode(testsettype.args[1]))) - ts = $(testsettype)($desc; $options...) + local ts = $(testsettype)($desc; $options...) # this empty loop is here to force the block to be compiled, # which is needed for backtrace scrubbing to work correctly. while false; end @@ -1109,7 +1109,7 @@ function testset_beginend(args, tests, source) # cannot be used as it changes slightly the semantic of @testset, # by wrapping the body in a function local RNG = default_rng() - oldrng = copy(RNG) + local oldrng = copy(RNG) try # RNG is re-seeded with its own seed to ease reproduce a failed test Random.seed!(RNG.seed) @@ -1195,7 +1195,7 @@ function testset_forloop(args, testloop, source) end end quote - arr = Vector{Any}() + local arr = Vector{Any}() local first_iteration = true local ts local RNG = default_rng() From 8dc0d9332d1cbe204ae3ea53457988f3ea2029ee Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Tue, 7 Jan 2020 13:48:22 -0500 Subject: [PATCH 24/46] fix #34286, regression in `methods` with empty tuple of types (#34291) --- base/reflection.jl | 8 ++++---- test/reflection.jl | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/base/reflection.jl b/base/reflection.jl index ccb00baa2e667..df3368022fc09 100644 --- a/base/reflection.jl +++ b/base/reflection.jl @@ -868,14 +868,14 @@ end Return the method table for `f`. If `types` is specified, return an array of methods whose types match. -If `module` is specified, return an array of methods defined in this module. -A list of modules can also be specified as an array or tuple. +If `module` is specified, return an array of methods defined in that module. +A list of modules can also be specified as an array. !!! compat "Julia 1.4" At least Julia 1.4 is required for specifying a module. """ function methods(@nospecialize(f), @nospecialize(t), - @nospecialize(mod::Union{Module,AbstractArray{Module},Tuple{Vararg{Module}},Nothing}=nothing)) + @nospecialize(mod::Union{Module,AbstractArray{Module},Nothing}=nothing)) if mod isa Module mod = (mod,) end @@ -900,7 +900,7 @@ function methods_including_ambiguous(@nospecialize(f), @nospecialize(t)) end function methods(@nospecialize(f), - @nospecialize(mod::Union{Module,AbstractArray{Module},Tuple{Vararg{Module}},Nothing}=nothing)) + @nospecialize(mod::Union{Module,AbstractArray{Module},Nothing}=nothing)) # return all matches return methods(f, Tuple{Vararg{Any}}, mod) end diff --git a/test/reflection.jl b/test/reflection.jl index 09592bbada17a..f567eb40d55f5 100644 --- a/test/reflection.jl +++ b/test/reflection.jl @@ -897,6 +897,7 @@ end module TestMod33403 f(x) = 1 f(x::Int) = 2 +g() = 3 module Sub import ..TestMod33403: f @@ -905,18 +906,19 @@ end end @testset "methods with module" begin - using .TestMod33403: f + using .TestMod33403: f, g @test length(methods(f)) == 3 @test length(methods(f, (Int,))) == 1 @test length(methods(f, TestMod33403)) == 2 - @test length(methods(f, (TestMod33403,))) == 2 @test length(methods(f, [TestMod33403])) == 2 @test length(methods(f, (Int,), TestMod33403)) == 1 - @test length(methods(f, (Int,), (TestMod33403,))) == 1 + @test length(methods(f, (Int,), [TestMod33403])) == 1 @test length(methods(f, TestMod33403.Sub)) == 1 - @test length(methods(f, (TestMod33403.Sub,))) == 1 + @test length(methods(f, [TestMod33403.Sub])) == 1 @test length(methods(f, (Char,), TestMod33403.Sub)) == 1 @test length(methods(f, (Int,), TestMod33403.Sub)) == 0 + + @test length(methods(g, ())) == 1 end From 37275c3f136b3a1b3bd6215432f021a22371d536 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Tue, 7 Jan 2020 15:49:43 -0500 Subject: [PATCH 25/46] make fallback `signed` and `unsigned` functions unchecked (as documented) (#34287) --- base/int.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/int.jl b/base/int.jl index 5e1bf99b74e37..6c19258d2f58b 100644 --- a/base/int.jl +++ b/base/int.jl @@ -155,7 +155,7 @@ julia> signed(unsigned(-2)) -2 ``` """ -unsigned(x) = convert(Unsigned, x) +unsigned(x) = x % typeof(convert(Unsigned, zero(x))) unsigned(x::BitSigned) = reinterpret(typeof(convert(Unsigned, zero(x))), x) """ @@ -164,7 +164,7 @@ unsigned(x::BitSigned) = reinterpret(typeof(convert(Unsigned, zero(x))), x) Convert a number to a signed integer. If the argument is unsigned, it is reinterpreted as signed without checking for overflow. """ -signed(x) = convert(Signed, x) +signed(x) = x % typeof(convert(Signed, zero(x))) signed(x::BitUnsigned) = reinterpret(typeof(convert(Signed, zero(x))), x) div(x::BitSigned, y::Unsigned) = flipsign(signed(div(unsigned(abs(x)), y)), x) From c33298df0b58a2a3d6a5a2e5afce6093061888c9 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Tue, 7 Jan 2020 15:50:31 -0500 Subject: [PATCH 26/46] add some compatibility shims for internal functions changed in 1.4 (#34289) --- base/methodshow.jl | 3 ++- base/util.jl | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/base/methodshow.jl b/base/methodshow.jl index df2de34f3740d..6f9c46f929100 100644 --- a/base/methodshow.jl +++ b/base/methodshow.jl @@ -73,7 +73,8 @@ end const empty_sym = Symbol("") -function kwarg_decl(m::Method) +# NOTE: second argument is deprecated and is no longer used +function kwarg_decl(m::Method, kwtype = nothing) mt = get_methodtable(m) if isdefined(mt, :kwsorter) kwtype = typeof(mt.kwsorter) diff --git a/base/util.jl b/base/util.jl index 9c4efa3bdaf36..0038dbcafae9c 100644 --- a/base/util.jl +++ b/base/util.jl @@ -238,6 +238,12 @@ end # total number of bytes allocated so far gc_bytes(b::Ref{Int64}) = ccall(:jl_gc_get_total_bytes, Cvoid, (Ptr{Int64},), b) +# NOTE: gc_bytes() is deprecated +function gc_bytes() + b = Ref{Int64}() + gc_bytes(b) + b[] +end """ @allocated From 8f53987306e34d63da94dfaa66201aa009178e75 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Tue, 7 Jan 2020 15:52:35 -0500 Subject: [PATCH 27/46] restrict `div` fallback to `Real` (#34284) add more-compatible fallback for `divrem` --- base/div.jl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/base/div.jl b/base/div.jl index 5d91ba5ec19bb..ef85e2fe18b99 100644 --- a/base/div.jl +++ b/base/div.jl @@ -116,7 +116,17 @@ julia> divrem(7,3) ``` """ divrem(x, y) = divrem(x, y, RoundToZero) -divrem(a, b, r::RoundingMode) = (div(a, b, r), rem(a, b, r)) +function divrem(a, b, r::RoundingMode) + if r == RoundToZero + # For compat. Remove in 2.0. + (div(a, b), rem(a, b)) + elseif r === RoundDown + # For compat. Remove in 2.0. + (fld(a, b), mod(a, b)) + else + (div(a, b, r), rem(a, b, r)) + end +end function divrem(x::Integer, y::Integer, rnd::typeof(RoundNearest)) (q, r) = divrem(x, y) if x >= 0 From 83cd2c1b7248415356e641a416470fef5405cd36 Mon Sep 17 00:00:00 2001 From: Jacob Quinn Date: Tue, 7 Jan 2020 15:49:46 -0700 Subject: [PATCH 28/46] Small update to macro keyword doc (#34305) Note that macros can accept varargs but not kwargs --- base/docs/basedocs.jl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/base/docs/basedocs.jl b/base/docs/basedocs.jl index e11ba993bd545..402598a7f4cff 100644 --- a/base/docs/basedocs.jl +++ b/base/docs/basedocs.jl @@ -158,7 +158,8 @@ resulting expression is substituted directly into the program at the point where the macro is invoked. Macros are a way to run generated code without calling [`eval`](@ref Base.eval), since the generated code instead simply becomes part of the surrounding program. -Macro arguments may include expressions, literal values, and symbols. +Macro arguments may include expressions, literal values, and symbols. Macros can be defined for +variable number of arguments (varargs), but do not accept keyword arguments. # Examples ```jldoctest @@ -169,6 +170,14 @@ julia> macro sayhello(name) julia> @sayhello "Charlie" Hello, Charlie! + +julia> macro saylots(x...) + return :( println("Say: ", \$(x...)) ) + end +@saylots (macro with 1 method) + +julia> @saylots "hey " "there " "friend" +Say: hey there friend ``` """ kw"macro" From 41501a5f956c161ad86aa2f27ee316f962a02266 Mon Sep 17 00:00:00 2001 From: Jan Weidner Date: Wed, 8 Jan 2020 06:46:05 +0100 Subject: [PATCH 29/46] make @timed return NamedTuple (# 34147) (#34149) --- NEWS.md | 2 +- base/util.jl | 17 ++++++++++------- test/misc.jl | 15 ++++++++++++--- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/NEWS.md b/NEWS.md index ba021b1d4adca..15a35f09a0a48 100644 --- a/NEWS.md +++ b/NEWS.md @@ -27,7 +27,7 @@ New library features Standard library changes ------------------------ - +* The `@timed` macro now returns a `NamedTuple` ([#34149]) #### LinearAlgebra * The BLAS submodule now supports the level-2 BLAS subroutine `hpmv!` ([#34211]). diff --git a/base/util.jl b/base/util.jl index 0038dbcafae9c..75515e53e76b8 100644 --- a/base/util.jl +++ b/base/util.jl @@ -282,23 +282,26 @@ See also [`@time`](@ref), [`@timev`](@ref), [`@elapsed`](@ref), and [`@allocated`](@ref). ```julia-repl -julia> val, t, bytes, gctime, memallocs = @timed rand(10^6); +julia> stats = @timed rand(10^6); -julia> t +julia> stats.time 0.006634834 -julia> bytes +julia> stats.bytes 8000256 -julia> gctime +julia> stats.gctime 0.0055765 -julia> fieldnames(typeof(memallocs)) +julia> propertynames(stats.gcstats) (:allocd, :malloc, :realloc, :poolalloc, :bigalloc, :freecall, :total_time, :pause, :full_sweep) -julia> memallocs.total_time +julia> stats.gcstats.total_time 5576500 ``` + +!!! compat "Julia 1.5" + The return type of this macro was changed from `Tuple` to `NamedTuple` in Julia 1.5. """ macro timed(ex) quote @@ -308,7 +311,7 @@ macro timed(ex) local val = $(esc(ex)) elapsedtime = time_ns() - elapsedtime local diff = GC_Diff(gc_num(), stats) - val, elapsedtime/1e9, diff.allocd, diff.total_time/1e9, diff + (value=val, time=elapsedtime/1e9, bytes=diff.allocd, gctime=diff.total_time/1e9, gcstats=diff) end end diff --git a/test/misc.jl b/test/misc.jl index e92f8e8b7b1bd..2fddcb1bec069 100644 --- a/test/misc.jl +++ b/test/misc.jl @@ -158,9 +158,18 @@ let t = @elapsed 1+1 end let - val, t = @timed sin(1) - @test val == sin(1) - @test isa(t, Real) && t >= 0 + stats = @timed sin(1) + @test stats.value == sin(1) + @test isa(stats.time, Real) && stats.time >= 0 + + # The return type of gcstats was changed in Julia 1.4 (# 34147) + # Test that the 1.0 API still works + val, t, bytes, gctime, gcstats = stats + @test val === stats.value + @test t === stats.time + @test bytes === stats.bytes + @test gctime === stats.gctime + @test gcstats === stats.gcstats end # problem after #11801 - at global scope From b0ed147c5cf0566019ff08755af71eb5649411bc Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Wed, 8 Jan 2020 06:46:48 +0100 Subject: [PATCH 30/46] Simplify the GC.gc interface. (#34303) --- base/gcutils.jl | 25 ++++++++----------------- test/misc.jl | 1 - 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/base/gcutils.jl b/base/gcutils.jl index 4ff580444c6db..95de3137deda7 100644 --- a/base/gcutils.jl +++ b/base/gcutils.jl @@ -49,29 +49,20 @@ Module with garbage collection utilities. """ module GC -# @enum-like structure -struct CollectionType - x::Int -end -Base.cconvert(::Type{Cint}, collection::CollectionType) = Cint(collection.x) - -const Auto = CollectionType(0) -const Full = CollectionType(1) -const Incremental = CollectionType(2) - """ - GC.gc(full::Bool=true) - GC.gc(collection::CollectionType) + GC.gc() + GC.gc(full::Bool) -Perform garbage collection. The argument `full` determines whether a full, but more costly -collection is performed. Otherwise, heuristics are used to determine which type of -collection is needed. For exact control, pass an argument of type `CollectionType`. +Perform garbage collection. The argument `full` determines the kind of collection: A full +collection scans all objects, while an incremental collection only scans so-called young +objects and is much quicker. If called without an argument, heuristics are used to determine +which type of collection is needed. !!! warning Excessive use will likely lead to poor performance. """ -gc(full::Bool=true) = ccall(:jl_gc_collect, Cvoid, (Cint,), full) -gc(collection::CollectionType) = ccall(:jl_gc_collect, Cvoid, (Cint,), collection) +gc() = ccall(:jl_gc_collect, Cvoid, (Cint,), 0) +gc(full::Bool) = ccall(:jl_gc_collect, Cvoid, (Cint,), full ? 1 : 2) """ GC.enable(on::Bool) diff --git a/test/misc.jl b/test/misc.jl index 2fddcb1bec069..00e44099f6d2f 100644 --- a/test/misc.jl +++ b/test/misc.jl @@ -801,7 +801,6 @@ end @testset "GC utilities" begin GC.gc() GC.gc(true); GC.gc(false) - GC.gc(GC.Auto); GC.gc(GC.Full); GC.gc(GC.Incremental) GC.safepoint() end From 7afbb05384186457cedd321071fde137880bfaa5 Mon Sep 17 00:00:00 2001 From: Fredrik Ekre Date: Wed, 8 Jan 2020 12:49:00 +0100 Subject: [PATCH 31/46] Define in-development docs URL programmatically. (#34298) * Revert "Use correct version for master docs (#34260)" This reverts commit 8e6a2aeaf3c7d9d7901a187f6fe6dde05746170f. * Define in-development docs URL programmatically. --- Makefile | 19 +++++++++---------- doc/make.jl | 6 ++++-- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index e638ead8279a5..44c053ec3230f 100644 --- a/Makefile +++ b/Makefile @@ -123,16 +123,15 @@ release-candidate: release testall @echo 2. Update references to the julia version in the source directories, such as in README.md @echo 3. Bump VERSION @echo 4. Increase SOMAJOR and SOMINOR if needed. - @echo 5. Update versions in deploydocs (at the end of doc/make.jl) if needed. - @echo 6. Create tag, push to github "\(git tag v\`cat VERSION\` && git push --tags\)" #"` # These comments deal with incompetent syntax highlighting rules - @echo 7. Clean out old .tar.gz files living in deps/, "\`git clean -fdx\`" seems to work #"` - @echo 8. Replace github release tarball with tarballs created from make light-source-dist and make full-source-dist - @echo 9. Check that 'make && make install && make test' succeed with unpacked tarballs even without Internet access. - @echo 10. Follow packaging instructions in DISTRIBUTING.md to create binary packages for all platforms - @echo 11. Upload to AWS, update https://julialang.org/downloads and http://status.julialang.org/stable links - @echo 12. Update checksums on AWS for tarball and packaged binaries - @echo 13. Announce on mailing lists - @echo 14. Change master to release-0.X in base/version.jl and base/version_git.sh as in 4cb1e20 + @echo 5. Create tag, push to github "\(git tag v\`cat VERSION\` && git push --tags\)" #"` # These comments deal with incompetent syntax highlighting rules + @echo 6. Clean out old .tar.gz files living in deps/, "\`git clean -fdx\`" seems to work #"` + @echo 7. Replace github release tarball with tarballs created from make light-source-dist and make full-source-dist + @echo 8. Check that 'make && make install && make test' succeed with unpacked tarballs even without Internet access. + @echo 9. Follow packaging instructions in DISTRIBUTING.md to create binary packages for all platforms + @echo 10. Upload to AWS, update https://julialang.org/downloads and http://status.julialang.org/stable links + @echo 11. Update checksums on AWS for tarball and packaged binaries + @echo 12. Announce on mailing lists + @echo 13. Change master to release-0.X in base/version.jl and base/version_git.sh as in 4cb1e20 @echo $(build_man1dir)/julia.1: $(JULIAHOME)/doc/man/julia.1 | $(build_man1dir) diff --git a/doc/make.jl b/doc/make.jl index a316867d8a7c6..269219bbbee6f 100644 --- a/doc/make.jl +++ b/doc/make.jl @@ -204,11 +204,13 @@ function Documenter.deploy_folder(::BuildBotConfig; devurl, kwargs...) return nothing end +const devurl = "v$(VERSION.major).$(VERSION.minor)-dev" + deploydocs( repo = "github.com/JuliaLang/docs.julialang.org.git", deploy_config = BuildBotConfig(), target = joinpath(buildroot, "doc", "_build", "html", "en"), dirname = "en", - devurl = "v1.5-dev", - versions = ["v#.#", "v1.5-dev" => "v1.5-dev"] + devurl = devurl, + versions = ["v#.#", devurl => devurl] ) From 8a19ef8edec9635e938b634e78f3a9a675de5ddd Mon Sep 17 00:00:00 2001 From: Daniel Karrasch Date: Wed, 8 Jan 2020 17:19:30 +0100 Subject: [PATCH 32/46] recognize Adjoint/Transpose of sparse arrays as sparse (#34266) --- stdlib/SparseArrays/src/abstractsparse.jl | 2 ++ stdlib/SparseArrays/test/sparse.jl | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/stdlib/SparseArrays/src/abstractsparse.jl b/stdlib/SparseArrays/src/abstractsparse.jl index ccc9bbec78814..92724fccfe58f 100644 --- a/stdlib/SparseArrays/src/abstractsparse.jl +++ b/stdlib/SparseArrays/src/abstractsparse.jl @@ -52,6 +52,8 @@ false """ issparse(A::AbstractArray) = false issparse(S::AbstractSparseArray) = true +issparse(S::LinearAlgebra.Adjoint{<:Any,<:AbstractSparseArray}) = true +issparse(S::LinearAlgebra.Transpose{<:Any,<:AbstractSparseArray}) = true issparse(S::LinearAlgebra.Symmetric{<:Any,<:AbstractSparseMatrix}) = true issparse(S::LinearAlgebra.Hermitian{<:Any,<:AbstractSparseMatrix}) = true diff --git a/stdlib/SparseArrays/test/sparse.jl b/stdlib/SparseArrays/test/sparse.jl index a6b1d1cfd94e3..71815b16c325a 100644 --- a/stdlib/SparseArrays/test/sparse.jl +++ b/stdlib/SparseArrays/test/sparse.jl @@ -2046,6 +2046,8 @@ end @test issparse(LinearAlgebra.UnitLowerTriangular(m)) @test issparse(UpperTriangular(m)) @test issparse(LinearAlgebra.UnitUpperTriangular(m)) + @test issparse(adjoint(m)) + @test issparse(transpose(m)) @test issparse(Symmetric(Array(m))) == false @test issparse(Hermitian(Array(m))) == false @test issparse(LowerTriangular(Array(m))) == false @@ -2054,6 +2056,13 @@ end @test issparse(LinearAlgebra.UnitUpperTriangular(Array(m))) == false end +@testset "issparse for sparse vectors #34253" begin + v = sprand(10, 0.5) + @test issparse(v) + @test issparse(v') + @test issparse(transpose(v)) +end + @testset "test created type of sprand{T}(::Type{T}, m::Integer, n::Integer, density::AbstractFloat)" begin m = sprand(Float32, 10, 10, 0.1) @test eltype(m) == Float32 From 6088df6b5e7b95ed81ed710c1ce374f1a26602db Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Wed, 8 Jan 2020 23:23:40 +0100 Subject: [PATCH 33/46] remove incorrect examples about thread-unsafe functions in docs (#33419) * remove incorrect examples about thread unsafe functions * Delete my_file.txt --- doc/src/manual/parallel-computing.md | 90 +--------------------------- 1 file changed, 1 insertion(+), 89 deletions(-) diff --git a/doc/src/manual/parallel-computing.md b/doc/src/manual/parallel-computing.md index 84279a7b3415a..1c99b3b8dcfa2 100644 --- a/doc/src/manual/parallel-computing.md +++ b/doc/src/manual/parallel-computing.md @@ -396,95 +396,7 @@ When using multi-threading we have to be careful when using functions that are n For instance functions that have their [name ending with `!`](https://docs.julialang.org/en/latest/manual/style-guide/#Append-!-to-names-of-functions-that-modify-their-arguments-1) by convention modify their arguments and thus are not pure. However, there are -functions that have side effects and their name does not end with `!`. For -instance [`findfirst(regex, str)`](@ref) mutates its `regex` argument or -[`rand()`](@ref) changes `Base.GLOBAL_RNG` : - -```julia-repl -julia> using Base.Threads - -julia> nthreads() -4 - -julia> function f() - s = repeat(["123", "213", "231"], outer=1000) - x = similar(s, Int) - rx = r"1" - @threads for i in 1:3000 - x[i] = findfirst(rx, s[i]).start - end - count(v -> v == 1, x) - end -f (generic function with 1 method) - -julia> f() # the correct result is 1000 -1017 - -julia> function g() - a = zeros(1000) - @threads for i in 1:1000 - a[i] = rand() - end - length(unique(a)) - end -g (generic function with 1 method) - -julia> Random.seed!(1); g() # the result for a single thread is 1000 -781 -``` - -In such cases one should redesign the code to avoid the possibility of a race condition or use -[synchronization primitives](https://docs.julialang.org/en/latest/base/multi-threading/#Synchronization-Primitives-1). - -For example in order to fix `findfirst` example above one needs to have a -separate copy of `rx` variable for each thread: - -```julia-repl -julia> function f_fix() - s = repeat(["123", "213", "231"], outer=1000) - x = similar(s, Int) - rx = [Regex("1") for i in 1:nthreads()] - @threads for i in 1:3000 - x[i] = findfirst(rx[threadid()], s[i]).start - end - count(v -> v == 1, x) - end -f_fix (generic function with 1 method) - -julia> f_fix() -1000 -``` - -We now use `Regex("1")` instead of `r"1"` to make sure that Julia -creates separate instances of `Regex` object for each entry of `rx` vector. - -The case of `rand` is a bit more complex as we have to ensure that each thread -uses non-overlapping pseudorandom number sequences. This can be simply ensured -by using `Future.randjump` function: - - -```julia-repl -julia> using Random; import Future - -julia> function g_fix(r) - a = zeros(1000) - @threads for i in 1:1000 - a[i] = rand(r[threadid()]) - end - length(unique(a)) - end -g_fix (generic function with 1 method) - -julia> r = let m = MersenneTwister(1) - [m; accumulate(Future.randjump, fill(big(10)^20, nthreads()-1), init=m)] - end; - -julia> g_fix(r) -1000 -``` - -We pass the `r` vector to `g_fix` as generating several RGNs is an expensive -operation so we do not want to repeat it every time we run the function. +functions that have side effects and their name does not end with `!`. ## @threadcall (Experimental) From 474fd552d82d26a1a208afcd95481a6ffe287942 Mon Sep 17 00:00:00 2001 From: "Viral B. Shah" Date: Wed, 8 Jan 2020 19:24:57 -0500 Subject: [PATCH 34/46] Update suitesparse download url --- deps/checksums/SuiteSparse-5.4.0.tar.gz/md5 | 2 +- deps/checksums/SuiteSparse-5.4.0.tar.gz/sha512 | 2 +- deps/openlibm.mk | 2 +- deps/suitesparse.mk | 3 +-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/deps/checksums/SuiteSparse-5.4.0.tar.gz/md5 b/deps/checksums/SuiteSparse-5.4.0.tar.gz/md5 index 645597b88da64..d111708b32fcf 100644 --- a/deps/checksums/SuiteSparse-5.4.0.tar.gz/md5 +++ b/deps/checksums/SuiteSparse-5.4.0.tar.gz/md5 @@ -1 +1 @@ -4a6d4e74fc44c503f52996ae95cad03a +d73dc3527c66804ecf41b09d057142ff diff --git a/deps/checksums/SuiteSparse-5.4.0.tar.gz/sha512 b/deps/checksums/SuiteSparse-5.4.0.tar.gz/sha512 index 74cc15208df9c..7e097a1e26e68 100644 --- a/deps/checksums/SuiteSparse-5.4.0.tar.gz/sha512 +++ b/deps/checksums/SuiteSparse-5.4.0.tar.gz/sha512 @@ -1 +1 @@ -8328bcc2ef5eb03febf91b9c71159f091ff405c1ba7522e53714120fcf857ceab2d2ecf8bf9a2e1fc45e1a934665a341e3a47f954f87b59934f4fce6164775d6 +65065fff86ff31e2ecc706525c3a2240cec7fff67f1bdf5371df7c55b661bd797e2fdbde8952f9ca7b7d8aa39bfcd6b6e0355c3acb59f66069cb0e14cb76701d diff --git a/deps/openlibm.mk b/deps/openlibm.mk index 36e2e62550715..acb82a3084467 100644 --- a/deps/openlibm.mk +++ b/deps/openlibm.mk @@ -29,7 +29,7 @@ compile-openlibm: $(BUILDDIR)/$(OPENLIBM_SRC_DIR)/build-compiled fastcheck-openlibm: check-openlibm check-openlibm: compile-openlibm -else # USE_BINARYBUILDER_SUITESPARSE +else # USE_BINARYBUILDER_OPENLIBM OPENLIBM_BB_URL_BASE := https://github.com/JuliaPackaging/Yggdrasil/releases/download/OpenLibm-v$(OPENLIBM_VER)-$(OPENLIBM_BB_REL) OPENLIBM_BB_NAME := OpenLibm.v$(OPENLIBM_VER) diff --git a/deps/suitesparse.mk b/deps/suitesparse.mk index 8f23eb1397f02..1dcbed69fada9 100644 --- a/deps/suitesparse.mk +++ b/deps/suitesparse.mk @@ -33,7 +33,7 @@ SUITESPARSE_MFLAGS += UNAME=$(OS) endif $(SRCCACHE)/SuiteSparse-$(SUITESPARSE_VER).tar.gz: | $(SRCCACHE) - $(JLDOWNLOAD) $@ http://faculty.cse.tamu.edu/davis/SuiteSparse/$(notdir $@) + $(JLDOWNLOAD) $@ https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v$(SUITESPARSE_VER).tar.gz $(BUILDDIR)/SuiteSparse-$(SUITESPARSE_VER)/source-extracted: $(SRCCACHE)/SuiteSparse-$(SUITESPARSE_VER).tar.gz $(JLCHECKSUM) $< @@ -155,4 +155,3 @@ install-suitesparse-wrapper: install-suitesparse # suitesparse depends on OpenBLAS compile-suitesparse: | $(build_prefix)/manifest/openblas endif - From 375347ea52b27ffc21b5e452b4d094074a15d86e Mon Sep 17 00:00:00 2001 From: Michael Jin Date: Wed, 8 Jan 2020 22:35:53 -0500 Subject: [PATCH 35/46] Update Mozilla CA certificate store to latest (01-01-2020) for libgit2 SSL. (#34319) --- deps/Versions.make | 2 +- deps/checksums/cacert-2019-08-28.pem/md5 | 1 - deps/checksums/cacert-2019-08-28.pem/sha512 | 1 - deps/checksums/cacert-2019-10-16.pem/md5 | 1 - deps/checksums/cacert-2019-10-16.pem/sha512 | 1 - deps/checksums/cacert-2020-01-01.pem/md5 | 1 + deps/checksums/cacert-2020-01-01.pem/sha512 | 1 + 7 files changed, 3 insertions(+), 5 deletions(-) delete mode 100644 deps/checksums/cacert-2019-08-28.pem/md5 delete mode 100644 deps/checksums/cacert-2019-08-28.pem/sha512 delete mode 100644 deps/checksums/cacert-2019-10-16.pem/md5 delete mode 100644 deps/checksums/cacert-2019-10-16.pem/sha512 create mode 100644 deps/checksums/cacert-2020-01-01.pem/md5 create mode 100644 deps/checksums/cacert-2020-01-01.pem/sha512 diff --git a/deps/Versions.make b/deps/Versions.make index 5faafc910f080..666a5aa714d23 100644 --- a/deps/Versions.make +++ b/deps/Versions.make @@ -40,4 +40,4 @@ P7ZIP_BB_REL = 1 # Specify the version of the Mozilla CA Certificate Store to obtain. # The versions of cacert.pem are identified by the date (YYYY-MM-DD) of their changes. # See https://curl.haxx.se/docs/caextract.html for more details. -MOZILLA_CACERT_VERSION := 2019-10-16 +MOZILLA_CACERT_VERSION := 2020-01-01 diff --git a/deps/checksums/cacert-2019-08-28.pem/md5 b/deps/checksums/cacert-2019-08-28.pem/md5 deleted file mode 100644 index c2b816d1ecd7f..0000000000000 --- a/deps/checksums/cacert-2019-08-28.pem/md5 +++ /dev/null @@ -1 +0,0 @@ -6c8779e5755d9dddf677bf7a52d035ce diff --git a/deps/checksums/cacert-2019-08-28.pem/sha512 b/deps/checksums/cacert-2019-08-28.pem/sha512 deleted file mode 100644 index 97b5e2963b7b4..0000000000000 --- a/deps/checksums/cacert-2019-08-28.pem/sha512 +++ /dev/null @@ -1 +0,0 @@ -527e23d1e83381583cc2efe4625b01a00baa990afc877bb617727e8bffab17a0dc4f36b60162bad375b576ff09bc27acc7e0f095a34150f23d61825b8a7fb81f diff --git a/deps/checksums/cacert-2019-10-16.pem/md5 b/deps/checksums/cacert-2019-10-16.pem/md5 deleted file mode 100644 index 5286d34293fa5..0000000000000 --- a/deps/checksums/cacert-2019-10-16.pem/md5 +++ /dev/null @@ -1 +0,0 @@ -5805059ab9e4646e4803ce1e007eb8ba diff --git a/deps/checksums/cacert-2019-10-16.pem/sha512 b/deps/checksums/cacert-2019-10-16.pem/sha512 deleted file mode 100644 index e017d0fe86c31..0000000000000 --- a/deps/checksums/cacert-2019-10-16.pem/sha512 +++ /dev/null @@ -1 +0,0 @@ -49778472e46ce3b86b3930f4df5731ac86daf4d8602d418af1c89dc35df5f98c4557aa6c6eb280558c61139ead4b96cbb457a259f72640452f28a2fecd4ccb89 diff --git a/deps/checksums/cacert-2020-01-01.pem/md5 b/deps/checksums/cacert-2020-01-01.pem/md5 new file mode 100644 index 0000000000000..f6200b5dcff11 --- /dev/null +++ b/deps/checksums/cacert-2020-01-01.pem/md5 @@ -0,0 +1 @@ +c726ae88fd600aa26df1d30f42b51fec diff --git a/deps/checksums/cacert-2020-01-01.pem/sha512 b/deps/checksums/cacert-2020-01-01.pem/sha512 new file mode 100644 index 0000000000000..b5adf88cd0f1d --- /dev/null +++ b/deps/checksums/cacert-2020-01-01.pem/sha512 @@ -0,0 +1 @@ +cc129ae1a4377a43a74b0854b6eccb2b315cdfce018142d1dd5524fb64c8945cde067cb18f366351fa7d6af3f9f36cf21bc1f626f987f9e4627878472ea59cde From 5c96e677db39b61f17d7dd3531d93fc9d8dfefc6 Mon Sep 17 00:00:00 2001 From: Elliot Saba Date: Wed, 8 Jan 2020 19:38:53 -0800 Subject: [PATCH 36/46] Bump OpenBLAS BB release to include win32 threading patch (#34273) --- deps/Versions.make | 2 +- deps/blas.mk | 2 +- .../OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/sha512 | 1 + deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/sha512 | 1 + deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/sha512 | 1 + deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/sha512 | 1 + .../checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/sha512 | 1 + .../checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/sha512 | 1 + .../checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/sha512 | 1 + .../md5 | 1 + .../sha512 | 1 + .../md5 | 1 + .../sha512 | 1 + .../md5 | 1 + .../sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/md5 | 1 + .../OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/sha512 | 1 + .../OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/sha512 | 1 - deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/sha512 | 1 - deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/sha512 | 1 - deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/sha512 | 1 - .../checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/sha512 | 1 - .../checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/sha512 | 1 - .../checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/sha512 | 1 - .../md5 | 1 - .../sha512 | 1 - .../md5 | 1 - .../sha512 | 1 - .../md5 | 1 - .../sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/sha512 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/md5 | 1 - .../OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/sha512 | 1 - 158 files changed, 80 insertions(+), 80 deletions(-) create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/sha512 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/md5 create mode 100644 deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/sha512 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/md5 delete mode 100644 deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/sha512 diff --git a/deps/Versions.make b/deps/Versions.make index 5faafc910f080..842a58e7e2ba0 100644 --- a/deps/Versions.make +++ b/deps/Versions.make @@ -5,7 +5,7 @@ PCRE_BB_REL = 0 DSFMT_VER = 2.2.3 DSFMT_BB_REL = 0 OPENBLAS_VER = 0.3.5 -OPENBLAS_BB_REL = 2 +OPENBLAS_BB_REL = 0 LAPACK_VER = 3.5.0 SUITESPARSE_VER = 5.4.0 SUITESPARSE_BB_REL = 2 diff --git a/deps/blas.mk b/deps/blas.mk index 89656c1844365..13b29014c808b 100644 --- a/deps/blas.mk +++ b/deps/blas.mk @@ -209,7 +209,7 @@ check-lapack: $(BUILDDIR)/lapack-$(LAPACK_VER)/build-checked else # USE_BINARYBUILDER_OPENBLAS -OPENBLAS_BB_URL_BASE := https://github.com/JuliaPackaging/Yggdrasil/releases/download/OpenBLAS-v$(OPENBLAS_VER)-$(OPENBLAS_BB_REL) +OPENBLAS_BB_URL_BASE := https://github.com/JuliaBinaryWrappers/OpenBLAS_jll.jl/releases/download/OpenBLAS-v$(OPENBLAS_VER)+$(OPENBLAS_BB_REL) OPENBLAS_BB_NAME := OpenBLAS.v$(OPENBLAS_VER) $(eval $(call bb-install,openblas,OPENBLAS,true)) diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..2d130cd135a25 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +9bbf83fce2f15f717101ec7d0df2fa4f diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..262d053cde546 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +667f9036b2ae1e16feb2c59192561017d14b843f1f967e9a150f2b3190f3d14624a4bcab322fc4ebc9ba0281d721c1ecd326fc1cf663ed3b59f57a82ea6834fd diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..90a7df063b85b --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +1f4a939afe0bcb144e588b62be0b3d37 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..a7b42e4cc27b1 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +d203ee0b090d88fb9cf0c7639c638c6d57794c51c40489fd27c7d8bebdf5313882ba0c38860c2dd8c9ae3f8aad0731618e5fa03981db74ef2500a6b9140c6680 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..6c78c684c383a --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +2583fe7faf43fe4b24dfd8e3552bb565 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..16282b39b3d21 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-gnu-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +008ca412e9a01cb654d363be902b5b608b23831daa93190a3a1193176d620bd0b148fcd0dfcbc1ebe33fb966f4924372dc198f69d3ac5ec255ec56b2d3c92bb8 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..7315de7005426 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +996600c776b5beb7a3546dfd2d827891 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..0c359024dd518 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +4f1356ba08aaeafe454c8c8d53bd4706bc32cd424c047b51d46a1b2b4a645a98b8f20adee7e30a255182bdc36e0b26b30a02fd9308aae18e0c08b34c419fdc53 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..e55188c177b58 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +7e521282dea43200f63f41761af7395c diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..0c2c69ebb53b2 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +e00d07c97934b5df947ea0d503a95d5e075c8c18373199515304b3370db96685c6e0b0503e8631a91ff7487a9b69f92163cd7899480231a33b59a2ab58c13950 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..91665477ffeb6 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +01607bf69c96015b04a48dee37d1c294 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..859f7fe4eeed1 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.aarch64-linux-musl-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +c90771eaec17085115eef4de826689ba1910919b1469d694c01e0dba7909242a4fc49df788efb798349c5fa275156d63b4b544fb6e1fe559e82bcc2674006e73 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..6350dd861a165 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +ada3082418bd4b41b876db90e731b8f7 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..4ddb4bdee516e --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +16a836d2fc3a554b3f4235ddec1126f60cebde7b1fc9baa33f33bdd3957cbed74927f4af3d523ffa4b80237d6343ce2d4bff377cb5dac23ec5f43a9026a00884 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..4ba93b75f3686 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +e2ffa22404ae8f3cc8789aac82a42981 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..989e082e40109 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +c76a5a815a9278a26d0626cdf2529f6c2c577c0168236ff5621851493bc5aec8e9c978d5d83c5b9bfa924c826931b81aea61559c2603e0a2e0b8b8d9a6516070 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..cb50df85e97e4 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +550836a6911ef0764d130710410f3f7b diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..4fe931c2f3462 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-gnueabihf-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +a611fc48cff875d8d434201d223c3d630e0b5f9398888a27dda4b73a931031ad3db0870c9c10242a592c07f1fd79f7a605520588c3799f5ad455c4b7eab94d21 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..1f35eb9cf4ab0 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +0225a263bad9c3339b9b6c144840d586 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..ccdc2d7851ade --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +6ea1eda9e794ade98d349a41e3871b298e26791382e561a76ba73334d5b8382bda23312be43293cb0cb6a0e17bc3fc51854a3adff98020248a6690b34b509880 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..85afda304d5d1 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +0083fa05f53567efcccaa5f6a92c3034 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..ece4ac1a54edb --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +d955ec24040682af22772f9318a87948bd87e1fcd7f0720c7539be423d0d3f0a1ed8555a7fce0d24b87d649cfcf83e4bebfc1a246798340a64c5a310a679cb3f diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..e572e06feb781 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +980936a4242e5dd178c2cc8be61112d9 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..7da2290399c13 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.arm-linux-musleabihf-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +f930c788fb543b66c96795c112d7509daea0f48b4c0fccf16a407f246ba7c593f08fd15796ba850c67069ef84481e9f1e277a0805c885139502b75523fe00cce diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..debdf862c9ce9 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +c13e3ae50c2fb9b403a0bdb247e32002 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..3dc71c4445d1a --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +3a773c52e435da247992ac0d5740d6bec8d062214d03861d1335ede399c080edfd023516721fa0e801f625c8a9d8ecaa4e0d6c3b229ec3bd9f7a93cf5e10ebd3 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..bb11ff1c2d108 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +f557bfc3bbbaf69910976f8dbca4502a diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..f5fe3a829d77d --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +b3c1d66a877fa6ecc74e346545f054adec91b96d3ed4ec6d6b5f4b7ee3a5be1ed13e966b97afc6949d8908c12e02e3aedafaaea804c2aa9f91f8d080f7bbca5c diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..ffd61abc48442 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +4fba529a18d3c20626bb38461b6d8b9a diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..31ab3b8410a84 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-gnu-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +3311cc914036ad050f325dbe60673f35da68fdd7313c8f38e455ec2bbc8b06b60b71a01094bdf0b4ac48e159baae12af12e80606cdbaf1d771319030472c2cf4 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..e8c3fc225945e --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +bfdf7209ef49e67529724bf8c2812561 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..40c12d6731012 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +10913cf9d95a171e656566a06f99084ed3e8d277893e8a5db889d34848f9c49bb127e9ae6ec57075b212ec694bf0a27e27cc9db22caa1806e59f322b857ff275 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..250b043fbe14c --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +4a06a33376ef2fbc342b141dac870115 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..70beeb908cdb5 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +fad7912b31d146bfd0449771e9713c1951da10ef62b77da959ae90b10943594479179bfe498cc464ededd315d7a1016ee09f8433e1a0fcba9d657a34e0eb2e3c diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..5140689c3c997 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +8bfa9815e6e406bd89cdde963e972abf diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..15c8fdc5b1258 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-linux-musl-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +60b4df78d435cef2f326733095883ee5e41aac12d9602636069b9dab2dcbabfc383b5b0026c473cd36c628938da517eb1f5716a0d6eb7973be9b52b6ccfb7799 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..5680d71eb2e34 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +c1f22d38e6f5a0cbb575d5a517f4a64e diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..7aa641f464434 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +ea582ad17465a48e41aeea70fa0181bee348b066aa3336404c583a55623f428b1e096312e2e5527bdfb350df0373fcd8fa007edc96756885c05e82574f716bf8 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..8d26be6ded25a --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +2a74cfba9ea8b4dd4b75d37ed35fc923 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..46617dba23015 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +60c0230a4700ebf33f55e3dd84050d9ab1acd6456595f726d22698358ce3a55e6014df91f44c131280f12649fabe1e6b8d20ab5528607c306e2203b01c196021 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..7e74d0defe6e4 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +884953cbb391162ea9c4afa1aef2e277 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..a6227eecd82f5 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.i686-w64-mingw32-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +71f9ac6f7d15a27668b18ef410ffb370433ba819e4eabe3775d1807cf8d4ca6e75745ba1e48fe8421e9c9a8eaaa20cd5798d3a9692e86d7ed2f7aacf708b7774 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..190be48fafc69 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +b93a88cc361697d1312381507ad75205 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..aeb89db3bf96c --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +073e6e65c22593e66955e7d3bb9516b8501acb14795b570f8e40fd9b5fab091f2872235a3058851f755e54f22c78fdd5bd2932e568097738fa4ac3e24813c113 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..f5efe954bf38c --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +5f82b92bd903df85c45dd807939ab41c diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..72ed9ace209d5 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +1c793bd56a470ed766e4047ce317b3add85fc86a464d2b903e6bbcd6020401f14ccc600bbeb43fdd77ca19396ca951f463d925b14f0416fddf91fa99b73abe68 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..e9707e4195163 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +d11cbf640872bc35f4ff189b3d8ebc0f diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..d4422a56cfe01 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +9886f2d89ddc24c0007111ed8bda373ab0d33eb1e16fa958538df8f50af3df67b5298fb06ddbe22e4ed99e875a05f545949e2767e3cdbf30c4da370b608ad2f9 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..ccc1839fb49a5 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +a63b21f16bc6f72f644869eebee71212 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..dcd097748782a --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +715e08c869438ce514187eb42d610eb4edbddc3ed79188327741f7af34638e01920a1171a48686fa2188867eaffd2c3decf2556a8cfd5fcc64c941d347043baf diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..7fd62057eda7f --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +757d2363388831794d07e42e73bcd5e2 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..bcb398522aee6 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +dd68a08f0c258878e66a3c4e0c5d0d47c7e2a0862406b01b76b48442e4a29265c21c0dbca10586221b820b55ef9baed88d93f6af40b14d6f048ec6047b1a2e47 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..28938c0e3b722 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +30ded9efc429691b65efc00111a00f82 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..0783b0e1cb71d --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-apple-darwin14-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +3505449c345c29d1485c44af56cf3a6986ce60ecdc0e26687d92f60cf038a60bc8a1a44921db69401c1235dfeeda754a1b6e09936cf0e9088cf044c85d9d5a45 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..645aa61d328ae --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +c6d01844d4fcddc6fee5753ec0480ee0 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..d920f302efb35 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +99a0f207506f23deca8f537767a8d122092c35385dd6843026041f379d19f4de56fc33030ca8e746840c9cafc29c78534dd917f86ae8712e494c2e283b245de2 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..c5a79dd077b74 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +011a9de81291915cf8cbd15e76c8691e diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..4e06e8885f326 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +5e8d54b1b802b90c0dd086ab8f550a46e69c6b2c8c6f56333c3194f1710b9a6349bbbf3d191d70590d3607352b5bf2ef5fd7888fa873b1d7ba0e543a99314446 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..61c7199fef468 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +eede665ed6831b2e92348e948d212526 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..059afd324fc21 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-gnu-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +6600dcd587e55843103385338eb07d7eb58a69869494d79e6aba73cfa0df59fe2b6db164164bb36fe855540a990de50b147f7f5f3c3ca4ea860673bf4cb7bf33 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..bfcedf5665935 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +1150bd6f9b9b9b8b3983e5a95dced7fc diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..267db5855a399 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +9fc73b9e8804b49dad4d3ed6bb57f5d3f46552dc27523092d20e582941464cc9e7c0e1d9b5b21ff22f2cabd7738b58d86f429cc961e32d60e96ec8464cdbc500 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..0e6af153d33db --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +077594ce7e653bbb04c9f734d8bff07b diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..3bdb7f062ab68 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +843262d18ca37b742217f5200d34d4c9c793bda0e7ba602a601b24043eb0e55e51b489099e539dc0922ef26358ac64c50cb6d0fa3d9de06de3752b035e7d4f3e diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..3b5e3ea0a9b7c --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +a0a8bafa0ec422cb4e5329a2d37adb3f diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..b27de663d619c --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-linux-musl-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +65ed55aff797acba6aaf58f3343336861d4f6d510ee444d7ba694052c77064834fb7722e23511538e4dd89447a7cadd58fda380b54f69b849be5723264dce54b diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..e4c0d9afcdaa7 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +100fff94cdfb73b8f608a71d55f74318 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..89854abd60a5f --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +d16fadacf35c2b14c804247b98b1882e7864c4da231488a040bdb529550c39882b8fbfb669b3c4ed6e90494ec48a2d93825414d05bf35f0cf2d538fc5309ad57 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..9dff0fa66dcb7 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +5a5218c7e0f730b0a37824f7f574aaef diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..7d3477a747217 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +faadfcc091dda6bcc3db235d81a6aa396b0220055d0ad3a50215c8be57a7a00d852d4020a6dbb3a8ed4820a15ff0429908e7e1d22da295d66bbf04a923016ccc diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..f43284df8d7ab --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +6fe2c6b822bfb5a7e48d09e151139336 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..7a1fdc7940386 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +36969d188bd9e56d96745d51a2e710c646584e47618d0aeb0d04c00b0a8947f45de5a5b389895d01fe267e3d8211de72343494f9f6851dd363608ac79bb12ad7 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/md5 new file mode 100644 index 0000000000000..f504d3644c282 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/md5 @@ -0,0 +1 @@ +5c5d118a33a4b9db4d43d592a028b4d1 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/sha512 new file mode 100644 index 0000000000000..303e8a841246f --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc4.tar.gz/sha512 @@ -0,0 +1 @@ +137662813050df25c87e7b039ac62fd8f33696879dd0575ed9367bf65da9fae562f43e8de4592edbdd6babef5b6ae340af6f274427fdc37aece5fa1b6865dfd7 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/md5 new file mode 100644 index 0000000000000..f0d05df05cebf --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/md5 @@ -0,0 +1 @@ +1fea2ee4c4250f67adfa23e7ee3f2df6 diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/sha512 new file mode 100644 index 0000000000000..9188bb03df49a --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc7.tar.gz/sha512 @@ -0,0 +1 @@ +a214045c28391a31335de260f27a0fa378532476a9f2f9e98bcad2399c4aae27d4abf2f66158d4a90d110ed51e4fbb4ab49444d1ccb70100330a2588b81d9dbe diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/md5 new file mode 100644 index 0000000000000..066fd99eccc02 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/md5 @@ -0,0 +1 @@ +3372f112bcd4933ec7c261081f747acc diff --git a/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/sha512 new file mode 100644 index 0000000000000..804d750e41fd5 --- /dev/null +++ b/deps/checksums/OpenBLAS.v0.3.5-0.x86_64-w64-mingw32-gcc8.tar.gz/sha512 @@ -0,0 +1 @@ +909e3823cd3ff702e878a28c433992793fddcbaad302bdb61a6d6a975209b6bfd394904564634c12c71b682d212c88066a40305e91ec3d25ea5408d5335a8220 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/md5 deleted file mode 100644 index 0ff730e27bbd5..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -14d62da838b053ab78c3c84a8df7c429 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/sha512 deleted file mode 100644 index b6d2b6523c322..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -0141f903dbc62ccdcf01d8722ce7b03c74d94c661be796c1a242b0f385f891c15daf015331029b8ed692867d2e7f8303fa3d5c443ee65a9cfb9b78e3663617ab diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/md5 deleted file mode 100644 index 13d91016ca6ea..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -a16f6e2bffd56d76735d64a36852f650 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/sha512 deleted file mode 100644 index a7e5183c80e27..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -cc164665889562b2e86c4387f85175bd20bd665fc0ce2842a28107eea7f67d49f58067c2face4d768fffec7eb6ca17450c9f07b927b897bed4114e43bde0e83a diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/md5 deleted file mode 100644 index f50a76bcdb99b..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -8d492b89b0b1c09e620647976df19512 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/sha512 deleted file mode 100644 index 1c908038d6288..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-gnu-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -ff3de25afefc10577c7860cd3fb9496585b763aad683ee39ccbbb596223910ace4b8411fc1f20a3b5708098cafcfe31b873009cf12777cd9b9c4b8d462122fd6 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/md5 deleted file mode 100644 index 6d5f519ff9b3b..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -9d7a69fe6ed99592087f3b81c6b1c8a1 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/sha512 deleted file mode 100644 index 90cf64b1c40b0..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -7c2029a0e9f9efc59813f99fd220a7c8796989db47758857da31b8c794d92de167f35992d399301d79641f79f3b2831afe83af1e85ad99fe4153248dbe5badaf diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/md5 deleted file mode 100644 index e679b3a09153d..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -93a1250c75e7cec00a52c091a6fa89cc diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/sha512 deleted file mode 100644 index f5a13bfe372a7..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -1949277d8a762c2f0d8bd37fcc10d97420b82d5a96da2987323ec7d6954b36b7eae52732499e7a054adae1b395158e46eda41daf1e0008c23a02fe4f8059ee3c diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/md5 deleted file mode 100644 index e73b73e93ab95..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -f8e98218f3a832972531924b770cf8fe diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/sha512 deleted file mode 100644 index 28b66a95b06f8..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.aarch64-linux-musl-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -7a4064f5e79dd11cc14d85dc1e37fd923cebaebc92483a1c90e7a73b072d789a87fb3b0c46bfd0668307e4bb32c2c4af3f190eac2da934f37d61d81b980a878b diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/md5 deleted file mode 100644 index 425aa69633ad5..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -636d2d2c14abc9e3b14d1dc546ad8935 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/sha512 deleted file mode 100644 index 33056420be53d..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -3394f5ee2f35c168e7f6be9c0653dd157e7da49040b9ec94d6f4d6d1ad2736cdc6f10f6626f08548238c3a11b69ffefa159c5495d1fe58855c0c41c2383641fd diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/md5 deleted file mode 100644 index 359a29ce73ba3..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -a336efef9cf11945477b2bb805282810 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/sha512 deleted file mode 100644 index 35b378898f5df..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -8c0e558aa047f60a5e695229b0f7585363448dd2b61c0a193bdf00d27fffecd3a9c37a0e423821af7beb909c874074fe7a1d4d4cec623bd964205ee20d2e3b23 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/md5 deleted file mode 100644 index 306b7bd150621..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -28dd6d175a5a6fe86a4d01f9031b76cf diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/sha512 deleted file mode 100644 index 0944fab6b0cae..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-gnueabihf-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -986cabd473a353731479036db91f4a462fe6b389ddee35aacb3f66a15df8e1d38956c385d3ef02e399bde70458a3fc6b769466db652f4495abd7d7d2ff0b26b1 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/md5 deleted file mode 100644 index d7a989258cf1e..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -1487ee7fb0ff0e2824be40dfa79badff diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/sha512 deleted file mode 100644 index 856c33f5ca046..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -ecd8abcb46bd26e72e6ccda2ef463521629dcf6132dd065079b8da71e7291c0561c801bf7c94a467b6aa2839539ee990ccf4b4ea5160f492fb704b2ffcfe0283 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/md5 deleted file mode 100644 index 8b940c0392ebe..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -c478e1ae81917a27fffbdef01829d79e diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/sha512 deleted file mode 100644 index 92d6a1791620b..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -22aef28d214c41556fc45ffc3903073bd7f5b44ec6714f4c9d8f50757200c89c3da3e61d96ab587dc353ec4e88b67b8c553c938ecb32261347b1e3c5e8901c0e diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/md5 deleted file mode 100644 index 33248b04076f8..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -fb6116f48854a9e183d6c6773e889756 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/sha512 deleted file mode 100644 index debea1328236c..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.arm-linux-musleabihf-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -33edfa3fe05f2e6a246eda391813e8db30ed744789032e499cbfb4e1f9f73c67ce6e439dc7ca4795d8b38b9dab6420979f51ef818511e8601398144ef41f7b2e diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/md5 deleted file mode 100644 index 88150070e1dbe..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -15c38ae63c6c70bbcf7e52bff16ec915 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/sha512 deleted file mode 100644 index 86c389ba825ae..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -5f2464ad3b56cec0ca343f301460819141dec3217cf15b171da657768571eae77313ce156d56fd5cc76c6d95758597015dc7d04e209c0ffb0dcbeedb99d788e0 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/md5 deleted file mode 100644 index 8f3b533c8a12e..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -ad1c639472af0e6245f8faa5cbf65f57 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/sha512 deleted file mode 100644 index 32f1d34614434..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -fe85b545b4e0787fc1b6c1f2948a4db09eafe365c1bf52a5979430f014d23a8713bb7c1ff29264fa02e16736b9407c7aaf56416354dd3c1e2e2ae9b32a00f5d2 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/md5 deleted file mode 100644 index 2811baa62830a..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -e25cb820b2eb0d593fb0c875ae2086a1 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/sha512 deleted file mode 100644 index 813e18b37d218..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-gnu-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -6b5d4f21609f9382d01b4e5c4b7becbf61b50aa3c20f0db6a78736506ad83b0ec7225790f1127d1601bb96ea3318d3704b18e71fd6c1559006147525cb2b3389 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/md5 deleted file mode 100644 index a25e0ac9cd1ee..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -f2c96e84acbded44c263270367b6cf9f diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/sha512 deleted file mode 100644 index ac7fd7a98cd88..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -3d0d2fac80ec4760c96740e4607086b192d3309ae5bd5b43288655137b5a2a4c78448b283cd50c935f2ad742348bb4770213446c31216972ed1ecf520e34c629 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/md5 deleted file mode 100644 index 517b093841772..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -520372fb05206ac794ff2ac5d23234b4 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/sha512 deleted file mode 100644 index 0d6b5fce24b0b..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -92ffc6f2d0fbf6c79dba8f47f44ca7ca11a12e5e6ad43e88d166ba66fcc2b82f62f914ef97ae0831267309ee10c450e191ae0dae51eaf969315e4d3539a8ab57 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/md5 deleted file mode 100644 index dc6f97866ad07..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -c94c117ba0d7eeeb59df74ffe3733431 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/sha512 deleted file mode 100644 index 5ecad97d852d6..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-linux-musl-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -dd11c827b50e5983ed7705dcebfb50249ebbaf661a371d7d0e4f2a8d7401d9999def5bf2491c2461a4dd9b582e714d9350c70298ef388cb32a4d38060a124d88 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/md5 deleted file mode 100644 index 8e0ecf2ae8175..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -fb8b0d915623c27936ea293a2eb2850e diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/sha512 deleted file mode 100644 index c051be3ce60c7..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -e3600b813bc7ba5f736899348bf34965f3affead6fadc71555b8bc5e338b06e90a6865a409186604b0fc2d3bdf84ff2e2bf103909cbf7c253dfaff030bbe21fb diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/md5 deleted file mode 100644 index ca619b7d00e22..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -5b9eabe82ad7de280d739f2d594e8fdc diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/sha512 deleted file mode 100644 index 5382db5450f90..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -a532481b46d1d7999618676b5d9eba5fd527d25dca5ac2666d9a2258245d77aef742bb2909ff70543d7a06e5182a99fd6c356f3c59c8aff822f9280cbcaa9cf3 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/md5 deleted file mode 100644 index 5d4006dab8d1d..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -d02eacbfb41fe7827331865396707b4b diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/sha512 deleted file mode 100644 index 4519f15a3ee78..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.i686-w64-mingw32-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -8c58b822ecfef7192cf36ff391bf34087eecad299c4417da06fdd990c2e71daf8b717770eabeca7e5b67a020b415b9294d44ac897ccb503a1a34943cd563efc5 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/md5 deleted file mode 100644 index 5a551dbca1f2f..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -d1e4a5d1a43e018b67532fa98081206e diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 deleted file mode 100644 index a9738af935abd..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -4357a9f323739c90e6f1e0797be0d8f11e36fbfa9f8a64a6050833244a786166a8391e2c73b1f8130fa83db3d57b58fd48bf2081ba79992b452ffec57d1759a2 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/md5 deleted file mode 100644 index 9e59162e95545..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -2c7930c84ea6cd11c69aa25941087f5c diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 deleted file mode 100644 index fc2938fabcf47..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -a53d47e1d7ff25258b20394195e374c9f986b2e7edb0dd66c314a5f12a7d28b4518e5ab87fe5f0feaac99c2f2961292b1ce1d5436ea83104bf089d3d08607d93 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/md5 deleted file mode 100644 index 9de6c1c372789..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -1b881141039ba34a7f2c29cef9305062 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 deleted file mode 100644 index 809915d1f951d..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.powerpc64le-linux-gnu-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -23ab0524b4403e002bdf280f83fb955de11176fdf7cfaed3f9197993f7c09ad5c1fea14dc6402f1756272aa5e427ffd904418db4de02ea9efbc96de60baf6ee5 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/md5 deleted file mode 100644 index 8e4794e0c1e90..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -eda2584e55dc066e5549048b84b35f05 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/sha512 deleted file mode 100644 index 8a2877a50c43a..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -3034f82dc2e06f8f3474ffd6c9692d58186edb59f5f32578de9c21777fbff9def9abe000ca79ae5044be82825f70fab4a9612bbc8df7b0d23dfc77fa28b8f363 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/md5 deleted file mode 100644 index 31a0759103425..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -aa649a88f904208bc3e979af833c9ecd diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/sha512 deleted file mode 100644 index ec02f2fc3d2f7..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -c2d7c3a718106de87777beea3addd658ce06f7f1ed5973c5d17fcf97d958741a19df114f62771afc77a7f2c5e25f8302471772cafa30ee40ef7cdfebcec8477b diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/md5 deleted file mode 100644 index 6b0b046be9baa..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -f3c53bfaabc5027cd95838524ed1ab4e diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/sha512 deleted file mode 100644 index 2ac1f2ad3fcab..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-apple-darwin14-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -cd40f1510f66071551ef1d752a64dada6cf82128b725030d8bab7a3cd4b25397b3504763f165498c7231f9c2577c5eddee4cd8b7d8810526221b15d3647ad9cc diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/md5 deleted file mode 100644 index 29cb2f9ae2f68..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -d6452ff5d4fd1cf1d77239d22cf6a1b5 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/sha512 deleted file mode 100644 index 75e512ab6563a..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -801c374ee8e8f296e6b84536d2d719bee35e1f0380d947ea119d0a5ebfa7151e358a6228078b516338a4957580de63b3fa083d5be08be2930832c105286cfc49 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/md5 deleted file mode 100644 index 6abba7cc4e1b3..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -124282a831a7d39036a7d3b391d513ec diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/sha512 deleted file mode 100644 index f197900f95b54..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -2ff54c2700e5c1c1dd8bca51cbe8654aa364e5b57f871b6f2701f4a5412ff0ad64ce173fbd9ce7443b6625177e4d645991736966bfbf3fdbdc66bc96fc22d4a5 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/md5 deleted file mode 100644 index 5fdab5acc4caa..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -e0822060b13864f9b0a4416149d89336 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/sha512 deleted file mode 100644 index 1364968afd6b5..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-gnu-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -8beca6be0853117eae41b84e984601fd61ef15fd5f6555f1d71375d60a22693cdbfbfac93ec76dd14fa476a6d474b29e8c7efe96a4acb2e90433fe8f325690e1 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/md5 deleted file mode 100644 index 0b8f5e81d8145..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -4c3dffaacf774f5838cd2d0f178a4e67 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/sha512 deleted file mode 100644 index 65b9bd3cb1598..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -9552f805840c48ed24d65ac858ac13db158cb3579753400c778a3aabac39b20d47a59ab36c86293e5c8b15837e8567e8635792f5ee426be83d26cc6de7bfdcb0 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/md5 deleted file mode 100644 index e3e217878cb5a..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -d0724e5fd3ffdb759e293724f4b9fa73 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/sha512 deleted file mode 100644 index b0ea95ed0220d..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -00b6d2eb995e0c1d973e6d30bd70b92d7d2c5f6d14f9cb1788b16d772e91faef8b095e3ae13729c168088fe005caf2e303d51b9414c243b4e12d8beee7547d3d diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/md5 deleted file mode 100644 index f7b5eba54c30d..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -36258813bf0e72e1566bd73816bd7b6a diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/sha512 deleted file mode 100644 index f7c773c4f3834..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-linux-musl-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -289903f344b251e122dd76bb0c9e097323e2da1f3995391dc9882098346355767c8d4933e6d1cc98074f3d85bb326aac5785b716dd6198d122e48f2c7fd072d4 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 deleted file mode 100644 index 3f7656c4b0f73..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -457e4f86c5f482d777f41a24eb9642e1 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 deleted file mode 100644 index 7b67ada7f99b8..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -acd3f8b3d42e1fa4c46d82bc9c60042d91985d41b440fd7259b4370b93b19287792d8b14fa7d5a5510945b5201f225aadbbc96ff2edee0ab2c1a254624647247 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 deleted file mode 100644 index 9132655c248fd..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -e57e4cb36402d9acb3d1a89a88e37826 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 deleted file mode 100644 index ba5d1fb77c43e..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -b372b1d6fbaacb2e4c9baf585e1c6fa85a72ff37e9dc644a27308586edffa5e1c5c7e0be4245fb965e7cd0c6686f284d0112be60d5456e0892b097737756f4cf diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 deleted file mode 100644 index a9ec847feb1a1..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -61b60d24090c00e38cf8b6af83fd884f diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 deleted file mode 100644 index 47d269f26f87a..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-unknown-freebsd11.1-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -7f6cf4818134353462b08d23ed1adf4360653e58eb848b56bf49aee3c3f591ec91999048f4c1540001a35d15bc5e7795eb09ad8cb549663d56f7613c987b4b7c diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/md5 deleted file mode 100644 index cb8220313e440..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -f5c0d5d809ddcf721ae1dc68eaf2c0c4 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/sha512 deleted file mode 100644 index 7e8c7609b2b04..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc4.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -395bdc4a316cf55206966c858bf7320d0f66cdf2f7d6393cc8b3dfd74fc4983a59dc522ac8c18534c6ecde5bf877af57dbc088c83fa6dd8270326f587ceecd6a diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/md5 deleted file mode 100644 index a6c82f8f63eb1..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -f40e5bc882602ea1298089a92350bf5a diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/sha512 deleted file mode 100644 index 72ce16a123776..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc7.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -c4bc4b6922a57a9806ad007bd3e0655206717acf722e4e794b709f8b06efd6106d4b4e943276061a7632e7191e307317e3f3a205ff46e8ef3b9c0ea8634fe4f3 diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/md5 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/md5 deleted file mode 100644 index 09801e687c899..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -617c4587e25dc495446d389fa323c45f diff --git a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/sha512 b/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/sha512 deleted file mode 100644 index 38bc2a3bf33a6..0000000000000 --- a/deps/checksums/OpenBLAS.v0.3.5-2.x86_64-w64-mingw32-gcc8.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -63938a2e8ee30807cbeca92589d79d3c438f2aed3eb818735c3ab28e6a6d9835fb7cf250ea7c05fdc8949ba32769f394e6981be46c71b19a389a9b00501962ee From e3b9d5df3b5e971de3608305e3aa0f8c23f6c5ee Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Thu, 9 Jan 2020 04:20:17 -0500 Subject: [PATCH 37/46] restore `pathsep()` and old sig of `print_matrix_vdots` for backwards compat (#34314) --- base/arrayshow.jl | 2 +- base/path.jl | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/base/arrayshow.jl b/base/arrayshow.jl index 9c7ecf564b44d..d3215a99f32c0 100644 --- a/base/arrayshow.jl +++ b/base/arrayshow.jl @@ -122,7 +122,7 @@ but it also repeated every M elements if desired. """ function print_matrix_vdots(io::IO, vdots::AbstractString, A::Vector, sep::AbstractString, M::Integer, m::Integer, - pad_right::Bool) + pad_right::Bool = true) for k = 1:length(A) w = A[k][1] + A[k][2] if k % M == m diff --git a/base/path.jl b/base/path.jl index ae681dc8c43fe..ebad466848f15 100644 --- a/base/path.jl +++ b/base/path.jl @@ -198,6 +198,9 @@ function splitext(path::String) a*m.captures[1], String(m.captures[2]) end +# NOTE: deprecated in 1.4 +pathsep() = path_separator + """ splitpath(path::AbstractString) -> Vector{String} From 22817ea28366b17a982c00d405edebe8c9571d5c Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Thu, 9 Jan 2020 04:21:31 -0500 Subject: [PATCH 38/46] handle `GlobalRef` in getfield elim pass (#34322) --- base/compiler/ssair/passes.jl | 7 +++++++ test/compiler/irpasses.jl | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/base/compiler/ssair/passes.jl b/base/compiler/ssair/passes.jl index f30860c0324ea..c61527053fe51 100644 --- a/base/compiler/ssair/passes.jl +++ b/base/compiler/ssair/passes.jl @@ -370,6 +370,13 @@ function lift_leaves(compact::IncrementalCompact, @nospecialize(stmt), end elseif isa(leaf, QuoteNode) leaf = leaf.value + elseif isa(leaf, GlobalRef) + mod, name = leaf.mod, leaf.name + if isdefined(mod, name) && isconst(mod, name) + leaf = getfield(mod, name) + else + return nothing + end elseif isa(leaf, Union{Argument, Expr}) return nothing end diff --git a/test/compiler/irpasses.jl b/test/compiler/irpasses.jl index 46cc4571b5616..042d91d2ff700 100644 --- a/test/compiler/irpasses.jl +++ b/test/compiler/irpasses.jl @@ -290,3 +290,8 @@ end let K = rand(2,2) @test test_29253(K) == 2 end + +# check getfield elim handling of GlobalRef +const _some_coeffs = (1,[2],3,4) +splat_from_globalref(x) = (x, _some_coeffs...,) +@test splat_from_globalref(0) == (0, 1, [2], 3, 4) From 6144a5d7117f9e407bca2e8d7476cce3d586e858 Mon Sep 17 00:00:00 2001 From: Daniel Karrasch Date: Thu, 9 Jan 2020 11:43:32 +0100 Subject: [PATCH 39/46] symmetrize/transpose in getindex of SymTridiagonal (#31327) * symmetrize/transpose in SymTridiagonal added block matrix docstring more consistency in SymTridiagonal(A) and diag fix x-ref fix and test diag remove x-ref for Transpose fix and test for type inference simplify constructor, fix use of symmetric update docstrings, add comment * don't symmetrize diagonal elements at construction, but at getindex * remove symmetry check at construction * don't symmetrize in SymTridiagonal(::Matrix) * fix doctests --- stdlib/LinearAlgebra/src/tridiag.jl | 68 +++++++++++++++++++++++----- stdlib/LinearAlgebra/test/tridiag.jl | 10 ++++ 2 files changed, 66 insertions(+), 12 deletions(-) diff --git a/stdlib/LinearAlgebra/src/tridiag.jl b/stdlib/LinearAlgebra/src/tridiag.jl index 9ebed9ed01297..ffd6a9e2746d7 100644 --- a/stdlib/LinearAlgebra/src/tridiag.jl +++ b/stdlib/LinearAlgebra/src/tridiag.jl @@ -3,15 +3,15 @@ #### Specialized matrix types #### ## (complex) symmetric tridiagonal matrices -struct SymTridiagonal{T,V<:AbstractVector{T}} <: AbstractMatrix{T} +struct SymTridiagonal{T, V<:AbstractVector{T}} <: AbstractMatrix{T} dv::V # diagonal - ev::V # subdiagonal - function SymTridiagonal{T,V}(dv, ev) where {T,V<:AbstractVector{T}} + ev::V # superdiagonal + function SymTridiagonal{T, V}(dv, ev) where {T, V<:AbstractVector{T}} require_one_based_indexing(dv, ev) if !(length(dv) - 1 <= length(ev) <= length(dv)) throw(DimensionMismatch("subdiagonal has wrong length. Has length $(length(ev)), but should be either $(length(dv) - 1) or $(length(dv)).")) end - new{T,V}(dv,ev) + new{T, V}(dv, ev) end end @@ -23,6 +23,10 @@ sub/super-diagonal (`ev`), respectively. The result is of type `SymTridiagonal` and provides efficient specialized eigensolvers, but may be converted into a regular matrix with [`convert(Array, _)`](@ref) (or `Array(_)` for short). +For `SymTridiagonal` block matrices, the elements of `dv` are symmetrized. +The argument `ev` is interpreted as the superdiagonal. Blocks from the +subdiagonal are (materialized) transpose of the corresponding superdiagonal blocks. + # Examples ```jldoctest julia> dv = [1, 2, 3, 4] @@ -44,6 +48,23 @@ julia> SymTridiagonal(dv, ev) 7 2 8 ⋅ ⋅ 8 3 9 ⋅ ⋅ 9 4 + +julia> A = SymTridiagonal(fill([1 2; 3 4], 3), fill([1 2; 3 4], 2)); + +julia> A[1,1] +2×2 Symmetric{Int64,Array{Int64,2}}: + 1 2 + 2 4 + +julia> A[1,2] +2×2 Array{Int64,2}: + 1 2 + 3 4 + +julia> A[2,1] +2×2 Array{Int64,2}: + 1 3 + 2 4 ``` """ SymTridiagonal(dv::V, ev::V) where {T,V<:AbstractVector{T}} = SymTridiagonal{T}(dv, ev) @@ -56,8 +77,8 @@ end """ SymTridiagonal(A::AbstractMatrix) -Construct a symmetric tridiagonal matrix from the diagonal and -first sub/super-diagonal, of the symmetric matrix `A`. +Construct a symmetric tridiagonal matrix from the diagonal and first superdiagonal +of the symmetric matrix `A`. # Examples ```jldoctest @@ -72,11 +93,18 @@ julia> SymTridiagonal(A) 1 2 ⋅ 2 4 5 ⋅ 5 6 + +julia> B = reshape([[1 2; 2 3], [1 2; 3 4], [1 3; 2 4], [1 2; 2 3]], 2, 2); + +julia> SymTridiagonal(B) +2×2 SymTridiagonal{Array{Int64,2},Array{Array{Int64,2},1}}: + [1 2; 2 3] [1 3; 2 4] + [1 2; 3 4] [1 2; 2 3] ``` """ function SymTridiagonal(A::AbstractMatrix) - if diag(A,1) == diag(A,-1) - SymTridiagonal(diag(A,0), diag(A,1)) + if (diag(A, 1) == transpose.(diag(A, -1))) && all(issymmetric.(diag(A, 0))) + SymTridiagonal(diag(A, 0), diag(A, 1)) else throw(ArgumentError("matrix is not symmetric; cannot convert to SymTridiagonal")) end @@ -139,13 +167,13 @@ adjoint(S::SymTridiagonal) = Adjoint(S) Base.copy(S::Adjoint{<:Any,<:SymTridiagonal}) = SymTridiagonal(map(x -> copy.(adjoint.(x)), (S.parent.dv, S.parent.ev))...) Base.copy(S::Transpose{<:Any,<:SymTridiagonal}) = SymTridiagonal(map(x -> copy.(transpose.(x)), (S.parent.dv, S.parent.ev))...) -function diag(M::SymTridiagonal, n::Integer=0) +function diag(M::SymTridiagonal{<:Number}, n::Integer=0) # every branch call similar(..., ::Int) to make sure the # same vector type is returned independent of n absn = abs(n) if absn == 0 return copyto!(similar(M.dv, length(M.dv)), M.dv) - elseif absn==1 + elseif absn == 1 return copyto!(similar(M.ev, length(M.ev)), M.ev) elseif absn <= size(M,1) return fill!(similar(M.dv, size(M,1)-absn), 0) @@ -154,6 +182,22 @@ function diag(M::SymTridiagonal, n::Integer=0) "and at most $(size(M, 2)) for an $(size(M, 1))-by-$(size(M, 2)) matrix"))) end end +function diag(M::SymTridiagonal, n::Integer=0) + # every branch call similar(..., ::Int) to make sure the + # same vector type is returned independent of n + if n == 0 + return copyto!(similar(M.dv, length(M.dv)), symmetric.(M.dv, :U)) + elseif n == 1 + return copyto!(similar(M.ev, length(M.ev)), M.ev) + elseif n == -1 + return copyto!(similar(M.ev, length(M.ev)), transpose.(M.ev)) + elseif n <= size(M,1) + throw(ArgumentError("requested diagonal contains undefined zeros of an array type")) + else + throw(ArgumentError(string("requested diagonal, $n, must be at least $(-size(M, 1)) ", + "and at most $(size(M, 2)) for an $(size(M, 1))-by-$(size(M, 2)) matrix"))) + end +end +(A::SymTridiagonal, B::SymTridiagonal) = SymTridiagonal(A.dv+B.dv, A.ev+B.ev) -(A::SymTridiagonal, B::SymTridiagonal) = SymTridiagonal(A.dv-B.dv, A.ev-B.ev) @@ -390,9 +434,9 @@ function getindex(A::SymTridiagonal{T}, i::Integer, j::Integer) where T throw(BoundsError(A, (i,j))) end if i == j - return A.dv[i] + return symmetric(A.dv[i], :U)::symmetric_type(eltype(A.dv)) elseif i == j + 1 - return A.ev[j] + return copy(transpose(A.ev[j])) # materialized for type stability elseif i + 1 == j return A.ev[i] else diff --git a/stdlib/LinearAlgebra/test/tridiag.jl b/stdlib/LinearAlgebra/test/tridiag.jl index 8431c81fd3ef8..a06e7f7bb7572 100644 --- a/stdlib/LinearAlgebra/test/tridiag.jl +++ b/stdlib/LinearAlgebra/test/tridiag.jl @@ -398,6 +398,16 @@ end end end +@testset "SymTridiagonal block matrix" begin + M = [1 2; 2 4] + A = SymTridiagonal(fill(M, 3), fill(M, 2)) + @test @inferred A[1,1] == Symmetric(M) + @test @inferred A[1,2] == M + @test @inferred A[2,1] == transpose(M) + @test @inferred diag(A, 1) == fill(M, 2) + @test @inferred diag(A, 0) == fill(Symmetric(M), 3) + @test @inferred diag(A, -1) == fill(transpose(M), 2) +end @testset "Issue 12068" begin @test SymTridiagonal([1, 2], [0])^3 == [1 0; 0 8] From 538797b8d6b4df9d64908d15a94fa454c15c2967 Mon Sep 17 00:00:00 2001 From: "Viral B. Shah" Date: Thu, 9 Jan 2020 10:49:33 -0500 Subject: [PATCH 40/46] Build all the targets we build in SuiteSparse artifacts: (#34324) https://github.com/JuliaPackaging/Yggdrasil/blob/master/S/SuiteSparse%405/build_tarballs.jl --- deps/suitesparse.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/suitesparse.mk b/deps/suitesparse.mk index 1dcbed69fada9..b6fe277543c4d 100644 --- a/deps/suitesparse.mk +++ b/deps/suitesparse.mk @@ -16,8 +16,8 @@ CHOLMOD_CONFIG += -DNPARTITION ifneq ($(USE_BINARYBUILDER_SUITESPARSE), 1) -SUITESPARSE_PROJECTS := AMD CAMD CCOLAMD COLAMD CHOLMOD UMFPACK SPQR -SUITESPARSE_LIBS := $(addsuffix .*$(SHLIB_EXT)*,suitesparseconfig amd camd ccolamd colamd cholmod umfpack spqr) +SUITESPARSE_PROJECTS := AMD BTF CAMD CCOLAMD COLAMD CHOLMOD LDL KLU UMFPACK RBio SPQR +SUITESPARSE_LIBS := $(addsuffix .*$(SHLIB_EXT)*,suitesparseconfig amd btf camd ccolamd colamd cholmod klu umfpack rbio spqr) SUITE_SPARSE_LIB := $(LDFLAGS) -L"$(abspath $(BUILDDIR))/SuiteSparse-$(SUITESPARSE_VER)/lib" ifeq ($(OS), Darwin) From 97f1f9b7abcf0e9b7ad263f896e2af6aa9af394a Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Thu, 9 Jan 2020 14:08:44 -0500 Subject: [PATCH 41/46] [coverage] fix length of coverage file (#34281) Previously, we might append an extra empty line to the file. Also add error checking for I/O faults: > terminate called after throwing an instance of std::__ios_failure > what(): basic_ios::clear: iostream error Fixes https://github.com/JuliaCI/Coverage.jl/issues/234 --- src/codegen.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/codegen.cpp b/src/codegen.cpp index a89e0270ceee2..deb6e28a3d031 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -1831,15 +1831,21 @@ static void write_log_data(logdata_t &logData, const char *extension) if (!isabspath(filename.c_str())) filename = base + filename; std::ifstream inf(filename.c_str()); - if (inf.is_open()) { - std::string outfile = filename + extension; - std::ofstream outf(outfile.c_str(), std::ofstream::trunc | std::ofstream::out | std::ofstream::binary); + if (!inf.is_open()) + continue; + std::string outfile = filename + extension; + std::ofstream outf(outfile.c_str(), std::ofstream::trunc | std::ofstream::out | std::ofstream::binary); + if (outf.is_open()) { + inf.exceptions(std::ifstream::badbit); + outf.exceptions(std::ifstream::failbit | std::ifstream::badbit); char line[1024]; int l = 1; unsigned block = 0; while (!inf.eof()) { inf.getline(line, sizeof(line)); - if (inf.fail() && !inf.bad()) { + if (inf.fail()) { + if (inf.eof()) + break; // no content on trailing line // Read through lines longer than sizeof(line) inf.clear(); inf.ignore(std::numeric_limits::max(), '\n'); @@ -1862,8 +1868,8 @@ static void write_log_data(logdata_t &logData, const char *extension) outf << " " << line << '\n'; } outf.close(); - inf.close(); } + inf.close(); } } } From 45a0381baf5555952caea0ccb43b377ac5ec8ae2 Mon Sep 17 00:00:00 2001 From: Chetan Kandpal Date: Fri, 10 Jan 2020 02:01:01 +0530 Subject: [PATCH 42/46] Sysinfo kilobytes -> Bytes change (#34328) --- base/sysinfo.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/sysinfo.jl b/base/sysinfo.jl index e9b454ebdaf66..d4b1c5577c3c1 100644 --- a/base/sysinfo.jl +++ b/base/sysinfo.jl @@ -242,14 +242,14 @@ end """ Sys.free_memory() -Get the total free memory in RAM in kilobytes. +Get the total free memory in RAM in bytes. """ free_memory() = ccall(:uv_get_free_memory, UInt64, ()) """ Sys.total_memory() -Get the total memory in RAM (including that which is currently used) in kilobytes. +Get the total memory in RAM (including that which is currently used) in bytes. """ total_memory() = ccall(:uv_get_total_memory, UInt64, ()) From 717d54894cb3a921c66509b86227db088e3bde33 Mon Sep 17 00:00:00 2001 From: "Viral B. Shah" Date: Thu, 9 Jan 2020 19:02:59 -0500 Subject: [PATCH 43/46] Update sprandn in docs. Fix #31283 (#34257) --- stdlib/SparseArrays/docs/src/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/SparseArrays/docs/src/index.md b/stdlib/SparseArrays/docs/src/index.md index 72347663eb034..17fb2b2dc368b 100644 --- a/stdlib/SparseArrays/docs/src/index.md +++ b/stdlib/SparseArrays/docs/src/index.md @@ -199,7 +199,7 @@ section of the standard library reference. | [`Array(S)`](@ref) | [`sparse(A)`](@ref) | Interconverts between dense and sparse formats. | | [`sprand(m,n,d)`](@ref) | [`rand(m,n)`](@ref) | Creates a *m*-by-*n* random matrix (of density *d*) with iid non-zero elements distributed uniformly on the half-open interval ``[0, 1)``. | | [`sprandn(m,n,d)`](@ref) | [`randn(m,n)`](@ref) | Creates a *m*-by-*n* random matrix (of density *d*) with iid non-zero elements distributed according to the standard normal (Gaussian) distribution. | -| [`sprandn(m,n,d,X)`](@ref) | [`randn(m,n,X)`](@ref) | Creates a *m*-by-*n* random matrix (of density *d*) with iid non-zero elements distributed according to the *X* distribution. (Requires the `Distributions` package.) | +| [`sprandn(rng,m,n,d)`](@ref) | [`randn(rng,m,n)`](@ref) | Creates a *m*-by-*n* random matrix (of density *d*) with iid non-zero elements generated with the `rng` random number generator | # [Sparse Arrays](@id stdlib-sparse-arrays) From eb5410a70318378224fdd151fa5dab7ef84a0286 Mon Sep 17 00:00:00 2001 From: Alexander Seiler Date: Fri, 10 Jan 2020 03:37:45 +0100 Subject: [PATCH 44/46] Introduce `lu!` for `UmfpackLU` to make use of its symbolic factorization (#33738) * Introduce `lu!` for `UmfpackLU` to make use of its symbolic factorization * Remove spaces at keyword argument Co-authored-by: Viral B. Shah --- NEWS.md | 18 ++++++++ stdlib/SuiteSparse/src/umfpack.jl | 67 +++++++++++++++++++++++++++--- stdlib/SuiteSparse/test/umfpack.jl | 28 +++++++++++++ 3 files changed, 108 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index 15a35f09a0a48..90266f006a6d8 100644 --- a/NEWS.md +++ b/NEWS.md @@ -43,6 +43,24 @@ Standard library changes #### SparseArrays +* `lu!` accepts `UmfpackLU` as an argument to make use of its symbolic factorization. + +#### Dates + +#### Statistics + + +#### Sockets + + +Deprecated or removed +--------------------- + +External dependencies +--------------------- + +Tooling Improvements +--------------------- diff --git a/stdlib/SuiteSparse/src/umfpack.jl b/stdlib/SuiteSparse/src/umfpack.jl index 13dafc03a6f0f..2b946f3a034b5 100644 --- a/stdlib/SuiteSparse/src/umfpack.jl +++ b/stdlib/SuiteSparse/src/umfpack.jl @@ -6,7 +6,7 @@ export UmfpackLU import Base: (\), getproperty, show, size using LinearAlgebra -import LinearAlgebra: Factorization, det, lu, ldiv! +import LinearAlgebra: Factorization, det, lu, lu!, ldiv! using SparseArrays using SparseArrays: getcolptr @@ -176,6 +176,65 @@ lu(A::Union{SparseMatrixCSC{T},SparseMatrixCSC{Complex{T}}}; "dense LU."))) lu(A::SparseMatrixCSC; check::Bool = true) = lu(float(A); check = check) +""" + lu!(F::UmfpackLU, A::SparseMatrixCSC; check=true) -> F::UmfpackLU + +Compute the LU factorization of a sparse matrix `A`, reusing the symbolic +factorization of an already existing LU factorization stored in `F`. The +sparse matrix `A` must have an identical nonzero pattern as the matrix used +to create the LU factorization `F`, otherwise an error is thrown. + +When `check = true`, an error is thrown if the decomposition fails. +When `check = false`, responsibility for checking the decomposition's +validity (via [`issuccess`](@ref)) lies with the user. + +!!! note + `lu!(F::UmfpackLU, A::SparseMatrixCSC)` uses the UMFPACK library that is part of + SuiteSparse. As this library only supports sparse matrices with [`Float64`](@ref) or + `ComplexF64` elements, `lu!` converts `A` into a copy that is of type + `SparseMatrixCSC{Float64}` or `SparseMatrixCSC{ComplexF64}` as appropriate. + +!!! compat "Julia 1.4" + `lu!` for `UmfpackLU` requires at least Julia 1.4. + +# Examples +```jldoctest +julia> A = sparse(Float64[1.0 2.0; 0.0 3.0]); + +julia> F = lu(A); + +julia> B = sparse(Float64[1.0 1.0; 0.0 1.0]); + +julia> lu!(F, B); + +julia> F \\ ones(2) +2-element Array{Float64,1}: + 0.0 + 1.0 +``` +""" +function lu!(F::UmfpackLU, S::SparseMatrixCSC{<:UMFVTypes,<:UMFITypes}; check::Bool=true) + zerobased = getcolptr(S)[1] == 0 + F.m = size(S, 1) + F.n = size(S, 2) + F.colptr = zerobased ? copy(getcolptr(S)) : decrement(getcolptr(S)) + F.rowval = zerobased ? copy(rowvals(S)) : decrement(rowvals(S)) + F.nzval = copy(nonzeros(S)) + + umfpack_numeric!(F) + check && (issuccess(F) || throw(LinearAlgebra.SingularException(0))) + return F +end +lu!(F::UmfpackLU, A::SparseMatrixCSC{<:Union{Float16,Float32},Ti}; + check::Bool = true) where {Ti<:UMFITypes} = + lu!(F, convert(SparseMatrixCSC{Float64,Ti}, A); check = check) +lu!(F::UmfpackLU, A::SparseMatrixCSC{<:Union{ComplexF16,ComplexF32},Ti}; + check::Bool = true) where {Ti<:UMFITypes} = + lu!(F, convert(SparseMatrixCSC{ComplexF64,Ti}, A); check = check) +lu!(F::UmfpackLU, A::Union{SparseMatrixCSC{T},SparseMatrixCSC{Complex{T}}}; + check::Bool = true) where {T<:AbstractFloat} = + throw(ArgumentError(string("matrix type ", typeof(A), "not supported."))) +lu!(F::UmfpackLU, A::SparseMatrixCSC; check::Bool = true) = lu!(F, float(A); check = check) size(F::UmfpackLU) = (F.m, F.n) function size(F::UmfpackLU, dim::Integer) @@ -262,7 +321,6 @@ for itype in UmfpackIndexTypes return U end function umfpack_numeric!(U::UmfpackLU{Float64,$itype}) - if U.numeric != C_NULL return U end if U.symbolic == C_NULL umfpack_symbolic!(U) end tmp = Vector{Ptr{Cvoid}}(undef, 1) status = ccall(($num_r, :libumfpack), $itype, @@ -270,15 +328,14 @@ for itype in UmfpackIndexTypes Ptr{Float64}, Ptr{Float64}), U.colptr, U.rowval, U.nzval, U.symbolic, tmp, umf_ctrl, umf_info) + U.status = status if status != UMFPACK_WARNING_singular_matrix umferror(status) end U.numeric = tmp[1] - U.status = status return U end function umfpack_numeric!(U::UmfpackLU{ComplexF64,$itype}) - if U.numeric != C_NULL return U end if U.symbolic == C_NULL umfpack_symbolic!(U) end tmp = Vector{Ptr{Cvoid}}(undef, 1) status = ccall(($num_c, :libumfpack), $itype, @@ -286,11 +343,11 @@ for itype in UmfpackIndexTypes Ptr{Float64}, Ptr{Float64}), U.colptr, U.rowval, real(U.nzval), imag(U.nzval), U.symbolic, tmp, umf_ctrl, umf_info) + U.status = status if status != UMFPACK_WARNING_singular_matrix umferror(status) end U.numeric = tmp[1] - U.status = status return U end function solve!(x::StridedVector{Float64}, lu::UmfpackLU{Float64,$itype}, b::StridedVector{Float64}, typ::Integer) diff --git a/stdlib/SuiteSparse/test/umfpack.jl b/stdlib/SuiteSparse/test/umfpack.jl index e7ad0644b5d8c..5f479cb2559ad 100644 --- a/stdlib/SuiteSparse/test/umfpack.jl +++ b/stdlib/SuiteSparse/test/umfpack.jl @@ -189,6 +189,34 @@ using LinearAlgebra: Adjoint, Transpose, SingularException end end + @testset "Reuse symbolic LU factorization" begin + A1 = sparse(increment!([0,4,1,1,2,2,0,1,2,3,4,4]), + increment!([0,4,0,2,1,2,1,4,3,2,1,2]), + [2.,1.,3.,4.,-1.,-3.,3.,9.,2.,1.,4.,2.], 5, 5) + for Tv in (Float64, ComplexF64, Float16, Float32, ComplexF16, ComplexF32) + for Ti in Base.uniontypes(SuiteSparse.UMFPACK.UMFITypes) + A = convert(SparseMatrixCSC{Tv,Ti}, A0) + B = convert(SparseMatrixCSC{Tv,Ti}, A1) + b = Tv[8., 45., -3., 3., 19.] + F = lu(A) + lu!(F, B) + @test F\b ≈ B\b ≈ Matrix(B)\b + + # singular matrix + C = copy(B) + C[4, 3] = Tv(0) + F = lu(A) + @test_throws SingularException lu!(F, C) + + # change of nonzero pattern + D = copy(B) + D[5, 1] = Tv(1.0) + F = lu(A) + @test_throws ArgumentError lu!(F, D) + end + end + end + end @testset "REPL printing of UmfpackLU" begin From c330f8d0d59a63dd161edd34e785a1085d5c7084 Mon Sep 17 00:00:00 2001 From: Alexander Seiler Date: Fri, 10 Jan 2020 16:42:50 +0100 Subject: [PATCH 45/46] Use correct Julia version in compat annotation for symbolic LU (#34335) --- stdlib/SuiteSparse/src/umfpack.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/SuiteSparse/src/umfpack.jl b/stdlib/SuiteSparse/src/umfpack.jl index 2b946f3a034b5..3cdbee54cea64 100644 --- a/stdlib/SuiteSparse/src/umfpack.jl +++ b/stdlib/SuiteSparse/src/umfpack.jl @@ -194,8 +194,8 @@ validity (via [`issuccess`](@ref)) lies with the user. `ComplexF64` elements, `lu!` converts `A` into a copy that is of type `SparseMatrixCSC{Float64}` or `SparseMatrixCSC{ComplexF64}` as appropriate. -!!! compat "Julia 1.4" - `lu!` for `UmfpackLU` requires at least Julia 1.4. +!!! compat "Julia 1.5" + `lu!` for `UmfpackLU` requires at least Julia 1.5. # Examples ```jldoctest From edc1b7d14ae169475c468f28096b4899bc9e3b9c Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Fri, 10 Jan 2020 18:55:28 -0500 Subject: [PATCH 46/46] fix macro hygiene for kwargs with name conflicts (#34329) --- src/macroexpand.scm | 7 +++---- test/syntax.jl | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/macroexpand.scm b/src/macroexpand.scm index cffae76a680b1..3aa87feafc799 100644 --- a/src/macroexpand.scm +++ b/src/macroexpand.scm @@ -297,10 +297,9 @@ (append! pairs (filter (lambda (v) (not (assq (car v) env))) - (append! - (pair-with-gensyms v) - (map (lambda (v) (cons v v)) - (diff (keywords-introduced-by x) globals)))) + (pair-with-gensyms v)) + (map (lambda (v) (cons v v)) + (keywords-introduced-by x)) env))))))) (define (resolve-expansion-vars-with-new-env x env m parent-scope inarg (outermost #f)) diff --git a/test/syntax.jl b/test/syntax.jl index 0a2c44c5ef936..9d142348495b8 100644 --- a/test/syntax.jl +++ b/test/syntax.jl @@ -1971,3 +1971,18 @@ end # issue #33987 f33987(args::(Vararg{Any, N} where N); kwargs...) = args @test f33987(1,2,3) === (1,2,3) + +macro id_for_kwarg(x); x; end +Xo65KdlD = @id_for_kwarg let x = 1 + function f(; x) + x + end +end +@test_throws UndefKeywordError(:x) Xo65KdlD() +i0xb23hG = @id_for_kwarg let x = 1 + function f(; x=2) + x + end +end +@test i0xb23hG() == 2 +@test i0xb23hG(x=10) == 10