swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40

sort by:
Revision Author Date Message Commit Date
d70b8cc compiler: simplify backedge calculation 16 September 2022, 04:25:04 UTC
4adb03a compiler: make sure to inline hot lattice ops 16 September 2022, 04:25:04 UTC
0fabe54 Help inference of uninferred callers of `read(::IO, ::Type{String})` (#46577) 15 September 2022, 15:29:38 UTC
4026246 Add effect modeling for Core.compilerbarrier (#46772) The compiler barrier itself doesn't have any effects, though of course by pessimizing type information, it may prevent the compiler from discovering effect information it would have otherwise obtained. Nevertheless, particularly the weaker barriers like `:const` and `:conditional` should not, by themselves taint any effects. 15 September 2022, 14:46:08 UTC
00ea165 Cache binding pointer in GlobalRef (#46729) On certain workloads, profiling shows a surprisingly high fraction of inference time spent looking up bindings in modules. Bindings use a hash table, so they're expected to be quite fast, but certainly not zero. A big contributor to the problem is that we do basically treat it as zero, looking up bindings for GlobalRefs multiple times for each statement (e.g. in `isconst`, `isdefined`, to get the types, etc). This PR attempts to improve the situation by adding an extra field to GlobalRef that caches this lookup. This field is not serialized and if not set, we fallback to the previous behavior. I would expect the memory overhead to be relatively small, since we do intern GlobalRefs in memory to only have one per binding (rather than one per use). # Benchmarks The benchmarks look quite promising. Consider this artifical example (though it's actually not all that far fetched, given some of the generated code we see): ``` using Core.Intrinsics: add_int const ONE = 1 @eval function f(x, y) z = 0 $([:(z = add_int(x, add_int(z, ONE))) for _ = 1:10000]...) return add_int(z, y) end g(y) = f(ONE, y) ``` On master: ``` julia> @time @code_typed g(1) 1.427227 seconds (1.31 M allocations: 58.809 MiB, 5.73% gc time, 99.96% compilation time) CodeInfo( 1 ─ %1 = invoke Main.f(Main.ONE::Int64, y::Int64)::Int64 └── return %1 ) => Int64 ``` On this PR: ``` julia> @time @code_typed g(1) 0.503151 seconds (1.19 M allocations: 53.641 MiB, 5.10% gc time, 33.59% compilation time) CodeInfo( 1 ─ %1 = invoke Main.f(Main.ONE::Int64, y::Int64)::Int64 └── return %1 ) => Int64 ``` I don't expect the same speedup on other workloads, but there should be a few % speedup on most workloads still. # Future extensions The other motivation for this is that with a view towards #40399, we will want to more clearly define when bindings get resolved. The idea here would then be that binding resolution replaces generic `GlobalRefs` by GlobalRefs with a set binding cache, and any unresolved bindings would be treated conservatively by inference and optimization. 15 September 2022, 14:45:47 UTC
6bbc006 Add LLVM pipeline tests (#46542) * Add LLVM pipeline tests * Create per-pipeline optimization tests * Actually run the tests, drop unnecessary output * Move to lit tests instead of julia tests * Apply suggestions from code review `=` -> `in` Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> 15 September 2022, 14:36:24 UTC
5e3e58e Revert "Add ability to add output prefixes to the REPL output and use that to implement an IPython mode (#46474)" (#46780) This reverts commit e1188455456035ff6a80ed20e424aa5c8ebf437d. 15 September 2022, 14:13:17 UTC
e118845 Add ability to add output prefixes to the REPL output and use that to implement an IPython mode (#46474) 15 September 2022, 12:24:25 UTC
6557542 Also merge var with unchanged bounds. (#46757) * Also merge var with unchanged bounds. The current `env` might not be valid if the var's bounds get fixed by another Unions decision. * Replace `v->var->lb` with `simple_meet` * Remove the unneeded NUll check. Co-Authored-By: Jameson Nash <vtjnash+github@gmail.com> 15 September 2022, 11:43:57 UTC
aae8c48 Specialize `inv` for cholesky of `Diagonal` (#46763) 15 September 2022, 10:30:02 UTC
997e336 inference: fixes and improvements for backedge computation (#46741) This commit consists of the following changes: * inference: setup separate functions for each backedge kind Also changes the argument list so that they are ordered as `(caller, [backedge information])`. * inference: fix backedge computation for const-prop'ed callsite With this commit `abstract_call_method_with_const_args` doesn't add backedge but rather returns the backedge to the caller, letting the callers like `abstract_call_gf_by_type` and `abstract_invoke` take the responsibility to add backedge to current context appropriately. As a result, this fixes the backedge calculation for const-prop'ed `invoke` callsite. For example, for the following call graph, ```julia foo(a::Int) = a > 0 ? :int : println(a) foo(a::Integer) = a > 0 ? "integer" : println(a) bar(a::Int) = @invoke foo(a::Integer) ``` Previously we added the wrong backedge `nothing, bar(Int64) from bar(Int64)`: ```julia julia> last(only(code_typed(()->bar(42)))) String julia> let m = only(methods(foo, (UInt,))) @eval Core.Compiler for (sig, caller) in BackedgeIterator($m.specializations[1].backedges) println(sig, ", ", caller) end end Tuple{typeof(Main.foo), Integer}, bar(Int64) from bar(Int64) nothing, bar(Int64) from bar(Int64) ``` but now we only add `invoke`-backedge: ```julia julia> last(only(code_typed(()->bar(42)))) String julia> let m = only(methods(foo, (UInt,))) @eval Core.Compiler for (sig, caller) in BackedgeIterator($m.specializations[1].backedges) println(sig, ", ", caller) end end Tuple{typeof(Main.foo), Integer}, bar(Int64) from bar(Int64) ``` * inference: make `BackedgePair` struct * add invalidation test for `invoke` call * optimizer: fixup inlining backedge calculation Should fix the following backedge calculation: ```julia julia> m = which(unique, Tuple{Any}) unique(itr) @ Base set.jl:170 julia> specs = collect(Iterators.filter(m.specializations) do mi mi === nothing && return false return mi.specTypes.parameters[end] === Vector{Int} # find specialization of `unique(::Any)` for `::Vector{Int}` end) Any[] julia> Base._unique_dims([1,2,3],:) # no existing callers with specialization `Vector{Int}`, let's make one 3-element Vector{Int64}: 1 2 3 julia> mi = only(Iterators.filter(m.specializations) do mi mi === nothing && return false return mi.specTypes.parameters[end] === Vector{Int} # find specialization of `unique(::Any)` for `::Vector{Int}` end) MethodInstance for unique(::Vector{Int64}) julia> mi.def unique(itr) @ Base set.jl:170 julia> mi.backedges 3-element Vector{Any}: Tuple{typeof(unique), Any} MethodInstance for Base._unique_dims(::Vector{Int64}, ::Colon) MethodInstance for Base._unique_dims(::Vector{Int64}, ::Colon) # <= now we don't register this backedge ``` 15 September 2022, 06:56:19 UTC
94c3a15 Improve nothrow analysis of :new with missing sparam (#46754) Similar to #46693, but for :new, rather than getfield. Unfortunately, this is somewhat limited as we don't really have the ability to encode type equality constraints in the lattice. In particular, it would be nice to analyze: ``` struct Foo{T} x::T Foo(x::T) where {T} = new{T}(x) end ``` and be able to prove this nothrow. If it's really important, we could probably pattern match it, but for the moment, this is not easy to do. Nevertheless, we can do something about the similar, but simpler pattern ``` struct Foo{T} x Foo(x::T) where {T} = new{T}(x) end ``` which is what this PR does. 15 September 2022, 05:24:11 UTC
e758982 improve type stability of `tail/front(::NamedTuple)` (#46762) This fixes some invalidations when loading ChainRulesCore.jl. 15 September 2022, 03:18:52 UTC
9b1780d fix invalidations from loading Static.jl (#46761) * improve type stability of `sort!(v::AbstractVector, lo::Integer, hi::Integer, ::InsertionSortAlg, o::Ordering)` * improve type stability of `fmt(buf, pos, arg, spec::Spec{T}) where {T <: Strings}` This fixes some invalidations when loading Static.jl. 15 September 2022, 03:17:33 UTC
08115d2 clarify show docs (#46765) 15 September 2022, 03:16:20 UTC
54c06ad Add reflect! and rotate! in the documentation (#46769) 15 September 2022, 03:14:39 UTC
559e04c Set USE_BINARYBUILDER_OBJCONV=0 when USE_BINARYBUILDER_OPENBLAS=0 (#46726) Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> 15 September 2022, 03:12:25 UTC
f5842f8 bump the Tar stdlib from 5606269 to 5914ef9 (#46731) 15 September 2022, 01:27:14 UTC
bd6d170 Build/win: Build with MSYS2 (#46140) * Makefile: MSYS2: close path conversion for `DEP_LIBS` Automatic path conversion will replace `:` with `;` * Makefile: MSYS2: use `cygpath` for path convert ref: https://www.msys2.org/docs/filesystem-paths/#manual-unix-windows-path-conversion * devdoc/win/msys2: add build steps * devdoc/win/msys2: Add x86/x64 build notes * devdoc/win/msys2: apply sugestions Co-Authored-By: Elliot Saba <staticfloat@gmail.com> * Instead of `CC_WITH_ENV`, scope environment variables to targets * Fix whitespace Co-authored-by: Elliot Saba <staticfloat@gmail.com> 14 September 2022, 22:32:48 UTC
c6abccf Fix symdiff/symdiff! for vector inputs with duplicates, closes #34686 (#46397) 14 September 2022, 19:40:11 UTC
2cfcc1a gitignore lit test times (#46766) 14 September 2022, 18:04:37 UTC
b4af0e5 improve type stability of `process_overrides(artifact_dict::Dict, pkk_uuid::Base.UUID)` (#46661) * improve type stability of `process_overrides(artifact_dict::Dict, pkg_uuid::Base.UUID)` This fixes some invalidations when loading Static.jl 14 September 2022, 13:19:42 UTC
35191ad Improve argmin/argmax docstring (#46737) The current phrasing "Return a value `x` in the domain of `f`" is a bit misleading, as the domain of `f` may be much larger than the argument `domain`. It's better to be clear that the value returned will be an element of the `domain` that is provided. 14 September 2022, 08:37:40 UTC
b1f8d16 only store version of packages during load time when generating sysimage (#46738) 14 September 2022, 07:44:25 UTC
100d7e8 doc: clarify docstring for oftype (#46744) 14 September 2022, 07:33:07 UTC
b368e26 typo error (#46752) 14 September 2022, 07:28:59 UTC
0de477a change logic for enabling GDB JIT event listener (#46747) - default to false in release build, true in debug build - ENABLE_GDBLISTENER env var overrides that in all builds 14 September 2022, 06:36:26 UTC
8455c8f 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:17:51 UTC
7cbea73 Test: fixup issues detected by JET (#46730) - removes stale definition of `test_approx_eq` (this seems to have been reserved for the 0.7 compat, but is currently broken as `full` is really not defined anymore) - fixes invalid construction of `Fail` object - makes `LogTestFailure` more type stable struct - improves type stabilities slightly 14 September 2022, 04:57:44 UTC
f7dea04 Fix whitespace introduced in #45854 (#46750) * Fix whitespace introduced in #45854 * Fix more whitespace Co-authored-by: Keno Fischer <keno@juliacomputing.com> 14 September 2022, 04:39:00 UTC
4bd59ac Example Workflow Docs on How to Create Tests for One's Own Package (#46357) Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: woclass <git@wo-class.cn> 14 September 2022, 01:46:05 UTC
c5098a9 [devdoc] Add section “Update the version number of a dependency” (#45854) * [devdoc] Add section “Update the version number of a dependency” * [devdoc] add a check list Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> 14 September 2022, 01:43:37 UTC
b97a629 doc: highlight recommendation of eachindex in arrays.md (#45341) * Update arrays.md Highlighted two portions of the text as a note and a warning, in view of the discussion Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: Johnny Chen <johnnychen94@hotmail.com> Co-authored-by: Michael Abbott <32575566+mcabbott@users.noreply.github.com> 14 September 2022, 01:42:13 UTC
6643090 Update doc on global variables type annotations (#46686) Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 14 September 2022, 01:20:43 UTC
f9b362e sparam inlining: Handle undefined sparams (#46703) `_compute_sparams` is not required to be able to resolve an sparam, it can leave it as a `TypeVar`, in which case accessing it should throw an UndefVarError. This needs to be appropriately handled in inlining. We have a test case like this in the test suite, but it was being papered over by an incorrect check in can_inline_typevar. Remove that check and implement proper undef checking in inlining. 13 September 2022, 22:48:47 UTC
1916d35 add `nospecialize` to deepcopy entry point (#46692) 13 September 2022, 20:40:40 UTC
d97dd8e handle empty Tuple{} in _methods_by_ftype (#46685) This is silly, but some packages try very hard to precompile everything including this, even though this is invalid. Fix #46295 13 September 2022, 18:55:50 UTC
70bfa3f improve type stability of `lt(p::Perm, a::Integer, b::Integer)` (#46732) This fixes a few hundred invalidations when loading Static/jl/ArrayInterface.jl. 13 September 2022, 12:08:51 UTC
df955b8 compiler: add missing `@nospecialize` annotations (#46734) 13 September 2022, 12:01:26 UTC
85fac87 LinearAlgebra: Allow arrays to be zero-preserving (#46340) 13 September 2022, 08:05:11 UTC
e8a2eb1 [deps/blastrampoline]: pass cross compile flags to make (#45909) Co-authored-by: Jameson Nash <vtjnash+github@gmail.com> Co-authored-by: Elliot Saba <staticfloat@gmail.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 13 September 2022, 05:45:54 UTC
b284bc6 propagate context through a few more printing functions (#46716) This commit makes `:compact=>false` a way to avoid the expensive typealias checking. 13 September 2022, 03:04:19 UTC
3cb3b1c Merge pull request #46653 from JuliaLang/avi/nothrowflag 13 September 2022, 02:44:12 UTC
0b38483 inference: improve `isa`-constraint propagation for `iskindtype` objects (#46712) Currently our inference isn't able to propagate `isa`-based type constraint for cases like `isa(Type{<:...}, DataType)` since `typeintersect` may return `Type` object itself when taking `Type` object and `iskindtype`-object. This case happens in the following kind of situation (motivated by the discussion at <https://github.com/JuliaLang/julia/pull/46553#issuecomment-1233024271>): ```julia julia> function isa_kindtype(T::Type{<:AbstractVector}) if isa(T, DataType) # `T` here should be inferred as `DataType` rather than `Type{<:AbstractVector}` return T.name.name # should be inferred as ::Symbol end return nothing end isa_kindtype (generic function with 1 method) julia> only(code_typed(isa_kindtype; optimize=false)) CodeInfo( 1 ─ %1 = (T isa Main.DataType)::Bool └── goto #3 if not %1 2 ─ %3 = Base.getproperty(T, :name)::Any │ %4 = Base.getproperty(%3, :name)::Any └── return %4 3 ─ return Main.nothing ) => Any ``` This commit improves the situation by adding a special casing for abstract interpretation, rather than changing the behavior of `typeintersect`. 13 September 2022, 02:35:03 UTC
969193b Follow-up #46693 - Also exclude `Type{Tuple{Union{...}, ...}}` (#46723) * Follow-up #46693 - Also exclude `Type{Tuple{Union{...}, ...}}` The check in #46693 was attempting to guarantee that the runtime value was a `DataType`, but was missing at least the case where a tuple of unions could have been re-distributed. Fix that up and refactor while we're at it. * Apply suggestions from code review Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 13 September 2022, 01:03:52 UTC
8a59be6 avoid Pair constructor being excessively specialized by Core.Compiler (#46684) 12 September 2022, 21:33:07 UTC
ad19f2f Support `invoke` backedges for const (#46715) This is a left-over piece of #46010, triggered by const args. Fixes #44320 12 September 2022, 21:09:22 UTC
7eacf1b Concise info on creating and using a module without core and base (#46628) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 12 September 2022, 19:17:13 UTC
6f8e24c jit: reduce context lock scope (#44949) 12 September 2022, 16:52:16 UTC
7e51510 Fix #46594: Show on method with Vararg (#46710) 12 September 2022, 12:33:54 UTC
919a337 some NFC changes on test/compiler/contextual.jl 12 September 2022, 10:45:51 UTC
607ee75 optimizer: fixup `EscapeAnalysis` - correctly update with semi-concrete interpretation - use `IR_FLAG_NOTHROW` for computing no-throwness - fixup `getfield`/`arrayref` from global object 12 September 2022, 10:31:32 UTC
5e2eb94 optimizer: fixup `IR_FLAG_NOTHROW` flagging 12 September 2022, 10:31:27 UTC
9e8fb63 LinearAlgebra: Don't assume AbstractVector supports deleteat! (#46672) 12 September 2022, 09:53:40 UTC
81eb6ef use grep instead of the deprecated egrep (#46706) grep -E is the new (since POSIX) way to use the "extended" regexp. The latest GNU Grep release complains each time egrep is invoked (egrep is implemented as just a wrapper script around grep). See: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html https://www.gnu.org/software/grep/manual/grep.html Fixes #46649 11 September 2022, 22:05:57 UTC
5d9807d 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)` 11 September 2022, 12:50:28 UTC
f7a8c02 [OpenBLAS_jll] Upgrade to v0.3.21 (#46701) * [OpenBLAS_jll] Upgrade to v0.3.21 * [LinearAlgebra] Update `svd` doctests 11 September 2022, 12:45:14 UTC
83f10ac Inlining/Finalizer-elimination cleanup refactor (#46700) This started as an attempt to fix the broken test at [1], but I don't actually think that test ever worked. I still intend to fix that, but this PR is prepratory, merging code paths that basically did identical things, but were incomplete in some cases. Also some general quality improvements. The test case in question is better now (everything gets inlined and it's down to needing to prove that the finalizer itself is inlineable and the mutable :new is eliminable), but not quite fixed. [1] https://github.com/JuliaLang/julia/blob/master/test/compiler/inline.jl#L1306 11 September 2022, 02:38:54 UTC
02d7776 fix MIME repr of empty Method list (#46689) Fix #46675 11 September 2022, 00:51:34 UTC
d4f6fd2 Improve inference for ismutable with missing sparam (#46693) We could already infer `ismutable(RefValue{T})` if we knew what `T` was at inference time. However, the mutable does of course not change depending on what `T` is, so fix that up by adding an appropriate special case in `_getfield_tfunc`. 10 September 2022, 05:04:15 UTC
f1a0dd6 Typo error on ∈ (#46687) 09 September 2022, 15:52:02 UTC
ffaaa30 Force inference of `convert(::Type{T}, ::T) where T` via typeasserts (#46573) 09 September 2022, 12:45:21 UTC
b9df45e fix typo in test/loading.jl (#46678) 08 September 2022, 18:59:45 UTC
b8336b3 remove extrema definition that is no longer needed for bootstrapping (#46592) * remove extrema definition that is no longer needed for bootstrapping 08 September 2022, 12:51:52 UTC
e36e56b increase default sleep time (#45628) 08 September 2022, 01:09:23 UTC
f7b4ebe 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. 07 September 2022, 21:24:20 UTC
3793dac Doc typo fix for fetch(c::Channel) (#46671) Fixes #46642 07 September 2022, 19:54:43 UTC
ecd0b90 inlining: handle const `finalizer` call for finalizer inlining (#46669) Currently mutable objects are never represented as `Const` but a function registered by `finalizer` can be closure with `Const` element, and thus it's better to handle `ConstCallInfo` in `handle_finalizer_call!`. Tests added. 07 September 2022, 19:40:25 UTC
225edb5 Merge pull request #46670 from JuliaLang/avi/finalizer-inlining-miscs optimizer: miscellaneous improvements on `finalizer` inlining code 07 September 2022, 15:31:33 UTC
036e6b7 optimizer: mark sparam finalizer inlining broken 07 September 2022, 15:29:39 UTC
0067d48 effects: add `is_finalizer_inlineable` query 07 September 2022, 15:29:39 UTC
676ba39 update the document of `Core.Compiler.dominates` 07 September 2022, 15:29:39 UTC
075f84b update the document of `Core.finalizer` 07 September 2022, 15:29:35 UTC
cf61ca9 change `get(::LazyDomtree)` to `get!(::LazyDomtree)` 07 September 2022, 13:01:18 UTC
4cf582e Shrink typeinf lock to just newly_inferred (#46324) 07 September 2022, 11:18:30 UTC
83658d2 Optionally use NewPM for optimization (#46176) * Use NewPM for optimization unless ASAN is in effect * Disable NewPM by default 07 September 2022, 07:43:35 UTC
31d4c22 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}. 06 September 2022, 18:38:21 UTC
305e2fb Test suite: after running a test set, throw an error if `Base.DEPOT_PATH`, `Base.LOAD_PATH`, or `ENV` have been modified and not restored to their original values (#46602) 06 September 2022, 16:51:35 UTC
cfec173 add warning for function declaration with undefined static parameter (#46608) Refs #27813 (does not fix it) 06 September 2022, 16:31:39 UTC
c3b6757 handle malformed environment entry (#46585) Fix #46468 06 September 2022, 16:31:22 UTC
fa3981b Fix a few more cases of missing lattice arguments (#46645) These were missed in the original lattice PR. 06 September 2022, 14:47:22 UTC
d6cbfab Document UInt64 return type of time_ns() (#46648) 06 September 2022, 14:31:11 UTC
ea74208 LibGit2: correct regex for credential helpers (#46597) The previous regex for credential helpers included even the following credential: ``` [credential "helperselector"] selected = manager-core ``` which gets introduced by Git for Windows and fails our assumption about what a credential helper is. The commit also removes a test that mirrors what `credential_helpers` does (otherwise, we would have to maintain the same regex at two places, the definition of `credential_helpers` and the test case). Fixes #45693 06 September 2022, 13:26:07 UTC
1786532 RFC: Introduce `AdjointRotation` to avoid subtyping `AbsMat` (#46233) 06 September 2022, 13:13:35 UTC
639a4ff Faster int to float conversion (#45656) *Faster Int128 and UInt128 to float conversion. 06 September 2022, 12:24:35 UTC
cad4bc5 IRShow: call `line_info_postprinter` for all statements (#46574) Previously we only call `line_info_postprinter` for call expressions, because `line_info_postprinter` is supposed to print their return type information. But sometimes, external consumers like Cthulhu want to show additional information like per-statement effects and remarks, and in such cases, we want `line_info_postprinter` to be called on all statements other than call expressions. This commit refactors the `IRShow` code a bit so that we call `line_info_postprinter` on all statements and changes its signature to `line_info_postprinter(io; type::Any, used::Bool, show_type::Bool, idx::Int)` so that we pass relevant information about `type` and `show_type` as keyword argument. This is a certainly breaking change, and some packages in the ecosystem like GPUCompiler.jl will need tweaks. I'm happy to make corresponding changes (like what is done for `InteractiveUtils.warntype_type_printer` by this commit) after merge. 06 September 2022, 09:09:30 UTC
f90da29 some more follow-ups for semi-concrete interpretation (#46646) * fixup uses of `collect_const_args` * move irinterp-specific code to irinterp.jl 06 September 2022, 06:14:12 UTC
80464f8 irinterp: Be sure to inline const values (#46629) Ordinarily, annotating a `Const` type on a statement is sufficent to ensure that it eventually gets moved into statement position. The actual transformation is usually done by the inlining pass. However, since no inlining pass runs on the result of semi-concrete evaulation, we need to do here what it would have otherwise done if it did run. The other change here is to move const GlobalRefs back into argument position, which is required to make the test work. The issue here is that we round-trip the IR through the global cache, which widens all constants, so the type field no longer reflects that `sitofp` is `Const(sitofp)` but rather widens it to `IntrinsicFunction`. This is a bit unfortunate in general, as it means that irinterp doesn't have access to constant information that was discovered during regular inference. In the future we may want to consider trying to perseve that constant information longer. However, for the time being, I think moving const bindings (by far the most common source of Const information in the IR that doesn't get immediately transformed into const values) back into argument position provides a tempoary solution. 06 September 2022, 03:50:48 UTC
be297ea Fix bugs in cfg_simplify! (#46643) cfg_simplify! had several issues that showed up on particular IR patterns, so this rewrites most of the problematic parts to address the issues that I saw. Unfortunately, we currently don't really have a good way to comprehensively test this, so we'll probably want to build some test harnesses for this at some point. For the time being, this works on the big IR I generated, which I think is a reasonable some test, even if not perfect. 06 September 2022, 03:50:22 UTC
8a8691d Show Incremental Compact with result CFG (#46644) not the CFG of the original IR. Otherwise, the printing of basic blocks will be misaligned with the actual instructions. 06 September 2022, 03:48:58 UTC
61b5a08 Fix layout of REPL completions with newlines (#45844) Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 06 September 2022, 03:13:08 UTC
22713d8 Clear info on isabstracttype and isprimitivetype (#46627) * Clear info on isabstracttype and isprimitivetype Co-authored-by: Keno Fischer <keno@alumni.harvard.edu> Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> 06 September 2022, 02:08:37 UTC
d8ffddd [deps/libssh2]: fix import library name (#45914) * deps: apply `libssh2-fix-import-lib-name.patch` * deps/libssh2: fix apply patch target name Co-Authored-By: Jameson Nash <vtjnash+github@gmail.com> Co-authored-by: Jameson Nash <vtjnash+github@gmail.com> Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> 06 September 2022, 02:05:21 UTC
40c3645 [deps/mpfr]: sync build flags with Yggdrasil/MPFR (#45939) * deps/mpfr: sync build flags with `Yggdrasil/MPFR` https://github.com/JuliaPackaging/Yggdrasil/blob/b2e0c2c5851b71230fb7170f74d773393ce37f80/M/MPFR/build_tarballs.jl#L17 * deps/mpfr: rename `MPFR_OPTS` => `MPFR_CONFIGURE_OPTS` * deps/mpfr: build versioned lib * deps/mpfr: typo fix * deps/mpfr: clean Makefile * deps/mpfr: add hard link for Windows Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> 06 September 2022, 02:04:52 UTC
99225ab Apply the patch provided in #46640 for typos (#46641) Apply the patch provided in #46640 by @spaette for typos Co-authored-by: spaette <spaette@users.noreply.github.com> 06 September 2022, 01:54:51 UTC
9e39fe9 Don't assume mi->backedges is set in jl_insert_method_instances (#46631) This is not the case if the external mi was created via `precompile`. Also reorganize the code to avoid excessive nesting depth. Fixes #46558. 05 September 2022, 22:05:48 UTC
9a7b118 Consistent info on isless and Base.isgreater (#46632) 05 September 2022, 21:23:30 UTC
da8f1dd 🤖 Bump the Pkg stdlib from f22fa37db to 3cbbd860a (#46639) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 05 September 2022, 21:15:22 UTC
ff69a48 Add stats to various code paths (#46407) 05 September 2022, 15:07:02 UTC
64378db Fix typos (#46630) As reported by `@spaette` in #46623. Co-authored-by: spaette <spaette@users.noreply.github.com> 05 September 2022, 03:42:31 UTC
back to top