https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
090c4c9 simplify and improve printing of qualified names This removes repeated code, fixes some cases where quoting was not done correcly (e.g. `Mod.:+`), and checks identifier visibility recursively so only a minimal module path is printed. fixes #39834 04 March 2021, 16:48:58 UTC
de7d695 docs: mention `outer` in the section on keywords (#39861) * docs: mention `outer` in the section on keywords * Update doc/src/base/base.md Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com> * Update doc/src/base/base.md * Update doc/src/base/base.md Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com> 02 March 2021, 20:56:19 UTC
72777b7 fix #39698 by disabling the unnecessary Vararg var bounds error (#39875) 02 March 2021, 19:21:01 UTC
cf077be Refactor InliningState (#39881) We recently dropped the method table from this and we can get rid of one of the cache references now too, since we're now passing that info in the stmtinfo. Also factor out the inlining policy into a separate option to the inliner to make it easier for downstream projects like Diffractor and Cthulhu to override it without playing cache games (which is now harder, since one of the caches is gone). 02 March 2021, 17:17:59 UTC
9e783bb llvm-alloc-opt: handle dead code better (#39801) In some cases (particularly after removing a phi node), we might end up in a circumstance where it appears statically that we would use a slot for both a ref and bits. Avoid generating malformed IR in this case. In the future, this situation could also possibly happen if we walked through phi nodes and attempted to merge the contents (with great care). 02 March 2021, 17:03:47 UTC
4f36351 AbstractInterpreter: minor refactors of builtin call interfaces (#39883) This commit pushes bail out logic of `apply` and `invoke` into their own `abstract_(apply|invoke)` functions. This refactor allows external consumers to focus on overloading `abstract_(apply|invoke)` rather than overloading both `abstract_call_known` and `abstract_(apply|invoke)`. 02 March 2021, 15:54:29 UTC
2ee8a39 [build] Bump libblastrampoline to v3.0.2 (#39880) * [build] Bump libblastrampoline to v3.0.2 * [deps/refresh_checksums] Pass `FC_VERSION` to disable "no `gfortran`" check when checksumming 02 March 2021, 13:32:27 UTC
c62ee62 Bump Documenter to 0.26.3 (#39882) 02 March 2021, 07:20:36 UTC
3356b45 Fix typo in julia.h (#39884) indicies -> indices 02 March 2021, 07:20:08 UTC
5e7aaa6 [BugReporting] pass `ARGS` through properly (#39839) When calling `make_interactive_report()`, we really need to pass in `ARGS` as well, otherwise it always starts an interactive session. This commit, in combination with `--` allows the user to run an `rr` session while still passing arguments to the child `julia` process via: ``` julia --bug-report=rr -- --project test/runtests.jl ``` 02 March 2021, 02:22:37 UTC
3ff44ea Merge pull request #39792 from JuliaLang/kf/inlinemtable Remove inlining's dependence on method table lookups 02 March 2021, 00:18:10 UTC
f166b20 Fix case of inlining UnionSplit with a single applicable method 01 March 2021, 19:42:29 UTC
7e345f9 Remove method_table from inlining state This is now no longer used. A use case for external consumers was to re-run another pass of inlining, but that is better addressed by a separate pass that simply sets the appropriate info. 01 March 2021, 18:22:52 UTC
bbad43e Allow inlining of code for big pure results In some cases we can statically compute the result of a pure call, but we refuse to inline it into the IR because it would be too big. In these cases, we'd still like to be able to do regular inlining, so augment MethodResult pure to forward the call info for such calls rather than relying on inlining to recompute the method match. 01 March 2021, 18:22:52 UTC
6cbb3c0 Add statement info for invoke Removes another dependence of inlining on the method table and has the nice side benefit of allowing external consumers like Cthulhu to reason about `invoke`. 01 March 2021, 18:22:52 UTC
7e5edad Add special case inliner for TypeVar Rather than relying on inlining to perform a method lookup. 01 March 2021, 18:22:52 UTC
3d22421 fix #29100, make `fieldnames` constant-fold-able (#39832) 01 March 2021, 18:18:51 UTC
621ee2a LinearAlgebra: Add test "matrix x matrix with negative stride". (#39849) (Made while looking at #39836, which is matrix x vector. Matrix x matrix with negative stride is fine as it is, because it uses the Julia implementation of matrix multiplication.) 01 March 2021, 16:53:01 UTC
8b6e861 docs: document use of `begin` as index (#39860) And clarify that it's not just for arrays. 01 March 2021, 15:06:35 UTC
ff4d3db Fix typo in arrayops.jl (#39867) assigment -> assignment 01 March 2021, 15:05:05 UTC
e784dd0 Specialize LinearAlgebra.BLAS.dot for strided vectors of floats. (#39751) 28 February 2021, 18:59:22 UTC
c79309b cmdlineargs test: on 32-bit systems, impose a constant upper limit on the number of threads (#39854) 28 February 2021, 06:48:02 UTC
f2b5b6e Correct `invoke` call syntax in NEWS.md (#39847) 27 February 2021, 20:54:34 UTC
7367dcd Bump libblastrampoline to v3.0.1 (#39846) This version of LBT no longer tries to `dlclose()` old BLAS libraries, which should help with the segfaults during `MKL.jl` tests. 27 February 2021, 14:38:11 UTC
2cf1f34 Add SuiteSparse checksums (#39843) 27 February 2021, 02:35:35 UTC
bcc0ea1 [LinearAlgebra] Add `libblas` and `liblapack` bindings in again (#39845) Some packages use these; rather than create unnecesary package churn, let's just define them again and add a note that serious applications should use the much richer detail available from `BLAS.get_config()`. 27 February 2021, 02:34:54 UTC
9ca31f7 fix #39804, ABI handling of structs with String references (#39821) 26 February 2021, 21:48:17 UTC
76698ea Add \ for Sym/Tri/Bi/Diagonal and support non-commutative numbers (#39701) Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 26 February 2021, 14:19:05 UTC
567f4bc worlds test: generate needed MethodInstance (#39830) Closes #39828 26 February 2021, 13:04:55 UTC
fb500b0 Update Downloads.jl to fix download hanging, fixes #39789. (#39833) $ git log --pretty=oneline --abbrev=commit 2b4bed9..6bb8306 6bb83068bd796c4890baaeb39628ff79a4979374 Stop the grace timer iff adding first handle (fix #99) (#102) af6864d8872247faf2a402d6b2baca5cb74ab96e fix ssh_key_pass bug (fix #91) (#100) 26 February 2021, 12:21:08 UTC
eca3e86 LinearAlgebra._generic_matmul! : Avoid division by zero for tile_size. (#39790) 26 February 2021, 08:32:12 UTC
b39d697 Merge pull request #38905 from aviatesk/backprop2 inference: inter-procedural conditional constraint back-propagation 26 February 2021, 05:30:52 UTC
936e84f add basic overview of when to use type declarations (#39812) 25 February 2021, 22:37:21 UTC
a3eda19 Allow kwarg in function composition (#39147) 25 February 2021, 21:09:27 UTC
dc81980 [WIP] Use libblastrampoline to forward to a user-defined BLAS at runtime (#39455) 25 February 2021, 20:36:16 UTC
95a34a9 clarify non-scalar indexed assignment (#39788) Ref: #39725 Co-authored-by: Nicholas Bauer <nicholasbauer@outlook.com> 25 February 2021, 17:35:54 UTC
6968e47 equiv_typedef: don't reject equivalence just for gensyms (#39778) This fixes the following: ``` julia> struct Symmetric{T,S<:AbstractMatrix{<:T}} <: AbstractMatrix{T} data::S uplo::Char end julia> struct Symmetric{T,S<:AbstractMatrix{<:T}} <: AbstractMatrix{T} data::S uplo::Char end ERROR: invalid redefinition of constant Symmetric ``` `Core._equiv_typedef` returns false which ends up triggering the error. 25 February 2021, 17:07:56 UTC
a12d0ff make copy correctly handle 0-dimensional SubArray (#39809) * make copy correctly handle 0-dimensional SubArray The current definition of `copy` for `SubArray` [here](https://github.com/JuliaLang/julia/blob/master/base/subarray.jl#L70) has the following consequence: ``` julia> x = [1] 1-element Array{Int64,1}: 1 julia> y = @view x[1] 0-dimensional view(::Array{Int64,1}, 1) with eltype Int64: 1 julia> copy(y) 1 ``` which is inconsistent with the contract for `copy` that promises to produce an array when array is copied, e.g.: ``` julia> x = fill(1) 0-dimensional Array{Int64,0}: 1 julia> copy(x) 0-dimensional Array{Int64,0}: 1 ``` 25 February 2021, 11:27:16 UTC
442f727 Bump `p7zip_jll` to get coddesigned `7z` binary (#39805) Without this, Pkg extraction commands fail on Apple Silicon 24 February 2021, 12:31:25 UTC
5256375 Make ReadOnlyError on PROT_NONE consistent (#39803) This replaces #36625. Essentially the question is what should reading from PROT_NONE memory do. At the moment we throw ReadOnlyMemoryError on Linux and pass through the segfault on Windows/Mac. It's not super clear what the right answer is, though it would be nice to be consistent. After some discussion, it seemed that not throwing ReadOnlyMemoryError on Linux was probably the better consistency direction for two reasons: 1. Getting a ReadOnlyMemoryError is confusing if the failing operation is a read. We could of course rename the error, but that would be a bigger breaking change. 2. The purpose of this exception is to protect people who accidentally try to write to mmap'ed memory that they don't have write permissions to. It was never intended to become a general memory access error exception, so it seems prudent to restrict it as much as possible. To make this happen, there is some platform specific code here to read the memory error register out of the signal context. Decoding this register is shared code between the operating systems, but the register itself is in an OS-specifc location in the signal frame. I have implemented the retrieval code for all our CI'ed platforms. Other users will get an appropriate `#warning` (similar to other code in this file) and can fill in the necessary code at their leisure. A new test in test/misc.jl will indicate whether or not the check is correct. 24 February 2021, 12:30:50 UTC
e32e94e Merge pull request #39719 from JuliaLang/sf/codesigned_libraries 24 February 2021, 05:09:13 UTC
36e7e8a tweaks for inter-procedural constraint back-prop' note that the changes for `isnothing` and `ismissing` aren't necessary, but they reduce the number of method definitions for good reason; the less the number of methods they have, the better we can back-propagate type constraints, because even after a package defines their own new methods for them we can keep to use our `InterConditional` logic as far as far as the number of methods is [≤3](https://github.com/JuliaLang/julia/blob/5c6e21edbfd8f0c7d16ea01c91d1c75c30d4eaa1/base/compiler/types.jl#L119) 24 February 2021, 02:33:12 UTC
cf634a8 inference: callsite conditional argument type refinement - within a callee (i.e. `typeinf_local`), we widen conditional return type if it doesn't refine input argument type (for better cache) - within a caller (i.e. `abstract_call_gf_by_type`), we re-form a conditional if needed, which allows us to choose a propagation target more appropriately this commit implements the "pick up" logic within a caller (i.e. within `abstract_call_gf_by_type`), which allows us to choose a constraint more appropriately, and now the `Meta.isexpr` case is fixed. Still there is a limitation of multiple conditional constraint back-propagation; the following broken test case will explain the future work. ```julia is_int_and_int(a, b) = isa(a, Int) && isa(b, Int) @test_broken Base.return_types((Any,Any)) do a, b is_int_and_int(a, b) && return a, b # (a::Int, b::Int) ideally, but (a::Any, b::Int) 0, 0 end == Any[Tuple{Int,Int}] ``` 24 February 2021, 02:33:07 UTC
9be2edb inference: inter-procedural conditional constraint back-propagation This PR propagates `Conditional`s inter-procedurally when a `Conditional` at return site imposes a constraint on the call arguments. When inference exits local frame and the return type is annotated as `Conditional`, it will be converted into `InterConditional` object, which is implemented in `Core` and can be directly put into the global cache. Finally after going back to caller frame, `InterConditional` will be re-converted into `Conditional` in the context of the caller frame. ## improvements So now some simple "is-wrapper" functions will propagate its constraint as expected, e.g.: ```julia isaint(a) = isa(a, Int) @test Base.return_types((Any,)) do a isaint(a) && return a # a::Int return 0 end == Any[Int] isaint2(::Any) = false isaint2(::Int) = true @test Base.return_types((Any,)) do a isaint2(a) && return a # a::Int return 0 end == Any[Int] function isa_int_or_float64(a) isa(a, Int) && return true isa(a, Float64) && return true return false end @test Base.return_types((Any,)) do a isa_int_or_float64(a) && return a # a::Union{Float64,Int} 0 end == Any[Union{Float64,Int}] ``` (and now we don't need something like #38636) ## benchmarks A compile time comparison: > on the current master (82d79ce18f88923c14d322b70699da43a72e6b32) ``` Sysimage built. Summary: Total ─────── 55.295376 seconds Base: ─────── 23.359226 seconds 42.2444% Stdlibs: ──── 31.934773 seconds 57.7531% JULIA usr/lib/julia/sys-o.a Generating REPL precompile statements... 29/29 Executing precompile statements... 1283/1283 Precompilation complete. Summary: Total ─────── 91.129162 seconds Generation ── 68.800937 seconds 75.4983% Execution ─── 22.328225 seconds 24.5017% LINK usr/lib/julia/sys.dylib ``` > on this PR (37e279bce7136e48f159811641b68143412c3881) ``` Sysimage built. Summary: Total ─────── 51.694730 seconds Base: ─────── 21.943914 seconds 42.449% Stdlibs: ──── 29.748987 seconds 57.5474% JULIA usr/lib/julia/sys-o.a Generating REPL precompile statements... 29/29 Executing precompile statements... 1357/1357 Precompilation complete. Summary: Total ─────── 88.956226 seconds Generation ── 67.077710 seconds 75.4053% Execution ─── 21.878515 seconds 24.5947% LINK usr/lib/julia/sys.dylib ``` Here is a sample code that benefits from this PR: ```julia function summer(ary) r = 0 for a in ary if ispositive(a) r += a end end r end ispositive(a) = isa(a, Int) && a > 0 ary = Any[] for _ in 1:100_000 if rand(Bool) push!(ary, rand(-100:100)) elseif rand(Bool) push!(ary, rand('a':'z')) else push!(ary, nothing) end end using BenchmarkTools @btime summer($(ary)) ``` > on the current master (82d79ce18f88923c14d322b70699da43a72e6b32) ``` ❯ julia summer.jl 1.214 ms (24923 allocations: 389.42 KiB) ``` > on this PR (37e279bce7136e48f159811641b68143412c3881) ``` ❯ julia summer.jl 421.223 μs (0 allocations: 0 bytes) ``` ## caveats Within the `Conditional`/`InterConditional` framework, only a single constraint can be back-propagated inter-procedurally. This PR implements a naive heuristic to "pick up" a constraint to be propagated when a return type is a boolean. The heuristic may fail to select an "interesting" constraint in some cases. For example, we may expect `::Expr` constraint to be imposed on the first argument of `Meta.isexpr`, but the current heuristic ends up picking up a constraint on the second argument (i.e. `ex.head === head`). ```julia isexpr(@nospecialize(ex), head::Symbol) = isa(ex, Expr) && ex.head === head @test_broken Base.return_types((Any,)) do x Meta.isexpr(x, :call) && return x # x::Expr, ideally return nothing end == Any[Union{Nothing,Expr}] ``` I think We can get rid of this limitation by extending `Conditional` and `InterConditional` so that they can convey multiple constraints, but I'd like to leave this as a future work. --- - closes #38636 - closes #37342 24 February 2021, 02:29:01 UTC
83f3be9 Add imaging_mode to jl_create_native (#38642) 24 February 2021, 01:11:30 UTC
db1c340 Flip OpenBLAS aarch64 to ILP64, update checksums 23 February 2021, 23:47:17 UTC
b1c0631 Bump PCRE2, include SLJIT `mprotect()` patch 23 February 2021, 22:44:14 UTC
7aba050 [build] Mass-update JLL versions to get codesigned libraries on Darwin On Apple Silicon, we need ad-hoc code signatures on all libraries. This mass rebuild of the dependencies provides signed versions of all libraries on both `x86_64-apple-darwin` and `aarch64-apple-darwin` 23 February 2021, 22:44:14 UTC
8e949d6 specialize copyto! and multiplication by numbers for Q from qr (#39533) * specialize copyto! and multiplication by numbers for Q from qr This fixes two performance bugs reported in https://github.com/JuliaLang/julia/issues/38972 and https://github.com/JuliaLang/julia/issues/38972 (multiplication of `Q` from `qr` by a `Diagonal` or `UniformScaling`). In particular, it improves the performance of generating random orthogonal matrices as described in https://discourse.julialang.org/t/random-orthogonal-matrices/9779/7. * fix typo in new qr tests * resolve mehod ambiguity of copyto! 23 February 2021, 14:30:47 UTC
3230aef Sync Pkg with Pkg master branch (#39770) 23 February 2021, 09:04:16 UTC
503c63b [libgit2] Fix zlib stream abandonment causing clone error on 32-bit systems (#39772) This backports libgit2 patch to fix zlib stream handling. 23 February 2021, 02:25:59 UTC
2e21b38 Give const prop'ed calls their own statement info (#39754) My primary motivation here is to let Cthulhu mark cases where constant propagation improved the result, but this also lets us avoid the second (linear) lookup in the inference cache, which causes a marginal, but measurable (a few percent) improvement in sysimage build time. 23 February 2021, 00:52:32 UTC
675c96f proper error for assignment to unary :: (#39753) `(::T) = ...` gave `ERROR: syntax: malformed expression` before, this just adds an explicit check to give a proper error message. 22 February 2021, 21:27:59 UTC
d753a0b Fix type instability in showarg (#39776) 22 February 2021, 16:57:33 UTC
7610610 Update to GMP 6.2.1 (#39769) Version adds initial support for Darwin on arm64 22 February 2021, 15:01:45 UTC
909c7f3 Add support to multiple property pairs in sprint (#39381) * Add support to multiple property pairs in sprint Sometimes it is required to pass multiple properties to `IOContext` in `sprint`. For example, if we want to print with `:compact` and `:limit` set to true. Currently, the only possible way to do this is creating an `IOContext` using a dummy `IOBuffer` with those parameters. Hence, this commit allows to pass a vector of pairs `:key=>value` to `context` keyword of `sprint` so that we can easily set multiple properties. This is not a breaking change, and no performance regression was identified when using the previous function signatures. * Add compat annotation to sprint * Update base/strings/io.jl Co-authored-by: Rafael Fourquet <fourquet.rafael@gmail.com> * Update sprint docstring * Update NEWS.md * Move NEWS.md entry to the correct place Co-authored-by: Rafael Fourquet <fourquet.rafael@gmail.com> 22 February 2021, 07:42:07 UTC
10bea87 Merge pull request #39728 from JuliaLang/jn/39723 ensure to show the whole type, even if the proper subset matched an alias 22 February 2021, 04:57:26 UTC
6d4e697 fix type uniquing (caching) in incremental deserializer (#39744) Fixes #39688 22 February 2021, 04:56:12 UTC
5945f4d Change Windows CRT func to be considered as libjulia func (#39636) This prefers crtdll over ntdll. This supports the specialization of `memcpy` ccall on Windows. 22 February 2021, 00:39:36 UTC
fdd2633 codegen: guard phi node loads of invalid inputs (#39747) At runtime, it is prohibited to observe these values, but we need to make sure they are not reading through undefined pointers (and potentially trying to GC-root the memory there) Refs ChainRules in #39641 21 February 2021, 23:41:22 UTC
f879cd1 codegen: define return_roots in normalized form (#39745) LLVM will switch to this form, so it is preferable to start that way. Refs Matcha in #39641 21 February 2021, 23:41:12 UTC
9ae6fa9 NEWS for PR #34678: keys(::Generator) pass through (#39775) 21 February 2021, 22:49:47 UTC
9c31a1b Make "Write functions, not just scripts" more prominent in the performance tips (#38052) * Make recommendation " Write functions, not just scripts" more prominent in the performance tips. * Update doc/src/manual/performance-tips.md 21 February 2021, 21:42:03 UTC
3129a5b WIP: Upgrade to OpenBLAS 0.3.13 (#39216) * Use OpenBLAS 0.3.13 Bumping to support xcode/clang 12 which was addressed in OpenBLAS 0.3.11 * Use OpenBLAS 0.3.13+1 * Add openblas-exshift patch for src build * Update LinearAlgebra doctests for Linux * non-ambiguous ordering in eigen and eigvals test (#39767) add missing sortby's Co-authored-by: Pablo San-Jose <lekand@gmail.com> 20 February 2021, 22:46:20 UTC
d524f21 Replace libosxunwind wth LLVM libunwind (#39127) 19 February 2021, 22:06:12 UTC
62d47af Add test documenting #10561, two-digit year parsing (#39654) * Add test documenting #10561, two-digit year parsing * Update stdlib/Dates/test/io.jl Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com> * Update stdlib/Dates/test/io.jl Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com> * Simplify test behavior * Simplify test * Tweak parse direction * Clean up formatting (and trigger new build) * Update stdlib/Dates/test/io.jl Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com> * Update stdlib/Dates/test/io.jl Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com> Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com> 19 February 2021, 21:56:09 UTC
b8a75c9 support type annotations in property destructuring (#39442) fixes #39374 19 February 2021, 20:49:13 UTC
67b9d4d Protect handle_message from Integer subtype invalidation (#39689) Resolves https://github.com/SciML/ArrayInterface.jl/issues/121. There is a cost, but hopefully there's no strong need to supply `maxlog` using whacky subtypes of Integer. 19 February 2021, 11:46:18 UTC
38aeb48 AbstractInterpreter: Add a hook to opt into more extensive stmt info (#39716) I'm in the process of updating Cthulhu to make use of an AbstractInterpreter instead of using raw inference queries. Over time Cthulhu has grown many heuristics for trying to reverse engineer what inference did in order to present this to the user. Of course, these heuristics are incomplete and worse, we do already mostly have this information neatly packaged in the stmt_info field, since optimization needs the same information. Switching Cthulhu to an AbstractInterpreter gives it access to this info (as well as allowing it to maintain its own caches, fixing various weirdness around statement order dependence with the base inference caches). However, there are a few places in inference where we drop stmt info that Cthulhu would like to read because the optimizer doesn't need it. This adds a hook for Cthulhu (and other tooling that would like to receive it) to get more verbose stmt info out of inference. My end goal here is to turn Cthulhu entirely into a viewer for inference data structures, and not have it contain any heuristics that duplicate inference functionality. I think we're pretty close to that, but a few tweaks are required. Hopefully the end result should be a much more functional and precise Cthulhu (as well as being easier to maintain, since we get to delete half the code). 19 February 2021, 04:20:57 UTC
1699c6a Add `Cmd` object notes in the Running External Programs section of the manual. (#39704) 19 February 2021, 04:19:53 UTC
11cbaf6 Use `MACOSX_VERSION_MIN=11` on Apple silicon (#39735) 19 February 2021, 00:19:22 UTC
0d47bfe Switch macOS task mechanism back to ASM (#39679) 5327824ec8c452410e2a2f755921764df9344855 rearranged the ifdefs here and switched macOS to unwind based switching, which is somewhat slower. That was deemed acceptable at the time, because it work around some GDB misbehavior in setjmp. However, we're about to update to the LLVM libunwind fork, which appears to be even slower here, so switch back to ASM to avoid that performance regression. 18 February 2021, 21:43:46 UTC
a235107 very minor type stability improvement (#39733) 18 February 2021, 21:35:57 UTC
f07b12b Fix typo in BitVector constructor (#39737) 18 February 2021, 21:32:40 UTC
87d0a0a Adapt codegen to return newly-defined method too. (#39691) 18 February 2021, 20:21:57 UTC
32b668e Don't form PartialStructs over tuples of trivial const info (#39684) This addresses an outstanding TODO in tuple_tfunc. There was an old comment there that cache logic would need adjusting for this change. However, we're already doing the equivalent of this in the inference for :new, so I think most of that is taken care of. I did notice that `is_lattice_equal` did not consider `Const` equal a singleton constant (though they already were lattice equal accoding to ⊑), but other than that, things seem to just work. The motiviation here was that these types get a bit messy when looking at types in the AD world, which have lots of tuples of lots of different singletons, but this should also help sysimage size a bit, since we do now store PartialStruct results. I also tried going further than this and reversing the normalization that singleton types be represented as `Const` elsewhere in inference, but that turned out pretty messy, since every check for Const basically needed to be updated to account for it. I'm guessing it's better to just leave that normalization in place. 18 February 2021, 20:12:10 UTC
ae9815e LLVM now requires `-std=c++14` or higher (#39707) Without these compiler flags, we run into errors such as: ``` error: unknown type name 'constexpr' ``` when including `llvm/Support/type_traits.h` 18 February 2021, 18:58:11 UTC
0926ed8 avoid corrupting String on conversion of StringVector to String (#39726) fix #39717 18 February 2021, 18:30:25 UTC
f485fd5 Add emit bounds check docs (#39724) 18 February 2021, 16:32:58 UTC
a163d3e fix the description of ctime (#39731) 18 February 2021, 16:31:32 UTC
779d693 Add checksums for LibCURL (#39702) 18 February 2021, 16:15:44 UTC
edd3c87 when showing union aliases, keep TypeVars last 18 February 2021, 07:47:34 UTC
b729667 ensure to show the whole type, even if the proper subset matched an alias This code should only have been active for make_typealiases, but #38099 already fixed that better, so we can just remove this now. Fixes #39723 18 February 2021, 07:47:33 UTC
7853ddd Add Half precision ppc patch and codesign LLVM binaries (#39712) 17 February 2021, 22:09:48 UTC
0858864 fix #39705: lowering of Expr(:||) (#39709) 17 February 2021, 20:33:33 UTC
55d7571 Try to fix unwind on i686 (#39694) Turns out libunwind was basically ignoring value locations on the platform, so that needed to be enabled. Should hopefully fix linux32 CI. 17 February 2021, 18:39:51 UTC
7040ffb Minor refactoring to generate_precompile.jl (#39658) 17 February 2021, 15:20:01 UTC
dff13e1 Fix formatting in Base.Order.Ordering docstring (#39696) 17 February 2021, 07:24:16 UTC
093b2a6 avoid excessive renaming in subtype of intersection result (#39623) fixes #39505, fixes #39394 do fewer subtype checks in `jl_type_intersection2` 17 February 2021, 03:08:42 UTC
cfc83f2 add white outline to logo (#39601) 17 February 2021, 01:00:32 UTC
7219d22 Fix docstring (#39678) 17 February 2021, 00:56:50 UTC
bbdf1cf Merge pull request #39606 from JuliaLang/jn/inference-widenreturn Fixes some inference issues 16 February 2021, 21:54:20 UTC
6425845 Specialize `BigInt` construction for integers in range of `Clong` (#39682) This improves the performance with small `Int64` constants on 64-bit Windows. 16 February 2021, 21:37:36 UTC
55eca20 inference: fix widenconst call for ReturnNode of PartialStruct Previously, we might accidentally leave behind content in the fields that should not be there. For example: ``` julia> code_typed(() -> (TypeVar(:x),), (), optimize=false) 1-element Vector{Any}: CodeInfo( @ REPL[1]:1 within `#3' 1 ─ %1 = Main.TypeVar(:x)::Core.Compiler.PartialTypeVar(x, true, true) │ %2 = Core.tuple(%1)::Core.PartialStruct(Tuple{TypeVar}, Any[Core.Compiler.PartialTypeVar(x, true, true)]) └── return %2 ) => Tuple{TypeVar} julia> ans[1][1].rettype Core.PartialStruct(Tuple{TypeVar}, Any[Core.Compiler.PartialTypeVar(x, true, true)]) ``` 16 February 2021, 16:41:18 UTC
7c6b75f inference: add missing reset for stmt_info This only would matter if we transition a call from T -> Union{}, which is unlikely to happen, and even less likely to be observed, but it is more correct this way. 16 February 2021, 16:40:55 UTC
77b2c5d inference: remove some unneeded parameterization This logic is present to avoid asking ill-posed questions after we discover the dataflow is terminated, similar to how we'd remove the code after throw or a constant branch. Refs: https://github.com/JuliaLang/julia/pull/39439#discussion_r573423919 16 February 2021, 16:40:27 UTC
b8310ed another fix for 'error during bootstrap' printing 16 February 2021, 16:40:27 UTC
1bc7f43 improve many type stabilities in `Core.Compiler.typeinf` (#39549) All of them are detected by JET.jl's self-profiling. The following code will print type-instabilities/type-errors for all code paths reachable from `typeinf(::NativeInterpreter, ::InferenceState)`. ```julia julia> using JET julia> report_call(Core.Compiler.typeinf, (Core.Compiler.NativeInterpreter, Core.Compiler.InferenceState); annotate_types = true) ``` The remaining error reports (e.g. `variable Core.Compiler.string is not defined`) are because of missing functionality on error paths. 16 February 2021, 16:34:36 UTC
b1fbe7f Fix method definition of BroadcastStyle in docs (#39686) 16 February 2021, 09:06:51 UTC
c48ae61 Merge pull request #39664 from JuliaLang/tb/return_method libjulia: return newly-defined method. 16 February 2021, 08:59:59 UTC
back to top