diff --git a/Make.inc b/Make.inc index f272bedca956c..438ab7fa02815 100644 --- a/Make.inc +++ b/Make.inc @@ -626,6 +626,21 @@ else SHLIB_EXT := so endif +ifeq ($(OS),WINNT) +define versioned_libname +$$(if $(2),$(1)-$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT)) +endef +else ifeq ($(OS),Darwin) +define versioned_libname +$$(if $(2),$(1).$(2).$(SHLIB_EXT),$(1).$(SHLIB_EXT)) +endef +else +define versioned_libname +$$(if $(2),$(1).$(SHLIB_EXT).$(2),$(1).$(SHLIB_EXT)) +endef +endif + + ifeq ($(SHLIB_EXT), so) define SONAME_FLAGS -Wl,-soname=$1 @@ -1178,6 +1193,8 @@ BB_TRIPLET_LIBGFORTRAN := $(subst $(SPACE),-,$(filter-out cxx%,$(subst -,$(SPACE BB_TRIPLET_CXXABI := $(subst $(SPACE),-,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI)))) BB_TRIPLET := $(subst $(SPACE),-,$(filter-out cxx%,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI))))) +LIBGFORTRAN_VERSION := $(subst libgfortran,,$(filter libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN)))) + # This is the set of projects that BinaryBuilder dependencies are hooked up for. BB_PROJECTS := OPENBLAS LLVM SUITESPARSE OPENLIBM GMP MBEDTLS LIBSSH2 NGHTTP2 MPFR CURL LIBGIT2 PCRE LIBUV LIBUNWIND DSFMT OBJCONV ZLIB P7ZIP CSL define SET_BB_DEFAULT @@ -1552,8 +1569,12 @@ ifneq ($(findstring $(OS),Linux FreeBSD),) LIBGCC_NAME := libgcc_s.$(SHLIB_EXT).1 endif - +# USE_SYSTEM_CSL causes it to get symlinked into build_private_shlibdir +ifeq ($(USE_SYSTEM_CSL),1) +LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_private_shlibdir)/$(LIBGCC_NAME)) +else LIBGCC_BUILD_DEPLIB := $(call dep_lib_path,$(build_libdir),$(build_shlibdir)/$(LIBGCC_NAME)) +endif LIBGCC_INSTALL_DEPLIB := $(call dep_lib_path,$(libdir),$(private_shlibdir)/$(LIBGCC_NAME)) # USE_SYSTEM_LIBM and USE_SYSTEM_OPENLIBM causes it to get symlinked into build_private_shlibdir diff --git a/Makefile b/Makefile index fde327557d968..2fb9be55f9b34 100644 --- a/Makefile +++ b/Makefile @@ -291,8 +291,11 @@ endif done \ done for suffix in $(JL_PRIVATE_LIBS-1) ; do \ - lib=$(build_private_libdir)/$${suffix}.$(SHLIB_EXT); \ - $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \ + for lib in $(build_private_libdir)/$${suffix}.$(SHLIB_EXT)*; do \ + if [ "$${lib##*.}" != "dSYM" ]; then \ + $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \ + fi \ + done \ done endif # Install `7z` into libexec/ diff --git a/README.md b/README.md index a54e812ba1691..807407e93479d 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Julia. However, most users should use the most recent stable version of Julia. You can get this version by changing to the Julia directory and running: - git checkout v1.5.0 + git checkout v1.6.0 Now run `make` to build the `julia` executable. diff --git a/base/Makefile b/base/Makefile index e024e546f94d3..2bef6aab7f1f4 100644 --- a/base/Makefile +++ b/base/Makefile @@ -169,53 +169,69 @@ endif # echo "$$P" define symlink_system_library -symlink_$1: $$(build_private_libdir)/$1.$$(SHLIB_EXT) -$$(build_private_libdir)/$1.$$(SHLIB_EXT): - REALPATH=`$$(call spawn,$$(build_depsbindir)/libwhich) -p $$(notdir $$@)` && \ - $$(call resolve_path,REALPATH) && \ - [ -e "$$$$REALPATH" ] && \ - ([ ! -e "$$@" ] || rm "$$@") && \ - echo ln -sf "$$$$REALPATH" "$$@" && \ - ln -sf "$$$$REALPATH" "$$@" -ifneq ($2,) -ifneq ($$(USE_SYSTEM_$2),0) -SYMLINK_SYSTEM_LIBRARIES += symlink_$1 -endif +libname_$2 := $$(notdir $(call versioned_libname,$2,$3)) +libpath_$2 := $$(shell $$(call spawn,$$(build_depsbindir)/libwhich) -p $$(libname_$2) 2>/dev/null) +symlink_$2: $$(build_private_libdir)/$$(libname_$2) +$$(build_private_libdir)/$$(libname_$2): + @if [ -e "$$(libpath_$2)" ]; then \ + REALPATH=$$(libpath_$2); \ + $$(call resolve_path,REALPATH) && \ + [ -e "$$$$REALPATH" ] && \ + ([ ! -e "$$@" ] || rm "$$@") && \ + echo ln -sf "$$$$REALPATH" "$$@" && \ + ln -sf "$$$$REALPATH" "$$@"; \ + else \ + if [ "$4" != "ALLOW_FAILURE" ]; then \ + echo "System library symlink failure: Unable to locate $$(libname_$2) on your system!" >&2; \ + false; \ + fi; \ + fi +ifneq ($$(USE_SYSTEM_$1),0) +SYMLINK_SYSTEM_LIBRARIES += symlink_$2 endif endef # the following excludes: libuv.a, libutf8proc.a -$(eval $(call symlink_system_library,$(LIBMNAME))) ifneq ($(USE_SYSTEM_LIBM),0) -SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME) +$(eval $(call symlink_system_library,LIBM,$(LIBMNAME))) else ifneq ($(USE_SYSTEM_OPENLIBM),0) -SYMLINK_SYSTEM_LIBRARIES += symlink_$(LIBMNAME) +$(eval $(call symlink_system_library,OPENLIBM,$(LIBMNAME))) endif -$(eval $(call symlink_system_library,libpcre2-8,PCRE)) -$(eval $(call symlink_system_library,libdSFMT,DSFMT)) -$(eval $(call symlink_system_library,$(LIBBLASNAME),BLAS)) +$(eval $(call symlink_system_library,CSL,libgcc_s,1)) +ifneq (,$(LIBGFORTRAN_VERSION)) +$(eval $(call symlink_system_library,CSL,libgfortran,$(LIBGFORTRAN_VERSION))) +endif +$(eval $(call symlink_system_library,CSL,libquadmath,0)) +$(eval $(call symlink_system_library,CSL,libstdc++,6)) +# We allow libssp, libatomic and libgomp to fail as they are not available on all systems +$(eval $(call symlink_system_library,CSL,libssp,0,ALLOW_FAILURE)) +$(eval $(call symlink_system_library,CSL,libatomic,1,ALLOW_FAILURE)) +$(eval $(call symlink_system_library,CSL,libgomp,1,ALLOW_FAILURE)) +$(eval $(call symlink_system_library,PCRE,libpcre2-8)) +$(eval $(call symlink_system_library,DSFMT,libdSFMT)) +$(eval $(call symlink_system_library,BLAS,$(LIBBLASNAME))) ifneq ($(LIBLAPACKNAME),$(LIBBLASNAME)) -$(eval $(call symlink_system_library,$(LIBLAPACKNAME),LAPACK)) +$(eval $(call symlink_system_library,LAPACK,$(LIBLAPACKNAME))) endif -$(eval $(call symlink_system_library,libgmp,GMP)) -$(eval $(call symlink_system_library,libmpfr,MPFR)) -$(eval $(call symlink_system_library,libmbedtls,MBEDTLS)) -$(eval $(call symlink_system_library,libmbedcrypto,MBEDTLS)) -$(eval $(call symlink_system_library,libmbedx509,MBEDTLS)) -$(eval $(call symlink_system_library,libssh2,LIBSSH2)) -$(eval $(call symlink_system_library,libnghttp2,NGHTTP2)) -$(eval $(call symlink_system_library,libcurl,CURL)) -$(eval $(call symlink_system_library,libgit2,LIBGIT2)) -$(eval $(call symlink_system_library,libamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libcamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libccolamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libcholmod,SUITESPARSE)) -$(eval $(call symlink_system_library,libcolamd,SUITESPARSE)) -$(eval $(call symlink_system_library,libumfpack,SUITESPARSE)) -$(eval $(call symlink_system_library,libspqr,SUITESPARSE)) -$(eval $(call symlink_system_library,libsuitesparseconfig,SUITESPARSE)) +$(eval $(call symlink_system_library,GMP,libgmp)) +$(eval $(call symlink_system_library,MPFR,libmpfr)) +$(eval $(call symlink_system_library,MBEDTLS,libmbedtls)) +$(eval $(call symlink_system_library,MBEDTLS,libmbedcrypto)) +$(eval $(call symlink_system_library,MBEDTLS,libmbedx509)) +$(eval $(call symlink_system_library,LIBSSH2,libssh2)) +$(eval $(call symlink_system_library,NGHTTP2,libnghttp2)) +$(eval $(call symlink_system_library,CURL,libcurl)) +$(eval $(call symlink_system_library,LIBGIT2,libgit2)) +$(eval $(call symlink_system_library,SUITESPARSE,libamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libcamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libccolamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libcholmod)) +$(eval $(call symlink_system_library,SUITESPARSE,libcolamd)) +$(eval $(call symlink_system_library,SUITESPARSE,libumfpack)) +$(eval $(call symlink_system_library,SUITESPARSE,libspqr)) +$(eval $(call symlink_system_library,SUITESPARSE,libsuitesparseconfig)) # EXCLUDED LIBRARIES (installed/used, but not vendored for use with dlopen): # libunwind endif # WINNT diff --git a/base/abstractarray.jl b/base/abstractarray.jl index b60c1f20e9069..eda9d9b03d81f 100644 --- a/base/abstractarray.jl +++ b/base/abstractarray.jl @@ -1170,7 +1170,7 @@ function getindex(A::AbstractArray, I...) _getindex(IndexStyle(A), A, to_indices(A, I)...) end # To avoid invalidations from multidimensional.jl: getindex(A::Array, i1::Union{Integer, CartesianIndex}, I::Union{Integer, CartesianIndex}...) -getindex(A::Array, i1::Integer, I::Integer...) = A[to_indices(A, (i1, I...))...] +@propagate_inbounds getindex(A::Array, i1::Integer, I::Integer...) = A[to_indices(A, (i1, I...))...] function unsafe_getindex(A::AbstractArray, I...) @_inline_meta @@ -1489,7 +1489,7 @@ AbstractVecOrTuple{T} = Union{AbstractVector{<:T}, Tuple{Vararg{T}}} _typed_vcat_similar(V, ::Type{T}, n) where T = similar(V[1], T, n) _typed_vcat(::Type{T}, V::AbstractVecOrTuple{AbstractVector}) where T = - _typed_vcat!(_typed_vcat_similar(V, T, mapreduce(length, +, V)), V) + _typed_vcat!(_typed_vcat_similar(V, T, sum(map(length, V))), V) function _typed_vcat!(a::AbstractVector{T}, V::AbstractVecOrTuple{AbstractVector}) where T pos = 1 diff --git a/base/errorshow.jl b/base/errorshow.jl index 0ef1234e4d616..49fe9680e180d 100644 --- a/base/errorshow.jl +++ b/base/errorshow.jl @@ -555,13 +555,6 @@ end # replace `sf` as needed. const update_stackframes_callback = Ref{Function}(identity) -function replaceuserpath(str) - str = replace(str, homedir() => "~") - # seems to be necessary for some paths with small letter drive c:// etc - str = replace(str, lowercasefirst(homedir()) => "~") - return str -end - const STACKTRACE_MODULECOLORS = [:magenta, :cyan, :green, :yellow] const STACKTRACE_FIXEDCOLORS = IdDict(Base => :light_black, Core => :light_black) @@ -701,7 +694,7 @@ end function print_stackframe(io, i, frame::StackFrame, n::Int, digit_align_width, modulecolor) file, line = string(frame.file), frame.line stacktrace_expand_basepaths() && (file = something(find_source_file(file), file)) - stacktrace_contract_userdir() && (file = replaceuserpath(file)) + stacktrace_contract_userdir() && (file = contractuser(file)) # Used by the REPL to make it possible to open # the location of a stackframe/method in the editor. diff --git a/base/path.jl b/base/path.jl index 1827346bb2edb..91386cb562d56 100644 --- a/base/path.jl +++ b/base/path.jl @@ -387,7 +387,19 @@ normpath(a::AbstractString, b::AbstractString...) = normpath(joinpath(a,b...)) Convert a path to an absolute path by adding the current directory if necessary. Also normalizes the path as in [`normpath`](@ref). """ -abspath(a::String) = normpath(isabspath(a) ? a : joinpath(pwd(),a)) +function abspath(a::String)::String + if !isabspath(a) + cwd = pwd() + a_drive, a_nodrive = splitdrive(a) + if a_drive != "" && lowercase(splitdrive(cwd)[1]) != lowercase(a_drive) + cwd = a_drive * path_separator + a = joinpath(cwd, a_nodrive) + else + a = joinpath(cwd, a) + end + end + return normpath(a) +end """ abspath(path::AbstractString, paths::AbstractString...) -> String @@ -502,12 +514,16 @@ function relpath(path::String, startpath::String = ".") curdir = "." pardir = ".." path == startpath && return curdir - path_drive, path_without_drive = splitdrive(path) - startpath_drive, startpath_without_drive = splitdrive(startpath) - path_arr = split(abspath(path_without_drive), path_separator_re) - start_arr = split(abspath(startpath_without_drive), path_separator_re) if Sys.iswindows() - lowercase(path_drive) != lowercase(startpath_drive) && return abspath(path) + path_drive, path_without_drive = splitdrive(path) + startpath_drive, startpath_without_drive = splitdrive(startpath) + isempty(startpath_drive) && (startpath_drive = path_drive) # by default assume same as path drive + uppercase(path_drive) == uppercase(startpath_drive) || return abspath(path) # if drives differ return first path + path_arr = split(abspath(path_drive * path_without_drive), path_separator_re) + start_arr = split(abspath(path_drive * startpath_without_drive), path_separator_re) + else + path_arr = split(abspath(path), path_separator_re) + start_arr = split(abspath(startpath), path_separator_re) end i = 0 while i < min(length(path_arr), length(start_arr)) diff --git a/base/range.jl b/base/range.jl index 86ec0912e96b0..39129dd1b9b4f 100644 --- a/base/range.jl +++ b/base/range.jl @@ -632,7 +632,7 @@ function argmin(r::AbstractRange) elseif step(r) > 0 firstindex(r) else - first(searchsorted(r, last(r))) + lastindex(r) end end @@ -647,7 +647,7 @@ function argmax(r::AbstractRange) if isempty(r) throw(ArgumentError("range must be non-empty")) elseif step(r) > 0 - first(searchsorted(r, last(r))) + lastindex(r) else firstindex(r) end diff --git a/base/ryu/exp.jl b/base/ryu/exp.jl index cf1fe23105b8c..6356206971f8b 100644 --- a/base/ryu/exp.jl +++ b/base/ryu/exp.jl @@ -213,7 +213,7 @@ roundPos = pos while true roundPos -= 1 - if roundPos == (startpos - 1) || buf[roundPos] == UInt8('-') + if roundPos == (startpos - 1) || buf[roundPos] == UInt8('-') || (plus && buf[roundPos] == UInt8('+')) || (space && buf[roundPos] == UInt8(' ')) buf[roundPos + 1] = UInt8('1') e += 1 break diff --git a/base/ryu/fixed.jl b/base/ryu/fixed.jl index 4be1b3741832e..14713111a95a1 100644 --- a/base/ryu/fixed.jl +++ b/base/ryu/fixed.jl @@ -166,7 +166,7 @@ dotPos = 1 while true roundPos -= 1 - if roundPos == (startpos - 1) || (buf[roundPos] == UInt8('-')) + if roundPos == (startpos - 1) || (buf[roundPos] == UInt8('-')) || (plus && buf[roundPos] == UInt8('+')) || (space && buf[roundPos] == UInt8(' ')) buf[roundPos + 1] = UInt8('1') if dotPos > 1 buf[dotPos] = UInt8('0') diff --git a/base/show.jl b/base/show.jl index da50172109846..2c6ef87a79a78 100644 --- a/base/show.jl +++ b/base/show.jl @@ -2195,7 +2195,7 @@ function show_signature_function(io::IO, @nospecialize(ft), demangle=false, farg uwf = unwrap_unionall(f) parens = isa(f, UnionAll) && !(isa(uwf, DataType) && f === uwf.name.wrapper) parens && print(io, "(") - show(io, f) + print_within_stacktrace(io, f, bold=true) parens && print(io, ")") else if html diff --git a/base/sort.jl b/base/sort.jl index 36601ebb70f92..a5d899feb6955 100644 --- a/base/sort.jl +++ b/base/sort.jl @@ -231,92 +231,62 @@ end function searchsortedlast(a::AbstractRange{<:Real}, x::Real, o::DirectOrdering)::keytype(a) require_one_based_indexing(a) - if step(a) == 0 - lt(o, x, first(a)) ? 0 : length(a) + f, h, l = first(a), step(a), last(a) + if lt(o, x, f) + 0 + elseif h == 0 || !lt(o, x, l) + length(a) else - n = round(Integer, clamp((x - first(a)) / step(a) + 1, 1, length(a))) + n = round(Integer, (x - f) / h + 1) lt(o, x, a[n]) ? n - 1 : n end end function searchsortedfirst(a::AbstractRange{<:Real}, x::Real, o::DirectOrdering)::keytype(a) require_one_based_indexing(a) - if step(a) == 0 - lt(o, first(a), x) ? length(a) + 1 : 1 + f, h, l = first(a), step(a), last(a) + if !lt(o, f, x) + 1 + elseif h == 0 || lt(o, l, x) + length(a) + 1 else - n = round(Integer, clamp((x - first(a)) / step(a) + 1, 1, length(a))) + n = round(Integer, (x - f) / h + 1) lt(o, a[n], x) ? n + 1 : n end end function searchsortedlast(a::AbstractRange{<:Integer}, x::Real, o::DirectOrdering)::keytype(a) require_one_based_indexing(a) - 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) + f, h, l = first(a), step(a), last(a) + if lt(o, x, f) + 0 + elseif h == 0 || !lt(o, x, l) + length(a) else if o isa ForwardOrdering - fld(floor(Integer, x) - first(a), h) + 1 + fld(floor(Integer, x) - f, h) + 1 else - fld(ceil(Integer, x) - first(a), h) + 1 + fld(ceil(Integer, x) - f, h) + 1 end end end function searchsortedfirst(a::AbstractRange{<:Integer}, x::Real, o::DirectOrdering)::keytype(a) require_one_based_indexing(a) - 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 + f, h, l = first(a), step(a), last(a) + if !lt(o, f, x) + 1 + elseif h == 0 || lt(o, l, x) + length(a) + 1 else if o isa ForwardOrdering - -fld(floor(Integer, -x) + Signed(first(a)), h) + 1 + cld(ceil(Integer, x) - f, h) + 1 else - -fld(ceil(Integer, -x) + Signed(first(a)), h) + 1 + cld(floor(Integer, x) - f, h) + 1 end end end -function searchsortedfirst(a::AbstractRange{<:Integer}, x::Unsigned, o::DirectOrdering)::keytype(a) - require_one_based_indexing(a) - if lt(o, first(a), x) - if step(a) == 0 - length(a) + 1 - else - min(cld(x - first(a), step(a)), length(a)) + 1 - end - else - 1 - end -end - -function searchsortedlast(a::AbstractRange{<:Integer}, x::Unsigned, o::DirectOrdering)::keytype(a) - require_one_based_indexing(a) - if lt(o, x, first(a)) - 0 - elseif step(a) == 0 - length(a) - else - min(fld(x - first(a), step(a)) + 1, length(a)) - end -end - searchsorted(a::AbstractRange{<:Real}, x::Real, o::DirectOrdering) = searchsortedfirst(a, x, o) : searchsortedlast(a, x, o) diff --git a/base/task.jl b/base/task.jl index 8c9516fb39766..0d37e1fe9eae2 100644 --- a/base/task.jl +++ b/base/task.jl @@ -79,7 +79,12 @@ end function show_task_exception(io::IO, t::Task; indent = true) stack = catch_stack(t) b = IOBuffer() - show_exception_stack(IOContext(b, io), stack) + if isempty(stack) + # exception stack buffer not available; probably a serialized task + showerror(IOContext(b, io), t.result) + else + show_exception_stack(IOContext(b, io), stack) + end str = String(take!(b)) if indent str = replace(str, "\n" => "\n ") diff --git a/base/toml_parser.jl b/base/toml_parser.jl index c69096504df0b..916a93fdf0d22 100644 --- a/base/toml_parser.jl +++ b/base/toml_parser.jl @@ -242,7 +242,7 @@ const err_message = Dict( ErrExpectedEqualAfterKey => "expected equal sign after key", ErrNoTrailingDigitAfterDot => "expected digit after dot", ErrOverflowError => "overflowed when parsing integer", - ErrInvalidUnicodeScalar => "invalid uncidode scalar", + ErrInvalidUnicodeScalar => "invalid unicode scalar", ErrInvalidEscapeCharacter => "invalid escape character", ErrUnexpectedEofExpectedValue => "unexpected end of file, expected a value" ) @@ -821,8 +821,6 @@ function parse_number_or_date_start(l::Parser) ate && return parse_int(l, contains_underscore) elseif accept(l, isdigit) return parse_local_time(l) - elseif peek(l) !== '.' - return ParserError(ErrLeadingZeroNotAllowedInteger) end end diff --git a/cli/trampolines/trampolines_arm.S b/cli/trampolines/trampolines_arm.S index 1bb924168525b..f99b7820360b2 100644 --- a/cli/trampolines/trampolines_arm.S +++ b/cli/trampolines/trampolines_arm.S @@ -5,7 +5,7 @@ .global CNAME(name); \ .cfi_startproc; \ CNAME(name)##:; \ - ldr ip, CONCAT(.L,CNAME(name)); \ + ldr ip, CONCAT(.L,CNAMEADDR(name)); \ CONCAT(.L,CNAME(name)): ;\ add ip, pc, ip; \ ldr pc, [ip]; \ diff --git a/contrib/windows/build-installer.iss b/contrib/windows/build-installer.iss index 576f834bc3c91..6648d9e1f528a 100644 --- a/contrib/windows/build-installer.iss +++ b/contrib/windows/build-installer.iss @@ -2,10 +2,6 @@ #define AppName "Julia" #endif -#ifndef AppId -#define AppId "{{054B4BC6-BD30-45C8-A623-8F5BA6EBD55D}" -#endif - #ifndef DirName #define DirName AppName + "-" + AppVersion #endif @@ -14,6 +10,9 @@ #define AppMainExeName "bin\julia.exe" #define CurrentYear GetDateTimeString('yyyy', '', '') +#ifndef AppId +#define AppId DirName +#endif [LangOptions] @@ -61,7 +60,7 @@ AppName={#AppName} AppVersion={#AppVersion} AppPublisher=Julia Language AppPublisherURL=https://julialang.org -AppCopyright=Copyright 2009-{#CurrentYear}; Julia Langage +AppCopyright=Copyright 2009-{#CurrentYear}; Julia Language VersionInfoDescription=Julia Installer PrivilegesRequiredOverridesAllowed=commandline WizardStyle=modern diff --git a/deps/Versions.make b/deps/Versions.make index c30e45a96a355..09fd082cc3e4f 100644 --- a/deps/Versions.make +++ b/deps/Versions.make @@ -15,7 +15,7 @@ CSL_JLL_NAME := CompilerSupportLibraries # Clang (paired with LLVM, only here as a JLL download) CLANG_JLL_NAME := Clang -CLANG_JLL_VER := 11.0.1+2 +CLANG_JLL_VER := 11.0.1+3 # DSFMT DSFMT_VER := 2.2.4 @@ -46,12 +46,12 @@ LIBUV_JLL_NAME := LibUV # LLVM LLVM_VER := 11.0.1 -LLVM_ASSERT_JLL_VER := 11.0.1+2 +LLVM_ASSERT_JLL_VER := 11.0.1+3 LLVM_JLL_NAME := libLLVM # LLVM_tools (downloads LLVM_jll to get things like `lit` and `opt`) LLVM_TOOLS_JLL_NAME := LLVM -LLVM_TOOLS_JLL_VER := 11.0.1+2 +LLVM_TOOLS_JLL_VER := 11.0.1+3 # MbedTLS MBEDTLS_VER := 2.24.0 @@ -91,7 +91,7 @@ P7ZIP_VER := 16.2.0 P7ZIP_JLL_NAME := p7zip # PCRE -PCRE_VER := 10.35 +PCRE_VER := 10.36 PCRE_JLL_NAME := PCRE2 # SuiteSparse diff --git a/deps/checksums/Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz/md5 b/deps/checksums/Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz/md5 deleted file mode 100644 index e2ce6025ee72b..0000000000000 --- a/deps/checksums/Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -4b827aa3727f565648ac27fc9daf7db3 diff --git a/deps/checksums/Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz/sha512 b/deps/checksums/Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz/sha512 deleted file mode 100644 index 97fc8d97e8e7e..0000000000000 --- a/deps/checksums/Pkg-05fa7f93f73afdabd251247d03144de9f7b36b50.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -082bfe39acd6ac6ca08f69cbdeb70bebd7842922741da6ef5b5057c7126b56a5e91fe2ad96dd5f72aedf2a7a6e63b424f9a756ac6eedda089847da3152cb2f4c diff --git a/deps/checksums/Pkg-c78a8be9af8aa0944b74f297791e10933f223aad.tar.gz/md5 b/deps/checksums/Pkg-c78a8be9af8aa0944b74f297791e10933f223aad.tar.gz/md5 new file mode 100644 index 0000000000000..03c0211855c10 --- /dev/null +++ b/deps/checksums/Pkg-c78a8be9af8aa0944b74f297791e10933f223aad.tar.gz/md5 @@ -0,0 +1 @@ +f41525db1fd7ede8bfd785677e8a2383 diff --git a/deps/checksums/Pkg-c78a8be9af8aa0944b74f297791e10933f223aad.tar.gz/sha512 b/deps/checksums/Pkg-c78a8be9af8aa0944b74f297791e10933f223aad.tar.gz/sha512 new file mode 100644 index 0000000000000..66208e9b92af7 --- /dev/null +++ b/deps/checksums/Pkg-c78a8be9af8aa0944b74f297791e10933f223aad.tar.gz/sha512 @@ -0,0 +1 @@ +56bda43f19ef787c11fa67c4e90623279c569e77af9e6f52dbbd672fb5fd197f2b6591791aa62eccaa6fdc81b8e90f959269bd0639f158284fd4e954a485ceab diff --git a/deps/checksums/Tar-86825ecf1e8b6f57105bf0632e93c532cee200a4.tar.gz/md5 b/deps/checksums/Tar-86825ecf1e8b6f57105bf0632e93c532cee200a4.tar.gz/md5 new file mode 100644 index 0000000000000..30d64c2600751 --- /dev/null +++ b/deps/checksums/Tar-86825ecf1e8b6f57105bf0632e93c532cee200a4.tar.gz/md5 @@ -0,0 +1 @@ +e2b8b646355ba71a6e30dbe9c0fdc6ac diff --git a/deps/checksums/Tar-86825ecf1e8b6f57105bf0632e93c532cee200a4.tar.gz/sha512 b/deps/checksums/Tar-86825ecf1e8b6f57105bf0632e93c532cee200a4.tar.gz/sha512 new file mode 100644 index 0000000000000..be161a529bc83 --- /dev/null +++ b/deps/checksums/Tar-86825ecf1e8b6f57105bf0632e93c532cee200a4.tar.gz/sha512 @@ -0,0 +1 @@ +db66086d531bbf2210207449ac464d4e865562a849f8a4197feca4636c90ca577140977daf3d0fb4c4c61240866934a10ccc6120b7bc95b1a18ff16f9491aed9 diff --git a/deps/checksums/Tar-ac4d442266a676ce2d1a43acb55fc07d1edc6566.tar.gz/md5 b/deps/checksums/Tar-ac4d442266a676ce2d1a43acb55fc07d1edc6566.tar.gz/md5 deleted file mode 100644 index 5f1a8151702d6..0000000000000 --- a/deps/checksums/Tar-ac4d442266a676ce2d1a43acb55fc07d1edc6566.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -8e142a0c1761068128b4ac229aae584d diff --git a/deps/checksums/Tar-ac4d442266a676ce2d1a43acb55fc07d1edc6566.tar.gz/sha512 b/deps/checksums/Tar-ac4d442266a676ce2d1a43acb55fc07d1edc6566.tar.gz/sha512 deleted file mode 100644 index 0c3dd7423504f..0000000000000 --- a/deps/checksums/Tar-ac4d442266a676ce2d1a43acb55fc07d1edc6566.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -d899b09c3ab4d94605297c716838f21dae7f1467b2785c9fff960ddad645161148fcdb2bc114e94da24f567098af4abce49960986f91eb26a2c234928fe6bdc9 diff --git a/deps/checksums/clang b/deps/checksums/clang index 3513a3e212ef7..3e438a189a575 100644 --- a/deps/checksums/clang +++ b/deps/checksums/clang @@ -1,58 +1,58 @@ -Clang.v11.0.1+2.aarch64-apple-darwin.tar.gz/md5/17076a7e5d9976318a1ad7deebb49101 -Clang.v11.0.1+2.aarch64-apple-darwin.tar.gz/sha512/e7904c14ec41d49b6582f0e5ffefd1c6ee8afd02cba58f35083320673da855b7292fe824622de3e90a0540064813cbc7c4a53a4d8b724c84727c6fdf47d53bfc -Clang.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/md5/148e9342612facdf335f8b7f8b651e19 -Clang.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/sha512/d593130812aa5f05a59e6a912b139dfea8b1ad0b2552f32657a767f7b5c41bee0dadcdf15a697717b9e3fdc78140879cb8bd6f6d59fe74ac6d53016691100d4d -Clang.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/md5/bcd5b0dac3b2a072d60cd165053dcd7c -Clang.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/sha512/a1866a5b27fb7dc63c897c50d642301150ebc503bbcc5dc545e5132555473f355dffea5117623cafb87a4afae3dd15f607f2d27df56982fbd96ed7d6f63e477e -Clang.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/md5/48691a2f66b975fc722fc36f99709274 -Clang.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/sha512/c71867875893ce5440ee75186af2515306c9c2c17387af7dd466a782dfab51b20b0bfd63ce13a8de862df1bf1193fecf485108f98d3de1c60b2ea141aa05da23 -Clang.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/md5/d6275cf3a2ca1c18f69a25fd53625942 -Clang.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/sha512/fbb629b082d5c34c8b26e13d258fab10c7f6cfebb023586c0e76a087ecf1da11efca49c958c57b773903485cdec0d8fbe15a657789ca00d1c885764ce27a489e -Clang.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/325db47117dbb6b958cf99e4bf94f6e1 -Clang.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/4fdd788a2795eb7a9aa9d51578e575e65ee5296f7585d5dc10301264da189802680ce7cf0c5741ffff9922849b078432b74e907e724befb21d54408e6b74e7ff -Clang.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/3fe294ae362745993fcca0b8ae27094d -Clang.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/299895793a91f98e69000176a44591c4c02f35665575ce669616be90ecaaa0e0ed40eeb204902fbda0df3d0793be4d1bdc0677d40f1eb1dce6afb5093d679606 -Clang.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/md5/0d9b7ec9c4205d96a125629005568cbe -Clang.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/8645b138c858aaab046efd1b9c0621a1093631dd6dcc1aabbd67863e04ec20550e37c73e6ffef4959230c0ce1f555a4b3cb3ad17f0344747a45fea8619eefed8 -Clang.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/md5/52c291184a47b777f569ac4e72f51d36 -Clang.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/5c953a7798216e369ab1ff2d19d4a94b207f971604e55daec3332e276dacb6f47bbf98195f91e15ef94df030ec894b704e96d13f40180abfef34516aad802520 -Clang.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/76aed4280fb00efbfc31d7567b369686 -Clang.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/900324075af8fcdb18f8584a302d5c65bb7fd79b2dfc78374334849ab0bb2954d5377c4ec72684ab26d792540fab546a12f03ecae5860c3979a3d70f09abe924 -Clang.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/53ea9d348e7a4be7689b628de423342f -Clang.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/c6a455cf500de882270c29b0ea70a15cc47dfffa44419ff0215885b59641b020247a008c0b2b689ba5a5769d239433a8fbdaf89602bda20f51930cb9ee9df5f1 -Clang.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/md5/a8c42dc3edb74f3794e6f625b255f243 -Clang.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/fb5c4653ed1951b54492d45cac78b1a5e165e76a69ef91b5a1ea6bcc022b5e540f9a86eeee410f090862760054ee609d22448c0ac214e938281648644a5f8377 -Clang.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/md5/edec516bf2996d77b769ef131c2264de -Clang.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/4b026da65dd8f9160385114865871c75a8e2cb996e0a262a3c507b6a8a7f087875adc3891ea5ca0cdd1ba8f6041f002d3af54fa8aec84b7fdb5f2d3605089e06 -Clang.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/md5/bc16f50c67419060844bf0e83c969eba -Clang.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/sha512/10cf3828b0b96c668c9b5c35bbce32711720d9e73369ea93f7ce43766e4b53009c9ebd02fa28703d07e2c7137c5770696008d136908136a43ad36ac84b90f59f -Clang.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/md5/c867d7c038358e4c302cf8a926098417 -Clang.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/sha512/60ba3147d2fe24c819eecb3339aedad1a15b9b1ef4d71b41a4f4a346317b0a2dfa81a59d56c3742beed56b60fbb0b547ff6fc853619f396a83f74b9fb091f6bd -Clang.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/md5/3ff50e91834c5df39075dac74d97ca58 -Clang.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/sha512/8a72be62d056d686f0e56de4a0dd530bffcf4214f3724ab51bd89f07b35834bfd6707574e16d650438aff3c6a77536cabc631489df6dae8d245ff6c077915479 -Clang.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/md5/7a28f81a9d7a0021d5a50cbe6a5e715d -Clang.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/sha512/776fb4d9456473b5293da8dbc3e400ed463e8e6e9c66280cb642907bf2df53bcf837a93f671a10809079e7a9ab2795f3757f9a0e056f8404d210f5596cf62640 -Clang.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/md5/ca383ad6ab2d1afad3134efce3c12aa3 -Clang.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/sha512/2bdb6e4be9c496657ec9292d34b786860630106179d9217e816c67309695d81a58c95966ffa42a8f52e99e8e1c369f119746e76ba7458df13e78a668e53fa8b1 -Clang.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/md5/1772ad1d6a5c00b24048b7ca5be43483 -Clang.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/sha512/560c2e0cec8c942223a088239b2158504300c48b323cbbd62a6fc6bed9d73737c7cffcd93792043e6f066f8758c7c43490262e2acf3f4bb49ff8851904b214eb -Clang.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/md5/41baac7852b2caa85de9f0f1e2ecb6bd -Clang.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/cafed0ce352a265edf6259fbf0b7cc11be5d635f8efca9cd6dc2e8fb3220d10adaecd9dd9dff56adbdcecd109a244d4f683efd7d914954c456c27f3a9be357d6 -Clang.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/md5/02b3b9471562527e88b00d1bc9ce3a6c -Clang.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/1d3da48049e19e3f22c773a0de38a2acfe8b76a85d1b25362dc182d87e431a1579d2366e18370e3f5f339b9b78f1846b043bd083fc2fdb23e784c18215efc7e1 -Clang.v11.0.1+2.x86_64-apple-darwin.tar.gz/md5/c6d7453a30fb40971768f1fd7c9881fa -Clang.v11.0.1+2.x86_64-apple-darwin.tar.gz/sha512/e444b4487e8c38aac3edc7472f1837d9b063b5ac7c365bb8501863b796fd6957675b462a4b2f06967d057683af256fd2e9bbf84a9f3acaf994ba1e5b1e59e891 -Clang.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/md5/e5068f5b767b7cdf606d7ac96ccc5826 -Clang.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/sha512/9aeb0d97da690274d162d350377e88f0a454c7920da1fc8585754fb1e9464e0ab483c5d44244e676b458a702fe3749a497c1ce7ce3e19e8722d22e89fd845713 -Clang.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/md5/331887c1fc2cd5149936fbab4ded7522 -Clang.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/sha512/7c33b6ec9e018774616c8cda59a25adbad585e295fd7b639951c282f2fd1fa70c8ed50c47a0d34351476876da9554e5e44d0d86d2db474400f00e950ecc5fb36 -Clang.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/md5/2ee2a56797af5cb83d4dd5ddcbfaeb0b -Clang.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/sha512/309fc565c70938104a3044ebee70d78075595e0e7958a4273cbbd0994b05c9c5e6725d3784198ce2d7b2b8d1f5d32c8d363561b35348a7bec508787f9217ffd3 -Clang.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/md5/30dc9e11dbabd32b2f02168e244ada33 -Clang.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/sha512/1ee84e41c9e3ca7a4238467cc747219cf8fe520f4a1259e50d6443414767a5e8fb02a4034328599c92c0b4e5e69274a06fa4878d9651fe8063b8e4daae941e55 -Clang.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/md5/b3efe5acf49dd3f3246e9c5848e94ae8 -Clang.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/sha512/1c6f415d562b18de1ad045e03e06f6e39963962734587fb12119ca0fc8bf455185c2704ac9282b94d1ab7dcc2503a3ca6f41064a61a2a75af772943a3f4f043c -Clang.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/md5/cdbef031fde6e57a3aeb161bb865b887 -Clang.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/sha512/d8047c3a52be6ebc889bd249f887b01dfc60b9c7f847dcb3d0eaec200402183132751f7eac3c60f5be8c30ae612e44fd4d94b88594d2e3c58bfd91a9cec2a42e -Clang.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/md5/9993aadfb7b707f976badc0b694a1959 -Clang.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/sha512/4531b6fc7e618d5448023183a1a7cd28abbd9f0b5e15dcadcf50b5f6b7b3335e437bfc592df8fe1a7570e7dc90e2f0b0681f068e4eaf0d935adef62214e5f9b8 +Clang.v11.0.1+3.aarch64-apple-darwin.tar.gz/md5/55c50726cd43c1b49a222ec92ea05431 +Clang.v11.0.1+3.aarch64-apple-darwin.tar.gz/sha512/009b29068af7d8a008e34853faa3ce1e20817d3a7975fe4ca5657d1303e546410c903af345356fb94c88f8e95474895e68414a5a04096b2e9bdeed732780637e +Clang.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/md5/e5d8d1d5364dba4c5891c9a127ee358d +Clang.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/sha512/a5efd0a4c0b05ab6ac55081a28cace0cffcd3eefeaa872d239711f667425808f29939c90a327bbf8664d2d065d1b807ed802c161599b7fbda29f554ba9148b48 +Clang.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/md5/67716fd169ad7cb464a576cc10d42ad0 +Clang.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/sha512/5780d34b24fc786406f4f4f814ee6b8bf6366964d7252b61ea7dd3a09283ffb266270d76c2580ca1285a753d68922cd42d2d75b9527d331747325c22224536b7 +Clang.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/md5/77e3d4ff674493fda7958b9ad950e934 +Clang.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/sha512/813a0cac9ae4972fe426451b9fa0d640f25ff5edfe22624a621cbbe737f7977259d062710f44475139c8298265336fcc67fc28dc7eeddd95039bef44dc080ac4 +Clang.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/md5/e53b1db80024cc3a1152d7694291cbbd +Clang.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/sha512/f6b9c15655ca8bb54cd568728fe5ac33df62abbf07029816e892b0483afbb5adc69fde1789b90687137be491fa0351fa5806cf6d869232b3cbb4b42e1f7a5a64 +Clang.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/7ae72cb4b33be0250402f29217e32c53 +Clang.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/1b85e78a78c2bd437c3b21855bb36f8200543d0daa3c2d7be68d5c75ee06a74534e9b8b80ac6048fe05c426e441af3ff019076bf2d045152eb142d7d5769b525 +Clang.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/b83a93c3da36d8eb469f5fd39e8bcb9d +Clang.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/9aab7d5f9be0ce1580ed9d3b3c4da0bff1fff7094794d58620e1fb646ac7733708162f69ad281cd441c4cbbec8985c9906887f4979e5a5ebec8a05c6be06c91e +Clang.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/md5/ea570204363ae3b62965a000e6a3948e +Clang.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/21c9a1418029d5ca0d3d16e943914d8a4932bdbaee1152f74af681349abaebfe4d87a2f51ff06196cea59363b3bec706c629d61f5a37cf0e75cd645fed2ae835 +Clang.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/md5/63130e9a585a747e8f8e31a1b71a27b8 +Clang.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/27f3f72afa62b4f6c8e80d5934cc17119336c65ee070f05d98182e7e83fd02f0ab439a924165c7e6a414409eb2d2044ddf778c0e3e7a6994643b5d0d8b3e2ab9 +Clang.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/0d85a6ace70f1295202ba1c50c5948f4 +Clang.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/574c289c06283e8c2530e64bafb5ff606c27e76a2577acf84112e1ee9b8a3b299abde1e68dfd92700fa472dd6032af02399cca8b436136a5642ce545272398f2 +Clang.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/595279b252dbab5d6411db0d6a514985 +Clang.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/6a1e55e09cfc2325772f11a67f3e7e43872ce07fcceea6852649635778bd472e3e9e6cd0e7e2bf5dbefa1bf0862bae478329b8aedb48b4d7d8cf6ea074e98ce8 +Clang.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/md5/6f973ced20fd2dabf60b12b5ff3b0cb7 +Clang.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/dfc77ef9b13111d5b2d6cdd4d27b0df086ee7a79b535bfc2dcbcc5d9014d0cb0f583c792f812100d64eeadf938645ebe3af72d2df45b396b15b3bc54a0dc3d40 +Clang.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/md5/f96d5a441a56ee914372249fa0cb83e7 +Clang.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/dc2f4afbad26afe4eb43054c70674674a1258f6a1bb17ebd989179336e3de119b976c3429880b3e614668ec5da6c9401346c0fdb8fb45311e818a948c5a2e851 +Clang.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/md5/7f18573c99258f1887aba30228bab25e +Clang.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/sha512/6fa4296f59515ca058d2012ab200e65d4c1f130f40b7a3796d4237f6bf9a72f0a3872bbf83ef1865e7c1cdb75de9c5dd3385a64c55be6741fdb91bd5ef00c6de +Clang.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/md5/dd8333ce489719b53cf4f83300ec5c91 +Clang.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/sha512/356497a88871fa9a725d0206b09462cf4af96cb866724e7c9ca7a7060bea62a6b39426cb2a17d000d17b04052cc78893008c78b1a1c3cf30d6f84f10cda73fd6 +Clang.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/md5/f82aa0d21872e9b50ef238d004ff28d3 +Clang.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/sha512/a2c216727acf6a42c5b914321541a752cdc3cc0b64ae39d1ede1588935ef9d8a4678e5d6f61b2bc1df96a1b4d63812c14e5e6adec7f2babc3175ebfb72421334 +Clang.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/md5/3317c99fba259bddb9f351e79564c831 +Clang.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/sha512/bda2aa0decf76b787986a9a308a3832856cce9545b2c75da49193f23e64ac00dd839d243aa85737f28288c284b9770c1f5408deb4e5440293262d14df2ec759c +Clang.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/md5/826749b99dc7b5f24bac5d0531e84468 +Clang.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/sha512/e15ba270c2ad915be5d0072830b97e4d66daa2e18b3ba4db8f9687633c3ef0dfc1ee312f4fbdd1c921374709f68cb1b4bc9e58b9ffcbdd200c1eb665fa9a595b +Clang.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/md5/2f217eae89b066e190243b1c120cc46a +Clang.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/sha512/526846408cced1707b85f1e40796eb1607d47fb1509435fe7e28368a74e84fa56276aaf9fcab47664615cfe4349c7af3b1ad9995126e888e9002e1a4d20cb1cd +Clang.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/md5/6b6472551ff2e00249fb39ce80df330d +Clang.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/1d2780eb20c2f43659ab2502ff88334a7bf827bb533d37de058e524e9fee9a8ace431761495e93dc9564c80e94aa569066c235bc958cf893c4de5249c4a12676 +Clang.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/md5/74cdafebc133bc54bffabb40547622db +Clang.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/afcad373d30eb465964e17e70b66fd3ea72c1565b1bceb811d82188368a788fdf6a18e388be6d329d9a632f68890d26b878ac0e107ec975b93fc1aec81bab89e +Clang.v11.0.1+3.x86_64-apple-darwin.tar.gz/md5/a4cb1dfe2b86f24b52d730835f8ee31c +Clang.v11.0.1+3.x86_64-apple-darwin.tar.gz/sha512/4526942c33bb4789d3b5975023abdff81d747ecc26b9863c7ea61f87550506d2102a8f83e21085ebbc743ba2be8ddb2b6d4e12a65c9a58e02f6254a335d934f2 +Clang.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/md5/b9bd14c451a9e8efd28c916a85cdb442 +Clang.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/sha512/7cf7ba37c600669f12a74e6760ee5b166b6de4f7e817b9ddf133275a242335ed9a460c226a3f4102cec47bb552d8258b34cf3cedd35b16756f1efb5a3608250e +Clang.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/md5/9e930813e07758c80ca7a1575886afc7 +Clang.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/sha512/e0dce74b7377256fa65f1e6ce461ef5a6424b6ddb157be36393cd8038153afbecf460c966979e267d1de5cb0ed4509a093ed58210eb3cb69391d16b938a4e7a4 +Clang.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/md5/6e345f292464e430d3408826d0ce9573 +Clang.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/sha512/f802e46a46a2946641f07b8b2ef41fee8efbe98e13d23a8ee01047831992b6f115d157520e44879978e27e994da4b63c1a09e6ace63b7c1a1f6351ec04c4885d +Clang.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/md5/ec61190097b601446985c96ca3ffc58e +Clang.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/sha512/00de2b64bda05e27f5129d5702894823517f5da01a42892ee20f69e55b6004b0c1020ecb941330243a565048ed249d827612dc3ce69687401c731ac168566049 +Clang.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/md5/dac3f7585db42a3e8eae4d563abc5d68 +Clang.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/sha512/082ff3234db9b36346553b5c97d5b7dd55f7458aa4f1f1d358e4d4ee2c7805525514c18c35d319a22c56e6c3bfdd4160ff0a2157f24e1123c5879d167f1a2d13 +Clang.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/md5/81aa45c118d96afe17accb9a0e02ea49 +Clang.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/sha512/240979d6e958ad75b6100b5a4fe650c21076dd06b8c9ff13fa397b34bf9816d2d8b8c3ed6040235ef82d11d885cfbda20e5500af3ba3034442744d201264acb0 +Clang.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/md5/b1695d5e231249c07b5cd9d868b6434d +Clang.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/sha512/24a33877f7b97a67cd8acc21ce23d31802bea13f416b5bbf28c262277f4a9e8f6a2cdee642d4d49b7d9b7948bc538f3b1bacb259ab0298e58db910044ebcceaf diff --git a/deps/checksums/llvm b/deps/checksums/llvm index a6cce9274ac5a..69bacfdf5a928 100644 --- a/deps/checksums/llvm +++ b/deps/checksums/llvm @@ -1,176 +1,176 @@ -libLLVM_assert.v11.0.1+2.aarch64-apple-darwin.tar.gz/md5/cf33f847ac2d3c6108ae8ceef33bf8d8 -libLLVM_assert.v11.0.1+2.aarch64-apple-darwin.tar.gz/sha512/a303e03394bfb2770bbf5d2190044875d8d2bd72f342f4796b31b11074904fc0b7a4561994fe47c1a00b9e519a91887de98f09001e453e9c03a8364b9bd19599 -libLLVM_assert.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/md5/2e625a9743e39245b81699370ad444bc -libLLVM_assert.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/sha512/1765c600c0e0db34f90d6d8a9e9c868bc5b5c26375f87e67efd4e0e2b283e79018b49f6d14f092fd4a339530aa6f5f932e25a2151c6dc9cd333e85102b8d05fb -libLLVM_assert.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/md5/117a4147d0ad8a0bd8fe6b1bf1291fde -libLLVM_assert.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/sha512/0e450102c53e2322d0a38e37399cd973a528724a7b651ad10968b23869d0a9e7dbd5686f716740649ac36e0b165bddee6b9c820b85bcce7272b5a7e79ef898ec -libLLVM_assert.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/md5/1cc34396ceab6867b037f1ee8195fd2b -libLLVM_assert.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/sha512/50c85525c8ceb7c90abe4f456f4db911ae9da00aa803dd55468d661015d41afd7417fa19ec11beca90e5a9aebd75c534381fd2f82859c70cc70404c1bd5ede05 -libLLVM_assert.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/md5/e0cb52242f74ede9e759db8fe9f05d15 -libLLVM_assert.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/sha512/01d8f8b7023dc1ebe588e825741df66a5abf398a53d1ff87f3f3ff3e467bff99f13c48e3de8056844c687407cc3550958919d01090f85e9a1ae68ed7f5a34ede -libLLVM_assert.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/31346b6d139261edbf7af16b445d046e -libLLVM_assert.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/1e9e1fd6fae43dea84589613e1c3adda7dfc5a67fc0e78b02687696c2ccc4df1b2feae909c79eaeb08f217ed22e8c00a15d1cb455bedc0047574d4596cc9cd72 -libLLVM_assert.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/2c27762aa16f1ae06f42e1069369b0c5 -libLLVM_assert.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/bf79dd33b928e3298cfde2cb98f72940937d5b4082605391d2590905b2413550e27db9ff1a3a798793b566f297c1312e845e4157d64ec575bad99b4e6a8e0104 -libLLVM_assert.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/md5/424e05233c6260e4b307c6fe2f4e014a -libLLVM_assert.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/b300d6fc007a8acbb6de8b93be1daaf09bd1a051ec8216dc78a2cc3040e4d243fd8a2c10f6d676b049a7c434278638a3c8b740472f72ed4fc3a3b20a003d2414 -libLLVM_assert.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/md5/4b40127aba11d070f2e61103bb71d2ea -libLLVM_assert.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/a75ed7366c5c0f5b49890edd6e8c570dc15f076caff53fb27613b55ac3dea2d3f7b5a2bea61676aea90821edf94575c7f626c30f1d345c37f66be6ef474daad5 -libLLVM_assert.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/d1cd29c95fc1800b079f75f0404884f4 -libLLVM_assert.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/e8784f9f6e6550ac38e4faffcf9ea749953aa9502e1e2ac3502638204863c4b96d2f4b41291f1d90901370702ca144a316e518e7288b8c878e7c334868fed3a8 -libLLVM_assert.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/8c295373a52bb8509ad04f77a5adb8e0 -libLLVM_assert.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/712a43b52d1a691bfc48353553a0db770547c806f89ff1b58bf1c6728c5bb362dedb37d53c16b02c7349063951dfa0b571604daf2fdc34a1c9951695c7e2a327 -libLLVM_assert.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/md5/4f2b664fa1d9d14ab2597f1af29bc0c8 -libLLVM_assert.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/ddc0d99a76a37b08b47a2f5cda02fdd682b84fecb048dcbdef717085a895fc918ffb87175e29eb3734b07c36969c75fd9bb29e6d28143eec59cddd661b08fcda -libLLVM_assert.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/md5/e15a5e9b53a1a70791a0b739dcfe084a -libLLVM_assert.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/06bebf50e864c4a33332c4ef3a9e89c017ed8e8d432e3e0a2a80513ef0389747f254895b9172ca618f7e889587aa194563bf2c591a6205f3fba5dd542c632588 -libLLVM_assert.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/md5/c3de397297a7e0fd616b7ce1454b43c1 -libLLVM_assert.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/sha512/f3008fe3868e8e06dfd664c0486acd913ecf40f099e6abb19e0c4f0dd4830801ff9ce777afc4251028ac08c33d33d49d01a54148660c79b2ffbb75eb1190880a -libLLVM_assert.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/md5/015f837e3677e8bfcc66818a6f3ce45b -libLLVM_assert.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/sha512/12a22e65ef015136925811667f3e42b9baa51794d81c4b10a3a4df909b3f93c7210af1914d31d5488b00883ccdac25951f3cd1f665c6f26ff97e603e4979b982 -libLLVM_assert.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/md5/c14740eac2b400e02813db8934c1d200 -libLLVM_assert.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/sha512/e520acc6a73a959d2c3a2ef45d4e54ad2a4d3f7fdf639719cdb66ea977b2e7a9f54e6f15b3c92669c66756183e9cc2229238587e4f00986184bbac3ab44e91f0 -libLLVM_assert.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/md5/b8c617925b684ccb519880008947c5eb -libLLVM_assert.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/sha512/d0f50ef623ddb0209594e5cb7561cbc5b2754e6d3dbdf3f5627bb25de06b2f95ba27bed76460ec68a3cae893fd8c186183a19eabcc6048463aa3f95d9d0935eb -libLLVM_assert.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/md5/9eee10258f8a8cb28b84f6fc22b90e6a -libLLVM_assert.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/sha512/642b2bc4c8637f4013956a331905632901f8082847f81cb77b0f5307a788b170d45c26e84f3395b19b49a3c90ee5d97c3e57461a02031b7a0338b3cb6a5a7a01 -libLLVM_assert.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/md5/bff3aa0befc5641ffb06c1c0fa08d897 -libLLVM_assert.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/sha512/7fd3373b420dd805d203ece25e9fa09dec0155a848688a433c467dedf8342163f9e2e8fe354b1fab2c63d56b870d36ed92cab6cd122fb94abff48fac48735dc5 -libLLVM_assert.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/md5/096643b2d9e132f97fec0dcb8647e365 -libLLVM_assert.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/c2e4fb56c7dc7b1888e23b3c9cfe50093511ed34f09c189e36ceba7e3fcf430f70c5b6f3579b49d7346e52ec77b9f92dffb4c9a864d712ebd2002181c3eabae9 -libLLVM_assert.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/md5/0e4696b94e13facaade2b01f326643e3 -libLLVM_assert.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/8637c654f4b5de5d786f274f55c84f6dd697d252af332e10983a6a948240d1c57c9783f03e7947dfdb6ec11d0dd889451d95f8c7ead027f8b04708ac1d4a7e73 -libLLVM_assert.v11.0.1+2.x86_64-apple-darwin.tar.gz/md5/c2b418c6dd79bf464138f73bc90a3987 -libLLVM_assert.v11.0.1+2.x86_64-apple-darwin.tar.gz/sha512/6ebff52a9894673d5d7d6f4afdc1bbceb04f8f6f5ca0d48651c0816e1be6b0fae3e480f2c74cace93605720eac681054c99965e0f862e87cc172e7cf2a97b5e9 -libLLVM_assert.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/md5/2793d01bc42a7c1becea921ad0169192 -libLLVM_assert.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/sha512/c1691db3e5c071040022c2e7b841bc189365aa2c0722769054e0eba2e6e8408cab7e9800293ad1cdbdce4ade9987f2d72e557d88a81ba51e5ffe2c0f6d4e3321 -libLLVM_assert.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/md5/927faa9e9c98bd98c52cd85f0260c3a5 -libLLVM_assert.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/sha512/9b2503f70ee5fcd06e3b661fdc5221a12e8001bdb8f5b774ee109c3b501087e906b9247f7f55fe4b797233a989fb4f4578af8c6b9ab3a702fc5ae4998eb64963 -libLLVM_assert.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/md5/f64d51f497030f7ff7071b43ba20e8d4 -libLLVM_assert.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/sha512/503e33e7484b3d2c653a2db4c8df8c09b814ca4a0f59c5b756ec3dcb3bebca0d283ac044b4f832d896e06324d1281a30ca1ff98f62e03eef0bb402487865698c -libLLVM_assert.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/md5/3b267ef027fa5a346c2a209bc61d759d -libLLVM_assert.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/sha512/b5eda9fd02a471a0f5589a7b4782c6b39bb763fa2d06bb5506ebada88679256680eeaf5aa493a0b89550a8849b9cfce96c70329faa5cca2b2b2ec3a8e25e8152 -libLLVM_assert.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/md5/1b84541801d81ca3f75f9ecd61deb64f -libLLVM_assert.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/sha512/ad4e6e84cc49d942494c7ea372f6f038b8c998def46f618451de61145fbdc0cedb20da399100f2941f249bb85fd56ba5bf4c5c7722be8ac093ed3faec8ed7e8f -libLLVM_assert.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/md5/c8c553873c052d79a566c1eefbbb8c89 -libLLVM_assert.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/sha512/de5cf18071d9ce6cd25e615d9788ee4f5391e8855650cd064a36ead9009d054057bf2aa714913dd6006f6c28115b2e78345ac39ee130e154e86d921731e90bf9 -libLLVM_assert.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/md5/92905d2d2599a2b2039ea51d44c14e40 -libLLVM_assert.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/sha512/420f6a23013da5bdc1d6d233e960eb9232818b251aabded8f8086e3d5c123d8a77f6b6ce28eed163cc2d502d318db8139507cb05d9615d024467768e66a0c5f4 -libLLVM.v11.0.1+2.aarch64-apple-darwin.tar.gz/md5/f9f07eef3f7eede43b340f719c401eec -libLLVM.v11.0.1+2.aarch64-apple-darwin.tar.gz/sha512/35023a737a8f14ed209e7f171edf71d2e95ed12d91acefe09a77b44038f6f441337bbe662b24aa1d7da78cf74b7632b6d6233881e79ef41a1c2eb0eb3681d8dc -libLLVM.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/md5/b6ef2ffdd97d70f39202a94833be4342 -libLLVM.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/sha512/f9d2c0feb5abc658215dab41fe1c186549240912bcbd2f79450048716bb72ad0f9da186a1da31cf33e445b2033e8d24d30fe551ee795399f2b646b62fe80e465 -libLLVM.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/md5/1897d208579686470414561695445d55 -libLLVM.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/sha512/8b011a5d49c4ac716720ca7db21c9b0ce12e9f5a906fecaade8726dea4e30165693e61e34552d8705181b564facdb2de918a56db91ea2f85529563fd919270b0 -libLLVM.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/md5/29e687eb45ff43debc08f6544a8c4b20 -libLLVM.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/sha512/e40b8ef879b540bf92bd19198289535f9d46afd87e90e49b6103abc714d5329a25e7dcd908401f58ac374a5f2f40cb194f4a85fbf7492743b1a946dfef16ac22 -libLLVM.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/md5/e406a526a8e6ca1fc6e7f95f3328e9d7 -libLLVM.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/sha512/aaccb3e1fe2fd329cfea6d5cc2589ec50e6d5b84048df4786e7b686ba5cc2f85dffe88198cb667ac422b00c04f57ad7af9fa01415d1aefb1e8594b109f4055d2 -libLLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/d50aeb112f181d95f219950ec9e86e56 -libLLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/e3f3572d4b2120b4e681a08c2bf359a0165c66b32960a7313564567347349e48417e20f1d71ba4123a3dd433782adab2805448dc64fd6dcdb948c8d4de16afa1 -libLLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/582d0ef077ea8619b18d510c6f59d696 -libLLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/2f0485436518e07f20f975b172b26cdbaf5b7ae5730c68ff146d9e48f30ee96784e1146717d8142e2cf7ea1b6d0be9bd7ba796f08352c9cd27e00398dca51b19 -libLLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/md5/b2453b1dc177ef0445c36246344ca35b -libLLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/ecd0dfd78861f70ecb92c5e58659588414e0eaa43caf4dc4b4447ec888096423ff61b276bdce191a0f9e218d86db877413e21c34527fd900f5eb51192cb2bcf8 -libLLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/md5/89ed91916bab44b1b35cf7a32e50e1ff -libLLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/a12efcbfa717ab122af87fb5e8ba7676b81d2b58db73df8a52781208c7dada14091ad2a30e6dd1c8e1db8790734cb81c86c85204cb08cbd1f794f3f10834507b -libLLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/c76c398aeb7e652b9647f74a0e685773 -libLLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/ebf7a898988ec75a093c7687a451dcbc1968934fe6784e4e73c9387bf9e0d1c15f5466a38c2d9c60a58810fcbe45c7a36860e0fab0b765e177bd1f60c589e819 -libLLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/dd3e28395e524f0a8b48543e37dc065e -libLLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/ae34a1b1f063fae29f29ef2be6a2dd929c3df20b2db8fdb5542028e961a9e5c3513dfc56bc129296670f9e2cdb2ccaa1c43ecafc98bdb2acb10de233e95e2567 -libLLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/md5/d82e70803993ec10c84bd064d2438ab7 -libLLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/3f15ef9df5ec63a0a9749adae7aac5245b35501137885c36effc840edd905d791b903e06489e0433caee1546cfc8bc14d219be02fa9d26fef16839600202d8bb -libLLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/md5/b017a4827d2d918446c91009be069d30 -libLLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/bc6c559272132158bd76e433717cc1cbe08e34f0a184c867d8a8da69c64e4eee70a77a3e13643f14087bf2a1a9c688a4e9b8aedecc8289813e35d2494f0469f9 -libLLVM.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/md5/0a0e529f9421234fae117fb448a64ad0 -libLLVM.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/sha512/051d9ee52fdd62d6c5ac9aa7a1c09b0f35867a81e0e6cfd7695dbdcbeecb8e8d1927edbb1cb658b9cc96ab8134225bfa40c6fd3ad609d216c17cee09f6ae72ba -libLLVM.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/md5/a5eb3f0bc3499b559d3d45a48a250749 -libLLVM.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/sha512/05d3069fe9f907cbf0e6c6b99c55ed0c4dd4ab77c67d756a6c06668244e23b5b3957229332fed95c046f2893d0bafd5ad53537ea477984d042b4122f2a2196c1 -libLLVM.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/md5/fc0593d21d666a77f816686f5971d17a -libLLVM.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/sha512/c7283d6329e2549ea1fe278f74f6a0bb976be2e9450dbdcb71522b1fb0ff789bd03983eea16eb0e8837c6b965ab7629badb6e005238065908a6823942817805f -libLLVM.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/md5/d2beae593f940e3f92cc35df3132bf10 -libLLVM.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/sha512/eb04eb0f1ac661806beb2c2324ad12c0af2fcf8511290a72ef03ade32e5d48f651f5eafc58f0509bbf5b3cab181ae3dc9796aae8689ce6c96527dfb8ba47a57c -libLLVM.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/md5/2dd483ed4d99b12d14d8f255d59192d0 -libLLVM.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/sha512/ccc305cd0037669761e66815a8425c5060382e6242068260a5aa2068f1f8561d7e629bc787c56c399e6e296ca7fd178c8a3a38ce11c23db72acad8ac3b0f5394 -libLLVM.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/md5/fe88a08c6daa25446e44fc0ed5d065e4 -libLLVM.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/sha512/fb7c39f3838d6dd8c7ada8b6c5468f93665efa90bacda63a10b63c64cfc4eddb6ba1833930ba2450153633a4937845f7ac8adf961d8e92949c9ead1323e723c6 -libLLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/md5/75955466d931ab5eb840bbeba50bd49b -libLLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/70100f187d81cf2f374a5178c90d1e109ab66e539d28998366ca7cda09f50c2c5461698fb54669134a23435d68f5891deaa537270bd1f3cdfe9b52d3699b7734 -libLLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/md5/392097957ae95e62d3a109a043aa1d69 -libLLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/530d2a8838072552813fe3cc558bb020d74b60350380fd88262ef171689531e6b65154c090b40c65a03fc920b59ec9806e136ed6ee3ef8a46c97a58224f26aaf -libLLVM.v11.0.1+2.x86_64-apple-darwin.tar.gz/md5/1c2aa5d62f6b50dab22a114b62ba9bc6 -libLLVM.v11.0.1+2.x86_64-apple-darwin.tar.gz/sha512/f844c7419d05a41a7a44324d960b787df18cfad676602e2ae7c8614d5f6ded27b1875514a3e81c824d5ef01e676577518dbaba88e280824f79f9384f2777df93 -libLLVM.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/md5/1901bf5fe9ddd564ed377966c7f5bb3c -libLLVM.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/sha512/6e8f4a03918eadd55384418a8bfa093e6121e04a66af141d160e706383af83ba0cdd3bf5d178fd075970e191c281e0e3ff74de1c27e24ae2b1e30b690b48d5e3 -libLLVM.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/md5/a85134894c98324a6e7d468007c31b01 -libLLVM.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/sha512/253fe81962225ef3b9334a622bf9026a712a2bbc8e83062e399255a514cc7ca73c0c3a12ee51cdfd86d617a008cf5078b6bb33850a20c2d3515867612f5ee9e9 -libLLVM.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/md5/905a95270474484a35ada81982233518 -libLLVM.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/sha512/c79b3022a13a2640c8170b50cfe540b7579477262d2d4272e90753df679721ed097f73501452927e290aee38e25035d577edc489c20c750594b9949e2e2cf7f5 -libLLVM.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/md5/0817fdff6dfc29bdfd89177f9d462978 -libLLVM.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/sha512/a5e352ed9a16fe2b1c0116637f190b4da08eca0de8573562a687d5aa74e0301ea7883a726d3a71a920572df65dd3a4c5ebe199aaedcc6a4a54756228d5512f88 -libLLVM.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/md5/d0bc5b1140f4ce03b603e270cac4f232 -libLLVM.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/sha512/87400be01185a31fd90a57bed74c52529e7615a927cf13c8e665afcad4ff19fd4f4dcd9f7f30ad06b912743a1f3a5b2520d32bbe4a336236c36fde059b5da086 -libLLVM.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/md5/bfa4b7684833a4179dfe6940616434ff -libLLVM.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/sha512/5deff641b7ff86baa2239e1989659f458d0161c6980523e5e300630d4dfb202a3921da3a4bbcc918ae3222d6e11d845e51a0ef5034e0f222e2c8127328322728 -libLLVM.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/md5/42c2398270442110878aaba30152d4fa -libLLVM.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/sha512/b3d4e960fb9376212238c953bd705c4997f0cbe37adaf1153b4e9741af400255ba2ef9afda9400b0dd6ff03615709b75d20b3ba55a674483a59852e0f2e50934 +libLLVM_assert.v11.0.1+3.aarch64-apple-darwin.tar.gz/md5/1468270825363bffb3d99d3ca9216d7d +libLLVM_assert.v11.0.1+3.aarch64-apple-darwin.tar.gz/sha512/b94c1273553204440b5f51a3b1fa8c96ad8eae2090e50c3cf10fed44f960e5d0a6c95d967b7e006f842d550cc59b06ed8585962399772e1c2d6d1e6cf7686567 +libLLVM_assert.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/md5/5ea96996524ebc1c69794d7e9ba2b252 +libLLVM_assert.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/sha512/8fd7d5debae5277a5d099c24c195ed1c110f95169bc05ebe42fbb697683f2012a95507b682dd978a25918582dcfd548233d26a3e74a3098e85758dd63b5ba98e +libLLVM_assert.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/md5/49e5dedbdcad40a5966aca51c8913d3b +libLLVM_assert.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/sha512/107a57a298416760c2f806901080963c2b1b3d09f16bef698db6e28b084c36f86796956deff096b4e014a61b29319e1fe1ed95f6a807ab3f1a6350288f85160a +libLLVM_assert.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/md5/7d594f4af283181513816fe50d299861 +libLLVM_assert.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/sha512/f074bca4a57c827c16558783b7efe8d31f12d4a0500a374ed9303a4beba2e848343d9d66da4bd0643c8df10004a6b7a9074a0f99bdba6e2b7eae939a892c7a0f +libLLVM_assert.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/md5/1328f6c829ddc5361e5217aa9d2ba1f0 +libLLVM_assert.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/sha512/238fc6e8eeed72f6fc23b9ea5e9083b8812447799fbb73ba13b2613c6ae0d35cdd8835276e8c9e34450d8c682121cf28601dbc6ce6c160ccabe7c36043441d78 +libLLVM_assert.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/f863e9b6afea27c93b04575194bd83b7 +libLLVM_assert.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/deb3d89d5cdfdeee2a8665d79e2cf77dca693c66bdfd5e10fdba9cb54cefce27a85aed76804ade511a65aff5e1a99f66748b827253ffdaca6c5c55c5947e4d5d +libLLVM_assert.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/0fc8a804ddcb6bebc2ca285697427a60 +libLLVM_assert.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/8cc0f98bc20bcaa47a6c6e28a559018b572b27c2c3507554abd2d5a09ecc36219881ab391625f47a581cf7a569534b693760abbe3b31a31b111c3a751051bc55 +libLLVM_assert.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/md5/eaf1aa0154ba5906a48848b1fd4770da +libLLVM_assert.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/e4531b5eb09be3ac6440e32dcface0360cc75595da00fa1bd178306e9780bd26eb7413a705d4b49d3d7eafd8f403a448bad9aae40bad56fb40bbea8db75e5f06 +libLLVM_assert.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/md5/57307cc154a85a84297f94f71593829d +libLLVM_assert.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/c8c8d35982a7df99ec468b688dee8ccf627512c6f009aea27cbd7fc8d350bcb915136753c18fc1a0ebcf621d9540d1995fae3f7532c31dfe70f1b3ea07275695 +libLLVM_assert.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/701b49c22b69b6e4a91cc1559b3b2622 +libLLVM_assert.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/1173b249d04df31a3d17e120666953654ce3274b749e137a24e137faa28b424a3a60bff9bf3c23f8299cdcb6b77fcf883b60654abced4b854e6080788a4093ea +libLLVM_assert.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/e781f504156bdf748cbebbae86173fcf +libLLVM_assert.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/572d0eadc5f3c495aef529d03fe3a3f890cac655fb7b8fc7dba92943023355a4494f72a2de5bb302756d5bbc36658b32babe4efdeca2f85f0b9f244f3c5e650e +libLLVM_assert.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/md5/b460698fc6f652366a0b869bfb2b1646 +libLLVM_assert.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/00f3caefa2885be6550f20a86048057b6beb17044ea822ffa9fb9df65c848eb7ffafbac4f6546ca16a1dfc344cfb851b7d42cc3a7f3f8a2b19a5044748a6f64e +libLLVM_assert.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/md5/b4f0efa367651e7e37976cb7052eda02 +libLLVM_assert.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/5af81df4c76dad4ab5387e3006f350f9387dbda5b131adb2b75669dde284a281af34f041dd00a0e8b6e0e8e92e7e4138fec5f83a6e2fc82fca8c3c6a637900a1 +libLLVM_assert.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/md5/ee47fdaec1107506ace19f70d090622f +libLLVM_assert.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/sha512/32c7702bc599f06be6c5403574b1cece6d07b2c9787bd3b08e73a3746a187956609f2b7cdf0c673fbdd3105030138cf0c622a08e59f4180cea5109cc486fc570 +libLLVM_assert.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/md5/d6a47e2c969aed82c377f42248b54b75 +libLLVM_assert.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/sha512/c95f7e895832deed7d99155ada1df46e1dd1e43dd24fb8aaf94e4109f301b8163b8c8f83f3a2fd65d7b445e4d194f456e2cdd93ba36ed70ac4131c805a0c89e0 +libLLVM_assert.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/md5/158ce4bcdb7cdf26faad269a6133e2eb +libLLVM_assert.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/sha512/f19f556f25e602da754e666476686411d484297cbe1d51f8d21e167feb241c44e1b94d502b4984649340c515dcf38a53be9d949805c29ca0e959101900f68fc7 +libLLVM_assert.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/md5/fe72914bc292072e1f474ffb41e01a99 +libLLVM_assert.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/sha512/87a300e6928b69a4ddc59a375a9c172cbef82dd14ee101ac97ea1a652e1e4cb69d8c1ba61f4e4c2889884c58a571a257cd3390a504ceb88b0cb4a514143541b8 +libLLVM_assert.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/md5/309fdd429e740941e0deab08f1043c5b +libLLVM_assert.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/sha512/b01bcb83a6ef208692bd26899e7e75177f6bd619afeae0dc46217ece0f79bd81d2f07fedf70084478fe1f8abcc2d031a0ea06b55ac55a34f3facabb38a2a993f +libLLVM_assert.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/md5/a9ee212809e891f147916cb6568f8b0e +libLLVM_assert.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/sha512/927a010c326dac7faa4ce822b7ed01048b825a8050ae03d11963a864bf8f70b810e58985d37ec04cb69e7ca5c8a4956438f8c5f50dc8af90dc00bb10c0b6dd28 +libLLVM_assert.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/md5/6a2f2cd6cad70e27029f4a7c78196589 +libLLVM_assert.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/77bee805988a0df69cda34c5196f29234d5e4c7cf55da2154fd5a4f431123cfa3ef870a7ee10dd773eeb446647f500edca844cc89d1fc39d04caea6be58ce6a1 +libLLVM_assert.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/md5/f780073977fddf46200103b476ba4176 +libLLVM_assert.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/40107288f36fe50e8f60fcd7b18a9058f36a6794cf8e8f06328437fb77f0890e1b890aba7f931329d98219faaf922dc14474f66340e6a70b8309f171e2bbc901 +libLLVM_assert.v11.0.1+3.x86_64-apple-darwin.tar.gz/md5/db4d528b06836c46d46755fc93cceaea +libLLVM_assert.v11.0.1+3.x86_64-apple-darwin.tar.gz/sha512/cb62a0db35f0f1cc4723c2313eed265c4e11dc6b225d5b30afd7e2aae0c79b0dc23558640a409862a31ccbe337e4c6e4c1a35f3c93251a1c714dedf5f4637716 +libLLVM_assert.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/md5/b00cef3645e589cb217d8df10173124c +libLLVM_assert.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/sha512/4de8fd6f90a5f85278c1045731e71855969b615e228a6b63bf53c84b145c3d8db4a7fc236301249e6ac195ee13fe62b0c23dee1c50c968ba74a1f9857e5ae3d8 +libLLVM_assert.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/md5/d326d3cd8918ef4abf4aa26a93f77310 +libLLVM_assert.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/sha512/ae49a764b848d179d8799793a79ba3cf03ece82d84e4d26b1f48256ce159984b1c54439db1f7b928f0526a85fb3b11021e9620104ae0404b7b85824aeb59d42f +libLLVM_assert.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/md5/10f34bf03747a92e6cdb6ed206b21724 +libLLVM_assert.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/sha512/ed06c31ae0024e60f7ac3a77dcde37e8aa545b280e0aef669edd6cf3f060b6acb90072c488f91a44bab6e573a3e50576a4b0a11f12596a63729a46547a7276af +libLLVM_assert.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/md5/55ad55e3e093d1a3c32775036c68f629 +libLLVM_assert.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/sha512/d1a30dd14b64c49397c45b2e53aa6099585ef22014fd9091dda39a7ccf03c78b85b018f3844c90c56aff47c6725bc5dfd73b5e6402ea13f73109aea6debaa276 +libLLVM_assert.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/md5/7d88bc9491b83793e39f494f45b7e636 +libLLVM_assert.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/sha512/c6065593e89f861661ec9c1fb35e416496e79e9e0f56e5ed4b7ba9fbf8b236716ff7733bb60b5de8942b6f9aca5705e0236e7fcbedb24109767fc12c29542d01 +libLLVM_assert.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/md5/a012e6c9829ec51f260bbdedb20a2863 +libLLVM_assert.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/sha512/24dc81297cab5d7eafa47de5d0ab5ca0b3da3ffd032de94488c81556d5ebaec850884dd561e14de98fa7dc0104d45acdd0298e0b0339dbb7351a9dbaa32320f5 +libLLVM_assert.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/md5/bc0f8437c9f2aba1a7e696cafd3b4618 +libLLVM_assert.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/sha512/ac640918e72b169fffd4a43f1453965ea0ba734c582c3f6b04cd6f020b032b4745ed79208a43ba1c1f700f0122596466da4ed881a89a67f6df3a62141dab9f04 +libLLVM.v11.0.1+3.aarch64-apple-darwin.tar.gz/md5/7b2400d9ae3ed7a9091011b7951c8ce7 +libLLVM.v11.0.1+3.aarch64-apple-darwin.tar.gz/sha512/9078fc8c24d1749b303f5c7843bbb6b5322080e4adfca0b96d7757454783617253dfcee07f24d1adaf3768563d298029a69bb75d39dc0701d024c27c66e50fd3 +libLLVM.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/md5/712ea06bba40025d5ad86229585e1eb9 +libLLVM.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/sha512/6260d68dd30f8950370db956dc85ad9ba1e474e9c27781ca2640d8d669d3fe34fdf2e020922e4f11d88c4394bb1e72f81f211e656684682207418b954f78102b +libLLVM.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/md5/941dc9c8a4d11cd7cc0bf5edb47ae822 +libLLVM.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/sha512/0ae65d99a49713aaace58e31f539c07727c34f30e089134c64b96b35dd061f44fd9889372364b1c9a36fe295a005160210cdfdf937c23e834ffa1b4260c6705b +libLLVM.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/md5/1bf46309788bf2827e337376a7a7355a +libLLVM.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/sha512/86dcde04d89730219b22dd67ee113942ef689125cfa6d3c5294387561b7771caf948e889a0cc93128159427704500c793b62e6a6cd39a372ff6be735fbb0fdf6 +libLLVM.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/md5/09e727bddee3132c944ed1404c421c2c +libLLVM.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/sha512/00a5f853557ca1f65fc807d3109357b211ba1935de66e2d3b59c8e00b4837c04b2ea72d6c6417a8fd788835938abaa8a4fed9e36d3f9cc009260150417465d72 +libLLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/46e656d8225b534bfcc01f7ceb8592cd +libLLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/325f4d521fed87fa75b296dfc8ea83e4fe5b04e8902f66d15d2f020b5b32236184a7b31a92eb5e0acc9597b1a21f94e6b4101f9844615767b03e6c2782c08760 +libLLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/26c52c856334ed443dadb7874a808946 +libLLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/e1bc796fcaa258e8c650c83c0b533f95bfc932c389d0ea507fbfecfd1d8829e746d53377508f909971d83b4247a0b31c31d2d1106cedc84234536ac19d2dc37e +libLLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/md5/c223e17dc0eb63e02625ed269b5c4064 +libLLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/90d29712769299ff526c7c7a4307bff6e519e1e5d991b4bf4279f5231263eae6103f0887ed2310c45052c904cb05d5b059ecc3ae0d124540fb0886f8c9cbf61c +libLLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/md5/54def908d9d9d93e0c16770344761dc3 +libLLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/d89b9ef23fd2bc0f974e343cf4254747a4ca2918bdcd9080846a56f2580626b80c7fe326488083e57330d857227e7bdd43455fd5f6c9dc90fdd0f9eda3c751c0 +libLLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/c927115d9435d5712dfd6aec848404b6 +libLLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/53050300ce37e79900677b3a447570b19518bc3ab0d13958274544686bba378742d7c6ad87b850a63f825a5fbeca0287f8b67332adc81962911e43cf952c9806 +libLLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/3dcfb85331c0bb7184bc10403a22447d +libLLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/9615b09038238a1cdabe1638a5550feb8498c9889cd805c5876350d7d5185a4ba467f2a97d2c4e192adfb59cfea76afb109e3c9687de183951a535b6b8271d5f +libLLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/md5/8b918180fafba11ae565771ed6839d6b +libLLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/29bf5de468872c0eb90603d2981e891536da58d60bfb2d0c095dbd9ad7c3390276117164077bb89f95ed3cb21a03c0e1245c4a92cd46bc9ed25e4204fdc69e8d +libLLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/md5/3f7054e973baa77535629c08f7b22cab +libLLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/e10819701d77d14bf28bae2fbd69ea03007ee6cce1d6c54e9dbbbcc5dca8d6c2351ee21007ba19da827c445626f5b4bb7e345d54971ba1a35e04278ed9d9b83c +libLLVM.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/md5/16c1530e3df1d137674503bf02423ffd +libLLVM.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/sha512/8284f5a7cf1f0fa8664031e16ebc12b7d5131de8efc7bc9e77fdf33a084294e40917f723ba9b9f56384f527ffb7bf4c7f04a2dff8953d25a2f473c90322f61d2 +libLLVM.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/md5/81670b1d368e9791705b71ae56373952 +libLLVM.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/sha512/dc0525dd275492ccd24533b89aa91a85660cb30cc3eb22f3c6fb10c854c890b5103048c802e06566aaf60d70bb00806ccd0552945573b78cc797295918968fca +libLLVM.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/md5/827cfc808c50b301c1645a21327692bf +libLLVM.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/sha512/dc504771c7cb465e40e4f6ce4b62b1f5114018209010e7bb199c2753438c1c78534d1aae39246d06fdca96f799b20c89e20a51cbf06a9ba318d0ff827d3a8519 +libLLVM.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/md5/fdb9e3d33d3b0e2051548d6a55d03daf +libLLVM.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/sha512/2cdf2fd7706c4e4ad80b12f6fc77a0389d4d015e3550c346f17fa0905dea058eccdd8e5b167477ff8ffb74cd1fe673af5c7ae5a13404da0b59232cb0e66669b7 +libLLVM.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/md5/f486dfa62a336cd7d9e1b00602fc1177 +libLLVM.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/sha512/8264c0cbd63fc4dc17472526723ce6ce4072b276d06a95156a259f8f2b2524e1ac6c5ca768a974f8f1b65bd0674336f7922225d4be5edb90680e549774f7d05e +libLLVM.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/md5/fbf1949afaa7e4d14722fc21c3dc7892 +libLLVM.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/sha512/3c897e31218f1975456d2769678f99c14b6308a464beea2fa6a4f534f355b5e9a7ef51c3f5fb0f44123ccb3c4854b906b96bb35a9ec01e1a1f39df903fadb30f +libLLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/md5/2e82ea13c59bf22f085768766d6dd8a4 +libLLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/664323d8461e5c64e26d8fb84d3d4bc68a8bc2020b3b397545aa651bfdc0539b83ca2c9bec80314322ce821ff225ae48e96521e23b159a684e74a244bb02bb72 +libLLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/md5/04f3934d4421e452673e015dbbe052e7 +libLLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/b8a0a8b6c56dc0ad4b6e179efc8461e69e01e69de8dc02b46644f74dcb859a5d6ae293b38b2091298e5024b7bbef041cb5332b095e6a3be9e44fcb8c21b54353 +libLLVM.v11.0.1+3.x86_64-apple-darwin.tar.gz/md5/487f852d540a46d03a804318067cab8b +libLLVM.v11.0.1+3.x86_64-apple-darwin.tar.gz/sha512/9158b5c8cfcc3dd75d835d6fae6b026bd57aaa60e8685d0777de8b31c5b644b40ac470a38632f6b0aa5eed85e1d001d3789a7f2989530f03f5e8dd95b947223e +libLLVM.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/md5/6f73bcabc8c748b997ce2d9433e7c910 +libLLVM.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/sha512/3152c54501343e575dccb928e55f2624340cf53e84dd67cc606e8a6ec18bd3b8c4121089962fd99af54acaab70279172b65aa35fb7ee50b53cc83db188febc07 +libLLVM.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/md5/4036faca6177ec29d38ae3d93e0a757a +libLLVM.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/sha512/0875703148d4f3056731247a6395c268e7a34edb5b25c9e1cddf507c13afd2f03d261088129fe822028a02e34842e41c48eda20b572b33d714d17b5b7c6f549b +libLLVM.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/md5/b1aa10a625f7e069023e10fed0ce6ff9 +libLLVM.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/sha512/b196521d0fcb830f137d4d67526a3fb46ae0f7591f290e3e0e45c7d2d412518d6b29e005edb38fc5d56b987f5f47f7bd272addfe0cfb1a9e41752f028bd0750f +libLLVM.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/md5/154eb676aa0b1fefe0f4bc2418deedc7 +libLLVM.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/sha512/91a79167fd025092a8f36cc37909a2b3f2591cb2f00809a6846e7abb8a41aa1c2f0f0c1e29d4365266c79c3cbacdce2325b58d09b1250806ea8f9e031a7b4c75 +libLLVM.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/md5/1a566cbd9e79eacfc7a76ac3defc4b6e +libLLVM.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/sha512/535a4e7c665d34e59b5490066373ce21c400001ed86e38b4f5ec7de9ea758b91fc58dadadb239213c4e27185eff33a29466250d978d3dbfa08e794f50ca6c3d7 +libLLVM.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/md5/97e8cfab218937f77421285f0dab30ad +libLLVM.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/sha512/cd514c19006f4f997b8530109a8b2f0099df1e0af7c0e5fe85dea65b01056cfd2b959190e17a3da8a3a223c59859aadd7486d1b6a71ab3207242e9bea891d546 +libLLVM.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/md5/f4ab87e307e014acf4600dc0a1d8120f +libLLVM.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/sha512/a44840a51cad8a7d0db296a3f3613372562c3c5464bb2f1a8e0352d9e521bcaa83053a70d0e369d75718cdd142584f24bd727b6717401174a270835ab40205a1 llvm-11.0.1.src.tar.xz/md5/6ec7ae9fd43da9b87cda15b3ab9cc7af llvm-11.0.1.src.tar.xz/sha512/b42c67ef88e09dd94171f85cdf49a421a15cfc82ff715c7ce6de22f98cefbe6c7cdf6bf4af7ca017d56ecf6aa3e36df3d823a78cf2dd5312de4301b54b43dbe8 -LLVM.v11.0.1+2.aarch64-apple-darwin.tar.gz/md5/643089e5ffc8a089d87f2e729f40a62c -LLVM.v11.0.1+2.aarch64-apple-darwin.tar.gz/sha512/5647ad774082ad4257e6745ae7638bcbad09ec3de33cdd4a3db3f2e00ec3e47c60804e269d5fb394be736c65479ef1a9c6e707d9d632ec3fdc6263a416afcc3f -LLVM.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/md5/6d9db51cfac613c743e77f84d7957043 -LLVM.v11.0.1+2.aarch64-linux-gnu-cxx03.tar.gz/sha512/752db15805b292746b49b675eb66d9d3b2c4f2180ba9b4c5a5e75bffe1d309f47ba5bd0fb560648924e80dec3b8ba1bce48a9a5168e399a3776f2661e084dc10 -LLVM.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/md5/7f795319046e33dc37341af6381170c9 -LLVM.v11.0.1+2.aarch64-linux-gnu-cxx11.tar.gz/sha512/6d35efb792aefbe7c3ad7c9cc20dc863f3655df22caa58770ab63515091c8f57f28002ca45e1dda733287ceb92d768f67f53ff0033b74291bc9f67a2f144c5bc -LLVM.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/md5/e504ad861c62ca2cfc68ed85b8b5e22f -LLVM.v11.0.1+2.aarch64-linux-musl-cxx03.tar.gz/sha512/7fb128c011f03fd881e4e5137b51d80ba1ac7256eca70201c9b9638a85eee485bed25ca3978b42735e5930baf0a93b95fc3c204e508cf667291267fad905b63a -LLVM.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/md5/73c91a8c3cfcbd5249edd397c15d2a0a -LLVM.v11.0.1+2.aarch64-linux-musl-cxx11.tar.gz/sha512/47ed726e2d4aac874023c5497e7ace6f6d8122c8747825e9b4f8d15ace24d971eb4b6324dc9053686d1bceb2efdad90d0a347c6b5d12a398edcc2afe1eef875a -LLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/161a8076cb39ae01294321ef915510ef -LLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/55c1cd7f688b4ebc5484b4772de37e5db306ece8627e3bc37735daf72379ce562a3537176b40e63c9dd39c729d9bc7074544646cb08d83cc8a95fbb1cd33ccd7 -LLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/e915b79238724fe445a008dae9ffa64f -LLVM.v11.0.1+2.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/ad659697413e87dc30338fbf586bf9ba10b08ce39256f5dfcf29a9c2903a029c2e9535a8b6e1c116fc88bb37361804a4ed4010e658fe9a7681a74a541cb79b65 -LLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/md5/b061d91ffdc7a49d0e1a6f433b3c866b -LLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/589d677ac812e68f110accf29292d115ead51f08a36c2cb0d58a0a28b6d035c51fef886808014a5d4422d577426f0f43d249c9d8cad47300c75ad6350f1f9a46 -LLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/md5/36b50d11db9a3bcdc72b8975643a425c -LLVM.v11.0.1+2.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/e7f4cf2a1c6c4b59a9717eaa13eb55598b4312c58a357f079af0d4871b15530c637142b6c41cc536dbe1e328916a28f09e54aa0a898e16a5eeca837e4876e356 -LLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/af4fd5b2e3b38a4512d3e630e791ec12 -LLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/9d909ac07e4f8174fb93e217420115267897411b7c414090bf9f3515536126a06beb4ef3235d38ebe3f99e023507b8413022e1d2d8d1daf39ecc6f332aa214e2 -LLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/b186a654d8d1b0803cb861ac32f903e8 -LLVM.v11.0.1+2.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/7de25cfa2852da9d984e5582d523e083ae49d54b5660ed58efbe180d2aee00d0271516b9aceff039492cb64952777e27388e34d6aad18875704a6839f45a829a -LLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/md5/622b4568924282fc3bc402cb3039e935 -LLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/75e55466ad2c7b7c3f5e648adf9421e9735a721cf431a106f324837b8295e2f2b0f9dd68df0743055187e538455e52a6c9b9be495eba25ca6061793f6d59c741 -LLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/md5/585dd61369209d70c26d5fb4f17c3608 -LLVM.v11.0.1+2.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/7c87adee39f5ced1a49ca92634995e18bef7dbc040c7083fd2ea061d9391c43c3d124f439e4ad24f5357cadb77569f7f4e9fef1fafb39b1662c1e739f4a8d397 -LLVM.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/md5/d2a97580540080ef421f5e78be78b956 -LLVM.v11.0.1+2.i686-linux-gnu-cxx03.tar.gz/sha512/4f4b061c07f85280487e2d02528f9e639171e0e85eac757dd9c525f7639149ad5c23db8721204a2e1099915e540496562dd8111ee8188d1b947003ec5256f06d -LLVM.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/md5/a35c89244bc09f7dc021286d566d7553 -LLVM.v11.0.1+2.i686-linux-gnu-cxx11.tar.gz/sha512/9a2332863ccc6b73545f2fce1c87f7ce5f9442b3f4d9ff28b228784829eb6688ddd7668726f296f99f2953988657f9968b28a317661377c79c49c0ec86ea6535 -LLVM.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/md5/3510f9922fbf558a96b3e633b2582037 -LLVM.v11.0.1+2.i686-linux-musl-cxx03.tar.gz/sha512/a5d3508636d0e5c670a5a01c55fba85bf0e15b11bdbc29a0c20f42ed6f3fc1e507d2e6414b45637ec88c158e51d26cf156a6e83af26941e205667384ffcbdfeb -LLVM.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/md5/00a689e3f703513c20dadc727e18360a -LLVM.v11.0.1+2.i686-linux-musl-cxx11.tar.gz/sha512/ecf5bc194d6b221981d26414037970f5428265955e73e35ca186bd98a07ce2b91ad4df1ce092d06944cd7ebbb450e74d34d1578c7db880bf3e417a36a61951ba -LLVM.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/md5/37de0f4ba020ec4ddfd08db8677a0b05 -LLVM.v11.0.1+2.i686-w64-mingw32-cxx03.tar.gz/sha512/fae73df50c680973f804458f973c5d9e20c173b35da2173ca9cba384d7369bd2f1d4d244104a4b2f93233b93901e79258e7975868a5e47200a4e6e98030e64b5 -LLVM.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/md5/aef3ca8f38017759d9d33551d44c7c36 -LLVM.v11.0.1+2.i686-w64-mingw32-cxx11.tar.gz/sha512/a675aa4371003e2d952d45e4f98de139ac03bab483acb7fd69935ee22b3d3958f31872cab8f0b406509454ec7deb912cf1890347810db1162182d197bd0d0fa6 -LLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/md5/c17f733e53a5d405472b05d9b94b8872 -LLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/e798f698a6a8e2ccdc087b2503462c20657842c98777bcefd3b30e2ae3d6ada7fa2f0c9f4b0a89c42b1a5a251d0d039161340f1b7b5005411eb39fb6b12265d4 -LLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/md5/698644a78d84116938e6a79978af71e3 -LLVM.v11.0.1+2.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/2700d72c7f7f5cf7a76e7f0d4d10d308f4202ea35d67a811871245ba3a4ec3bb8933766c6ac0fe16041def1b4651f4c110e9966fea8b37d8f7b7514405b58196 -LLVM.v11.0.1+2.x86_64-apple-darwin.tar.gz/md5/a65d108986317e1970ff9b3af062e882 -LLVM.v11.0.1+2.x86_64-apple-darwin.tar.gz/sha512/6013d60bcde54f3f916456772f37c1d33a1fe06358deba0dcdd64c6ea3a7d4c20d04c058785f35037915ea5fa226ed53c72c8b1e0982056fe4b4eedd90357450 -LLVM.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/md5/ef0ad19c2a89ef2dced00da0cf342e45 -LLVM.v11.0.1+2.x86_64-linux-gnu-cxx03.tar.gz/sha512/ba28c3532c38c6ab3fd2880a008ae99956ef1e4c8fb1c5afaf8ab7391f9c6b2bed828c4229f5e6e42de916560f57384624cf0766ff09358373e7d07bb1719097 -LLVM.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/md5/a4456e826e353b1e7767a4a1e9b4feb2 -LLVM.v11.0.1+2.x86_64-linux-gnu-cxx11.tar.gz/sha512/cf447db3dfafdef1f89b05ac9988633583e13c9d7cb8f13d95de8c196789ef1831b3f09a8f2af156a1fea99ff8ffa8396b0a8d58c2c16e5b806f7076418a6507 -LLVM.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/md5/c0e9ab261069c4b4dca965fb4f89e471 -LLVM.v11.0.1+2.x86_64-linux-musl-cxx03.tar.gz/sha512/f9a6208a0cb8ff62e511064c84d919e154234760c548925f688029e7fa5020da1687f2473e653ee36b031e97068daf23d7fbdf7cc93a8f8bc41ebfd542c59755 -LLVM.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/md5/48c8983f295d9500005ae999c980aafc -LLVM.v11.0.1+2.x86_64-linux-musl-cxx11.tar.gz/sha512/0c6afb6cf49e66a36e6c6a24598eb79ff1fb69cf00622d5200608481a9be66cf364e796652360368bb26b292c5db381d9073c238d75e9b59153bdf1fcd90f881 -LLVM.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/md5/edad57837822c544030a8ea227839f1a -LLVM.v11.0.1+2.x86_64-unknown-freebsd.tar.gz/sha512/5aaa736bc8e4622c25710cfa411d4ed2703eb77e61dc34fe6928b6a3b2e047f610f41a9d5854761e1438fdb79fea914c3c9080bec1598134d1a9853490b4828b -LLVM.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/md5/50020d38e5e7e2162aaad02a9e414fd8 -LLVM.v11.0.1+2.x86_64-w64-mingw32-cxx03.tar.gz/sha512/7b2bafeeae03721fd871b9e164406520de06ef4e5691935e60272c937d29914616c6d4ade7a5cd4be8a8703121a017e3854134d76e67d52fad594c8fb0fecd5c -LLVM.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/md5/1b91b38c5bd59096f13bd96e6daca976 -LLVM.v11.0.1+2.x86_64-w64-mingw32-cxx11.tar.gz/sha512/d8f307142fd711d34b99b05276313bce918933ea3840ed1c252e5566f7c0028206a3125d22156b716dafe8e4cb61369d5c02d04ea324b7cc755bdb268006dbcf +LLVM.v11.0.1+3.aarch64-apple-darwin.tar.gz/md5/181e555215a01db6017bef6b75b857f6 +LLVM.v11.0.1+3.aarch64-apple-darwin.tar.gz/sha512/7940b4494e5806319d013feb42771884c320b964fc674abfd8979169fe32bfbfa03558195e520a108fd645a4c7a06ef918d59cd411dbd086b6a46f80e5ff2c9c +LLVM.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/md5/b02bb670ea84bcca20f318ffb26a79fd +LLVM.v11.0.1+3.aarch64-linux-gnu-cxx03.tar.gz/sha512/f05004c2fd6fbfdfe502e4f83babb7c29f9863e900e711c86023e878808eb1a31ff0285c3288a616a2dbecd7dfe3036fdf4465a64633af723f10c2fce68aa84d +LLVM.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/md5/9aae2250dca2c2e8aa305d0175596fbd +LLVM.v11.0.1+3.aarch64-linux-gnu-cxx11.tar.gz/sha512/0ca30244061b3bd6f0b0a6bbbf61fc40b02db00b3e9bca4aa79013ac12137aa7e872ba7113c6bad3ca08225431a9d9a4d2267852606e8360b866e5752f027965 +LLVM.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/md5/f3c3b9667ec2ab3dd9f3663859a0a736 +LLVM.v11.0.1+3.aarch64-linux-musl-cxx03.tar.gz/sha512/5b1abc1967009154a71fc43813a80d37e1c8531575938b2682212478b51591def16a7141292844568ce65f76bc686a7e9f7a4d77b9311a57226ccd43d8494d48 +LLVM.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/md5/98505793b877160dfc7466284fea9e71 +LLVM.v11.0.1+3.aarch64-linux-musl-cxx11.tar.gz/sha512/90a0b9d8da40eaf29d9d7448a3611ee264eb90cd947fa68a6e5e2757d580e82bfbe8ffe3d31c2c2f1eade66d2d4b69a7dd79830b813b62ac7bba289281325559 +LLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/md5/fdc1abc12cf08fae3d4e110976e5967e +LLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx03.tar.gz/sha512/6157dec83258fff29d54fe2f3783a7975a4487a5bc1b98f8355054970ad958eb26ee11f7a2f60c5ab8ae5c8e799275fc712051b00039a14febd0db66520d29b8 +LLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/md5/2c492cfd7cac00863fe373f8d91ce84c +LLVM.v11.0.1+3.armv6l-linux-gnueabihf-cxx11.tar.gz/sha512/654e9842373cb52114407340f8cf4c5954966ba677cae9aa085e22a3ed167bb1670286f3f3dcb6798913fee45937da0327817a97f48db021d997c22862b039ef +LLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/md5/81b6c3bcb6b5e595f5fc12aee8596bfb +LLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx03.tar.gz/sha512/8360352c772c69f9cd9469b41ee7494534248ae0480f7661f9303747cb3a87e26d5659fbf32d7dd11ba70b4f24812cf94dacd7565b92b42c9d63da388b8e93e0 +LLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/md5/c9559f735a8419e77a874dd75451d726 +LLVM.v11.0.1+3.armv6l-linux-musleabihf-cxx11.tar.gz/sha512/64cb59c966a1f42d1f31e32cf584602cd1a6a3bb5c3d805197c8e3cd96ebfc1ad3959bf52be2767d88110fe0025307f1e1982e9029630dd5438e94886da21366 +LLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/md5/bacdfbffc987ab1e4e0a023c4f1cb636 +LLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx03.tar.gz/sha512/d9f772a958ff3621f10bc562833a7121a4b3c3aec8d8d03694554714dd54537aa89af0e080f16ffdcf965ae33bd1bb05d9659beeaa86ffb7e553a4202b924a0f +LLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/md5/018802fd42e68b24459c4040df0019cc +LLVM.v11.0.1+3.armv7l-linux-gnueabihf-cxx11.tar.gz/sha512/ddcf9f104f47485cea67d0e5862393c2161e6aaf2e1cced1b0600b5b2dfb3c35895d00e47349de298cc9164665cc8cc8af3249997b716872fe23bb58bb1ea370 +LLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/md5/dc1ccc83441df682b09624bf7047aaf9 +LLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx03.tar.gz/sha512/b717137c831f698cd9b3339e5beb0a2e9d6fd8c59961f91d70b8e76d8b1ef7bd9ef610a49d02d45bd6e7130262f37601a780e33509b78e2b1caafd40eeead7d1 +LLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/md5/74749fde3378518041fcae2e447370ea +LLVM.v11.0.1+3.armv7l-linux-musleabihf-cxx11.tar.gz/sha512/b60715831b4583679455ceffe82acc19ef6c7fe3798b02f3df8a08a129a4f80fbfd7ab59c663db4f4418285dc3551e536c3edda2e24310d10cecdd89596588fd +LLVM.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/md5/0d403181fae7d966c536ee0cd6e39c12 +LLVM.v11.0.1+3.i686-linux-gnu-cxx03.tar.gz/sha512/71728fdc4b559df058d9ddc6dcd1dfae4d2dc854e2038ba14baef62e1cba7f3e2c7565fd2942b069690497989e846d0b5a572e0bbea8de7873752e43bc6827c5 +LLVM.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/md5/791e288d0acc976ddf18776540b21ca2 +LLVM.v11.0.1+3.i686-linux-gnu-cxx11.tar.gz/sha512/49dc3c9a2952f928d51c0af64c9f87b441c05a3f7c497be7564052936bb44c4e5dbc05dca3b69d9123d784647f6ca1c528ece5bc11ad39059fb8d465582ff394 +LLVM.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/md5/da303f41ec8ad7329e826a5e94af8889 +LLVM.v11.0.1+3.i686-linux-musl-cxx03.tar.gz/sha512/39deaf22f9e5c2422eefaea6d64c8d78d3235385edb43ce050f8f34c5c9d128c7b155adb2af5c1f0653f92932324f9a8a564df6dc97009402842e98b4b9a17de +LLVM.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/md5/3c5c77b8534eb0756c112193e4028838 +LLVM.v11.0.1+3.i686-linux-musl-cxx11.tar.gz/sha512/9b00f22b169f17f1766e40da5a7aee602cf0b1f34ae97cdd02f59f3f7613f192dfa6a0235764a175efe4cf1ddcc1850d37052ea45e16947f0d1ad79deb6812d9 +LLVM.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/md5/757aab5c47122ed033f987847a95ec0c +LLVM.v11.0.1+3.i686-w64-mingw32-cxx03.tar.gz/sha512/de54c3f21959ebcb081601deb01bbbafe415b05cc7240fce230483b2901d77f89575a74384fb55c919bfe25a8ca8cde2f2e0c6f4f6a809fc73499f4752f2043a +LLVM.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/md5/c7f3d289428d68802eaea4cae65e043c +LLVM.v11.0.1+3.i686-w64-mingw32-cxx11.tar.gz/sha512/54fcb15fd2019dc0f5c3db10c24c9d21d8159e923b215dd000d6107a136b69ff240bc447b2a280a023f25e98880a86ea89cd42e1e3caacabeb59a4ba18b96d32 +LLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/md5/a3032d9310fdfcea2c0e6aa2cc27fe49 +LLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx03.tar.gz/sha512/a8f8c4739b17f902f08307dc2f154ebe90a229299d476d8723cffe504cdfa91a8c36aadab4c12c1db4ea8cc056de17b66e68e1f086ad5d30d5f2edcc53da2337 +LLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/md5/ba581dd66006b02e1e7643b93af14499 +LLVM.v11.0.1+3.powerpc64le-linux-gnu-cxx11.tar.gz/sha512/8037109625c8cab5e310ff95aa852bd792b35f04b6830870962add89caaf0efbe001d08d6f870044e998a7b14216700a806eb132daadc5c4accd77baeebfb15e +LLVM.v11.0.1+3.x86_64-apple-darwin.tar.gz/md5/9d9c737b6e98a41086a1802283730757 +LLVM.v11.0.1+3.x86_64-apple-darwin.tar.gz/sha512/b24025364052233f977c17bb5f9675b4404fb4b197f35752a8a2591ac9786eb8aa5b4053ca4269e6c4de9daf401f88b0361880c3b3201be2db91626f9cad9030 +LLVM.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/md5/ef4535f1aaa5867e9dc4401e894086eb +LLVM.v11.0.1+3.x86_64-linux-gnu-cxx03.tar.gz/sha512/a1d7e4bdc72f33ec669023c89d4dcba8bd4b644e7c38e27784ab0f052e8efc08cb0cb89c38d5ee471961c8c8bfd6eaecc89898e70093a494f6cc53b9a36652eb +LLVM.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/md5/bcae5538b46ba7241b429dd568faa1b7 +LLVM.v11.0.1+3.x86_64-linux-gnu-cxx11.tar.gz/sha512/f336e5d7d007298027efe39a9b50afb32376d1361622097fac6a0530ce8a834f0cfb6d8abf05cf964bb5159b0864bedac978fb95031cb84672e0bc0b037d03aa +LLVM.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/md5/353ba4a877af02d2a986cb4917fc6cbc +LLVM.v11.0.1+3.x86_64-linux-musl-cxx03.tar.gz/sha512/ea038f9a12a84df32e62d877320eb041d2363b1714ded05508b1fdfb2a874a6964114833a7435feaad1040fd31a533acd29e48731f49e8df3b60fcea04f565fc +LLVM.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/md5/81d43dea36a9e2ba628263b1af36461b +LLVM.v11.0.1+3.x86_64-linux-musl-cxx11.tar.gz/sha512/a99b2dbdaf55cd36e8ead346fc7fae4ecd430cb98895343d6a409d0ea95406836048638dd5ab73129a2b2a637abd1e997515d8de1e9e5e8449e0f9d747773d4c +LLVM.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/md5/0f83ccf57dcb7814976a57c42c91c454 +LLVM.v11.0.1+3.x86_64-unknown-freebsd.tar.gz/sha512/06c3a97b6ec4f9095e8e978ccab0e65e03d26f99d90485c7893b6a41a53a4e5a8e8e531592e20f9d73a1100fe87f7fad793dc6cd19b09ae0bdaec5c362b7b4ac +LLVM.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/md5/8db6882c343f0ff1ed3137c1a17a1676 +LLVM.v11.0.1+3.x86_64-w64-mingw32-cxx03.tar.gz/sha512/a3fbc239389eaae152f4a21e5b50b6afd09adeb75d8e32754dfba5da3815991dd05ef5c403ef9539bdd47cad3f9b2c7066a61e3f40243f7bd237a7480172be86 +LLVM.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/md5/bee41a179343b54359aba1b159110a39 +LLVM.v11.0.1+3.x86_64-w64-mingw32-cxx11.tar.gz/sha512/3db19d091bd52cfc2018a25f28bf7714f6337bd93b24349ad90d2954f60317189e5e65241ff114c9f7cd15933b685f0a4a193d45daf21af593fe2890ab98843e diff --git a/deps/checksums/pcre b/deps/checksums/pcre index f89546fb71df4..421426e3d2389 100644 --- a/deps/checksums/pcre +++ b/deps/checksums/pcre @@ -1,32 +1,32 @@ -PCRE2.v10.35.0+0.aarch64-apple-darwin.tar.gz/md5/4c604a93fd5a1343ba0cd907655c2f7b -PCRE2.v10.35.0+0.aarch64-apple-darwin.tar.gz/sha512/9aeadea7c685cafe226d9e0059a1443e7ba408ced7689723d63851a05796da2bffaf2e8b469da16f569229d70515c75daa0e70eaca4b98368fb692c909545265 -PCRE2.v10.35.0+0.aarch64-linux-gnu.tar.gz/md5/be872ef012d842ec67307b38c70ee652 -PCRE2.v10.35.0+0.aarch64-linux-gnu.tar.gz/sha512/742334411e9d7251d863363a1df71b49fec6dec60d594825821bcca5beeac4681fec97da114dd2e7698b8012f521f282acfc076f367f2959c0c7ab3775e8a3a9 -PCRE2.v10.35.0+0.aarch64-linux-musl.tar.gz/md5/7fcfa6fd4263a601559e395c7ac5c1fa -PCRE2.v10.35.0+0.aarch64-linux-musl.tar.gz/sha512/66d291e2c2cfaefe575122c54b5b9d7ed62b0a1bd8db626bb7581d6981735a95ca42995b665023eba2704d04f38320518acfcbecf9fb9db71cae0c6ff4b4c96d -PCRE2.v10.35.0+0.armv6l-linux-gnueabihf.tar.gz/md5/1ce32c9911f40734463a5c44a127098b -PCRE2.v10.35.0+0.armv6l-linux-gnueabihf.tar.gz/sha512/94c0df8dda0fb658407a4f90b8e7e938938698a29dd2a0ee799572101f3093d308f1f99a92b7ef33302a1b0dd9954be2b6e84391d331ff047a178e908431bcf9 -PCRE2.v10.35.0+0.armv6l-linux-musleabihf.tar.gz/md5/ab61045ca69a27b6f13db3b26dbf1ee6 -PCRE2.v10.35.0+0.armv6l-linux-musleabihf.tar.gz/sha512/a1c46c49b42b5ff3e1d736bc6748c7a69c53b1dca18aa4a4e1c5076a894bfc51af152b71b9075ba46583737aa78f9324f94fb3036327adc95f28fc29145c3504 -PCRE2.v10.35.0+0.armv7l-linux-gnueabihf.tar.gz/md5/8e55ae4239c682b611fdb7b3e64f2fad -PCRE2.v10.35.0+0.armv7l-linux-gnueabihf.tar.gz/sha512/f63bb3b278b5f0e52fa30a5f8a0f67ad37a983a43d04fbcc9e5972978adcbc7d76dcc72d1bb7c8555cc1cbb3bd5907c4fdc23f5f24f962530c7313170228f9df -PCRE2.v10.35.0+0.armv7l-linux-musleabihf.tar.gz/md5/0e5da7ba4bb7930afd28e3b1f20db026 -PCRE2.v10.35.0+0.armv7l-linux-musleabihf.tar.gz/sha512/6b3c5b14ff799243121a056b4d79af762fd9fd6ea3e1b55e5146af25e98aad963d7a5b5b3ece07c8a2ceb934eee02edc238704e103a7cd5b7ce00a2776082adc -PCRE2.v10.35.0+0.i686-linux-gnu.tar.gz/md5/753232dcaa7cd3bf41cc65f5d10e9fac -PCRE2.v10.35.0+0.i686-linux-gnu.tar.gz/sha512/1377449341367c8546ddc010a38db9094c0e8f18626f8b010f020ef5f14077e0fca50945e1a9f6e4e18c3ea8c7ebd3f28954bb13c9ad8fcee8a8548bb0258925 -PCRE2.v10.35.0+0.i686-linux-musl.tar.gz/md5/ac3d8656f82251a925ba2c842938bc62 -PCRE2.v10.35.0+0.i686-linux-musl.tar.gz/sha512/736bca0879c4820bf2196244fd664d35d281e2f0a5ac969210de470e2d03182401294926753f67438fe8d0831366386e3a263c6e19a0cdea5ea2b87eedb901bd -PCRE2.v10.35.0+0.i686-w64-mingw32.tar.gz/md5/e80c503eb4ffa74ab486c18f2809c72c -PCRE2.v10.35.0+0.i686-w64-mingw32.tar.gz/sha512/ce252bb835bcdbae997825d9e7ee877509551a3d2063ac17bde8beb417bfdbe0461e9980d623608d5699804e5bf61e38c7a505d5083f6fc6964786928ed45165 -PCRE2.v10.35.0+0.powerpc64le-linux-gnu.tar.gz/md5/6c1cfcbe2e47d16bb345e68cf9a7d62a -PCRE2.v10.35.0+0.powerpc64le-linux-gnu.tar.gz/sha512/9977f3695bb8d4c065ed29acc56148017bb40ebfb2b08344e37cd7874e8934fa4e6ad8dfa552d45a65e8dbb6dc257b6663f8299ae1a1b49fa2217775e547cd8b -PCRE2.v10.35.0+0.x86_64-apple-darwin.tar.gz/md5/a41cd11abaf88d6331f382ff142d5631 -PCRE2.v10.35.0+0.x86_64-apple-darwin.tar.gz/sha512/37666cc9dbe686d6a614c99092eb8b636dc3f626c0619e832dd072c8fc2f9d5bae1435045471b87a4737218b107e3c265b65074bacf5762a813eff75b725bb39 -PCRE2.v10.35.0+0.x86_64-linux-gnu.tar.gz/md5/59785e82e8964eff86df5b3a4b6e4cce -PCRE2.v10.35.0+0.x86_64-linux-gnu.tar.gz/sha512/f09eff9864e944cc27f737329f466be32b7dc21ec68a425881f6a16bad358d999f203dc36c055e1ac4b613980878c51afd2fd7e379e61cc7a2812f775c323b71 -PCRE2.v10.35.0+0.x86_64-linux-musl.tar.gz/md5/043179f5a3622123e95128219571fa35 -PCRE2.v10.35.0+0.x86_64-linux-musl.tar.gz/sha512/7a689300101560f1053374089f33c6554a0b9b28f6a9022eadf1599747e419a9fbc98b70638640e065c0dc9d32e9e0bc05c87e46321b6b5aacfd61c04141fca7 -PCRE2.v10.35.0+0.x86_64-unknown-freebsd.tar.gz/md5/a18cb245ca057846802ccdcf0673d772 -PCRE2.v10.35.0+0.x86_64-unknown-freebsd.tar.gz/sha512/ff2ce9fea948561e87c1e68e29852ac917a690b807e43509b9184fd9233e5bb9d8ca98490d8936d2be43b31081e3e9829006cbb8b7cc160469e7d3df5215e820 -PCRE2.v10.35.0+0.x86_64-w64-mingw32.tar.gz/md5/04e7ecd60b039ba60fdbcb82a83e2e68 -PCRE2.v10.35.0+0.x86_64-w64-mingw32.tar.gz/sha512/a0cb69b73fb86de2f37c6e98633c4aeab83c6be871819baddec8cd483db65815043090ff0736e85aa2117f58dacf73e2b49cba9536e109b53840c5b45c3e3fb1 +PCRE2.v10.36.0+0.aarch64-apple-darwin.tar.gz/md5/34157dd76b931907009ec32aad7c6e5e +PCRE2.v10.36.0+0.aarch64-apple-darwin.tar.gz/sha512/f2c4a676fb4fad42bdcffcde4876b82d40e2e3aeb7668e3077aea4e98be022cb627110bb6c13a71db941d6135db64a455c969c0cc4b914a898dc8556a9d88e67 +PCRE2.v10.36.0+0.aarch64-linux-gnu.tar.gz/md5/4fb6705dfdd7889fc8f52616527a0956 +PCRE2.v10.36.0+0.aarch64-linux-gnu.tar.gz/sha512/7af0d79aa55c969fe434f89702e328ca04d236e78accced26d5038cd08fbf83c3b4feb7e02bb88fbf0338f94f8e13b099b454eaa3c59e5274d7b572dd2e3d687 +PCRE2.v10.36.0+0.aarch64-linux-musl.tar.gz/md5/968317b2a6fa8d71a82d5f9f1a7a7923 +PCRE2.v10.36.0+0.aarch64-linux-musl.tar.gz/sha512/ba7f89932447c1c3ca007c766c8987789f0792afba924d52b149d966010792b8182ab77d50911ec4fe6553d1794617d6c70ca74b5c3e8b8779fa69c61eb2f456 +PCRE2.v10.36.0+0.armv6l-linux-gnueabihf.tar.gz/md5/d760e518585dd9bfd9e3d3688417b8ef +PCRE2.v10.36.0+0.armv6l-linux-gnueabihf.tar.gz/sha512/d0da6bbbd01e67e5a0ec448ca7bf218d90d4fbee17fd71981221816b5d00d05722347899aa960d88ee8e609b700e7b33d5c9b802b2e5eeccd1710f5b5deda839 +PCRE2.v10.36.0+0.armv6l-linux-musleabihf.tar.gz/md5/b746d89f79fbd5ba5bda60848eac517b +PCRE2.v10.36.0+0.armv6l-linux-musleabihf.tar.gz/sha512/8d025fc4e7f58ba89b7f763ff6250738ef76eb58dbd82baf8257cb5f9fdf0a59730c7854747ab3bda754294f2e2ceb2fc769a51e0e504fdadd68da73b5fc8684 +PCRE2.v10.36.0+0.armv7l-linux-gnueabihf.tar.gz/md5/f4529eccf64a257b5df354f084807eb5 +PCRE2.v10.36.0+0.armv7l-linux-gnueabihf.tar.gz/sha512/46a4e6efa1a6ecbccecbeddeb0a66475917172350702b0c6eed077e2de1d25c266182999f9d0a48074e9124dcca812815d964fb0cce0033f117246e9d1933198 +PCRE2.v10.36.0+0.armv7l-linux-musleabihf.tar.gz/md5/896bdae6d898c2c71751341b5a10e344 +PCRE2.v10.36.0+0.armv7l-linux-musleabihf.tar.gz/sha512/c16c2291b2802037fec3ae5aec2b01ed072a712b7ef48bb2a02cdaae6715dd6dd9e6c4905134047a06ad435684856d7f400dc655ec8c42a9a5ec9a3eebc9a22a +PCRE2.v10.36.0+0.i686-linux-gnu.tar.gz/md5/c545dd71a854c328536d258d1defdf60 +PCRE2.v10.36.0+0.i686-linux-gnu.tar.gz/sha512/c9aa0d188f55ce3cd19b608832bfb5a22bed34fe23b58489e8716e3af2338728fb5bd9f281f29b203b0de00e885cc8bc35e046524d328e09b7371c353ba9fb2b +PCRE2.v10.36.0+0.i686-linux-musl.tar.gz/md5/927e70b0b164e7225019677c1ca8b1a7 +PCRE2.v10.36.0+0.i686-linux-musl.tar.gz/sha512/2d6e46a8cbe322950c905e6e845a5ad7426485e547d51ed5aae9a048a1fb284f2e7998f4dafe719cc512c22ce8ad8622b70d46e2140c4e01a85d1a053bc90190 +PCRE2.v10.36.0+0.i686-w64-mingw32.tar.gz/md5/3c5129a428239ef9bd6220ed6abc3a59 +PCRE2.v10.36.0+0.i686-w64-mingw32.tar.gz/sha512/e342d8fd180b4f663eddb93ac3893d45ab1757b4fefc4c81a42768cbf03d9ec6b27af42ffe5568b8cad42fbcce2ee3d01bb272eeecb2ebd75e236f8a22efb3fd +PCRE2.v10.36.0+0.powerpc64le-linux-gnu.tar.gz/md5/d4158e4c05a45b2a5e8fdf89de1d2d24 +PCRE2.v10.36.0+0.powerpc64le-linux-gnu.tar.gz/sha512/cd652a8acefcab959826239176585c003465e9d0220b712731ad83b0c24b24a6a6875f44a458f208872c3c50cdff205e3e178feed3984c6dbde1e1792a4a7da9 +PCRE2.v10.36.0+0.x86_64-apple-darwin.tar.gz/md5/efa1c7f36aa76f3c9278ea409e99cc4d +PCRE2.v10.36.0+0.x86_64-apple-darwin.tar.gz/sha512/5b3f37a5f99690937adc7346b0f7205b8f8743ee81acad72a8d605a896cd9e9b23a81b26a0dd18b7fac0434ab6a45fd9eed5cc12a97f48d8069d55f537228621 +PCRE2.v10.36.0+0.x86_64-linux-gnu.tar.gz/md5/41c18464e519fc53cc4d496a683b0088 +PCRE2.v10.36.0+0.x86_64-linux-gnu.tar.gz/sha512/afab98dd9cf808a094a7402e532d7adf0b7b562bf1858a3e036e3ad400fa704129c13a2c4d0b32cde6a9786b09d220b72f77e1af6ab2883bcc3ffc6fd7fa80b4 +PCRE2.v10.36.0+0.x86_64-linux-musl.tar.gz/md5/9a24b4e7dcb145c113f9b93f2fc82bef +PCRE2.v10.36.0+0.x86_64-linux-musl.tar.gz/sha512/329c86994da95725b04af4db340765ecf8620bbb255583a74932d9076b78da757e426ca79c0fe0002f9c4be4854fae861ea716c9c0c7b3d0962082c0506e90a7 +PCRE2.v10.36.0+0.x86_64-unknown-freebsd.tar.gz/md5/fb71d0f5c07f23c50dd9b9c5f26cf511 +PCRE2.v10.36.0+0.x86_64-unknown-freebsd.tar.gz/sha512/32f330d2492f9325c28d514343e6eb63e3958df769712814ef4c0975e2918d753a8898a30f49ea9ed5f9ff14fce8ec99cd5758e93c8964fb85ba1982c4c5a792 +PCRE2.v10.36.0+0.x86_64-w64-mingw32.tar.gz/md5/67991b37b9dd96541ba83999fb657ad5 +PCRE2.v10.36.0+0.x86_64-w64-mingw32.tar.gz/sha512/0978ead7b84db12fbeb9ca87b043982fc29350bf4a5342ebbf90746c6471c146b977b9c86cc5a090b013b919b2834745b18af10ace00db992bf82bc791124637 diff --git a/deps/csl.mk b/deps/csl.mk index 2858d9919a454..75e970f6882d3 100644 --- a/deps/csl.mk +++ b/deps/csl.mk @@ -19,48 +19,34 @@ $$(build_shlibdir)/$(1): | $$(build_shlibdir) [ -n "$$$${SRC_LIB}" ] && cp $$$${SRC_LIB} $$(build_shlibdir) endef -ifeq ($(OS),WINNT) -define gen_libname -$$(if $(2),lib$(1)-$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT)) -endef -else ifeq ($(OS),Darwin) -define gen_libname -$$(if $(2),lib$(1).$(2).$(SHLIB_EXT),lib$(1).$(SHLIB_EXT)) -endef -else -define gen_libname -$$(if $(2),lib$(1).$(SHLIB_EXT).$(2),lib$(1).$(SHLIB_EXT)) -endef -endif - # libgfortran has multiple names; we're just going to copy any version we can find # Since we're only looking in the location given by `$(FC)` this should only succeed for one. -$(eval $(call copy_csl,$(call gen_libname,gfortran,3))) -$(eval $(call copy_csl,$(call gen_libname,gfortran,4))) -$(eval $(call copy_csl,$(call gen_libname,gfortran,5))) +$(eval $(call copy_csl,$(call versioned_libname,libgfortran,3))) +$(eval $(call copy_csl,$(call versioned_libname,libgfortran,4))) +$(eval $(call copy_csl,$(call versioned_libname,libgfortran,5))) # These are all libraries that we should always have -$(eval $(call copy_csl,$(call gen_libname,quadmath,0))) -$(eval $(call copy_csl,$(call gen_libname,stdc++,6))) -$(eval $(call copy_csl,$(call gen_libname,ssp,0))) -$(eval $(call copy_csl,$(call gen_libname,atomic,1))) -$(eval $(call copy_csl,$(call gen_libname,gomp,1))) +$(eval $(call copy_csl,$(call versioned_libname,libquadmath,0))) +$(eval $(call copy_csl,$(call versioned_libname,libstdc++,6))) +$(eval $(call copy_csl,$(call versioned_libname,libssp,0))) +$(eval $(call copy_csl,$(call versioned_libname,libatomic,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgomp,1))) ifeq ($(OS),WINNT) # Windwos has special gcc_s names ifeq ($(ARCH),i686) -$(eval $(call copy_csl,$(call gen_libname,gcc_s_sjlj,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_sjlj,1))) else -$(eval $(call copy_csl,$(call gen_libname,gcc_s_seh,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgcc_s_seh,1))) endif else -$(eval $(call copy_csl,$(call gen_libname,gcc_s,1))) +$(eval $(call copy_csl,$(call versioned_libname,libgcc_s,1))) endif # winpthread is only Windows, pthread is only others ifeq ($(OS),WINNT) -$(eval $(call copy_csl,$(call gen_libname,winpthread,1))) +$(eval $(call copy_csl,$(call versioned_libname,libwinpthread,1))) else -$(eval $(call copy_csl,$(call gen_libname,pthread,0))) +$(eval $(call copy_csl,$(call versioned_libname,libpthread,0))) endif get-csl: diff --git a/deps/llvm.mk b/deps/llvm.mk index a3d67cbaae550..084b82dac8f26 100644 --- a/deps/llvm.mk +++ b/deps/llvm.mk @@ -448,6 +448,15 @@ $$(LLVM_BUILDDIR_withtype)/build-compiled: $$(LLVM_SRC_DIR)/$1.patch-applied LLVM_PATCH_PREV := $$(LLVM_SRC_DIR)/$1.patch-applied endef +define LLVM_PROJ_PATCH +$$(LLVM_SRC_DIR)/$1.patch-applied: $$(LLVM_SRC_DIR)/source-extracted | $$(SRCDIR)/patches/$1.patch $$(LLVM_PATCH_PREV) + cd $$(LLVM_SRC_DIR) && patch -p2 < $$(SRCDIR)/patches/$1.patch + echo 1 > $$@ +# declare that applying any patch must re-run the compile step +$$(LLVM_BUILDDIR_withtype)/build-compiled: $$(LLVM_SRC_DIR)/$1.patch-applied +LLVM_PATCH_PREV := $$(LLVM_SRC_DIR)/$1.patch-applied +endef + ifeq ($(LLVM_VER_SHORT),8.0) $(eval $(call LLVM_PATCH,llvm-D27629-AArch64-large_model_6.0.1)) $(eval $(call LLVM_PATCH,llvm8-D34078-vectorize-fdiv)) @@ -555,6 +564,10 @@ $(eval $(call LLVM_PATCH,llvm-11-D94813-mergeicmps)) $(eval $(call LLVM_PATCH,llvm-11-D94980-CTR-half)) $(eval $(call LLVM_PATCH,llvm-11-D94058-sext-atomic-ops)) # remove for LLVM 12 $(eval $(call LLVM_PATCH,llvm-11-D96283-dagcombine-half)) # remove for LLVM 12 +$(eval $(call LLVM_PROJ_PATCH,llvm-11-AArch64-FastIsel-bug)) +$(eval $(call LLVM_PROJ_PATCH,llvm-11-D97435-AArch64-movaddrreg)) +$(eval $(call LLVM_PROJ_PATCH,llvm-11-D97571-AArch64-loh)) # remove for LLVM 13 +$(eval $(call LLVM_PROJ_PATCH,llvm-11-aarch64-addrspace)) # remove for LLVM 13 endif # LLVM_VER 11.0 diff --git a/deps/patches/llvm-11-AArch64-FastIsel-bug.patch b/deps/patches/llvm-11-AArch64-FastIsel-bug.patch new file mode 100644 index 0000000000000..5ab5e96c37a2e --- /dev/null +++ b/deps/patches/llvm-11-AArch64-FastIsel-bug.patch @@ -0,0 +1,50 @@ +From d82434785ecab16223a0bd4ec8ede020bf244003 Mon Sep 17 00:00:00 2001 +From: Keno Fischer +Date: Mon, 1 Mar 2021 16:42:05 -0500 +Subject: [PATCH 4/4] AArch64: Remove Bad optimization + +Removes the code responsible for causing https://bugs.llvm.org/show_bug.cgi?id=49357. +A fix is in progress upstream, but I don't think it's easy, so this +fixes the bug in the meantime. The optimization it does is minor. +--- + llvm/lib/Target/AArch64/AArch64FastISel.cpp | 24 --------------------- + 1 file changed, 24 deletions(-) + +diff --git a/llvm/lib/Target/AArch64/AArch64FastISel.cpp b/llvm/lib/Target/AArch64/AArch64FastISel.cpp +index cf3ebed6ef19..6908a51c47d6 100644 +--- a/llvm/lib/Target/AArch64/AArch64FastISel.cpp ++++ b/llvm/lib/Target/AArch64/AArch64FastISel.cpp +@@ -4600,30 +4600,6 @@ bool AArch64FastISel::selectIntExt(const Instruction *I) { + + // Try to optimize already sign-/zero-extended values from function arguments. + bool IsZExt = isa(I); +- if (const auto *Arg = dyn_cast(I->getOperand(0))) { +- if ((IsZExt && Arg->hasZExtAttr()) || (!IsZExt && Arg->hasSExtAttr())) { +- if (RetVT == MVT::i64 && SrcVT != MVT::i64) { +- unsigned ResultReg = createResultReg(&AArch64::GPR64RegClass); +- BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, +- TII.get(AArch64::SUBREG_TO_REG), ResultReg) +- .addImm(0) +- .addReg(SrcReg, getKillRegState(SrcIsKill)) +- .addImm(AArch64::sub_32); +- SrcReg = ResultReg; +- } +- // Conservatively clear all kill flags from all uses, because we are +- // replacing a sign-/zero-extend instruction at IR level with a nop at MI +- // level. The result of the instruction at IR level might have been +- // trivially dead, which is now not longer true. +- unsigned UseReg = lookUpRegForValue(I); +- if (UseReg) +- MRI.clearKillFlags(UseReg); +- +- updateValueMap(I, SrcReg); +- return true; +- } +- } +- + unsigned ResultReg = emitIntExt(SrcVT, SrcReg, RetVT, IsZExt); + if (!ResultReg) + return false; +-- +2.25.1 + diff --git a/deps/patches/llvm-11-D97435-AArch64-movaddrreg.patch b/deps/patches/llvm-11-D97435-AArch64-movaddrreg.patch new file mode 100644 index 0000000000000..d33658f493711 --- /dev/null +++ b/deps/patches/llvm-11-D97435-AArch64-movaddrreg.patch @@ -0,0 +1,484 @@ +From 4103660e5362b2ab73256740c28e4f0e042f96d4 Mon Sep 17 00:00:00 2001 +From: Keno Fischer +Date: Mon, 1 Mar 2021 16:37:03 -0500 +Subject: [PATCH 1/4] [Aarch64] Correct register class for pseudo instructions + +This constrains the Mov* and similar pseudo instruction to take +GPR64common register classes rather than GPR64. GPR64 includs XZR +which is invalid here, because this pseudo instructions expands +into an adrp/add pair sharing a destination register. XZR is invalid +on add and attempting to encode it will instead increment the stack +pointer causing crashes (downstream report at [1]). The test case +there reproduces on LLVM11, but I do not have a test case that +reaches this code path on main, since it is being masked by +improved dead code elimination introduced in D91513. Nevertheless, +this seems like a good thing to fix in case there are other cases +that dead code elimination doesn't clean up (e.g. if `optnone` is +used and the optimization is skipped). + +I think it would be worth auditing uses of GPR64 in pseudo +instructions to see if there are any similar issues, but I do not +have a high enough view of the backend or knowledge of the +Aarch64 architecture to do this quickly. + +[1] https://github.com/JuliaLang/julia/issues/39818 + +Reviewed By: t.p.northover + +Differential Revision: https://reviews.llvm.org/D97435 +--- + .../AArch64/AArch64ExpandPseudoInsts.cpp | 1 + + llvm/lib/Target/AArch64/AArch64InstrInfo.td | 32 +- + .../GlobalISel/select-blockaddress.mir | 5 +- + .../select-jump-table-brjt-constrain.mir | 2 +- + .../GlobalISel/select-jump-table-brjt.mir | 2 +- + .../CodeGen/AArch64/GlobalISel/select.mir | 312 ------------------ + 6 files changed, 22 insertions(+), 332 deletions(-) + delete mode 100644 llvm/test/CodeGen/AArch64/GlobalISel/select.mir + +diff --git a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp +index 9e65ad2e18f9..3497a15a7574 100644 +--- a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp ++++ b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp +@@ -844,6 +844,7 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock &MBB, + case AArch64::MOVaddrEXT: { + // Expand into ADRP + ADD. + Register DstReg = MI.getOperand(0).getReg(); ++ assert(DstReg != AArch64::XZR); + MachineInstrBuilder MIB1 = + BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(AArch64::ADRP), DstReg) + .add(MI.getOperand(1)); +diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td +index f4a5f639e497..9e69934a97e2 100644 +--- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td ++++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td +@@ -630,40 +630,40 @@ let isReMaterializable = 1, isCodeGenOnly = 1 in { + // removed, along with the AArch64Wrapper node. + + let AddedComplexity = 10 in +-def LOADgot : Pseudo<(outs GPR64:$dst), (ins i64imm:$addr), +- [(set GPR64:$dst, (AArch64LOADgot tglobaladdr:$addr))]>, ++def LOADgot : Pseudo<(outs GPR64common:$dst), (ins i64imm:$addr), ++ [(set GPR64common:$dst, (AArch64LOADgot tglobaladdr:$addr))]>, + Sched<[WriteLDAdr]>; + + // The MOVaddr instruction should match only when the add is not folded + // into a load or store address. + def MOVaddr +- : Pseudo<(outs GPR64:$dst), (ins i64imm:$hi, i64imm:$low), +- [(set GPR64:$dst, (AArch64addlow (AArch64adrp tglobaladdr:$hi), ++ : Pseudo<(outs GPR64common:$dst), (ins i64imm:$hi, i64imm:$low), ++ [(set GPR64common:$dst, (AArch64addlow (AArch64adrp tglobaladdr:$hi), + tglobaladdr:$low))]>, + Sched<[WriteAdrAdr]>; + def MOVaddrJT +- : Pseudo<(outs GPR64:$dst), (ins i64imm:$hi, i64imm:$low), +- [(set GPR64:$dst, (AArch64addlow (AArch64adrp tjumptable:$hi), ++ : Pseudo<(outs GPR64common:$dst), (ins i64imm:$hi, i64imm:$low), ++ [(set GPR64common:$dst, (AArch64addlow (AArch64adrp tjumptable:$hi), + tjumptable:$low))]>, + Sched<[WriteAdrAdr]>; + def MOVaddrCP +- : Pseudo<(outs GPR64:$dst), (ins i64imm:$hi, i64imm:$low), +- [(set GPR64:$dst, (AArch64addlow (AArch64adrp tconstpool:$hi), ++ : Pseudo<(outs GPR64common:$dst), (ins i64imm:$hi, i64imm:$low), ++ [(set GPR64common:$dst, (AArch64addlow (AArch64adrp tconstpool:$hi), + tconstpool:$low))]>, + Sched<[WriteAdrAdr]>; + def MOVaddrBA +- : Pseudo<(outs GPR64:$dst), (ins i64imm:$hi, i64imm:$low), +- [(set GPR64:$dst, (AArch64addlow (AArch64adrp tblockaddress:$hi), ++ : Pseudo<(outs GPR64common:$dst), (ins i64imm:$hi, i64imm:$low), ++ [(set GPR64common:$dst, (AArch64addlow (AArch64adrp tblockaddress:$hi), + tblockaddress:$low))]>, + Sched<[WriteAdrAdr]>; + def MOVaddrTLS +- : Pseudo<(outs GPR64:$dst), (ins i64imm:$hi, i64imm:$low), +- [(set GPR64:$dst, (AArch64addlow (AArch64adrp tglobaltlsaddr:$hi), ++ : Pseudo<(outs GPR64common:$dst), (ins i64imm:$hi, i64imm:$low), ++ [(set GPR64common:$dst, (AArch64addlow (AArch64adrp tglobaltlsaddr:$hi), + tglobaltlsaddr:$low))]>, + Sched<[WriteAdrAdr]>; + def MOVaddrEXT +- : Pseudo<(outs GPR64:$dst), (ins i64imm:$hi, i64imm:$low), +- [(set GPR64:$dst, (AArch64addlow (AArch64adrp texternalsym:$hi), ++ : Pseudo<(outs GPR64common:$dst), (ins i64imm:$hi, i64imm:$low), ++ [(set GPR64common:$dst, (AArch64addlow (AArch64adrp texternalsym:$hi), + texternalsym:$low))]>, + Sched<[WriteAdrAdr]>; + // Normally AArch64addlow either gets folded into a following ldr/str, +@@ -671,8 +671,8 @@ def MOVaddrEXT + // might appear without either of them, so allow lowering it into a plain + // add. + def ADDlowTLS +- : Pseudo<(outs GPR64:$dst), (ins GPR64:$src, i64imm:$low), +- [(set GPR64:$dst, (AArch64addlow GPR64:$src, ++ : Pseudo<(outs GPR64sp:$dst), (ins GPR64sp:$src, i64imm:$low), ++ [(set GPR64sp:$dst, (AArch64addlow GPR64sp:$src, + tglobaltlsaddr:$low))]>, + Sched<[WriteAdr]>; + +diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/select-blockaddress.mir b/llvm/test/CodeGen/AArch64/GlobalISel/select-blockaddress.mir +index bd5ee80d5841..10732660d34a 100644 +--- a/llvm/test/CodeGen/AArch64/GlobalISel/select-blockaddress.mir ++++ b/llvm/test/CodeGen/AArch64/GlobalISel/select-blockaddress.mir +@@ -30,9 +30,10 @@ registers: + body: | + ; CHECK-LABEL: name: test_blockaddress + ; CHECK: bb.0 (%ir-block.0): +- ; CHECK: [[MOVaddrBA:%[0-9]+]]:gpr64 = MOVaddrBA target-flags(aarch64-page) blockaddress(@test_blockaddress, %ir-block.block), target-flags(aarch64-pageoff, aarch64-nc) blockaddress(@test_blockaddress, %ir-block.block) ++ ; CHECK: [[MOVaddrBA:%[0-9]+]]:gpr64common = MOVaddrBA target-flags(aarch64-page) blockaddress(@test_blockaddress, %ir-block.block), target-flags(aarch64-pageoff, aarch64-nc) blockaddress(@test_blockaddress, %ir-block.block) + ; CHECK: [[MOVaddr:%[0-9]+]]:gpr64common = MOVaddr target-flags(aarch64-page) @addr, target-flags(aarch64-pageoff, aarch64-nc) @addr +- ; CHECK: STRXui [[MOVaddrBA]], [[MOVaddr]], 0 :: (store 8 into @addr) ++ ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY [[MOVaddrBA]] ++ ; CHECK: STRXui [[COPY]], [[MOVaddr]], 0 :: (store 8 into @addr) + ; CHECK: BR [[MOVaddrBA]] + ; CHECK: bb.1.block (address-taken): + ; CHECK: RET_ReallyLR +diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir b/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir +index 082bf43061da..6f3540a0768b 100644 +--- a/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir ++++ b/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir +@@ -30,7 +30,7 @@ body: | + ; CHECK: Bcc 8, %bb.3, implicit $nzcv + ; CHECK: bb.1: + ; CHECK: successors: %bb.2(0x40000000), %bb.3(0x40000000) +- ; CHECK: [[MOVaddrJT:%[0-9]+]]:gpr64 = MOVaddrJT target-flags(aarch64-page) %jump-table.0, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0 ++ ; CHECK: [[MOVaddrJT:%[0-9]+]]:gpr64common = MOVaddrJT target-flags(aarch64-page) %jump-table.0, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0 + ; CHECK: early-clobber %6:gpr64, early-clobber %7:gpr64sp = JumpTableDest32 [[MOVaddrJT]], [[SUBREG_TO_REG]], %jump-table.0 + ; CHECK: BR %6 + ; CHECK: bb.2: +diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt.mir b/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt.mir +index ae7d90769f99..80631eadb5e8 100644 +--- a/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt.mir ++++ b/llvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt.mir +@@ -65,7 +65,7 @@ body: | + ; CHECK: bb.1.entry: + ; CHECK: successors: %bb.3(0x2aaaaaab), %bb.4(0x2aaaaaab), %bb.2(0x2aaaaaab) + ; CHECK: [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr +- ; CHECK: [[MOVaddrJT:%[0-9]+]]:gpr64 = MOVaddrJT target-flags(aarch64-page) %jump-table.0, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0 ++ ; CHECK: [[MOVaddrJT:%[0-9]+]]:gpr64common = MOVaddrJT target-flags(aarch64-page) %jump-table.0, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0 + ; CHECK: early-clobber %18:gpr64, early-clobber %19:gpr64sp = JumpTableDest32 [[MOVaddrJT]], [[SUBREG_TO_REG]], %jump-table.0 + ; CHECK: BR %18 + ; CHECK: bb.2.sw.bb: +diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/select.mir b/llvm/test/CodeGen/AArch64/GlobalISel/select.mir +deleted file mode 100644 +index 112aee8d552c..000000000000 +--- a/llvm/test/CodeGen/AArch64/GlobalISel/select.mir ++++ /dev/null +@@ -1,312 +0,0 @@ +-# RUN: llc -O0 -mtriple=aarch64-apple-ios -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=IOS +-# RUN: llc -O0 -mtriple=aarch64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=LINUX-DEFAULT +-# RUN: llc -O0 -mtriple=aarch64-linux-gnu -relocation-model=pic -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=LINUX-PIC +- +---- | +- target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" +- +- define void @frame_index() { +- %ptr0 = alloca i64 +- ret void +- } +- +- define i8* @ptr_mask(i8* %in) { ret i8* undef } +- +- @var_local = global i8 0 +- define i8* @global_local() { ret i8* undef } +- +- @var_got = external global i8 +- define i8* @global_got() { ret i8* undef } +- +- define void @icmp() { ret void } +- define void @fcmp() { ret void } +- +- define void @phi() { ret void } +- +- define void @select() { ret void } +-... +- +---- +-# CHECK-LABEL: name: frame_index +-name: frame_index +-legalized: true +-regBankSelected: true +- +-# CHECK: registers: +-# CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' } +-registers: +- - { id: 0, class: gpr } +- +-stack: +- - { id: 0, name: ptr0, offset: 0, size: 8, alignment: 8 } +- +-# CHECK: body: +-# CHECK: %0:gpr64sp = ADDXri %stack.0.ptr0, 0, 0 +-body: | +- bb.0: +- %0(p0) = G_FRAME_INDEX %stack.0.ptr0 +- $x0 = COPY %0(p0) +-... +- +---- +- +---- +-# CHECK-LABEL: name: ptr_mask +-name: ptr_mask +-legalized: true +-regBankSelected: true +- +-# CHECK: body: +-# CHECK: %2:gpr64sp = ANDXri %0, 8060 +-body: | +- bb.0: +- liveins: $x0 +- %0:gpr(p0) = COPY $x0 +- %const:gpr(s64) = G_CONSTANT i64 -8 +- %1:gpr(p0) = G_PTRMASK %0, %const +- $x0 = COPY %1(p0) +-... +- +---- +-# Global defined in the same linkage unit so no GOT is needed +-# CHECK-LABEL: name: global_local +-name: global_local +-legalized: true +-regBankSelected: true +-registers: +- - { id: 0, class: gpr } +- +-# CHECK: body: +-# IOS: %0:gpr64 = MOVaddr target-flags(aarch64-page) @var_local, target-flags(aarch64-pageoff, aarch64-nc) @var_local +-# LINUX-DEFAULT: %0:gpr64 = MOVaddr target-flags(aarch64-page) @var_local, target-flags(aarch64-pageoff, aarch64-nc) @var_local +-# LINUX-PIC: %0:gpr64 = LOADgot target-flags(aarch64-got) @var_local +-body: | +- bb.0: +- %0(p0) = G_GLOBAL_VALUE @var_local +- $x0 = COPY %0(p0) +-... +- +---- +-# CHECK-LABEL: name: global_got +-name: global_got +-legalized: true +-regBankSelected: true +-registers: +- - { id: 0, class: gpr } +- +-# CHECK: body: +-# IOS: %0:gpr64 = LOADgot target-flags(aarch64-got) @var_got +-# LINUX-DEFAULT: %0:gpr64 = MOVaddr target-flags(aarch64-page) @var_got, target-flags(aarch64-pageoff, aarch64-nc) @var_got +-# LINUX-PIC: %0:gpr64 = LOADgot target-flags(aarch64-got) @var_got +-body: | +- bb.0: +- %0(p0) = G_GLOBAL_VALUE @var_got +- $x0 = COPY %0(p0) +-... +- +---- +-# CHECK-LABEL: name: icmp +-name: icmp +-legalized: true +-regBankSelected: true +- +-# CHECK: registers: +-# CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 4, class: gpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 5, class: gpr32, preferred-register: '' } +-registers: +- - { id: 0, class: gpr } +- - { id: 1, class: gpr } +- - { id: 2, class: gpr } +- - { id: 3, class: gpr } +- - { id: 4, class: gpr } +- - { id: 5, class: gpr } +- - { id: 6, class: gpr } +- - { id: 7, class: gpr } +- - { id: 8, class: gpr } +- - { id: 9, class: gpr } +- - { id: 10, class: gpr } +- - { id: 11, class: gpr } +- +-# CHECK: body: +-# CHECK: SUBSWrr %0, %0, implicit-def $nzcv +-# CHECK: %1:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv +- +-# CHECK: SUBSXrr %2, %2, implicit-def $nzcv +-# CHECK: %3:gpr32 = CSINCWr $wzr, $wzr, 3, implicit $nzcv +- +-# CHECK: SUBSXrr %4, %4, implicit-def $nzcv +-# CHECK: %5:gpr32 = CSINCWr $wzr, $wzr, 0, implicit $nzcv +- +-body: | +- bb.0: +- liveins: $w0, $x0 +- +- %0(s32) = COPY $w0 +- %1(s32) = G_ICMP intpred(eq), %0, %0 +- %6(s1) = G_TRUNC %1(s32) +- %9(s32) = G_ANYEXT %6 +- $w0 = COPY %9(s32) +- +- %2(s64) = COPY $x0 +- %3(s32) = G_ICMP intpred(uge), %2, %2 +- %7(s1) = G_TRUNC %3(s32) +- %10(s32) = G_ANYEXT %7 +- $w0 = COPY %10(s32) +- +- %4(p0) = COPY $x0 +- %5(s32) = G_ICMP intpred(ne), %4, %4 +- %8(s1) = G_TRUNC %5(s32) +- %11(s32) = G_ANYEXT %8 +- $w0 = COPY %11(s32) +-... +- +---- +-# CHECK-LABEL: name: fcmp +-name: fcmp +-legalized: true +-regBankSelected: true +- +-# CHECK: registers: +-# CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 2, class: fpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 4, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 5, class: gpr32, preferred-register: '' } +-registers: +- - { id: 0, class: fpr } +- - { id: 1, class: gpr } +- - { id: 2, class: fpr } +- - { id: 3, class: gpr } +- - { id: 4, class: gpr } +- - { id: 5, class: gpr } +- - { id: 6, class: gpr } +- - { id: 7, class: gpr } +- +-# CHECK: body: +-# CHECK: FCMPSrr %0, %0, implicit-def $nzcv +-# CHECK: [[TST_MI:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 5, implicit $nzcv +-# CHECK: [[TST_GT:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 13, implicit $nzcv +-# CHECK: %1:gpr32 = ORRWrr [[TST_MI]], [[TST_GT]] +- +-# CHECK: FCMPDrr %2, %2, implicit-def $nzcv +-# CHECK: %3:gpr32 = CSINCWr $wzr, $wzr, 4, implicit $nzcv +- +-body: | +- bb.0: +- liveins: $w0, $x0 +- +- %0(s32) = COPY $s0 +- %1(s32) = G_FCMP floatpred(one), %0, %0 +- %4(s1) = G_TRUNC %1(s32) +- %6(s32) = G_ANYEXT %4 +- $w0 = COPY %6(s32) +- +- %2(s64) = COPY $d0 +- %3(s32) = G_FCMP floatpred(uge), %2, %2 +- %5(s1) = G_TRUNC %3(s32) +- %7(s32) = G_ANYEXT %5 +- $w0 = COPY %7(s32) +- +-... +- +---- +-# CHECK-LABEL: name: phi +-name: phi +-legalized: true +-regBankSelected: true +-tracksRegLiveness: true +- +-# CHECK: registers: +-# CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 2, class: fpr32, preferred-register: '' } +-registers: +- - { id: 0, class: fpr } +- - { id: 1, class: gpr } +- - { id: 2, class: fpr } +- +-# CHECK: body: +-# CHECK: bb.1: +-# CHECK: %2:fpr32 = PHI %0, %bb.0, %2, %bb.1 +- +-body: | +- bb.0: +- liveins: $s0, $w0 +- successors: %bb.1 +- %0(s32) = COPY $s0 +- %3:gpr(s32) = COPY $w0 +- %1(s1) = G_TRUNC %3 +- +- bb.1: +- successors: %bb.1, %bb.2 +- %2(s32) = PHI %0, %bb.0, %2, %bb.1 +- G_BRCOND %1, %bb.1 +- +- bb.2: +- $s0 = COPY %2 +- RET_ReallyLR implicit $s0 +-... +- +---- +-# CHECK-LABEL: name: select +-name: select +-legalized: true +-regBankSelected: true +-tracksRegLiveness: true +- +-# CHECK: registers: +-# CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' } +-# CHECK-NEXT: - { id: 4, class: gpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 5, class: gpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 6, class: gpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 7, class: gpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 8, class: gpr64, preferred-register: '' } +-# CHECK-NEXT: - { id: 9, class: gpr64, preferred-register: '' } +-registers: +- - { id: 0, class: gpr } +- - { id: 1, class: gpr } +- - { id: 2, class: gpr } +- - { id: 3, class: gpr } +- - { id: 4, class: gpr } +- - { id: 5, class: gpr } +- - { id: 6, class: gpr } +- - { id: 7, class: gpr } +- - { id: 8, class: gpr } +- - { id: 9, class: gpr } +- +-# CHECK: body: +-# CHECK: $wzr = ANDSWri %10, 0, implicit-def $nzcv +-# CHECK: %3:gpr32 = CSELWr %1, %2, 1, implicit $nzcv +-# CHECK: $wzr = ANDSWri %10, 0, implicit-def $nzcv +-# CHECK: %6:gpr64 = CSELXr %4, %5, 1, implicit $nzcv +-# CHECK: $wzr = ANDSWri %10, 0, implicit-def $nzcv +-# CHECK: %9:gpr64 = CSELXr %7, %8, 1, implicit $nzcv +-body: | +- bb.0: +- liveins: $w0, $w1, $w2 +- %10:gpr(s32) = COPY $w0 +- %0(s1) = G_TRUNC %10 +- +- %1(s32) = COPY $w1 +- %2(s32) = COPY $w2 +- %3(s32) = G_SELECT %0, %1, %2 +- $w0 = COPY %3(s32) +- +- %4(s64) = COPY $x0 +- %5(s64) = COPY $x1 +- %6(s64) = G_SELECT %0, %4, %5 +- $x0 = COPY %6(s64) +- +- %7(p0) = COPY $x0 +- %8(p0) = COPY $x1 +- %9(p0) = G_SELECT %0, %7, %8 +- $x0 = COPY %9(p0) +-... +-- +2.25.1 + diff --git a/deps/patches/llvm-11-D97571-AArch64-loh.patch b/deps/patches/llvm-11-D97571-AArch64-loh.patch new file mode 100644 index 0000000000000..352a9504652a2 --- /dev/null +++ b/deps/patches/llvm-11-D97571-AArch64-loh.patch @@ -0,0 +1,101 @@ +From 84eff6b2defb7f2d847d5bac165d6a44472b9ddf Mon Sep 17 00:00:00 2001 +From: Keno Fischer +Date: Mon, 1 Mar 2021 16:38:19 -0500 +Subject: [PATCH 2/4] [AArch64] Fix emitting an AdrpAddLdr LOH when there's a + potential clobber of the def of the adrp before the ldr. + +Apparently this pass used to have liveness analysis but it was removed for scompile time reasons. This workaround prevents the LOH from being emitted unless the ADD and LDR are adjacent. + +Fixes https://github.com/JuliaLang/julia/issues/39820 + +Reviewed By: loladiro, qcolombet + +Differential Revision: https://reviews.llvm.org/D97571 +--- + llvm/lib/Target/AArch64/AArch64CollectLOH.cpp | 26 +++++++++++++++- + .../AArch64/loh-adrp-add-ldr-clobber.mir | 30 +++++++++++++++++++ + 2 files changed, 55 insertions(+), 1 deletion(-) + create mode 100644 llvm/test/CodeGen/AArch64/loh-adrp-add-ldr-clobber.mir + +diff --git a/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp b/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp +index efdb1131abc9..ac243347b24d 100644 +--- a/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp ++++ b/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp +@@ -419,13 +419,37 @@ static void handleADRP(const MachineInstr &MI, AArch64FunctionInfo &AFI, + ++NumADRPToLDR; + } + break; +- case MCLOH_AdrpAddLdr: ++ case MCLOH_AdrpAddLdr: { ++ // There is a possibility that the linker may try to rewrite: ++ // adrp x0, @sym@PAGE ++ // add x1, x0, @sym@PAGEOFF ++ // [x0 = some other def] ++ // ldr x2, [x1] ++ // ...into... ++ // adrp x0, @sym ++ // nop ++ // [x0 = some other def] ++ // ldr x2, [x0] ++ // ...if the offset to the symbol won't fit within a literal load. ++ // This causes the load to use the result of the adrp, which in this ++ // case has already been clobbered. ++ // FIXME: Implement proper liveness tracking for all registers. For now, ++ // don't emit the LOH if there are any instructions between the add and ++ // the ldr. ++ MachineInstr *AddMI = const_cast(Info.MI1); ++ const MachineInstr *LdrMI = Info.MI0; ++ auto AddIt = MachineBasicBlock::iterator(AddMI); ++ auto EndIt = AddMI->getParent()->end(); ++ if (AddMI->getIterator() == EndIt || LdrMI != &*next_nodbg(AddIt, EndIt)) ++ break; ++ + LLVM_DEBUG(dbgs() << "Adding MCLOH_AdrpAddLdr:\n" + << '\t' << MI << '\t' << *Info.MI1 << '\t' + << *Info.MI0); + AFI.addLOHDirective(MCLOH_AdrpAddLdr, {&MI, Info.MI1, Info.MI0}); + ++NumADDToLDR; + break; ++ } + case MCLOH_AdrpAddStr: + if (Info.MI1 != nullptr) { + LLVM_DEBUG(dbgs() << "Adding MCLOH_AdrpAddStr:\n" +diff --git a/llvm/test/CodeGen/AArch64/loh-adrp-add-ldr-clobber.mir b/llvm/test/CodeGen/AArch64/loh-adrp-add-ldr-clobber.mir +new file mode 100644 +index 000000000000..e1e893c6383a +--- /dev/null ++++ b/llvm/test/CodeGen/AArch64/loh-adrp-add-ldr-clobber.mir +@@ -0,0 +1,30 @@ ++# RUN: llc -o /dev/null %s -mtriple=aarch64-apple-ios -run-pass=aarch64-collect-loh -debug-only=aarch64-collect-loh 2>&1 | FileCheck %s ++--- | ++ @sym2 = local_unnamed_addr global [10000000 x i32] zeroinitializer, align 8 ++ @sym = local_unnamed_addr global i32 zeroinitializer, align 8 ++ ++ define i32 @main() { ++ ret i32 0 ++ } ++ ++... ++--- ++name: main ++alignment: 4 ++tracksRegLiveness: true ++liveins: ++ - { reg: '$x22', virtual-reg: '' } ++ - { reg: '$x21', virtual-reg: '' } ++body: | ++ bb.0: ++ liveins: $x21, $x22 ++ ; Check we don't emit an loh here because there's a clobbering def of x8 before the ldr. ++ ; CHECK-LABEL: main ++ ; CHECK-NOT: MCLOH_AdrpAddLdr ++ renamable $x8 = ADRP target-flags(aarch64-page) @sym ++ renamable $x9 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @sym, 0 ++ renamable $x8 = ADDXri killed renamable $x22, 1, 0 ++ $x9 = LDRXui $x9, 0 ++ RET undef $lr ++ ++... +-- +2.25.1 + diff --git a/deps/patches/llvm-11-aarch64-addrspace.patch b/deps/patches/llvm-11-aarch64-addrspace.patch new file mode 100644 index 0000000000000..f046a5000ede4 --- /dev/null +++ b/deps/patches/llvm-11-aarch64-addrspace.patch @@ -0,0 +1,31 @@ +From a1178fdd072b7addcf56c2f6e2298165263040bb Mon Sep 17 00:00:00 2001 +From: Tim Northover +Date: Thu, 25 Feb 2021 10:13:59 +0000 +Subject: [PATCH 3/4] AArch64: relax address-space assertion in FastISel. + +Some people are using alternative address spaces to track GC data, but +otherwise they behave exactly the same. This is the only place in the backend +we even try to care about it so it's really not achieving anything. +--- + llvm/lib/Target/AArch64/AArch64FastISel.cpp | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/llvm/lib/Target/AArch64/AArch64FastISel.cpp b/llvm/lib/Target/AArch64/AArch64FastISel.cpp +index 0f63f4ca62e5..cf3ebed6ef19 100644 +--- a/llvm/lib/Target/AArch64/AArch64FastISel.cpp ++++ b/llvm/lib/Target/AArch64/AArch64FastISel.cpp +@@ -526,10 +526,7 @@ unsigned AArch64FastISel::fastMaterializeConstant(const Constant *C) { + MVT VT = CEVT.getSimpleVT(); + // arm64_32 has 32-bit pointers held in 64-bit registers. Because of that, + // 'null' pointers need to have a somewhat special treatment. +- if (const auto *CPN = dyn_cast(C)) { +- (void)CPN; +- assert(CPN->getType()->getPointerAddressSpace() == 0 && +- "Unexpected address space"); ++ if (isa(C)) { + assert(VT == MVT::i64 && "Expected 64-bit pointers"); + return materializeInt(ConstantInt::get(Type::getInt64Ty(*Context), 0), VT); + } +-- +2.25.1 + diff --git a/deps/patches/pcre2-cet-flags.patch b/deps/patches/pcre2-cet-flags.patch deleted file mode 100644 index 7c455175cdfe3..0000000000000 --- a/deps/patches/pcre2-cet-flags.patch +++ /dev/null @@ -1,229 +0,0 @@ -commit 6823a639a4a2d3e2b4a44bab6da78e1659431063 -Author: Elliot Saba -Date: Tue Nov 17 19:29:06 2020 +0000 - - Backport SVN revisions r1256 and r1257 to fix compilations errors - - Without this patch, compilation errors such as `"-mshstk is needed to compile with -fcf-protection"` - occur on newer Ubuntu distros. This is a backport of upstreams patch, along with a partial-update - of `configure` so that users do not have to run `aclocal` on their machines when building from source. - - X-ref: https://bugs.exim.org/show_bug.cgi?id=2578 - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 86b8896..a368523 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -92,6 +92,7 @@ - # library versioning. - # 2020-04-25 Carlo added function check for mkostemp used in ProtExecAllocator - # 2020-04-28 PH added function check for memfd_create based on Carlo's patch -+# 2020-05-25 PH added a check for Intel CET - - PROJECT(PCRE2 C) - -@@ -146,6 +147,23 @@ CHECK_C_SOURCE_COMPILES( - ) - set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) - -+# Check whether Intel CET is enabled, and if so, adjust compiler flags. This -+# code was written by PH, trying to imitate the logic from the autotools -+# configuration. -+ -+CHECK_C_SOURCE_COMPILES( -+ "#ifndef __CET__ -+ #error CET is not enabled -+ #endif -+ int main() { return 0; }" -+ INTEL_CET_ENABLED -+) -+ -+IF (INTEL_CET_ENABLED) -+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mshstk") -+ENDIF(INTEL_CET_ENABLED) -+ -+ - # User-configurable options - # - # Note: CMakeSetup displays these in alphabetical order, regardless of -diff --git a/ChangeLog b/ChangeLog -index 310eb60..f238cce 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,6 +1,15 @@ - Change Log for PCRE2 - -------------------- - -+Version 10.36-RC1 25-May-2020 -+----------------------------- -+ -+1. Add CET_CFLAGS so that when Intel CET is enabled, pass -mshstk to -+compiler. This fixes https://bugs.exim.org/show_bug.cgi?id=2578. Patch for -+Makefile.am and configure.ac by H.J. Lu. Equivalent patch for CMakeLists.txt -+invented by PH. -+ -+ - Version 10.35 09-May-2020 - --------------------------- - -diff --git a/Makefile.am b/Makefile.am -index bb888f2..6a771a5 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -391,6 +391,7 @@ nodist_libpcre2_8_la_SOURCES = \ - libpcre2_8_la_CFLAGS = \ - -DPCRE2_CODE_UNIT_WIDTH=8 \ - $(VISIBILITY_CFLAGS) \ -+ $(CET_CFLAGS) \ - $(AM_CFLAGS) - libpcre2_8_la_LIBADD = - endif # WITH_PCRE2_8 -@@ -404,6 +405,7 @@ nodist_libpcre2_16_la_SOURCES = \ - libpcre2_16_la_CFLAGS = \ - -DPCRE2_CODE_UNIT_WIDTH=16 \ - $(VISIBILITY_CFLAGS) \ -+ $(CET_CFLAGS) \ - $(AM_CFLAGS) - libpcre2_16_la_LIBADD = - endif # WITH_PCRE2_16 -@@ -417,6 +419,7 @@ nodist_libpcre2_32_la_SOURCES = \ - libpcre2_32_la_CFLAGS = \ - -DPCRE2_CODE_UNIT_WIDTH=32 \ - $(VISIBILITY_CFLAGS) \ -+ $(CET_CFLAGS) \ - $(AM_CFLAGS) - libpcre2_32_la_LIBADD = - endif # WITH_PCRE2_32 -diff --git a/Makefile.in b/Makefile.in -index 2873912..0ce7004 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -806,6 +806,7 @@ AUTOMAKE = @AUTOMAKE@ - AWK = @AWK@ - CC = @CC@ - CCDEPMODE = @CCDEPMODE@ -+CET_CFLAGS = @CET_CFLAGS@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ -@@ -1310,8 +1311,9 @@ COMMON_SOURCES = \ - @WITH_PCRE2_8_TRUE@ $(NODIST_SOURCES) - - @WITH_PCRE2_8_TRUE@libpcre2_8_la_CFLAGS = -DPCRE2_CODE_UNIT_WIDTH=8 \ --@WITH_PCRE2_8_TRUE@ $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \ --@WITH_PCRE2_8_TRUE@ $(am__append_5) $(am__append_8) -+@WITH_PCRE2_8_TRUE@ $(VISIBILITY_CFLAGS) $(CET_CFLAGS) \ -+@WITH_PCRE2_8_TRUE@ $(AM_CFLAGS) $(am__append_5) \ -+@WITH_PCRE2_8_TRUE@ $(am__append_8) - @WITH_PCRE2_8_TRUE@libpcre2_8_la_LIBADD = - @WITH_PCRE2_16_TRUE@libpcre2_16_la_SOURCES = \ - @WITH_PCRE2_16_TRUE@ $(COMMON_SOURCES) -@@ -1321,8 +1323,9 @@ COMMON_SOURCES = \ - - @WITH_PCRE2_16_TRUE@libpcre2_16_la_CFLAGS = \ - @WITH_PCRE2_16_TRUE@ -DPCRE2_CODE_UNIT_WIDTH=16 \ --@WITH_PCRE2_16_TRUE@ $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \ --@WITH_PCRE2_16_TRUE@ $(am__append_6) $(am__append_9) -+@WITH_PCRE2_16_TRUE@ $(VISIBILITY_CFLAGS) $(CET_CFLAGS) \ -+@WITH_PCRE2_16_TRUE@ $(AM_CFLAGS) $(am__append_6) \ -+@WITH_PCRE2_16_TRUE@ $(am__append_9) - @WITH_PCRE2_16_TRUE@libpcre2_16_la_LIBADD = - @WITH_PCRE2_32_TRUE@libpcre2_32_la_SOURCES = \ - @WITH_PCRE2_32_TRUE@ $(COMMON_SOURCES) -@@ -1332,8 +1335,9 @@ COMMON_SOURCES = \ - - @WITH_PCRE2_32_TRUE@libpcre2_32_la_CFLAGS = \ - @WITH_PCRE2_32_TRUE@ -DPCRE2_CODE_UNIT_WIDTH=32 \ --@WITH_PCRE2_32_TRUE@ $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \ --@WITH_PCRE2_32_TRUE@ $(am__append_7) $(am__append_10) -+@WITH_PCRE2_32_TRUE@ $(VISIBILITY_CFLAGS) $(CET_CFLAGS) \ -+@WITH_PCRE2_32_TRUE@ $(AM_CFLAGS) $(am__append_7) \ -+@WITH_PCRE2_32_TRUE@ $(am__append_10) - @WITH_PCRE2_32_TRUE@libpcre2_32_la_LIBADD = - @WITH_PCRE2_8_TRUE@libpcre2_8_la_LDFLAGS = $(EXTRA_LIBPCRE2_8_LDFLAGS) - @WITH_PCRE2_16_TRUE@libpcre2_16_la_LDFLAGS = $(EXTRA_LIBPCRE2_16_LDFLAGS) -diff --git a/configure b/configure -index 615f638..322a3a4 100755 ---- a/configure -+++ b/configure -@@ -633,6 +633,7 @@ ac_subst_vars='am__EXEEXT_FALSE - am__EXEEXT_TRUE - LTLIBOBJS - LIBOBJS -+CET_CFLAGS - WITH_GCOV_FALSE - WITH_GCOV_TRUE - GCOV_LIBS -@@ -15493,6 +15494,46 @@ else - fi - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Intel CET is enabled" >&5 -+$as_echo_n "checking whether Intel CET is enabled... " >&6; } -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+#ifndef __CET__ -+# error CET is not enabled -+#endif -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ pcre2_cc_cv_intel_cet_enabled=yes -+else -+ pcre2_cc_cv_intel_cet_enabled=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pcre2_cc_cv_intel_cet_enabled" >&5 -+$as_echo "$pcre2_cc_cv_intel_cet_enabled" >&6; } -+if test "$pcre2_cc_cv_intel_cet_enabled" = yes; then -+ CET_CFLAGS="-mshstk" -+ -+fi -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+ - # Produce these files, in addition to config.h. - ac_config_files="$ac_config_files Makefile libpcre2-8.pc libpcre2-16.pc libpcre2-32.pc libpcre2-posix.pc pcre2-config src/pcre2.h" - -diff --git a/configure.ac b/configure.ac -index 180d3dc..61b93ba 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1006,6 +1006,21 @@ fi # enable_coverage - - AM_CONDITIONAL([WITH_GCOV],[test "x$enable_coverage" = "xyes"]) - -+AC_MSG_CHECKING([whether Intel CET is enabled]) -+AC_LANG_PUSH([C]) -+AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, -+ [[#ifndef __CET__ -+# error CET is not enabled -+#endif]])], -+ [pcre2_cc_cv_intel_cet_enabled=yes], -+ [pcre2_cc_cv_intel_cet_enabled=no]) -+AC_MSG_RESULT([$pcre2_cc_cv_intel_cet_enabled]) -+if test "$pcre2_cc_cv_intel_cet_enabled" = yes; then -+ CET_CFLAGS="-mshstk" -+ AC_SUBST([CET_CFLAGS]) -+fi -+AC_LANG_POP([C]) -+ - # Produce these files, in addition to config.h. - AC_CONFIG_FILES( - Makefile diff --git a/deps/patches/pcre2-sljit-apple-silicon-support.patch b/deps/patches/pcre2-sljit-apple-silicon-support.patch new file mode 100644 index 0000000000000..3aff832ca08fd --- /dev/null +++ b/deps/patches/pcre2-sljit-apple-silicon-support.patch @@ -0,0 +1,244 @@ +From e87e1ccf93768238db3d6e28d0272980dba707fa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= +Date: Mon, 30 Nov 2020 01:35:13 -0800 +Subject: [PATCH] macos: add BigSur support to execalloc (#90) + +Apple Silicon requires that pages that will hold JIT code are +marked with MAP_JIT (even if not using the hardened runtime) +and that a call be made to a pthread function before writing +to them, so a special exception could be made to the current +thread[1]; add support for both. + +since the allocator keeps the metadata about chunk/block in the +executable pages, all functions that modify that metadata will +also need to be updated. + +note that since there is no need for an accurate pointer range +with the apple implementation, NULL is passed for the pointers. + +historically, adding MAP_JIT was only recommended when the hardened +runtime was being used as it adds several undocumented restrictions +(like not being able to use JIT pages accross fork()) so the +new codepath won't be used if running in Intel. + +Tested-by: @Keno +Fixes: #51 + +[1] https://developer.apple.com/documentation/apple_silicon/porting_just-in-time_compilers_to_apple_silicon?language=objc +--- + sljit_src/sljitExecAllocator.c | 113 ++++++++++++++++++--------------- + 1 file changed, 63 insertions(+), 50 deletions(-) + +diff --git a/sljit_src/sljitExecAllocator.c b/sljit_src/sljitExecAllocator.c +index 61a32f2..2e1c138 100644 +--- a/sljit_src/sljitExecAllocator.c ++++ b/sljit_src/sljitExecAllocator.c +@@ -79,6 +79,7 @@ + */ + + #ifdef _WIN32 ++#define SLJIT_UPDATE_WX_FLAGS(from, to, enable_exec) + + static SLJIT_INLINE void* alloc_chunk(sljit_uw size) + { +@@ -91,65 +92,76 @@ static SLJIT_INLINE void free_chunk(void *chunk, sljit_uw size) + VirtualFree(chunk, 0, MEM_RELEASE); + } + +-#else +- +-#ifdef __APPLE__ +-#ifdef MAP_ANON +-/* Configures TARGET_OS_OSX when appropriate */ +-#include +- +-#if TARGET_OS_OSX && defined(MAP_JIT) +-#include +-#endif /* TARGET_OS_OSX && MAP_JIT */ +- +-#ifdef MAP_JIT ++#else /* POSIX */ + ++#if defined(__APPLE__) && defined(MAP_JIT) + /* + On macOS systems, returns MAP_JIT if it is defined _and_ we're running on a +- version where it's OK to have more than one JIT block. ++ version where it's OK to have more than one JIT block or where MAP_JIT is ++ required. + On non-macOS systems, returns MAP_JIT if it is defined. + */ ++#include ++#if TARGET_OS_OSX ++#if defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86 ++#ifdef MAP_ANON ++#include ++#include ++ ++#define SLJIT_MAP_JIT (get_map_jit_flag()) ++ + static SLJIT_INLINE int get_map_jit_flag() + { +-#if TARGET_OS_OSX +- sljit_sw page_size = get_page_alignment() + 1; ++ sljit_sw page_size; + void *ptr; ++ struct utsname name; + static int map_jit_flag = -1; + +- /* +- The following code is thread safe because multiple initialization +- sets map_jit_flag to the same value and the code has no side-effects. +- Changing the kernel version witout system restart is (very) unlikely. +- */ +- if (map_jit_flag == -1) { +- struct utsname name; +- ++ if (map_jit_flag < 0) { + map_jit_flag = 0; + uname(&name); + +- /* Kernel version for 10.14.0 (Mojave) */ ++ /* Kernel version for 10.14.0 (Mojave) or later */ + if (atoi(name.release) >= 18) { ++ page_size = get_page_alignment() + 1; + /* Only use MAP_JIT if a hardened runtime is used */ ++ ptr = mmap(NULL, page_size, PROT_WRITE | PROT_EXEC, ++ MAP_PRIVATE | MAP_ANON, -1, 0); + +- ptr = mmap(NULL, page_size, PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANON, -1, 0); +- +- if (ptr == MAP_FAILED) { +- map_jit_flag = MAP_JIT; +- } else { ++ if (ptr != MAP_FAILED) + munmap(ptr, page_size); +- } ++ else ++ map_jit_flag = MAP_JIT; + } + } +- + return map_jit_flag; +-#else /* !TARGET_OS_OSX */ +- return MAP_JIT; +-#endif /* TARGET_OS_OSX */ + } +- +-#endif /* MAP_JIT */ + #endif /* MAP_ANON */ +-#endif /* __APPLE__ */ ++#else /* !SLJIT_CONFIG_X86 */ ++#if !(defined SLJIT_CONFIG_ARM && SLJIT_CONFIG_ARM) ++#error Unsupported architecture ++#endif /* SLJIT_CONFIG_ARM */ ++#include ++ ++#define SLJIT_MAP_JIT (MAP_JIT) ++#define SLJIT_UPDATE_WX_FLAGS(from, to, enable_exec) \ ++ apple_update_wx_flags(enable_exec) ++ ++static SLJIT_INLINE void apple_update_wx_flags(sljit_s32 enable_exec) ++{ ++ pthread_jit_write_protect_np(enable_exec); ++} ++#endif /* SLJIT_CONFIG_X86 */ ++#else /* !TARGET_OS_OSX */ ++#define SLJIT_MAP_JIT (MAP_JIT) ++#endif /* TARGET_OS_OSX */ ++#endif /* __APPLE__ && MAP_JIT */ ++#ifndef SLJIT_UPDATE_WX_FLAGS ++#define SLJIT_UPDATE_WX_FLAGS(from, to, enable_exec) ++#endif /* !SLJIT_UPDATE_WX_FLAGS */ ++#ifndef SLJIT_MAP_JIT ++#define SLJIT_MAP_JIT (0) ++#endif /* !SLJIT_MAP_JIT */ + + static SLJIT_INLINE void* alloc_chunk(sljit_uw size) + { +@@ -157,12 +169,7 @@ static SLJIT_INLINE void* alloc_chunk(sljit_uw size) + const int prot = PROT_READ | PROT_WRITE | PROT_EXEC; + + #ifdef MAP_ANON +- +- int flags = MAP_PRIVATE | MAP_ANON; +- +-#ifdef MAP_JIT +- flags |= get_map_jit_flag(); +-#endif ++ int flags = MAP_PRIVATE | MAP_ANON | SLJIT_MAP_JIT; + + retval = mmap(NULL, size, prot, flags, -1, 0); + #else /* !MAP_ANON */ +@@ -173,14 +180,15 @@ static SLJIT_INLINE void* alloc_chunk(sljit_uw size) + #endif /* MAP_ANON */ + + if (retval == MAP_FAILED) +- retval = NULL; +- else { +- if (mprotect(retval, size, prot) < 0) { +- munmap(retval, size); +- retval = NULL; +- } ++ return NULL; ++ ++ if (mprotect(retval, size, prot) < 0) { ++ munmap(retval, size); ++ return NULL; + } + ++ SLJIT_UPDATE_WX_FLAGS(retval, (uint8_t *)retval + size, 0); ++ + return retval; + } + +@@ -189,7 +197,7 @@ static SLJIT_INLINE void free_chunk(void *chunk, sljit_uw size) + munmap(chunk, size); + } + +-#endif ++#endif /* windows */ + + /* --------------------------------------------------------------------- */ + /* Common functions */ +@@ -261,6 +269,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) + while (free_block) { + if (free_block->size >= size) { + chunk_size = free_block->size; ++ SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 0); + if (chunk_size > size + 64) { + /* We just cut a block from the end of the free block. */ + chunk_size -= size; +@@ -326,6 +335,7 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_exec(void* ptr) + allocated_size -= header->size; + + /* Connecting free blocks together if possible. */ ++ SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 0); + + /* If header->prev_size == 0, free_block will equal to header. + In this case, free_block->header.size will be > 0. */ +@@ -358,6 +368,7 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_exec(void* ptr) + } + } + ++ SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 1); + SLJIT_ALLOCATOR_UNLOCK(); + } + +@@ -367,6 +378,7 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_unused_memory_exec(void) + struct free_block* next_free_block; + + SLJIT_ALLOCATOR_LOCK(); ++ SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 0); + + free_block = free_blocks; + while (free_block) { +@@ -381,5 +393,6 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_unused_memory_exec(void) + } + + SLJIT_ASSERT((total_size && free_blocks) || (!total_size && !free_blocks)); ++ SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 1); + SLJIT_ALLOCATOR_UNLOCK(); + } +-- +2.30.0 + diff --git a/deps/pcre.mk b/deps/pcre.mk index e2bed3502a333..c9d8c9c600dee 100644 --- a/deps/pcre.mk +++ b/deps/pcre.mk @@ -12,18 +12,16 @@ $(SRCCACHE)/pcre2-$(PCRE_VER)/source-extracted: $(SRCCACHE)/pcre2-$(PCRE_VER).ta $(JLCHECKSUM) $< cd $(dir $<) && $(TAR) jxf $(notdir $<) cp $(SRCDIR)/patches/config.sub $(SRCCACHE)/pcre2-$(PCRE_VER)/config.sub - cd $(SRCCACHE)/pcre2-$(PCRE_VER) && patch -p1 -f < $(SRCDIR)/patches/pcre2-cet-flags.patch - # Fix some old targets modified by the patching - touch -c $(SRCCACHE)/pcre2-$(PCRE_VER)/aclocal.m4 - touch -c $(SRCCACHE)/pcre2-$(PCRE_VER)/Makefile.am - touch -c $(SRCCACHE)/pcre2-$(PCRE_VER)/Makefile.in - touch -c $(SRCCACHE)/pcre2-$(PCRE_VER)/configure echo 1 > $@ checksum-pcre2: $(SRCCACHE)/pcre2-$(PCRE_VER).tar.bz2 $(JLCHECKSUM) $< -$(BUILDDIR)/pcre2-$(PCRE_VER)/build-configured: $(SRCCACHE)/pcre2-$(PCRE_VER)/source-extracted +$(SRCCACHE)/pcre2-$(PCRE_VER)/pcre2-sljit-apple-silicon-support.patch-applied: $(SRCCACHE)/pcre2-$(PCRE_VER)/source-extracted + cd $(SRCCACHE)/pcre2-$(PCRE_VER) && patch -d src/sljit -p2 -f < $(SRCDIR)/patches/pcre2-sljit-apple-silicon-support.patch + echo 1 > $@ + +$(BUILDDIR)/pcre2-$(PCRE_VER)/build-configured: $(SRCCACHE)/pcre2-$(PCRE_VER)/source-extracted $(SRCCACHE)/pcre2-$(PCRE_VER)/pcre2-sljit-apple-silicon-support.patch-applied mkdir -p $(dir $@) cd $(dir $@) && \ $(dir $<)/configure $(CONFIGURE_COMMON) --enable-jit --includedir=$(build_includedir) CFLAGS="$(CFLAGS) $(PCRE_CFLAGS)" LDFLAGS="$(LDFLAGS) $(PCRE_LDFLAGS)" diff --git a/doc/src/manual/arrays.md b/doc/src/manual/arrays.md index 1db77f107aabd..8e49e29a1508a 100644 --- a/doc/src/manual/arrays.md +++ b/doc/src/manual/arrays.md @@ -735,7 +735,7 @@ julia> LinearIndices(A)[2, 2] 5 ``` -It's important to note that there's a very large assymmetry in the performance +It's important to note that there's a very large asymmetry in the performance of these conversions. Converting a linear index to a set of cartesian indices requires dividing and taking the remainder, whereas going the other way is just multiplies and adds. In modern processors, integer division can be 10-50 times diff --git a/src/cgutils.cpp b/src/cgutils.cpp index af2b8c2274ea8..106a5d4aad6fd 100644 --- a/src/cgutils.cpp +++ b/src/cgutils.cpp @@ -608,7 +608,10 @@ static Type *_julia_struct_to_llvm(jl_codegen_params_t *ctx, jl_value_t *jt, jl_ size_t fsz = 0, al = 0; bool isptr = !jl_islayout_inline(ty, &fsz, &al); if (jst->layout) { - assert(isptr == jl_field_isptr(jst, i)); + // NOTE: jl_field_isptr can disagree with jl_islayout_inline here if the + // struct decided this field must be a pointer due to a type circularity. + // Example from issue #40050: `struct B <: Ref{Tuple{B}}; end` + isptr = jl_field_isptr(jst, i); assert((isptr ? sizeof(void*) : fsz + jl_is_uniontype(ty)) == jl_field_size(jst, i)); } Type *lty; @@ -2469,6 +2472,27 @@ static Value *compute_box_tindex(jl_codectx_t &ctx, Value *datatype, jl_value_t return tindex; } +// Returns typeof(v), or null if v is a null pointer at run time. +// This is used when the value might have come from an undefined variable, +// yet we try to read its type to compute a union index when moving the value. +static Value *emit_typeof_or_null(jl_codectx_t &ctx, Value *v) +{ + BasicBlock *nonnull = BasicBlock::Create(jl_LLVMContext, "nonnull", ctx.f); + BasicBlock *postBB = BasicBlock::Create(jl_LLVMContext, "postnull", ctx.f); + Value *isnull = ctx.builder.CreateICmpEQ(v, Constant::getNullValue(v->getType())); + ctx.builder.CreateCondBr(isnull, postBB, nonnull); + BasicBlock *entry = ctx.builder.GetInsertBlock(); + ctx.builder.SetInsertPoint(nonnull); + Value *typof = emit_typeof(ctx, v); + ctx.builder.CreateBr(postBB); + nonnull = ctx.builder.GetInsertBlock(); // could have changed + ctx.builder.SetInsertPoint(postBB); + PHINode *ti = ctx.builder.CreatePHI(typof->getType(), 2); + ti->addIncoming(Constant::getNullValue(typof->getType()), entry); + ti->addIncoming(typof, nonnull); + return ti; +} + // get the runtime tindex value, assuming val is already converted to type typ if it has a TIndex static Value *compute_tindex_unboxed(jl_codectx_t &ctx, const jl_cgval_t &val, jl_value_t *typ) { @@ -2479,9 +2503,12 @@ static Value *compute_tindex_unboxed(jl_codectx_t &ctx, const jl_cgval_t &val, j if (val.TIndex) return ctx.builder.CreateAnd(val.TIndex, ConstantInt::get(T_int8, 0x7f)); - if (val.isboxed) - return compute_box_tindex(ctx, emit_typeof_boxed(ctx, val), val.typ, typ); - return compute_box_tindex(ctx, emit_typeof_boxed(ctx, val), val.typ, typ); + Value *typof; + if (val.isboxed && !jl_is_concrete_type(val.typ) && !jl_is_type_type(val.typ)) + typof = emit_typeof_or_null(ctx, val.V); + else + typof = emit_typeof_boxed(ctx, val); + return compute_box_tindex(ctx, typof, val.typ, typ); } static void union_alloca_type(jl_uniontype_t *ut, diff --git a/src/codegen.cpp b/src/codegen.cpp index 817aceddfe403..95b38952eb70c 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -1499,11 +1499,13 @@ static jl_cgval_t convert_julia_type_union(jl_codectx_t &ctx, const jl_cgval_t & // actually need it. Value *union_box_dt = NULL; BasicBlock *union_isaBB = NULL; + BasicBlock *post_union_isaBB = NULL; auto maybe_setup_union_isa = [&]() { if (!union_isaBB) { union_isaBB = BasicBlock::Create(jl_LLVMContext, "union_isa", ctx.f); ctx.builder.SetInsertPoint(union_isaBB); - union_box_dt = emit_typeof(ctx, v.Vboxed); + union_box_dt = emit_typeof_or_null(ctx, v.Vboxed); + post_union_isaBB = ctx.builder.GetInsertBlock(); } }; @@ -1535,7 +1537,7 @@ static jl_cgval_t convert_julia_type_union(jl_codectx_t &ctx, const jl_cgval_t & ctx.builder.SetInsertPoint(postBB); PHINode *tindex_phi = ctx.builder.CreatePHI(T_int8, 2); tindex_phi->addIncoming(new_tindex, currBB); - tindex_phi->addIncoming(union_box_tindex, union_isaBB); + tindex_phi->addIncoming(union_box_tindex, post_union_isaBB); new_tindex = tindex_phi; } } diff --git a/src/interpreter.c b/src/interpreter.c index ba97321a922ee..fae9d11c71d74 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -289,7 +289,8 @@ static jl_value_t *eval_value(jl_value_t *e, interpreter_state *s) else if (head == boundscheck_sym) { return jl_true; } - else if (head == meta_sym || head == coverageeffect_sym || head == inbounds_sym || head == loopinfo_sym) { + else if (head == meta_sym || head == coverageeffect_sym || head == inbounds_sym || head == loopinfo_sym || + head == aliasscope_sym || head == popaliasscope_sym) { return jl_nothing; } else if (head == gc_preserve_begin_sym || head == gc_preserve_end_sym) { diff --git a/src/jltypes.c b/src/jltypes.c index d952a68cd4c0d..935ddf749b70f 100644 --- a/src/jltypes.c +++ b/src/jltypes.c @@ -1120,6 +1120,93 @@ static jl_value_t *normalize_vararg(jl_value_t *va) return va; } +int _may_substitute_ub(jl_value_t *v, jl_tvar_t *var, int inside_inv, int *cov_count) JL_NOTSAFEPOINT +{ + if (v == (jl_value_t*)var) { + if (inside_inv) { + return 0; + } + else { + (*cov_count)++; + return *cov_count <= 1 || jl_is_concrete_type(var->ub); + } + } + else if (jl_is_uniontype(v)) { + return _may_substitute_ub(((jl_uniontype_t*)v)->a, var, inside_inv, cov_count) && + _may_substitute_ub(((jl_uniontype_t*)v)->b, var, inside_inv, cov_count); + } + else if (jl_is_unionall(v)) { + jl_unionall_t *ua = (jl_unionall_t*)v; + if (ua->var == var) + return 1; + return _may_substitute_ub(ua->var->lb, var, inside_inv, cov_count) && + _may_substitute_ub(ua->var->ub, var, inside_inv, cov_count) && + _may_substitute_ub(ua->body, var, inside_inv, cov_count); + } + else if (jl_is_vararg_type(v)) { + int old_count = *cov_count; + jl_value_t *vaT = jl_tparam0(v); + jl_value_t *vaN = jl_tparam1(v); + if (!_may_substitute_ub(vaT, var, inside_inv, cov_count)) + return 0; + if (*cov_count > old_count && !jl_is_concrete_type(var->ub)) + return 0; + if (!_may_substitute_ub(vaN, var, 1, cov_count)) + return 0; + } + else if (jl_is_datatype(v)) { + int invar = inside_inv || !jl_is_tuple_type(v); + for (size_t i = 0; i < jl_nparams(v); i++) { + if (!_may_substitute_ub(jl_tparam(v,i), var, invar, cov_count)) + return 0; + } + } + return 1; +} + +// Check whether `var` may be replaced with its upper bound `ub` in `v where var<:ub` +// Conditions: +// * `var` does not appear in invariant position +// * `var` appears at most once (in covariant position) and not in a `Vararg` +// unless the upper bound is concrete (diagonal rule) +int may_substitute_ub(jl_value_t *v, jl_tvar_t *var) JL_NOTSAFEPOINT +{ + int cov_count = 0; + return _may_substitute_ub(v, var, 0, &cov_count); +} + +jl_value_t *normalize_unionalls(jl_value_t *t) +{ + JL_GC_PUSH1(&t); + if (jl_is_uniontype(t)) { + jl_uniontype_t *u = (jl_uniontype_t*)t; + jl_value_t *a = NULL; + jl_value_t *b = NULL; + JL_GC_PUSH2(&a, &b); + a = normalize_unionalls(u->a); + b = normalize_unionalls(u->b); + if (a != u->a || b != u->b) { + t = jl_new_struct(jl_uniontype_type, a, b); + } + JL_GC_POP(); + } + else if (jl_is_unionall(t)) { + jl_unionall_t *u = (jl_unionall_t*)t; + jl_value_t *body = normalize_unionalls(u->body); + if (body != u->body) { + JL_GC_PUSH1(&body); + t = jl_new_struct(jl_unionall_type, u->var, body); + JL_GC_POP(); + u = (jl_unionall_t*)t; + } + + if (u->var->lb == u->var->ub || may_substitute_ub(body, u->var)) + t = jl_instantiate_unionall(u, u->var->ub); + } + JL_GC_POP(); + return t; +} + static jl_value_t *_jl_instantiate_type_in_env(jl_value_t *ty, jl_unionall_t *env, jl_value_t **vals, jl_typeenv_t *prev, jl_typestack_t *stack); static jl_value_t *inst_datatype_inner(jl_datatype_t *dt, jl_svec_t *p, jl_value_t **iparams, size_t ntp, @@ -1129,6 +1216,11 @@ static jl_value_t *inst_datatype_inner(jl_datatype_t *dt, jl_svec_t *p, jl_value jl_typename_t *tn = dt->name; int istuple = (tn == jl_tuple_typename); int isnamedtuple = (tn == jl_namedtuple_typename); + if (dt->name != jl_type_typename) { + for (size_t i = 0; i < ntp; i++) + iparams[i] = normalize_unionalls(iparams[i]); + } + // check type cache if (cacheable) { size_t i; diff --git a/src/julia-syntax.scm b/src/julia-syntax.scm index 620253de26bbc..f2861656015f6 100644 --- a/src/julia-syntax.scm +++ b/src/julia-syntax.scm @@ -2295,11 +2295,12 @@ 'string (lambda (e) (expand-forms - `(call (top string) ,@(map (lambda (s) - (if (and (pair? s) (eq? (car s) 'string)) - (cadr s) - s)) - (cdr e))))) + `(call (top string) + ,@(map (lambda (s) + (if (and (length= s 2) (eq? (car s) 'string) (string? (cadr s))) + (cadr s) + s)) + (cdr e))))) '|::| (lambda (e) diff --git a/src/macroexpand.scm b/src/macroexpand.scm index 882fe88a2e648..5e55c7bbb29c1 100644 --- a/src/macroexpand.scm +++ b/src/macroexpand.scm @@ -210,7 +210,8 @@ ((atom? v) '()) (else (case (car v) - ((... kw |::| =) (try-arg-name (cadr v))) + ((|::|) (if (length= v 2) '() (try-arg-name (cadr v)))) + ((... kw =) (try-arg-name (cadr v))) ((escape) (list v)) ((hygienic-scope) (try-arg-name (cadr v))) ((meta) ;; allow certain per-argument annotations @@ -324,7 +325,7 @@ m parent-scope inarg)) (define (resolve-expansion-vars- e env m parent-scope inarg) - (cond ((or (eq? e 'end) (eq? e 'ccall) (eq? e 'cglobal)) + (cond ((or (eq? e 'begin) (eq? e 'end) (eq? e 'ccall) (eq? e 'cglobal) (underscore-symbol? e)) e) ((symbol? e) (let ((a (assq e env))) diff --git a/stdlib/Distributed/src/clusterserialize.jl b/stdlib/Distributed/src/clusterserialize.jl index 3fde2bb4c2bd6..e37987c5bf875 100644 --- a/stdlib/Distributed/src/clusterserialize.jl +++ b/stdlib/Distributed/src/clusterserialize.jl @@ -102,19 +102,6 @@ function serialize(s::ClusterSerializer, t::Core.TypeName) nothing end -function serialize(s::ClusterSerializer, t::Task) - serialize_cycle(s, t) && return - if istaskstarted(t) && !istaskdone(t) - error("cannot serialize a running Task") - end - writetag(s.io, TASK_TAG) - serialize(s, t.code) - serialize(s, t.storage) - serialize(s, t._state) - serialize(s, t.result) - serialize(s, t._isexception) -end - function serialize(s::ClusterSerializer, g::GlobalRef) # Record if required and then invoke the default GlobalRef serializer. sym = g.name @@ -244,17 +231,6 @@ function deserialize(s::ClusterSerializer, t::Type{<:CapturedException}) return CapturedException(capex, bt) end -function deserialize(s::ClusterSerializer, ::Type{Task}) - t = Task(nothing) - deserialize_cycle(s, t) - t.code = deserialize(s) - t.storage = deserialize(s) - t._state = deserialize(s)::UInt8 - t.result = deserialize(s) - t._isexception = deserialize(s) - t -end - """ clear!(syms, pids=workers(); mod=Main) diff --git a/stdlib/Distributed/test/distributed_exec.jl b/stdlib/Distributed/test/distributed_exec.jl index 656792e2d7337..7f804c51082ac 100644 --- a/stdlib/Distributed/test/distributed_exec.jl +++ b/stdlib/Distributed/test/distributed_exec.jl @@ -1697,7 +1697,7 @@ let e = @test_throws RemoteException pmap(1) do _ es = sprint(showerror, e.value) @test contains(es, ":\nTaskFailedException\nStacktrace:\n") @test contains(es, "\n\n nested task error:") - @test_broken contains(es, "\n\n nested task error: 42\n") + @test contains(es, "\n\n nested task error: 42\n") end # issue #27429, propagate relative `include` path to workers diff --git a/stdlib/InteractiveUtils/src/InteractiveUtils.jl b/stdlib/InteractiveUtils/src/InteractiveUtils.jl index 87bc01f159d51..b50c3240c04ab 100644 --- a/stdlib/InteractiveUtils/src/InteractiveUtils.jl +++ b/stdlib/InteractiveUtils/src/InteractiveUtils.jl @@ -396,9 +396,12 @@ function report_bug(kind) mktempdir() do tmp old_load_path = copy(LOAD_PATH) push!(empty!(LOAD_PATH), joinpath(tmp, "Project.toml")) + old_active_project = Base.ACTIVE_PROJECT[] + Base.ACTIVE_PROJECT[] = nothing Pkg.add(Pkg.PackageSpec(BugReportingId.name, BugReportingId.uuid)) BugReporting = Base.require(BugReportingId) append!(empty!(LOAD_PATH), old_load_path) + Base.ACTIVE_PROJECT[] = old_active_project end end else diff --git a/stdlib/LibGit2/src/gitcredential.jl b/stdlib/LibGit2/src/gitcredential.jl index 0a442337531a7..1b97c29cd933e 100644 --- a/stdlib/LibGit2/src/gitcredential.jl +++ b/stdlib/LibGit2/src/gitcredential.jl @@ -30,7 +30,12 @@ function GitCredential(cfg::GitConfig, url::AbstractString) fill!(cfg, parse(GitCredential, url)) end -GitCredential(cred::UserPasswordCredential, url::AbstractString) = parse(GitCredential, url) +function GitCredential(user_pass_cred::UserPasswordCredential, url::AbstractString) + cred = parse(GitCredential, url) + cred.username = user_pass_cred.user + cred.password = deepcopy(user_pass_cred.pass) + return cred +end Base.:(==)(c1::GitCredential, c2::GitCredential) = (c1.protocol, c1.host, c1.path, c1.username, c1.password, c1.use_http_path) == (c2.protocol, c2.host, c2.path, c2.username, c2.password, c2.use_http_path) diff --git a/stdlib/LibGit2/test/libgit2.jl b/stdlib/LibGit2/test/libgit2.jl index bc678b2dc7160..f39c0a0e3b27a 100644 --- a/stdlib/LibGit2/test/libgit2.jl +++ b/stdlib/LibGit2/test/libgit2.jl @@ -600,6 +600,23 @@ end github_regex_test("ssh://git@github.com/$user/$repo", user, repo) @test !occursin(LibGit2.GITHUB_REGEX, "git@notgithub.com/$user/$repo.git") end + + @testset "UserPasswordCredential/url constructor" begin + user_pass_cred = LibGit2.UserPasswordCredential("user", "*******") + url = "https://github.com" + expected_cred = LibGit2.GitCredential("https", "github.com", nothing, "user", "*******") + + cred = LibGit2.GitCredential(user_pass_cred, url) + @test cred == expected_cred + + # Shredding the UserPasswordCredential shouldn't result in information being lost + # inside of a GitCredential. + Base.shred!(user_pass_cred) + @test cred == expected_cred + + Base.shred!(cred) + Base.shred!(expected_cred) + end end mktempdir() do dir @@ -2121,6 +2138,50 @@ mktempdir() do dir end end end + + @testset "approve/reject with UserPasswordCredential" begin + # In order to use the "store" credential helper `git` needs to be installed and + # on the path. + if GIT_INSTALLED + config_path = joinpath(dir, config_file) + isfile(config_path) && rm(config_path) + + credential_path = joinpath(dir, ".git-credentials") + isfile(credential_path) && rm(credential_path) + + LibGit2.with(LibGit2.GitConfig(config_path, LibGit2.Consts.CONFIG_LEVEL_APP)) do cfg + query = LibGit2.GitCredential("https", "mygithost") + filled = LibGit2.GitCredential("https", "mygithost", nothing, "alice", "1234") + user_pass_cred = LibGit2.UserPasswordCredential("alice", "1234") + url = "https://mygithost" + + # Requires `git` to be installed and available on the path. + LibGit2.set!(cfg, "credential.helper", "store --file \"$credential_path\"") + helper = only(LibGit2.credential_helpers(cfg, query)) + + @test !isfile(credential_path) + + Base.shred!(LibGit2.fill!(helper, deepcopy(query))) do result + @test result == query + end + + LibGit2.approve(cfg, user_pass_cred, url) + @test isfile(credential_path) + Base.shred!(LibGit2.fill!(helper, deepcopy(query))) do result + @test result == filled + end + + LibGit2.reject(cfg, user_pass_cred, url) + Base.shred!(LibGit2.fill!(helper, deepcopy(query))) do result + @test result == query + end + + Base.shred!(query) + Base.shred!(filled) + Base.shred!(user_pass_cred) + end + end + end end # The following tests require that we can fake a TTY so that we can provide passwords diff --git a/stdlib/LinearAlgebra/src/matmul.jl b/stdlib/LinearAlgebra/src/matmul.jl index 27bd9c2f23b15..e755cc88c6572 100644 --- a/stdlib/LinearAlgebra/src/matmul.jl +++ b/stdlib/LinearAlgebra/src/matmul.jl @@ -683,7 +683,7 @@ function copyto!(B::AbstractVecOrMat, ir_dest::UnitRange{Int}, jr_dest::UnitRang copyto!(B, ir_dest, jr_dest, M, ir_src, jr_src) else LinearAlgebra.copy_transpose!(B, ir_dest, jr_dest, M, jr_src, ir_src) - tM == 'C' && conj!(B) + tM == 'C' && conj!(@view B[ir_dest, jr_dest]) end B end @@ -693,7 +693,7 @@ function copy_transpose!(B::AbstractMatrix, ir_dest::UnitRange{Int}, jr_dest::Un LinearAlgebra.copy_transpose!(B, ir_dest, jr_dest, M, ir_src, jr_src) else copyto!(B, ir_dest, jr_dest, M, jr_src, ir_src) - tM == 'C' && conj!(B) + tM == 'C' && conj!(@view B[ir_dest, jr_dest]) end B end diff --git a/stdlib/Markdown/src/render/terminal/formatting.jl b/stdlib/Markdown/src/render/terminal/formatting.jl index bacd82f7ed021..87022124b9c8a 100644 --- a/stdlib/Markdown/src/render/terminal/formatting.jl +++ b/stdlib/Markdown/src/render/terminal/formatting.jl @@ -9,8 +9,9 @@ end words(s) = split(s, " ") lines(s) = split(s, "\n") -function wrapped_lines!(lines, io::IO, s::AbstractString, width, i) +function wrapped_line(io::IO, s::AbstractString, width, i) ws = words(s) + lines = String[] for word in ws word_length = ansi_length(word) word_length == 0 && continue @@ -22,19 +23,16 @@ function wrapped_lines!(lines, io::IO, s::AbstractString, width, i) lines[end] *= " " * word # this could be more efficient end end - return i + return i, lines end function wrapped_lines(io::IO, s::AbstractString; width = 80, i = 0) - lines = AbstractString[] - if occursin(r"\n", s) - for ss in split(s, "\n") - i = wrapped_lines!(lines, io, ss, width, i) - end - else - wrapped_lines!(lines, io, s, width, i) + ls = String[] + for ss in lines(s) + i, line = wrapped_line(io, ss, width, i) + append!(ls, line) end - return lines + return ls end wrapped_lines(io::IO, f::Function, args...; width = 80, i = 0) = diff --git a/stdlib/Markdown/test/runtests.jl b/stdlib/Markdown/test/runtests.jl index f9983d10089f9..f90eefb85310e 100644 --- a/stdlib/Markdown/test/runtests.jl +++ b/stdlib/Markdown/test/runtests.jl @@ -1222,3 +1222,11 @@ end """) end +@testset "issue #37232: linebreaks" begin + s = @md_str """ + Misc:\\ + - line\\ + """ + @test sprint(show, MIME("text/plain"), s) == " Misc:\n - line" +end + diff --git a/stdlib/PCRE2_jll/Project.toml b/stdlib/PCRE2_jll/Project.toml index 4b57093d649b4..7f364d3fefd88 100644 --- a/stdlib/PCRE2_jll/Project.toml +++ b/stdlib/PCRE2_jll/Project.toml @@ -1,6 +1,6 @@ name = "PCRE2_jll" uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.35.0+0" +version = "10.36.0+0" [deps] Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb" diff --git a/stdlib/PCRE2_jll/test/runtests.jl b/stdlib/PCRE2_jll/test/runtests.jl index aa1d89f02cea5..b2446e7e5caab 100644 --- a/stdlib/PCRE2_jll/test/runtests.jl +++ b/stdlib/PCRE2_jll/test/runtests.jl @@ -6,5 +6,5 @@ using Test, Libdl, PCRE2_jll vstr = zeros(UInt8, 32) @test ccall((:pcre2_config_8, libpcre2_8), Cint, (UInt32, Ref{UInt8}), 11, vstr) > 0 vn = VersionNumber(split(unsafe_string(pointer(vstr)), " ")[1]) - @test vn == v"10.35.0" + @test vn == v"10.36.0" end diff --git a/stdlib/Pkg.version b/stdlib/Pkg.version index f379c4e6af7f9..b9170acec51b0 100644 --- a/stdlib/Pkg.version +++ b/stdlib/Pkg.version @@ -1,2 +1,2 @@ PKG_BRANCH = release-1.6 -PKG_SHA1 = 05fa7f93f73afdabd251247d03144de9f7b36b50 +PKG_SHA1 = c78a8be9af8aa0944b74f297791e10933f223aad diff --git a/stdlib/Printf/src/Printf.jl b/stdlib/Printf/src/Printf.jl index ac57f95ec6bb9..e00b6becbb0f1 100644 --- a/stdlib/Printf/src/Printf.jl +++ b/stdlib/Printf/src/Printf.jl @@ -547,7 +547,7 @@ const __BIG_FLOAT_MAX__ = 8192 end # pointers -fmt(buf, pos, arg, spec::Spec{Pointer}) = fmt(buf, pos, Int(arg), ptrfmt(spec, arg)) +fmt(buf, pos, arg, spec::Spec{Pointer}) = fmt(buf, pos, UInt64(arg), ptrfmt(spec, arg)) # old Printf compat function fix_dec end diff --git a/stdlib/Printf/test/runtests.jl b/stdlib/Printf/test/runtests.jl index d38c90734d4f1..f6645464b4797 100644 --- a/stdlib/Printf/test/runtests.jl +++ b/stdlib/Printf/test/runtests.jl @@ -19,6 +19,9 @@ using Test, Printf @test (@sprintf "%-20p" C_NULL) == "0x00000000 " end + #40318 + @test @sprintf("%p", 0xfffffffffffe0000) == "0xfffffffffffe0000" + end @testset "%a" begin @@ -141,6 +144,10 @@ end @test Printf.@sprintf("%+ 09.1f", 1.234) == "+000001.2" @test Printf.@sprintf("%+ 09.0f", 1.234) == "+00000001" @test Printf.@sprintf("%+ #09.0f", 1.234) == "+0000001." + + #40303 + @test Printf.@sprintf("%+7.1f", 9.96) == " +10.0" + @test Printf.@sprintf("% 7.1f", 9.96) == " 10.0" end @testset "%e" begin @@ -202,6 +209,10 @@ end @test Printf.@sprintf("%+ 09.1e", 1.234) == "+01.2e+00" @test Printf.@sprintf("%+ 09.0e", 1.234) == "+0001e+00" @test Printf.@sprintf("%+ #09.0e", 1.234) == "+001.e+00" + + #40303 + @test Printf.@sprintf("%+9.1e", 9.96) == " +1.0e+01" + @test Printf.@sprintf("% 9.1e", 9.96) == " 1.0e+01" end @testset "strings" begin diff --git a/stdlib/Serialization/src/Serialization.jl b/stdlib/Serialization/src/Serialization.jl index 1c1cf00d0f426..80b1946e79564 100644 --- a/stdlib/Serialization/src/Serialization.jl +++ b/stdlib/Serialization/src/Serialization.jl @@ -444,11 +444,19 @@ function serialize(s::AbstractSerializer, t::Task) if istaskstarted(t) && !istaskdone(t) error("cannot serialize a running Task") end - state = [t.code, t.storage, t.state, t.result, t._isexception] writetag(s.io, TASK_TAG) - for fld in state - serialize(s, fld) + serialize(s, t.code) + serialize(s, t.storage) + serialize(s, t.state) + if t._isexception && (stk = Base.catch_stack(t); !isempty(stk)) + # the exception stack field is hidden inside the task, so if there + # is any information there make a CapturedException from it instead. + # TODO: Handle full exception chain, not just the first one. + serialize(s, CapturedException(stk[1][1], stk[1][2])) + else + serialize(s, t.result) end + serialize(s, t._isexception) end function serialize(s::AbstractSerializer, g::GlobalRef) diff --git a/stdlib/SharedArrays/src/SharedArrays.jl b/stdlib/SharedArrays/src/SharedArrays.jl index 08a7b6fbe2b3e..540f1d3f5fc34 100644 --- a/stdlib/SharedArrays/src/SharedArrays.jl +++ b/stdlib/SharedArrays/src/SharedArrays.jl @@ -295,14 +295,21 @@ size(S::SharedArray) = S.dims elsize(::Type{SharedArray{T,N}}) where {T,N} = elsize(Array{T,N}) # aka fieldtype(T, :s) IndexStyle(::Type{<:SharedArray}) = IndexLinear() +function local_array_by_id(refid) + if isa(refid, Future) + refid = remoteref_id(refid) + end + fetch(channel_from_id(refid)) +end + function reshape(a::SharedArray{T}, dims::NTuple{N,Int}) where {T,N} if length(a) != prod(dims) throw(DimensionMismatch("dimensions must be consistent with array size")) end refs = Vector{Future}(undef, length(a.pids)) for (i, p) in enumerate(a.pids) - refs[i] = remotecall(p, a.refs[i], dims) do r,d - reshape(fetch(r),d) + refs[i] = remotecall(p, a.refs[i], dims) do r, d + reshape(local_array_by_id(r), d) end end @@ -382,7 +389,7 @@ function shared_pids(pids) # only use workers on the current host pids = procs(myid()) if length(pids) > 1 - pids = filter(x -> x != 1, pids) + pids = filter(!=(1), pids) end onlocalhost = true @@ -419,13 +426,7 @@ sub_1dim(S::SharedArray, pidx) = view(S.s, range_1dim(S, pidx)) function init_loc_flds(S::SharedArray{T,N}, empty_local=false) where T where N if myid() in S.pids S.pidx = findfirst(isequal(myid()), S.pids) - if isa(S.refs[1], Future) - refid = remoteref_id(S.refs[S.pidx]) - else - refid = S.refs[S.pidx] - end - c = channel_from_id(refid) - S.s = fetch(c) + S.s = local_array_by_id(S.refs[S.pidx]) S.loc_subarr_1d = sub_1dim(S, S.pidx) else S.pidx = 0 diff --git a/stdlib/SharedArrays/test/runtests.jl b/stdlib/SharedArrays/test/runtests.jl index 7a4d46d4777b3..7f1bbb6891ce0 100644 --- a/stdlib/SharedArrays/test/runtests.jl +++ b/stdlib/SharedArrays/test/runtests.jl @@ -176,6 +176,12 @@ d = SharedArrays.shmem_fill(1.0, (10,10,10)) @test fill(1., 100, 10) == reshape(d,(100,10)) d = SharedArrays.shmem_fill(1.0, (10,10,10)) @test_throws DimensionMismatch reshape(d,(50,)) +# issue #40249, reshaping on another process +let m = SharedArray{ComplexF64}(10, 20, 30) + m2 = remotecall_fetch(() -> reshape(m, (100, :)), id_other) + @test size(m2) == (100, 60) + @test m2 isa SharedArray +end # rand, randn d = SharedArrays.shmem_rand(dims) diff --git a/stdlib/SparseArrays/src/linalg.jl b/stdlib/SparseArrays/src/linalg.jl index c6852382b5406..0ac2806b77a04 100644 --- a/stdlib/SparseArrays/src/linalg.jl +++ b/stdlib/SparseArrays/src/linalg.jl @@ -646,7 +646,7 @@ function _ldiv!(L::LowerTriangularPlain, B::StridedVecOrMat) for k = 1:ncolB for j = 1:nrowB i1 = ia[j] - i2 = ia[j + 1] - 1 + i2 = ia[j + 1] - one(eltype(ia)) # find diagonal element ii = searchsortedfirst(ja, j, i1, i2, Base.Order.Forward) @@ -688,7 +688,7 @@ function _ldiv!(U::UpperTriangularPlain, B::StridedVecOrMat) for k = 1:ncolB for j = nrowB:-1:1 i1 = ia[j] - i2 = ia[j + 1] - 1 + i2 = ia[j + 1] - one(eltype(ia)) # find diagonal element ii = searchsortedlast(ja, j, i1, i2, Base.Order.Forward) diff --git a/stdlib/SparseArrays/test/sparsevector.jl b/stdlib/SparseArrays/test/sparsevector.jl index 602818678908b..79c952620050c 100644 --- a/stdlib/SparseArrays/test/sparsevector.jl +++ b/stdlib/SparseArrays/test/sparsevector.jl @@ -1050,6 +1050,10 @@ end @test y == Af'x2f end end + @testset "ldiv with different element types (#40171)" begin + sA = sparse(Int16.(1:4), Int16.(1:4), ones(4)) + @test all(ldiv!(LowerTriangular(sA), ones(4)) .≈ 1.) + end @testset "ldiv ops with triangular matrices and sparse vecs (#14005)" begin m = 10 sparsefloatvecs = SparseVector[sprand(m, 0.4) for k in 1:3] diff --git a/stdlib/TOML/docs/src/index.md b/stdlib/TOML/docs/src/index.md index e34bb8d85f2f1..36e8ec6248108 100644 --- a/stdlib/TOML/docs/src/index.md +++ b/stdlib/TOML/docs/src/index.md @@ -65,8 +65,6 @@ format. ```jldoctest julia> using TOML -julia> fname = tempname(); - julia> data = Dict( "names" => ["Julia", "Julio"], "age" => [10, 20], @@ -75,6 +73,17 @@ julia> data = Dict( julia> TOML.print(data) names = ["Julia", "Julio"] age = [10, 20] + +julia> fname = tempname(); + +julia> open(fname, "w") do io + TOML.print(io, data) + end + +julia> TOML.parsefile(fname) +Dict{String, Any} with 2 entries: + "names" => ["Julia", "Julio"] + "age" => [10, 20] ``` Keys can be sorted according to some value diff --git a/stdlib/TOML/test/values.jl b/stdlib/TOML/test/values.jl index 9f09e26b01cda..8337bb5a54714 100644 --- a/stdlib/TOML/test/values.jl +++ b/stdlib/TOML/test/values.jl @@ -39,6 +39,7 @@ end @test testval("1.0e0" , 1.0) @test testval("1.0e+0" , 1.0) @test testval("1.0e-0" , 1.0) + @test testval("0e-3" , 0.0) @test testval("1.001e-0" , 1.001) @test testval("2e10" , 2e10) @test testval("2e+10" , 2e10) @@ -53,8 +54,8 @@ end @test testval("+1_000" , 1000 |> Int64) @test testval("-1_000" , -1000 |> Int64) - @test failval("0_" , Internals.ErrLeadingZeroNotAllowedInteger) - @test failval("0__0" , Internals.ErrLeadingZeroNotAllowedInteger) + @test failval("0_" , Internals.ErrUnderscoreNotSurroundedByDigits) + @test failval("0__0" , Internals.ErrUnderscoreNotSurroundedByDigits) @test failval("__0" , Internals.ErrUnexpectedStartOfValue) @test failval("1_0_" , Internals.ErrTrailingUnderscoreNumber) @test failval("1_0__0" , Internals.ErrUnderscoreNotSurroundedByDigits) diff --git a/stdlib/Tar.version b/stdlib/Tar.version index 0ab47a82fd468..2997467cdd1bd 100644 --- a/stdlib/Tar.version +++ b/stdlib/Tar.version @@ -1,2 +1,2 @@ TAR_BRANCH = master -TAR_SHA1 = ac4d442266a676ce2d1a43acb55fc07d1edc6566 +TAR_SHA1 = 86825ecf1e8b6f57105bf0632e93c532cee200a4 diff --git a/stdlib/libLLVM_jll/Project.toml b/stdlib/libLLVM_jll/Project.toml index c572b5c60c25e..6954f96dff80c 100644 --- a/stdlib/libLLVM_jll/Project.toml +++ b/stdlib/libLLVM_jll/Project.toml @@ -1,6 +1,6 @@ name = "libLLVM_jll" uuid = "8f36deef-c2a5-5394-99ed-8e07531fb29a" -version = "11.0.1+2" +version = "11.0.1+3" [deps] Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb" diff --git a/test/abstractarray.jl b/test/abstractarray.jl index bc7c4d646fd8e..d14c1592d70f6 100644 --- a/test/abstractarray.jl +++ b/test/abstractarray.jl @@ -1230,3 +1230,9 @@ end @test [1; 1:BigInt(5)] == [1; 1:5] @test [1:BigInt(5); 1] == [1:5; 1] end + +@testset "reduce(vcat, ...) inferrence #40277" begin + x_vecs = ([5, ], [1.0, 2.0, 3.0]) + @test @inferred(reduce(vcat, x_vecs)) == [5.0, 1.0, 2.0, 3.0] + @test @inferred(reduce(vcat, ([10.0], [20.0], Bool[]))) == [10.0, 20.0] +end diff --git a/test/boundscheck_exec.jl b/test/boundscheck_exec.jl index 62a20921bd44e..e1a7029334a3d 100644 --- a/test/boundscheck_exec.jl +++ b/test/boundscheck_exec.jl @@ -251,5 +251,12 @@ if bc_opt == bc_default || bc_opt == bc_off @test occursin("vector.body", sprint(code_llvm, g27079, Tuple{Vector{Int}})) end +# Boundschecking removal of indices with different type, see #40281 +getindex_40281(v, a, b, c) = @inbounds getindex(v, a, b, c) +typed_40281 = sprint((io, args...) -> code_warntype(io, args...; optimize=true), getindex_40281, Tuple{Array{Float64, 3}, Int, UInt8, Int}) +if bc_opt == bc_default || bc_opt == bc_off + @test occursin("arrayref(false", typed_40281) + @test !occursin("arrayref(true", typed_40281) +end end diff --git a/test/compiler/codegen.jl b/test/compiler/codegen.jl index 2b7b266751a08..2e4dadcc68df8 100644 --- a/test/compiler/codegen.jl +++ b/test/compiler/codegen.jl @@ -551,3 +551,11 @@ end end @test occursin("llvm.julia.gc_preserve_begin", get_llvm(f4, Tuple{Bool}, true, false, false)) end + +# issue #32843 +function f32843(vals0, v) + (length(vals0) > 1) && (vals = v[1]) + (length(vals0) == 1 && vals0[1]==1) && (vals = 1:2) + vals +end +@test_throws UndefVarError f32843([6], Vector[[1]]) diff --git a/test/core.jl b/test/core.jl index 1fceddb93084f..ffd11c8e783ef 100644 --- a/test/core.jl +++ b/test/core.jl @@ -7224,6 +7224,11 @@ end @test_broken isbitstype(Tuple{B33954}) @test_broken isbitstype(B33954) +struct B40050 <: Ref{Tuple{B40050}} +end +@test string((B40050(),)) == "($B40050(),)" +@test_broken isbitstype(Tuple{B40050}) + # Issue #34206/34207 function mre34206(a, n) va = view(a, :) @@ -7535,3 +7540,12 @@ for _ in 1:5 @test all(x->ismissing(x.i), a) end end + +# issue #35130 +const T35130 = Tuple{Vector{Int}, <:Any} +@eval struct A35130 + x::Vector{Tuple{Vector{Int}, Any}} + A35130(x) = $(Expr(:new, :A35130, :x)) +end +h35130(x) = A35130(Any[x][1]::Vector{T35130}) +@test h35130(T35130[([1],1)]) isa A35130 diff --git a/test/path.jl b/test/path.jl index bbd9159c59295..e263b7c7db917 100644 --- a/test/path.jl +++ b/test/path.jl @@ -9,6 +9,23 @@ @test isabspath(S(homedir())) @test !isabspath(S("foo")) end + if Sys.iswindows() + @testset "issue #38491" begin + pwd_drive = uppercase(splitdrive(pwd())[1]) + drive = (pwd_drive == "X:") ? "Y:" : "X:" + @test abspath("$(lowercase(drive))a\\b\\c") == "$(lowercase(drive))\\a\\b\\c" + @test abspath("$(uppercase(drive))a\\b\\c") == "$(uppercase(drive))\\a\\b\\c" + @test abspath("$(lowercase(drive))a") == "$(lowercase(drive))\\a" + @test abspath("$(uppercase(drive))a") == "$(uppercase(drive))\\a" + @test abspath(lowercase(drive)) == "$(lowercase(drive))\\" + @test abspath(uppercase(drive)) == "$(uppercase(drive))\\" + + @test lowercase(abspath("$(pwd_drive)a\\b\\c")) == lowercase(joinpath(pwd(), "a\\b\\c")) + @test lowercase(abspath("$(pwd_drive)a")) == lowercase(joinpath(pwd(), "a")) + @test lowercase(abspath(lowercase(pwd_drive))) == lowercase("$(pwd())\\") + @test lowercase(abspath(uppercase(pwd_drive))) == lowercase("$(pwd())\\") + end + end @test basename(S("foo$(sep)bar")) == "bar" @test dirname(S("foo$(sep)bar")) == "foo" @@ -273,6 +290,10 @@ # Additional cases @test_throws ArgumentError relpath(S("$(sep)home$(sep)user$(sep)dir_withendsep$(sep)"), "") @test_throws ArgumentError relpath(S(""), S("$(sep)home$(sep)user$(sep)dir_withendsep$(sep)")) + + # issue 40237 + path = "..$(sep)a$(sep)b$(sep)c" + @test relpath(abspath(path)) == path end test_relpath() end diff --git a/test/regex.jl b/test/regex.jl index 76fecfb4e4f56..bc8506b17999b 100644 --- a/test/regex.jl +++ b/test/regex.jl @@ -90,6 +90,16 @@ @test sprint(show, m) == "RegexMatch(\"xyz\", a=\"x\", 2=\"y\", b=\"z\")" end + # Unicode named subpatterns and property mixes of scripts and classes (issues #35322/#35459 and #40231) + let m = match(r"(?\d)[\pZs]*(?<文本>[\p{Han}\p{P}]+)", "1 孔生雪笠,聖裔也。為人蘊藉,工詩。") + @test haskey(m, :numéro) + @test haskey(m, "文本") + @test !haskey(m, "ゑ") + @test (m[:numéro], m[:文本]) == ("1", "孔生雪笠,聖裔也。為人蘊藉,工詩。") + @test (m[1], m[2]) == (m[:numéro], m[:文本]) + @test sprint(show, m) == "RegexMatch(\"1 孔生雪笠,聖裔也。為人蘊藉,工詩。\", numéro=\"1\", 文本=\"孔生雪笠,聖裔也。為人蘊藉,工詩。\")" + end + # Backcapture reference in substitution string @test replace("abcde", r"(..)(?Pd)" => s"\gxy\\\1") == "adxy\\bce" @test_throws ErrorException replace("a", r"(?P)" => s"\g") diff --git a/test/sorting.jl b/test/sorting.jl index 6bf7d60bd859d..718a7f819e203 100644 --- a/test/sorting.jl +++ b/test/sorting.jl @@ -105,7 +105,7 @@ end @test searchsorted(fill(R(1), 15), T(1), 6, 10, Forward) == 6:10 end - for (rg,I) in [(49:57,47:59), (1:2:17,-1:19), (-3:0.5:2,-5:.5:4)] + for (rg,I) in Any[(49:57,47:59), (1:2:17,-1:19), (-3:0.5:2,-5:.5:4)] rg_r = reverse(rg) rgv, rgv_r = [rg;], [rg_r;] for i = I @@ -144,7 +144,7 @@ end @testset "issue 32568" begin for R in numTypes, T in numTypes - for arr in [R[1:5;], R(1):R(5), R(1):2:R(5)] + for arr in Any[R[1:5;], R(1):R(5), R(1):2:R(5)] @test eltype(searchsorted(arr, T(2))) == keytype(arr) @test eltype(searchsorted(arr, T(2), big(1), big(4), Forward)) == keytype(arr) @test searchsortedfirst(arr, T(2)) isa keytype(arr) @@ -164,35 +164,46 @@ end @test searchsorted([1,2], Inf) === 3:2 @test searchsorted(1:2, Inf) === 3:2 - for coll in [ + for coll in Any[ Base.OneTo(10), 1:2, + 0x01:0x02, -4:6, 5:2:10, [1,2], 1.0:4, [10.0,20.0], ] - for huge in [Inf, 1e300] + for huge in Any[Inf, 1e300, typemax(Int64), typemax(UInt64)] @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) + if !(eltype(coll) <: Unsigned) + @test searchsortedfirst(reverse(coll), huge, rev=true) === firstindex(coll) + @test searchsortedlast(reverse(coll), huge, rev=true) === firstindex(coll) - 1 + @test searchsorted(reverse(coll), huge, rev=true) === firstindex(coll):firstindex(coll) - 1 + end + + if !(huge isa Unsigned) + @test searchsortedfirst(coll, -huge)=== firstindex(coll) + @test searchsortedlast(coll, -huge) === firstindex(coll) - 1 + @test searchsorted(coll, -huge) === firstindex(coll) : firstindex(coll) - 1 + if !(eltype(coll) <: Unsigned) + @test searchsortedfirst(reverse(coll), -huge, rev=true) === lastindex(coll) + 1 + @test searchsortedlast(reverse(coll), -huge, rev=true) === lastindex(coll) + @test searchsorted(reverse(coll), -huge, rev=true) === lastindex(coll)+1:lastindex(coll) + end + end end end - @testset "issue ##34408" begin + + @test_broken length(reverse(0x1:0x2)) == 2 + @testset "issue #34408" begin r = 1f8-10:1f8 # collect(r) = Float32[9.999999e7, 9.999999e7, 9.999999e7, 9.999999e7, 1.0e8, 1.0e8, 1.0e8, 1.0e8, 1.0e8] - @test_broken searchsorted(collect(r)) == searchsorted(r) + for i in r + @test_broken searchsorted(collect(r), i) == searchsorted(r, i) + end end end @testset "issue #35272" begin @@ -329,7 +340,7 @@ end @test insorted(T(10), R.(collect(1:10)), by=(>=(5))) end - for (rg,I) in [(49:57,47:59), (1:2:17,-1:19), (-3:0.5:2,-5:.5:4)] + for (rg,I) in Any[(49:57,47:59), (1:2:17,-1:19), (-3:0.5:2,-5:.5:4)] rg_r = reverse(rg) rgv, rgv_r = collect(rg), collect(rg_r) for i = I diff --git a/test/subtype.jl b/test/subtype.jl index 031a1815b2930..fd5e3156493f1 100644 --- a/test/subtype.jl +++ b/test/subtype.jl @@ -140,7 +140,7 @@ function test_diagonal() @test !issub(Type{Tuple{T,Any} where T}, Type{Tuple{T,T}} where T) @test !issub(Type{Tuple{T,Any,T} where T}, Type{Tuple{T,T,T}} where T) @test_broken issub(Type{Tuple{T} where T}, Type{Tuple{T}} where T) - @test_broken issub(Ref{Tuple{T} where T}, Ref{Tuple{T}} where T) + @test issub(Ref{Tuple{T} where T}, Ref{Tuple{T}} where T) @test !issub(Type{Tuple{T,T} where T}, Type{Tuple{T,T}} where T) @test !issub(Type{Tuple{T,T,T} where T}, Type{Tuple{T,T,T}} where T) @test isequal_type(Ref{Tuple{T, T} where Int<:T<:Int}, diff --git a/test/syntax.jl b/test/syntax.jl index eb113ed4da2c5..68f32b600b79d 100644 --- a/test/syntax.jl +++ b/test/syntax.jl @@ -2674,3 +2674,29 @@ end == 4 @test ncalls_in_lowered(:(.!(1 .< A .< 2)), GlobalRef(Base, :materialize)) == 1 @test ncalls_in_lowered(:((.!)(1 .< A .< 2)), GlobalRef(Base, :materialize)) == 1 end + +macro m_underscore_hygiene() + return :(_ = 1) +end + +@test @macroexpand(@m_underscore_hygiene()) == :(_ = 1) + +macro m_begin_hygiene(a) + return :($(esc(a))[begin]) +end + +@test @m_begin_hygiene([1, 2, 3]) == 1 + +macro m_nospecialize_unnamed_hygiene() + return :(f(@nospecialize(::Any)) = Any) +end + +@test @m_nospecialize_unnamed_hygiene()(1) === Any + +# issue 40258 +@test "a $("b $("c")")" == "a b c" + +@test "$(([[:a, :b], [:c, :d]]...)...)" == "abcd" + +@test eval(Expr(:string, "a", Expr(:string, "b", "c"))) == "abc" +@test eval(Expr(:string, "a", Expr(:string, "b", Expr(:string, "c")))) == "abc"