sort by:
Revision Author Date Message Commit Date
16eb196 Merge pull request #42766 from JuliaLang/avi/42754 optimizer: fix #42754, inline union-split const-prop'ed sources 26 October 2021, 14:25:41 UTC
21ebabf simplify code loading test now that TOML files are parsed with a real TOML parser (#42328) 26 October 2021, 14:11:32 UTC
1510eaa optimizer: fix #42754, inline union-split const-prop'ed sources This commit complements #39754 and #39305: implements a logic to use constant-prop'ed results for inlining at union-split callsite. Currently it works only for cases when constant-prop' succeeded for all (union-split) signatures. > example ```julia julia> mutable struct X # NOTE in order to confuse `fieldtype_tfunc`, we need to have at least two fields with different types a::Union{Nothing, Int} b::Symbol end; julia> code_typed((X, Union{Nothing,Int})) do x, a # this `setproperty` call would be union-split and constant-prop will happen for # each signature: inlining would fail if we don't use constant-prop'ed source # since the approximated inlining cost of `convert(fieldtype(X, sym), a)` would # end up very high if we don't propagate `sym::Const(:a)` x.a = a x end |> only |> first ``` > before this commit ```julia CodeInfo( 1 ─ %1 = Base.setproperty!::typeof(setproperty!) │ %2 = (isa)(a, Nothing)::Bool └── goto #3 if not %2 2 ─ %4 = π (a, Nothing) │ invoke %1(_2::X, :a::Symbol, %4::Nothing)::Any └── goto #6 3 ─ %7 = (isa)(a, Int64)::Bool └── goto #5 if not %7 4 ─ %9 = π (a, Int64) │ invoke %1(_2::X, :a::Symbol, %9::Int64)::Any └── goto #6 5 ─ Core.throw(ErrorException("fatal error in type inference (type bound)"))::Union{} └── unreachable 6 ┄ return x ) ``` > after this commit ```julia CodeInfo( 1 ─ %1 = (isa)(a, Nothing)::Bool └── goto #3 if not %1 2 ─ Base.setfield!(x, :a, nothing)::Nothing └── goto #6 3 ─ %5 = (isa)(a, Int64)::Bool └── goto #5 if not %5 4 ─ %7 = π (a, Int64) │ Base.setfield!(x, :a, %7)::Int64 └── goto #6 5 ─ Core.throw(ErrorException("fatal error in type inference (type bound)"))::Union{} └── unreachable 6 ┄ return x ) ``` 26 October 2021, 12:28:27 UTC
4c3ae20 Make Base.ifelse a generic function (#37343) Allow user code to directly extend `Base.ifelse` rather than needing a special package for it. 26 October 2021, 11:48:32 UTC
2e388e3 optimizer: eliminate excessive specialization in inlining code This commit includes several code quality improvements in inlining code: - eliminate excessive specializations around: * `item::Pair{Any, Any}` constructions * iterations on `Vector{Pair{Any, Any}}` - replace `Pair{Any, Any}` with new, more explicit data type `InliningCase` - remove dead code 26 October 2021, 06:33:48 UTC
2c03f81 Fix alignment in abstract type example (#42720) 26 October 2021, 02:13:42 UTC
3d4b213 fix #41546, make `using` thread-safe (#41602) use more precision when handling loading lock, merge with TOML lock (since we typically are needing both, sometimes in unpredictable orders), and unlock before call most user code Co-authored-by: Jameson Nash <vtjnash@gmail.com> 25 October 2021, 20:20:47 UTC
5ecf5fc Add optional description to `@time` and new `@showtime` macro (#42431) 25 October 2021, 19:29:09 UTC
2def71f compiler: minor cosmetic changes (#42789) 25 October 2021, 18:31:38 UTC
ec906ce inference: improve management of non-type parameters (#42693) Prevent occurrence of v or Type{v} in the type-lattice, where v is not a Type (or TypeVar). Fixes #42646, and similar problems from code-reading. 25 October 2021, 18:29:00 UTC
8aea375 follow up #42518, precompile `testset_beginend_call` (#42791) 25 October 2021, 11:41:53 UTC
2ae9e7c Fix `findfirst(==(x::Integer), r::IdentityUnitRange)` (#42756) 25 October 2021, 08:50:54 UTC
4cf4089 Mention `.+=` in response to why `+=` allocates (#42745) Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com> Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com> 25 October 2021, 08:50:28 UTC
0682132 Distributed test suite: if `Threads.nthreads() > 1`, skip certain tests (#42764) 25 October 2021, 08:49:13 UTC
0ddba15 Restore `@force_compile` docs & test (#42785) * Revert "Revert "Fix docs for `Experimental.@force_compile` (#42760)" (#42784)" This reverts commit dad40711c1bc27b24b01d9ac883929d145149b99. * Truncate test harness from stacktrace 25 October 2021, 02:04:41 UTC
81ed49e See also & docstrings for `foldl`, `accumulate` (#42019) Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 24 October 2021, 19:11:08 UTC
a23aa79 Add the ability to use function calls in `@testset` directly. (#42518) * Add the ability to use function calls in @testset This allows for easier factoring of tests into functions, making it possible to `include` a `test/runtests.jl` file without running tests directly and enabling running of specific testsets explicitly. * Fix doctest of @testset on functions * Add note about naming of testset for called functions * Tweak documentation, expand on intended use case * Add NEWS.md entry * Fix explicit description behavior, add documentation to docstring Co-authored-by: Sukera <Seelengrab@users.noreply.github.com> 24 October 2021, 19:08:10 UTC
dad4071 Revert "Fix docs for `Experimental.@force_compile` (#42760)" (#42784) This reverts commit 030a0f93d5ba4cf1fabc938264ebb05152e5d1ef. 24 October 2021, 08:34:01 UTC
74424d0 Merge pull request #42779 from JuliaLang/vc/clean_jl_internal_funcs.inc [Buildsystem] Make sure we clean generated header files 24 October 2021, 00:03:00 UTC
dc0ac5b [Buildsystem] Make sure we clean generated header files 23 October 2021, 19:18:46 UTC
5f11f5b Check jl_calloc (#42761) 23 October 2021, 15:42:24 UTC
31f67db Add exact results for trig fcns on π (#42595) Since Julia has gone to the trouble to encode π exactly, and trig functions are defined in terms of π, they should give exact answers for this particular constant. 23 October 2021, 08:46:55 UTC
030a0f9 Fix docs for `Experimental.@force_compile` (#42760) Also adds a direct test 23 October 2021, 01:29:34 UTC
6ab06b8 Correct repl output (#42770) 23 October 2021, 01:28:39 UTC
59aa3ed Mention ?"..." help mode search in apropos docstring, fixes #42732(#42748) 22 October 2021, 13:27:16 UTC
609a4a0 fix overflow and undeflow for @fastmath exp (#42747) Co-authored-by: oscarddssmith <oscar.smith@juliacomputing.com> 22 October 2021, 09:37:04 UTC
991d6e6 Distributed test suite: increase the timeout in the `poll_while` function from 60 seconds to 120 seconds (#42753) 22 October 2021, 09:32:45 UTC
3ae2505 Off-diagonal indexing for block Bidiagonal matrices (#42565) Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 22 October 2021, 06:13:37 UTC
8168daf inference: follow up #42529, handle an edge case in `abstract_invoke` (#42746) JET reported: ```julia julia> report_package(JET) ... [toplevel-info] analyzing from top-level definitions ... 671/671 ═════ 12 possible errors found ═════ ... │││││││││┌ @ compiler/abstractinterpretation.jl:1243 Core.Compiler.lastindex(fargs) ││││││││││ for 1 of union split cases, no matching method found for call signatures (Tuple{typeof(Core.Compiler.lastindex), Nothing})): Core.Compiler.lastindex(fargs::Union{Nothing, Vector{Any}}) │││││││││└─────────────────────────────────────────── │││││││││┌ @ compiler/abstractinterpretation.jl:1243 fargs′ = Core.Compiler.getindex(fargs, Core.Compiler.:(3, Core.Compiler.lastindex(fargs))) ││││││││││ for 1 of union split cases, no matching method found for call signatures (Tuple{typeof(Core.Compiler.getindex), Nothing, Core.Compiler.UnitRange{Int64}})): fargs′ = Core.Compiler.getindex(fargs::Union{Nothing, Vector{Any}}, Core.Compiler.:(3, Core.Compiler.lastindex(fargs::Union{Nothing, Vector{Any}})::Int64)::Core.Compiler.UnitRange{Int64}) │││││││││└─────────────────────────────────────────── │││││││││┌ @ compiler/abstractinterpretation.jl:1244 Core.Compiler.getindex(fargs, 1) ││││││││││ for 1 of union split cases, no matching method found for call signatures (Tuple{typeof(Core.Compiler.getindex), Nothing, Int64})): Core.Compiler.getindex(fargs::Union{Nothing, Vector{Any}}, 1) │││││││││└─────────────────────────────────────────── ... ``` 22 October 2021, 06:09:03 UTC
6420885 task: schedule sticky tasks correctly with _wait2 (#42750) The `_wait2` function is similar to calling `schedule + wait` from another `@async` task, but optimized, so we want to observe the same side-effects of making the task sticky to the correct thread (and not accidentally making it sticky to the later task that handles the event). Refs #41334 (75858d73322) Co-authored-by: Takafumi Arakaki <aka.tkf@gmail.com> 22 October 2021, 05:24:53 UTC
af56fc8 🤖 Bump the NetworkOptions stdlib from 42a0b5f to 01e6ec1 (#42742) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 22 October 2021, 04:02:57 UTC
af56a34 🤖 Bump the Tar stdlib from 67f004d to e65daff (#42743) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 22 October 2021, 04:02:37 UTC
ebde718 🤖 Bump the ArgTools stdlib from b5fe150 to 08b11b2 (#42741) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 22 October 2021, 04:02:07 UTC
835cd0f Force compilation with `@force_compile` (#42379) There was an unintended collision in meaning between #42128 and #37041. Since both use the `Expr(:meta)` mechanism, it doesn't really seem feasible to have them both use the same name. Consequently, it's better to rename the newer meaning. Fixes #42373 22 October 2021, 00:51:42 UTC
011fda9 fix unique over a dimension to use `isequal` over `==` (#42737) 21 October 2021, 19:57:36 UTC
dc46ad9 Added rationalize for Complex numbers (#42570) 21 October 2021, 19:02:56 UTC
51c43e8 Fix the `contrib/refresh_checksums.mk` script by changing a single `>` to `>>` (#42728) 21 October 2021, 18:02:36 UTC
9e3cfc0 choosetests: return a namedtuple (instead of a tuple) (#42723) to make it easier to add more information in the future 21 October 2021, 16:58:24 UTC
9557259 inference: forward `Conditional` inter-procedurally (#42529) The PR #38905 only "back-propagates" conditional constraint (from callee to caller), but currently we don't "forward" it (caller to callee), and so inter-procedural constraint propagation won't happen for e.g.: ```julia ifelselike(cnd, x, y) = cnd ? x : y @test Base.return_types((Any,Int,)) do x, y ifelselike(isa(x, Int), x, y) end |> only == Int ``` This commit complements #38905 and enables further inter-procedural conditional constraint propagation by forwarding `Conditional` to callees when it imposes a constraint on any other argument, during constant propagation. We also improve constant-prop' heuristics in these ways: - remove `const_prop_rettype_heuristic` since it handles rare cases, where const-prop' doens't seem to be worthwhile, e.g. it won't be so useful to try to propagate `Const(Tuple{DataType,DataType})` for `Const(convert)(::Const(Tuple{DataType,DataType}), ::Tuple{DataType,DataType} -> Tuple{DataType,DataType}` - rename `is_allconst` to `is_all_overridden` - also minor refactors and improvements added 21 October 2021, 16:56:18 UTC
76c2431 Disable `DL_LOAD_PATH` prepending for `@`-paths on Darwin (#42721) * Disable `DL_LOAD_PATH` prepending for `@`-paths on Darwin Many thanks to Randy Rucker from Apple for pointing out that we were technically relying on undefined behavior in `dyld` for loading things via `jl_dlopen("@loader_path/@rpath/libfoo.dylib")`, due to the composition of `dlopen("@rpath/libfoo.dylib")` in our Julia code, and the `DL_LOAD_PATH` prepending we do in `jl_load_dynamic_library()`. This PR uses a slightly modified version of a patch emailed to me by Randy, and should solve https://github.com/JuliaLang/Downloads.jl/issues/149 on macOS Monterey where the undefined behavior in `dyld` has changed. * Apply suggestions from code review Co-authored-by: Jameson Nash <vtjnash@gmail.com> * Use `[]` instead of `*` Co-authored-by: Jameson Nash <vtjnash@gmail.com> 21 October 2021, 16:37:12 UTC
b2d15f0 print @var_str in NamedTuple by show_sym (#42729) fix #42719 21 October 2021, 10:45:51 UTC
1838881 CI (Buildkite): fix the timeout for the `tester_linux` job that runs under `rr` (#42724) 21 October 2021, 09:31:04 UTC
17e0bba optimizer: eliminate safe `typeassert` calls (#42706) Adds a very simple optimization pass to eliminate `typeassert` calls. The motivation is, when SROA replaces `getfield` calls with scalar values, then we can often prove `typeassert` whose first operand is a replaced value is no-op: ```julia julia> struct Foo; x; end julia> code_typed((Int,)) do a x1 = Foo(a) x2 = Foo(x1) typeassert(x2.x, Foo).x end |> only |> first CodeInfo( 1 ─ %1 = Main.Foo::Type{Foo} │ %2 = %new(%1, a)::Foo │ Main.typeassert(%2, Main.Foo)::Foo # can be nullified └── return a ) ``` Nullifying `typeassert` helps succeeding (simple) DCE to eliminate dead allocations, and also allows LLVM to do more aggressive DCE to emit simpler code. Here is a simple benchmarking: > sample target code: ```julia julia> function compute(T, n) r = 0 for i in 1:n x1 = T(i) x2 = T(x1) r += (x2.x::T).x::Int end r end compute (generic function with 1 method) julia> struct Foo; x; end julia> mutable struct Bar; x; end ``` > on master ```julia julia> @benchmark compute(Foo, 1000) BenchmarkTools.Trial: 10000 samples with 8 evaluations. Range (min … max): 3.263 μs … 145.828 μs ┊ GC (min … max): 0.00% … 97.14% Time (median): 3.516 μs ┊ GC (median): 0.00% Time (mean ± σ): 4.015 μs ± 3.726 μs ┊ GC (mean ± σ): 3.16% ± 3.46% ▇█▆▄▅▄▄▃▂▁▂▁ ▂ ▇███████████████▇██▇▇█▇▇▆▇▇▇▇▅▆▅▇▇▅██▇▇▆▇▇▇█▇█▇▇▅▆▆▆▆▅▅▅▅▄▄ █ 3.26 μs Histogram: log(frequency) by time 8.52 μs < Memory estimate: 7.64 KiB, allocs estimate: 489. julia> @benchmark compute(Bar, 1000) BenchmarkTools.Trial: 10000 samples with 4 evaluations. Range (min … max): 6.990 μs … 288.079 μs ┊ GC (min … max): 0.00% … 97.03% Time (median): 7.657 μs ┊ GC (median): 0.00% Time (mean ± σ): 9.019 μs ± 9.710 μs ┊ GC (mean ± σ): 4.59% ± 4.28% ▆█▆▄▃▂▂▁▂▃▂▁ ▁ ▁ ██████████████████████▇▇▇▇▇▆██████▇▇█▇▇▇▆▆▆▆▅▆▅▄▄▄▅▄▄▃▄▄▂▄▅ █ 6.99 μs Histogram: log(frequency) by time 20.7 μs < Memory estimate: 23.27 KiB, allocs estimate: 1489. ``` > on this branch ```julia julia> @benchmark compute(Foo, 1000) BenchmarkTools.Trial: 10000 samples with 1000 evaluations. Range (min … max): 1.234 ns … 116.188 ns ┊ GC (min … max): 0.00% … 0.00% Time (median): 1.246 ns ┊ GC (median): 0.00% Time (mean ± σ): 1.307 ns ± 1.444 ns ┊ GC (mean ± σ): 0.00% ± 0.00% █▇ ▂▂▁ ▂ ▁ ██████▇█▇▅▄▆▇▆▁▃▄▁▁▁▁▁▃▁▃▁▁▄▇▅▃▃▃▁▃▄▁▃▃▁▃▁▁▃▁▁▁▄▃▁▃▇███▇▇▇▆ █ 1.23 ns Histogram: log(frequency) by time 1.94 ns < Memory estimate: 0 bytes, allocs estimate: 0. julia> @benchmark compute(Bar, 1000) BenchmarkTools.Trial: 10000 samples with 1000 evaluations. Range (min … max): 1.234 ns … 33.790 ns ┊ GC (min … max): 0.00% … 0.00% Time (median): 1.245 ns ┊ GC (median): 0.00% Time (mean ± σ): 1.297 ns ± 0.677 ns ┊ GC (mean ± σ): 0.00% ± 0.00% █▇ ▃▂▁ ▁ ██████▆▆▅▁▄▅▅▄▁▄▄▄▃▄▃▁▃▁▃▄▃▁▃▁▃▁▁▁▃▃▁▃▃▁▁▁▁▁▁▁▃▁▄█████▇▇▇▇ █ 1.23 ns Histogram: log(frequency) by time 1.96 ns < Memory estimate: 0 bytes, allocs estimate: 0. ``` This `typeassert` elimination would be much more effective if we implement more aggressive SROA based on strong [alias analysis](https://github.com/aviatesk/EscapeAnalysis.jl) and/or [more aggressive Julia-level DCE](https://github.com/JuliaLang/julia/issues/27547). But this change is so simple that I don't think it hurts anything to have it for now. 21 October 2021, 05:52:25 UTC
a4903fd 🤖 Bump the Pkg stdlib from bb180de2 to bc32103f (#42722) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 October 2021, 00:34:07 UTC
20e8f46 Fix assumption about underflow on `AbstractUnitrange{<:Unsigned}` (#42632) As mentioned in #42528 after the initial PR, just removing `ifelse` is not enough. This fixes the behavior for creating empty UnitRanges of unsigned integers to avoid assuming overflow is safe. 20 October 2021, 19:05:56 UTC
05515f4 doc: misc updates for missing.md (#42500) 20 October 2021, 12:57:06 UTC
6d0b192 Bump openblas libraries on master (#42708) OpenBLAS binaries built with 512 max threads. 20 October 2021, 10:37:45 UTC
792c026 🤖 Bump the Pkg stdlib from 2a4a5534 to bb180de2 (#42701) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 20 October 2021, 03:05:04 UTC
b55bfec Document effect of type aliases on global level (#42666) Adds the sentence @JeffBezanson proposed to the documentation and solves #30824. 19 October 2021, 17:45:28 UTC
dc74954 Remove MSVC / ICC specific code (#42703) Support for building MSVC and ICC was removed from the build system in PR #42586; this patch removes more leftover code which was there to support MSVC / ICC. 19 October 2021, 14:17:56 UTC
df81a0d Simplify `_isequal`, `_isless`, `__inc`, and `__dec` ...by removing unnecessary type checks/assertions. This basically restores the function bodies to what they looked like prior to #40594 and only keeps the changed signatures (with the additional changes to circumvent #39088. 19 October 2021, 12:18:14 UTC
02f7861 fix exp of large negative Float16 (#42688) 19 October 2021, 11:26:00 UTC
e1d831b Fix a syntax error in `gc-debug.c` (#42702) 19 October 2021, 11:25:14 UTC
50fcb03 add Unicode.julia_chartransform Julia-parser normalization (#42561) 18 October 2021, 17:28:17 UTC
1b64755 Merge pull request #42668 from JuliaLang/jn/42645 codegen: add missing jl_get_fieldtypes calls 18 October 2021, 17:19:03 UTC
225c543 sparse: Optimize swaprows!, swapcols! (#42678) We have a swpacols! helper in Base that is used in the permuation code as well as in the bareiss factorization code. I was working on extending the latter, among others to sparse arrays and alternative pivot choices. To that end, this PR, adds swaprows! in analogy with swapcols! and adds optimized implementations for SparseMatrixCSC. Note that neither of these functions are currently exported (though since they are useful, we may want a generic swapslices! of some sort, but that's for a future PR). While we're at it, also replace the open-coded in-place circshift! by one on SubArray, such that they can automatically beneift if that method is optimized in the future (#42676). 18 October 2021, 16:57:48 UTC
ecc0398 add generic fallback for haskey (#42679) 18 October 2021, 16:04:17 UTC
806b128 replace fill!(..., 0) with fill!(..., zero(T)) for structured matrices (#42669) 18 October 2021, 15:19:19 UTC
b45b9bb `@inbounds` in indexing for Tridiagonal (#42653) 18 October 2021, 15:11:46 UTC
0357b2a add try/catch/else (#42211) This PR allows the use of `else` inside try-blocks, which is only taken if no exception was caught inside `try`. It is still combinable with `finally` as well. If an error is thrown inside the `else` block, the current semantics are that the error does not get caught and is thrown like normal, but the `finally` block is still run afterwards. This seemed like the most sensible option to me. I am not very confident about the implementation of linearization for `trycatchelse` here, so I would appreciate it if @JeffBezanson could give this a thorough review, so that I don't miss any edge cases. I thought we had an issue for this already, but I couldn't find anything. `else` might also not be the best keyword here, so maybe we can come up with something clearer. But it of course has the advantage that it is already a Julia keyword, so we don't need to add a new one. Co-authored-by: Jeff Bezanson <jeff.bezanson@gmail.com> 18 October 2021, 13:35:16 UTC
cd19e97 InteractiveUtils: make default argtype of `code_llvm` etc. work with functions with single method (#42496) `code_llvm` and `code_native` expects a single matching method, but the default value of `types=Tuple` argument doesn't match with any function signature and so we actually can't use that default value. With this PR, the default argument type will be computed by `default_tt`, which returns an appropriate signature if a function only has a single method, otherwise returns `Tuple` (which is the same default value as before). Now `code_llvm` and `code_native` by default work with functions that have a single method, e.g.: ```julia code_llvm() do # previously, we need to call `code_llvm(()) do ... end` sin(42) end ``` 18 October 2021, 09:09:51 UTC
7b76c7e Fix sort! for multidimensional non 1-indexed arrays (#42674) * Fix sort! for multidimensional non 1 indexed arrays * Test sort! for OffsetMatrix 18 October 2021, 02:26:09 UTC
d885fc2 Fix #42670 - error in sparsevec outer product with stored zeros (#42671) The SparseMatrixCSC constructor checks that the passed in buffers have length matching the expected number of non-zeros, but the _outer constructor allocated buffers of the number of structural non-zeros, not actual non-zeros. Fix this by shrinking the buffers once the outer product is fully computed. 18 October 2021, 00:22:31 UTC
4c8c515 Remove unused assignment (#42675) 17 October 2021, 18:00:31 UTC
0ea61fa Merge pull request #42583 from JuliaLang/avi/validwidenconst - inference: improve `TypeVar`/`Vararg` handling - eliminate unbound `TypeVar`s on `argtypes` construction 16 October 2021, 17:17:29 UTC
36cc1c1 eliminate unbound `TypeVar`s on `argtypes` construction This commit eliminates unbound `TypeVar`s from `argtypes` in order to make the analysis much easier down the road. At runtime, only `Type{...}::DataType` can contain invalid type parameters, but we may have arbitrary malformed user-constructed type arguments given at inference entries. So we will replace only the malformed `Type{...}::DataType` with `Type` and simply replace other possibilities with `Any`. The replacement might not be that accurate, but an unbound `TypeVar` is really invalid in anyway. Like the change added on `arrayref_tfunc`, now we may be able to remove some `isa(x, TypeVar)`/`has_free_typevars` predicates used in various places, but it is left as an exercise for the reader. 16 October 2021, 17:12:03 UTC
6af7584 Fix USE_BINARYBUILDER_OPENBLAS=0 on macOS (#42538) * Fix USE_BINARYBUILDER_OPENBLAS=0 on macOS We didn't properly move the OpenBLAS -> Objconv dependency chain over to manifest files. This was not visible until now because we rarely build OpenBLAS from source without also building Objconv from source. Fixes https://github.com/JuliaLang/julia/issues/42519 * Also update path to `objconv` binary 16 October 2021, 16:17:36 UTC
1b8cf40 Add an article (#42661) 16 October 2021, 15:11:40 UTC
d60f92c inference: improve `TypeVar`/`Vararg` handling During working on the incoming lattice overhaul, I found it's quite confusing that `TypeVar` and `Vararg` can appear in the same context as valid `Type` objects as well as extended lattice elements. Since it usually needs special cases to operate on `TypeVar` and `Vararg` (e.g. they can not be used in subtyping as an obvious example), I believe it would be great avoid bugs and catch logic errors in the future development if we separate contexts where they can appear from ones where `Type` objects and extended lattice elements are expected. So this commit: - tries to separate their context, e.g. now `TypeVar` and `Vararg` should not be used in `_limit_type_size`, which is supposed to return `Type`, but they should be handled its helper function `__limit_type_size` - makes sure `tfunc`s don't return `TypeVar`s and `TypeVar` never spills into the abstract state - makes sure `widenconst` are not called on `TypeVar` and `Vararg`, and now `widenconst` is ensured to return `Type` always - and does other general refactors 16 October 2021, 06:45:28 UTC
b8ed1ae Add cryptic secret for docs deploy key (#42667) 15 October 2021, 22:03:58 UTC
9f48f42 move llvm.*unwind file to llvmunwind (#42663) Removes unhappy file characters for Win32 as post-processing step 15 October 2021, 21:24:16 UTC
a11d804 codegen: fix setfield! error message emission 15 October 2021, 21:21:32 UTC
485495f codegen: add missing jl_get_fieldtypes calls Fixes #42645 15 October 2021, 21:21:32 UTC
b3c268c Fix sparse constructor when `Tridiagonal`/`SymTridiagonal` are empty (#42574) Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 15 October 2021, 19:57:13 UTC
87ded5a Merge pull request #42556 from JuliaLang/jn/tsan-build threading correctness improvements 15 October 2021, 17:43:27 UTC
72ec349 CI (Buildkite): Run the Distributed test suite with multithreading enabled (#42479) 15 October 2021, 03:04:28 UTC
2bdbc6f CI (Buildkite, GHA): Fix some bugs in the "Retry" workflow (#42657) 15 October 2021, 02:09:07 UTC
c13d5fe Add a comment trigger for rerunning failed Buildkite jobs (#42655) 15 October 2021, 01:57:44 UTC
d744523 [deps] Correctly "pack" the `unwind` and `llvmunwind` checksums into the correct files (#42643) Modifies the refresh-checksums files to ensure these are in the correct files, without raciness. 14 October 2021, 21:22:23 UTC
8c47de5 add the LLVM inductive range check elimination pass (#42573) 14 October 2021, 21:04:44 UTC
478f36a fix some compiler warnings 14 October 2021, 21:01:11 UTC
95fac8f change locks to avoid capturing pthread_self value It was observed in TSAN that we might get incorrectly locked mutexes when this code is inlined, due to pthread_self being normally marked const. Therefore, switch most nogc-variant locks to use standard system mutexes instead. We may want to work towards switching over other lock types too, but note that they will need to integrate with gc-safepoints, which would be a design effort for later. 14 October 2021, 21:01:11 UTC
d9812aa atomics: fix some trivial races 14 October 2021, 20:51:57 UTC
fbd8f92 flisp: do not mutate the system image while loading it (or the memory buffer of files while parsing them) 14 October 2021, 20:51:57 UTC
8a7b109 Re-correct TSAN integration with task switching This reverts commit 15772bafb7f16b7572895eb01a8adb8dcc8b8e97 "Update references to tsan state (#42440)", and fixes integration. Looks like https://github.com/JuliaLang/julia/pull/36929 got reverted when trying to simplify the code, but it now isn't legal. Since these must be inlined in the right point in the runtime call/return context, use a macro to ensure that. 14 October 2021, 20:51:57 UTC
f57eb41 libuv: forward sanitizer flags, if we build it There is also a cmake option for -DASAN=ON, but this is equivalent and more flexible for our use case. 14 October 2021, 20:51:56 UTC
e66bf50 build,deps: use HOSTCC where applicable We don't need patchelf in a normal cross-compile, so this has been ignored for a long time. But we might need it for SANITIZER=1 builds, since patchelf does not necessarily build properly with clang. 14 October 2021, 20:50:25 UTC
587ea02 🤖 Bump the ArgTools stdlib from 245b08e to b5fe150 (#42638) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 14 October 2021, 20:42:33 UTC
e0f36bc note that rand(::BitSet, n) only fast when dense (#42582) 14 October 2021, 20:10:01 UTC
b1b0a3c Remove MSVC and ICC stuff in the build system (#42586) 14 October 2021, 20:04:40 UTC
4c222c9 CI (Buildkite): Add a once-daily scheduled job that builds Julia with `USE_BINARYBUILDER=0` (and runs the test suite) on linux64 (#42592) 14 October 2021, 19:54:07 UTC
e837046 fix #42604, export `jl_field_isdefined` (#42611) 14 October 2021, 19:53:22 UTC
5a073c1 loader: load optional libraries with RTLD_LOCAL (#42631) This prevents global lookups from finding symbols in optional libraries, since that would only work "sometimes". 14 October 2021, 19:52:30 UTC
7c5e28c Fix broken markdown in Windows-specific docs. (#42606) 14 October 2021, 13:01:08 UTC
e6d0465 CI (Buildkite, GHA): in the "Retry Failed Buildkite Jobs" workflow, remove the `labeled` trigger (#42642) 14 October 2021, 07:21:42 UTC
96e8bdc CI (Buildkite, GHA): Rename "Retry" to "Retry Failed Buildkite Jobs" (#42641) 14 October 2021, 07:09:47 UTC
92365f5 CI (Buildbot, GHA): Rename "Statuses" to "Create Buildbot Statuses" (#42640) 14 October 2021, 07:06:25 UTC
7a53b84 Fix some typos (#42636) 14 October 2021, 01:58:53 UTC
687b1e0 fix #42590, long attribute loop compiling `cfunction` (#42635) 14 October 2021, 01:39:27 UTC
684de61 minor grammar fix in a comment (#42628) 13 October 2021, 19:50:07 UTC
back to top