sort by:
Revision Author Date Message Commit Date
2aaded9 fix invalidations from loading ArrayInterface.jl (#46673) * improve inferrability of `NamedTuple{names}(nt::NamedTuple) where {names}` * improve inferrability of `recursive_dotcalls!(ex, args, i=1)` (cherry picked from commit 5d9807ddefc147f6f005a3fe8b66011b2c7af7a5) 16 September 2022, 09:15:17 UTC
3fa8073 fix issue #46665, `prod(::Array{BigInt})` (#46667) The way we were counting the number of bits was assigning a negative number to `0`, which could lead to a negative total number of bits. Better to just exit early in this case. Also, the estimate was slightly off because we were counting the number of leading zeros in the least significant limb, instead of the most significant. (cherry picked from commit f7b4ebece6ec76289065c523bbc3a2856d3263ae) 16 September 2022, 09:15:16 UTC
237c92d Improve dispatch of `findall(testf::F, A::AbstractArray)` (#46553) This prevents some invalidations in `mightalias(A::AbstractArray, B::AbstractArray)` in abstractarray.jl when loading Static.jl. Here we specialize on the function instead of using map since `broadcasting` returns a BitArray, `map` returns a Vector{Bool}. (cherry picked from commit 31d4c22f29e9dfa7cbe7d3c4f5212c44c5df7baf) 16 September 2022, 09:15:16 UTC
a233e3e bump the Tar stdlib from 0f8a73d to c9e7185 for Julia 1.8 (#46758) 15 September 2022, 15:51:45 UTC
6e4cf29 Remove contradictory inline annotations (#46767) For some reason `tab_unpack` gained an `@noinline` annotation as well as a conflicting `@inline`. The lack of inlining was causing performance problems, so remove both of those, since the function should be inlineable by default. 15 September 2022, 00:07:05 UTC
9f2d553 inference: concretize `invoke` callsite correctly (#46743) It turns out that previously we didn't concretize `invoke` callsite correctly, as we didn't take into account whether the call being concretized is `invoke`-d or not, e.g.: ``` julia> invoke_concretized2(a::Int) = a > 0 ? :int : nothing invoke_concretized2 (generic function with 1 method) julia> invoke_concretized2(a::Integer) = a > 0 ? :integer : nothing invoke_concretized2 (generic function with 2 methods) julia> let Base.Experimental.@force_compile Base.@invoke invoke_concretized2(42::Integer) end :int # this should return `:integer` instead ``` This commit fixes that up by propagating information `invoke`-d callsite to `concrete_eval_call`. Now we should be able to pass the following test cases: ```julia invoke_concretized1(a::Int) = a > 0 ? :int : nothing invoke_concretized1(a::Integer) = a > 0 ? "integer" : nothing @test Base.infer_effects((Int,)) do a @invoke invoke_concretized1(a::Integer) end |> Core.Compiler.is_foldable @test Base.return_types() do @invoke invoke_concretized1(42::Integer) end |> only === String invoke_concretized2(a::Int) = a > 0 ? :int : nothing invoke_concretized2(a::Integer) = a > 0 ? :integer : nothing @test Base.infer_effects((Int,)) do a @invoke invoke_concretized2(a::Integer) end |> Core.Compiler.is_foldable @test let Base.Experimental.@force_compile @invoke invoke_concretized2(42::Integer) end === :integer ``` 14 September 2022, 05:39:57 UTC
16a7aac For Julia 1.8.x, `Tar` should track the `release-1.10` branch of the `JuliaIO/Tar.jl` repo (not the `master` branch of the `JuliaIO/Tar.jl` repo) (#46733) 13 September 2022, 10:57:07 UTC
e0a820e avoid inferring when compilation signature differs from call site sig (#46581) Added in #43415, this was too aggressive for many cases. Unlike the comment suggested, it is unneeded in many cases, so only do it when it is expected to be maximally profitable. Fixes #46492 ``` julia> @time norm(C_212) before 45.959497 seconds (81.85 M allocations: 6.976 GiB, 6.31% gc time, 100.00% compilation time) after 15.781804 seconds (20.81 M allocations: 1.294 GiB, 6.32% gc time, 100.00% compilation time) ``` 09 September 2022, 01:39:21 UTC
3761fd3 add warning for function declaration with undefined static parameter (#46608) Refs #27813 (does not fix it) (cherry picked from commit cfec1731d123868ca2b755f27a9e7bd3aca4060c) 07 September 2022, 07:46:45 UTC
056e260 Deploy release-* branch docs too (#46618) (cherry picked from commit c8e18103c095a19999ff7b18a04d0069cc757bfc) 07 September 2022, 07:46:44 UTC
53a7c00 Improve inferrability of `open(f, cmd, ...)` (#46551) This fixes invalidations from loading Static.jl (cherry picked from commit 7537cb3990355d3c08f2f15b82e4bf54ecac3e0f) 07 September 2022, 07:46:43 UTC
89facae Improve inference in REPL LineEdit.jl `getEntry` (#46550) This prevents invalidations from loading Static.jl (cherry picked from commit adc72d106520bbe9ac1e5363649ff690465c6ce6) 07 September 2022, 07:46:43 UTC
f21aea0 Improve type stability of `platforms_match(::AbstractPlatform, ::AbstractPlatform)` (#46547) This improvement prevents invalidations in binaryplatforms.jl when loading Static.jl. (cherry picked from commit 25a07bf97b5b26ecb80bff0d687e9decd45912b7) 07 September 2022, 07:46:42 UTC
d174fd4 docs: print extra information when deploying (#46030) (cherry picked from commit b3b229e2be9bb661ed0dbff525c7a9f20a7f4785) 07 September 2022, 07:46:41 UTC
afb6c60 set VERSION to 1.8.1 (#46638) 06 September 2022, 15:09:57 UTC
46ba16a Merge pull request #46376 from JuliaLang/backports-release-1.8 release-1.8: Backports for Julia 1.8.1 01 September 2022, 06:07:29 UTC
173f336 fix another invalidation from Static.jl (#46546) This is a follow-up to https://github.com/JuliaLang/julia/pull/46481. I suggest the labels `latency` and `backport-1.8`. (cherry picked from commit f1f5d590df26bd856db0f5ce5590b2975ca6ab84) 31 August 2022, 13:19:12 UTC
d68417f fix invalidations in REPL LineEdit.jl from Static.jl (#46548) * fix invalidations in REPL LineEdit.jl from Static.jl (cherry picked from commit 99d8c7b16acd393dd8d786416174653cebbd7d3b) 31 August 2022, 13:19:11 UTC
f2ed5c3 bump to latest Pkg release-1.8 30 August 2022, 20:21:39 UTC
b10b1dd avoid one invalidation of `isinf` when loading Static.jl (#46493) (cherry picked from commit c2a1650fe90dd4966a56a6ebdceeabef49780527) 30 August 2022, 18:47:16 UTC
8421c03 Improve `foldl`'s stability on nested Iterators (#45789) * Make `Fix1(f, Int)` inference-stable * split `_xfadjoint` into `_xfadjoint_unwrap` and `_xfadjoint_wrap` * Improve `(c::ComposedFunction)(x...)`'s inferability * and fuse it in `Base._xfadjoint`. * define a `Typeof` operator that will partly work around internal type-system bugs Closes #45715 (cherry picked from commit d58289c09c199e01418d0a5c478809b3f6a13fbd) 30 August 2022, 18:47:13 UTC
98efbdf Enhance `StringIndexError` display (correct escaping) (#46039) (cherry picked from commit 1715110da6a9f7a1f1774281e5bbb8d953c3ba60) 30 August 2022, 15:15:47 UTC
9efb6c4 fix invalidations in REPLCompletions from Static.jl (#46494) (cherry picked from commit 99340fec8d7bff148473fc2345b0687746093f2b) 30 August 2022, 15:15:46 UTC
0d42d02 fix invalidations in sort! from Static.jl (#46491) (cherry picked from commit 1fae1b98b042f0dde6910cc931d94ba1d35ca527) 30 August 2022, 15:15:45 UTC
9787fa5 fix invalidations of REPL from HDF5.jl (#46486) (cherry picked from commit 431071bd4ec320d1b51481cd0aa0a8aa7bdc88c8) 30 August 2022, 15:15:44 UTC
598b019 fix invalidations for Dicts from Static.jl (#46490) (cherry picked from commit 5c5af1fffd1bd0a9124415689a4664ab934e79f1) 30 August 2022, 15:15:43 UTC
a462c5a Docs: Remove static scheduling warning (#46519) The docs on multithreading still warns that the default scheduler for @threads uses static scheduling. However, since #44136, dynamic scheduling has been the default. This commit removes the warning. (cherry picked from commit 72222d6dbaf7fd726b38bc3b6baddd51032d1cca) 30 August 2022, 15:15:43 UTC
9db7f85 Use Documenter 0.27.23 (#46516) (cherry picked from commit b64743b30da8b1fa324a24daa3539bbebf528d69) 30 August 2022, 15:15:42 UTC
8bc5c9a fix type instability/invalidations from `nextind` (#46489) (cherry picked from commit 98e1b13a7db5aa1d05b9a48085993375cf2298d0) 30 August 2022, 15:15:42 UTC
bb94590 fix invalidations in logging (#46481) (cherry picked from commit ce6e9ee74f7c04f3190d8a4fd29ccd4fc5e705a3) 30 August 2022, 15:15:41 UTC
5d03fcd inference: revive `CachedMethodTable` mechanism `CachedMethodTable` was removed within #44240 as we couldn't confirm any performance improvement then. However it turns out the optimization was critical in some real world cases (e.g. #46492), so this commit revives the mechanism with the following tweaks that should make it more effective: - create method table cache per inference (rather than per local inference on a function call as on the previous implementation) - only use cache mechanism for abstract types (since we already cache lookup result at the next level as for concrete types) As a result, the following snippet reported at #46492 recovers the compilation performance: ```julia using ControlSystems a_2 = [-5 -3; 2 -9] C_212 = ss(a_2, [1; 2], [1 0; 0 1], [0; 0]) @time norm(C_212) ``` > on master ``` julia> @time norm(C_212) 364.489044 seconds (724.44 M allocations: 92.524 GiB, 6.01% gc time, 100.00% compilation time) 0.5345224838248489 ``` > on this commit ``` julia> @time norm(C_212) 26.539016 seconds (62.09 M allocations: 5.537 GiB, 5.55% gc time, 100.00% compilation time) 0.5345224838248489 ``` (cherry picked from commit 844574411fc77f5de1528a2ab30b9457238959cf) 29 August 2022, 20:32:31 UTC
c65611a Fix union!(s::BitSet, r::AbstractUnitRange{<:Integer}) when two ranges do not overlap. (#45578) * Fix union!(s::BitSet, r::AbstractUnitRange{<:Integer}) when two ranges do not overlap. Resizing of BitSet should be filled with 0 by default. (cherry picked from commit 5e8e0a51908ae3050890e870c69aa1fdbb2e3761) 29 August 2022, 07:28:20 UTC
99b466b Fix ordering of headers so `#define _GNU_SOURCE` comes first (#46183) Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> (cherry picked from commit 3b81696a88abd778660fdda282328bce45974e21) 29 August 2022, 07:25:03 UTC
a239589 fix bug when error is infinite (#46436) (cherry picked from commit c491e7912603facb0adfc04592c88b17d3e281c2) 26 August 2022, 14:30:22 UTC
29c76db Properly declare alloca alignment (#46368) Turns out when you declare an alloca alignment, it also rounds up the allocated size. Replaces #46322 and #46260 and fixes the same issue. (cherry picked from commit e358a17aa806541b23842fd0ef06bacf50491b75) 26 August 2022, 14:30:22 UTC
ad8ca94 Handle `PhiNode` with `edge==0` (#46388) (cherry picked from commit fd66c303cc3f6e80f5b1d42837fa9f5cae927a06) 26 August 2022, 14:30:22 UTC
3053b47 `@noinline` `exp` by default. (#46359) also remove a bunch of `@inline` from when I didn't trust the compiler to do reasonable things. (cherry picked from commit 445586d55d416f2269a3adaccea494759b77e0cc) 26 August 2022, 14:30:22 UTC
0aa5201 Fix 3-arg `dot` for 1x1 structured matrices (#46473) (cherry picked from commit c3d500984fd7e31db9096d7a59093039fd4f0009) 26 August 2022, 14:30:22 UTC
0830823 Fix multiplication of `AbstractQ`s (#46237) (cherry picked from commit 947c908a95ea389e2586cbc44a695ebb70a9fae0) 26 August 2022, 14:30:21 UTC
bc457f6 Fix `deepcopy` for `Base.GenericCondition` (#46406) (cherry picked from commit 99e8953c0fcb626d643207650381f1e3fbff76e2) 26 August 2022, 14:30:21 UTC
5842378 Fix `@time` compat description (#46416) (cherry picked from commit e0056c8d3087827b7c8e2b0648deeb8dc531da5f) 26 August 2022, 14:30:21 UTC
9b3a2bb Fix #41096 and #43082, make sure `env` is restored when typeintersect tries a new Union decision (#46350) * `intersect_all` should always `restore_env`. let `merge_env` track valid `env` change. * Add test. Co-authored-by: Jeff Bezanson <jeff.bezanson@gmail.com> (cherry picked from commit 9aabb4c9642c8045164069329a7f70e3aacef17f) 26 August 2022, 07:09:18 UTC
0be7f57 Don't mutate the hashtable with forward edges during final iteration. (#46375) By looking up keys, we possibly grow the hash table, invalidating the iteration we were doing in jl_collect_backedges. First perform a non-mutating check instead, and assert that the hashtable doesn't change during iteration. (cherry picked from commit 0ada892d2a86636fb877bdbc681d5199f35b8ad9) 26 August 2022, 07:09:17 UTC
72b7511 `@kwdef`: handle const and atomic fields (#46276) (cherry picked from commit 70656e214882ccb8744386e2f08db1e1eea46919) 26 August 2022, 07:09:16 UTC
21a53fb Change PDF cover font to DejaVu Sans (#45290) (cherry picked from commit c65e56f0279b8ea48556cbc1726fd78937930be4) 26 August 2022, 07:09:15 UTC
ffe7ea7 [Makefile] Fix codesign of libjulia when installing it on macOS (#44510) * [Makefile] Fix codesign of libjulia when installing it on macOS * Add shell sript for codesigning and use it in Makefile (cherry picked from commit 8076517c979c703ebed3f1ca5494be2eddfdc30f) 26 August 2022, 07:09:14 UTC
5fed861 [release-1.8] Consistently use `RUNPATH` in our libraries (#46465) * Consistently use `RUNPATH` in our libraries When loading dependencies on Linux, we can either use `RPATH` or `RUNPATH` as a list of relative paths to search for libraries. The difference, for our purposes, mainly lies within how this interacts with `LD_LIBRARY_PATH`: `RPATH` is searched first, then `LD_LIBRARY_PATH`, then `RUNPATH`. So by using `RUNPATH` here, we are explicitly allowing ourselves to be overridden by `LD_LIBRARY_PATH`. This is fine, as long as we are consistent across our entire library line, however in the `v1.8.0` release, there was an inconsistency, reported in [0]. The inconsistency occured because of the following confluence of factors: - Ancient `ld` builds (such as the one used in our build environment) do not default to using `RUNPATH`, but instead use `RPATH`. - `patchelf`, when it rewrites the RPATH, will default to using `RUNPATH` instead. - We were only using `patchelf` on `libjulia-internal`, not on `libjulia-codegen`, which was newly added in `v1.8`. These three factors together caused us to ship a binary with `RUNPATH` in `libjulia-internal`, but `RPATH` in `libjulia-codegen`, which caused loading to fail in [0] due to first `libjulia-internal` being loaded, (which brought in the external `libstdc++`), then `libjulia-codegen` failed to load (because it found an incompatible `libstdc++`), causing the mysterious compiler error. This PR fixes this twofold; first, when building the libraries in the first place, we pass `--enable-new-dtags` to the linker to encourage it to use `runpath` when possible. This removes the possibility for a missing `patchelf` invocation to break things in this way. Second, we apply `patchelf` properly to `libjulia-codegen` as well. [0] https://github.com/JuliaLang/julia/issues/46409 * fix whitespace Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 24 August 2022, 15:37:22 UTC
8ed3bc6 backport #46412 to 1.8 (#46417) 22 August 2022, 08:12:28 UTC
27890c7 leq for reals falls back to le and eq (#46341) (cherry picked from commit ef511c92bfc2e0ee4992ccfa3ca760d0da8016f1) 17 August 2022, 14:08:44 UTC
5544a0f set VERSION to 1.8.0 (#46367) 17 August 2022, 13:38:22 UTC
7853436 set VERSION to 1.8.0-rc4 (#46275) 08 August 2022, 07:55:07 UTC
f32a5c6 Merge pull request #46075 from JuliaLang/backports-release-1.8 release-1.8: Backports for 1.8-rc4 07 August 2022, 19:33:59 UTC
50bbad7 Lazily initialize Profile buffer (#46239) (cherry picked from commit 72473aecea477b3d9e01160ed0e9aa822657934f) 07 August 2022, 15:28:47 UTC
3e4646d [LinearAlgebra] Support more env variables to set OpenBLAS threads (#46118) (cherry picked from commit 6009ae9ca25d7c63c8a449a83722b8d93849a29f) 07 August 2022, 15:00:23 UTC
87d89f7 fix rem2pi for non-finite arguments (#46163) (cherry picked from commit 73c1eeba661f5482ef84a8e0f3e8f535c8cb13d6) 07 August 2022, 14:52:55 UTC
4fa7980 Fix rem2pi for NaN inputs, fixes #32888. (#36420) (cherry picked from commit 665b03e28248e8b6b5d4492887a9621e8107e522) 07 August 2022, 14:52:46 UTC
2415a14 dump: ensure we generate the whole backedge graph (#46171) The edge-restore algorithm here is pretty bad now, but this should hopefully fix #45444 (cherry picked from commit 6b51780a47b9dfe44462a1656d353ded2c960d38) 06 August 2022, 16:52:04 UTC
5cd8444 `copyto!` fix for `BitArray`/`AbstractArray`, fixes #25968 (#46161) 1. map `copyto!(::BitArray, n1, ::BitArray, n2, l)` to `Base.unsafe_copyto!` 2. add missing unaliasing in `copyto!` for `AbstractArray` (cherry picked from commit 0ea2b2d2d724a54f8531908e85857e2f5b72dc4a) 06 August 2022, 16:52:03 UTC
4b5ea08 improve `cat` inferrability (#45028) Make `cat` inferrable even if its arguments are not fully constant: ```julia julia> r = rand(Float32, 56, 56, 64, 1); julia> f(r) = cat(r, r, dims=(3,)) f (generic function with 1 method) julia> @inferred f(r); julia> last(@code_typed f(r)) Array{Float32, 4} ``` After descending into its call graph, I found that constant propagation is prohibited at `cat_t(::Type{T}, X...; dims)` due to the method instance heuristic, i.e. its body is considered to be too complex for successful inlining although it's explicitly annotated as `@inline`. But for this case, the constant propagation is greatly helpful both for abstract interpretation and optimization since it can improve the return type inference. Since it is not an easy task to improve the method instance heuristic, which is our primary logic for constant propagation, this commit does a quick fix by helping inference with the `@constprop` annotation. There is another issue that currently there is no good way to properly apply `@constprop`/`@inline` effects to a keyword function (as a note, this is a general issue of macro annotations on a method definition). So this commit also changes some internal helper functions of `cat` so that now they are not keyword ones: the changes are also necessary for the `@inline` annotation on `cat_t` to be effective to trick the method instance heuristic. (cherry picked from commit 65b9be408674bd6b08ea302571b1ac0f52b7a9f7) 06 August 2022, 16:51:59 UTC
4983135 Merge pull request #46110 from JuliaLang/vc/fp16_bb Backport "Emit aliases for FP16 conversion routines" (#45649) to 1.8 02 August 2022, 13:47:35 UTC
7ff795c Emit aliases into the system image - Put the interposer in llvm.compiler.used. - Injecting the aliases after optimization: Our multiversioning pass interacts badly with the llvm.compiler.used gvar. - run `postopt` passes independent of optimization passes. (cherry picked from commit 3407fb3f7f93e4a372393ab81c7a985a99867c50) Co-authored-by: Tim Besard <tim.besard@gmail.com> Co-authored-by: Valentin Churavy <v.churavy@gmail.com> 01 August 2022, 21:21:30 UTC
71d062c Define aliases to FP16 crt in the OJIT (cherry picked from commit ff360153dd70491c6ec7812a486c860c54a3f55c) 01 August 2022, 21:21:30 UTC
a9bf474 Prefix Float16 intrinsics (cherry picked from commit f6518663878bbef442af566a3e91e3502d087f2c) 01 August 2022, 21:21:30 UTC
20ef7d9 update Pkg branch & commit 01 August 2022, 17:09:43 UTC
c02b4e1 Fix timev compilation time tracking and add tests (#46100) (cherry picked from commit f3c22273d44ca9daedff3f72994e6ccf9c04c13e) 01 August 2022, 16:24:27 UTC
9b38226 inference: fix #46207, make sure we never form nested `Conditional` (#46208) 29 July 2022, 10:21:29 UTC
843b322 release-1.8: NEWS and README update (#46195) * NEWS item: Distributed SSHManager csh support (#46126) * Bump version in README 28 July 2022, 08:36:53 UTC
431a5e5 manual fixes, `@invoke` isn't exported on 1.8 26 July 2022, 15:48:03 UTC
a1937ab effects: improve tri-state printing 26 July 2022, 15:48:03 UTC
1645d1d Merge pull request #46111 from JuliaLang/avi/correct-consistent effects: fix correctness issues of `:consistent`-cy analysis 26 July 2022, 15:48:03 UTC
1390613 Merge pull request #45993 from JuliaLang/avi/recursion-effects effects: relax recursion detection for effects analysis 26 July 2022, 15:48:03 UTC
2daf1fd compiler: move effects-related test cases into dedicated file (#45992) 26 July 2022, 15:47:57 UTC
1835d8f test: allow new concrete-foldability tests to fail (#45670) But just print bad effects instead – especially `[sin|cos|tan](::Float32)` seem to be analyzed as non-foldable sometimes non-deterministically, somehow. We need to dig into what's leading to the bad analysis with Cthulhu on each platform, but this homework is left for the readers with access. Tests added in #45613 25 July 2022, 21:15:25 UTC
55eb09d Merge pull request #45613 from JuliaLang/avi/concretemath improve concrete-foldability of core math functions 25 July 2022, 21:15:25 UTC
1110f2b Merge pull request #45299 from JuliaLang/kf/rt_effect_free Fix effects modeling for return_type 25 July 2022, 21:15:25 UTC
8dc9f58 Fix return_type model when run in toplevel context (#44670) Fixes the test failure observed in #44652. 25 July 2022, 21:15:13 UTC
a382f32 Make gcd/lcm effect-free by using LazyString (#44935) 25 July 2022, 16:55:45 UTC
f3bc6bf Use `max(1, Sys.CPU_THREADS)` BLAS threads for apple `aarch64`. (#46085) (cherry picked from commit 97df6db548520227a9585e69a7bff8d6583af183) 20 July 2022, 08:16:28 UTC
1549064 Specialize tuple setindex to avoid ntuple-related performance regression. (#46050) (cherry picked from commit d7c56ba30594a7752be75203237ac0daaf65c94a) 20 July 2022, 08:10:57 UTC
bfc7e3e bump Pkg version to latest 1.8 20 July 2022, 08:10:11 UTC
169567d Fix fast path for `strides(::ReinterpretArray)` with dense parent. (#46114) (cherry picked from commit 017228af116f2565b1d6687b018ec65235dc71de) 20 July 2022, 08:04:58 UTC
bcac3c2 remove examples of time_imports nesting given it was a bug (#46072) (cherry picked from commit 29586ef30f7536c1263290c70e9afbc183841695) 20 July 2022, 08:00:57 UTC
9fa6b7f fix #45825, BitArray methods assuming 1-indexing of AbstractArray (#45835) (cherry picked from commit 820c08b896e408d9ed1e064ada8f9138dd6a3a6b) 20 July 2022, 07:59:39 UTC
54a6806 [nghttp2_jll] Upgrade to v1.48.0 (#45980) * [nghttp2_jll] Upgrade to v1.48.0 * [nghttp2_jll] Fix test (cherry picked from commit 707f59b980b54541af8362a9aa94d9690d72df8f) 20 July 2022, 07:58:12 UTC
ef18da7 Export jl_is_foreign_type 20 July 2022, 07:57:17 UTC
d6e8e5d mark two_mul as consistent (#46022) should let the compiler prove that float64^int always gives the same result. (cherry picked from commit fd70eabc1dd6c79149edb82da9e9c37d89e249d9) 20 July 2022, 07:54:53 UTC
6d7539b more friendly/useful error for stack overflow in type inference (#44971) fixes #44852 (cherry picked from commit 401d578214514a85590adcc21033861f46c8e922) 20 July 2022, 07:52:58 UTC
9bb9625 Don't call `jl_errorf()` when we're early in bringup When calling `jl_error()` or `jl_errorf()`, we must check to see if we are so early in the bringup process that it is dangerous to attempt to construct a backtrace because the data structures used to provide line information are not properly setup. This can be easily triggered by running: ``` julia -C invalid ``` On an `i686-linux-gnu` build, this will hit the "Invalid CPU Name" branch in `jitlayers.cpp`, which calls `jl_errorf()`. This in turn calls `jl_throw()`, which will eventually call `jl_DI_for_fptr` as part of the backtrace printing process, which fails as the object maps are not fully initialized. See the below `gdb` stacktrace for details: ``` $ gdb -batch -ex 'r' -ex 'bt' --args ./julia -C invalid ... fatal: error thrown and no exception handler available. ErrorException("Invalid CPU name "invalid".") Thread 1 "julia" received signal SIGSEGV, Segmentation fault. 0xf75bd665 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo>, std::_Select1st<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> >, std::greater<unsigned int>, std::allocator<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> > >::lower_bound (__k=<optimized out>, this=0x248) at /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_tree.h:1277 1277 /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_tree.h: No such file or directory. #0 0xf75bd665 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo>, std::_Select1st<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> >, std::greater<unsigned int>, std::allocator<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> > >::lower_bound (__k=<optimized out>, this=0x248) at /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_tree.h:1277 #1 std::map<unsigned int, JITDebugInfoRegistry::ObjectInfo, std::greater<unsigned int>, std::allocator<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> > >::lower_bound (__x=<optimized out>, this=0x248) at /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_map.h:1258 #2 jl_DI_for_fptr (fptr=4155049385, symsize=symsize@entry=0xffffcfa8, slide=slide@entry=0xffffcfa0, Section=Section@entry=0xffffcfb8, context=context@entry=0xffffcf94) at /cache/build/default-amdci5-4/julialang/julia-master/src/debuginfo.cpp:1181 #3 0xf75c056a in jl_getFunctionInfo_impl (frames_out=0xffffd03c, pointer=4155049385, skipC=0, noInline=0) at /cache/build/default-amdci5-4/julialang/julia-master/src/debuginfo.cpp:1210 #4 0xf7a6ca98 in jl_print_native_codeloc (ip=4155049385) at /cache/build/default-amdci5-4/julialang/julia-master/src/stackwalk.c:636 #5 0xf7a6cd54 in jl_print_bt_entry_codeloc (bt_entry=0xf0798018) at /cache/build/default-amdci5-4/julialang/julia-master/src/stackwalk.c:657 #6 jlbacktrace () at /cache/build/default-amdci5-4/julialang/julia-master/src/stackwalk.c:1090 #7 0xf7a3cd2b in ijl_no_exc_handler (e=0xf0794010) at /cache/build/default-amdci5-4/julialang/julia-master/src/task.c:605 #8 0xf7a3d10a in throw_internal (ct=ct@entry=0xf070c010, exception=<optimized out>, exception@entry=0xf0794010) at /cache/build/default-amdci5-4/julialang/julia-master/src/task.c:638 #9 0xf7a3d330 in ijl_throw (e=0xf0794010) at /cache/build/default-amdci5-4/julialang/julia-master/src/task.c:654 #10 0xf7a905aa in ijl_errorf (fmt=fmt@entry=0xf7647cd4 "Invalid CPU name \"%s\".") at /cache/build/default-amdci5-4/julialang/julia-master/src/rtutils.c:77 #11 0xf75a4b22 in (anonymous namespace)::createTargetMachine () at /cache/build/default-amdci5-4/julialang/julia-master/src/jitlayers.cpp:823 #12 JuliaOJIT::JuliaOJIT (this=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/jitlayers.cpp:1044 #13 0xf7531793 in jl_init_llvm () at /cache/build/default-amdci5-4/julialang/julia-master/src/codegen.cpp:8585 #14 0xf75318a8 in jl_init_codegen_impl () at /cache/build/default-amdci5-4/julialang/julia-master/src/codegen.cpp:8648 #15 0xf7a51a52 in jl_restore_system_image_from_stream (f=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:2131 #16 0xf7a55c03 in ijl_restore_system_image_data (buf=0xe859c1c0 <jl_system_image_data> "8'\031\003", len=125161105) at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:2184 #17 0xf7a55cf9 in jl_load_sysimg_so () at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:424 #18 ijl_restore_system_image (fname=0x80a0900 "/build/bk_download/julia-d78fdad601/lib/julia/sys.so") at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:2157 #19 0xf7a3bdfc in _finish_julia_init (rel=rel@entry=JL_IMAGE_JULIA_HOME, ct=<optimized out>, ptls=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/init.c:741 #20 0xf7a3c8ac in julia_init (rel=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/init.c:728 #21 0xf7a7f61d in jl_repl_entrypoint (argc=<optimized out>, argv=0xffffddf4) at /cache/build/default-amdci5-4/julialang/julia-master/src/jlapi.c:705 #22 0x080490a7 in main (argc=3, argv=0xffffddf4) at /cache/build/default-amdci5-4/julialang/julia-master/cli/loader_exe.c:59 ``` To prevent this, we simply avoid calling `jl_errorf` this early in the process, punting the problem to a later PR that can update guard conditions within `jl_error*`. (cherry picked from commit 21ab24eeca1220aab049c6da21566e4f8d96d1ad) 19 July 2022, 16:40:23 UTC
47cd899 Explicitly test for a failing exit code, do not include signals We accidentally ignored some test failures because we only tested for `!success(p)`, which passes even if `p` segfaulted. (cherry picked from commit 67a43c52fcb24fca14af6b545df24974ae2b3409) 19 July 2022, 16:37:52 UTC
dcd915b Don't segfault when running atexit before jl_threads_init (cherry picked from commit 3b77febf62c2491fd4f2415e1718d32b8b2f2108) 19 July 2022, 16:37:15 UTC
2bb4aec Unset NDEBUG in analyzers (cherry picked from commit 2ad2e85b5f7a3cc44155a5507d9bd985b274b8e2) 19 July 2022, 16:35:04 UTC
6ba1d23 Update LLVM to include additional patches. (#46091) 19 July 2022, 12:23:15 UTC
6a05297 give finalizers their own RNG state (#45212) fixes #42752 (cherry picked from commit 85b895bb6919ea86d9b6201108af3a66930a349b) 17 July 2022, 17:08:05 UTC
3dc152b fix Libc.rand and seed problems (#44432) Continuation from #43606 - Replaces thread-unsafe function `rand` with `jl_rand`. - Fixes `_ad_hoc_entropy_source` fallback in Random. - Uses uv_random for more direct access to quality-randomness (usually a syscall rather than a file.) - Ensures Array{Bool} are valid when created from RandomDevice. (cherry picked from commit b4bed7171730a8ea29b8ead2a16dfa7e78c2b15f) 17 July 2022, 17:07:40 UTC
c8c6cc7 [LibCURL_jll] Update to v7.84 (#45967) (cherry picked from commit 9629154b023de2b085b75fccb20c9a80a604b244) 17 July 2022, 17:06:32 UTC
7674873 fixup time_imports news entry (cherry picked from commit dad1c7fabcdbfab739195023b8bf5d85978ebace) 17 July 2022, 07:11:37 UTC
78ad6ff Allow `BUILDKITE_BRANCH` to provide branch name (#46053) * Allow `BUILDKITE_BRANCH` to provide branch name Our CI system checks commits out as a detached head, which breaks our `Base.GIT_VERSION_INFO.branch` information. * Fix typo (cherry picked from commit d117975aa629bee97901a2c132f028adf23d16ae) 17 July 2022, 07:02:35 UTC
08f12b9 fix convert call in Artifacts.jl (#46040) (cherry picked from commit e96b19d096c45fec5e5d3f0d62a9b5f2a7b2428b) 17 July 2022, 07:02:34 UTC
33f19bc Merge pull request #46007 from JuliaLang/kc/1.8.0-rc2 release-1.8: set VERSION to 1.8.0-rc3 13 July 2022, 19:10:38 UTC
3bcba90 release-1.8: set VERSION to 1.8.0-rc3 12 July 2022, 13:10:35 UTC
back to top