https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
c9ef36c fixup! fixup precompile tests 30 November 2022, 12:20:42 UTC
4523fb7 fixup precompile tests 30 November 2022, 12:20:42 UTC
98eaeba Ensure we don't return a ocachefile when we are not using pkgimage 30 November 2022, 12:20:42 UTC
6775700 Fix windows permission error 30 November 2022, 12:20:42 UTC
50cd16f Don't adhoc create ocachepath 30 November 2022, 12:20:42 UTC
80b51f7 Calculate checksums for pkgimage 30 November 2022, 12:20:42 UTC
c7caf38 codecov/track-allocations prevents pkgimage 30 November 2022, 12:20:42 UTC
14fc4cf add pkgimage cmd flag 30 November 2022, 12:20:42 UTC
054a6a9 Write clone_targets to .ji 30 November 2022, 12:20:41 UTC
e26cc1f Add notes about hash selection 30 November 2022, 12:20:41 UTC
547a5bd Cache objectcode in pkgimages 1. Handle external functions in other images When we find an edge to an external function (already cached in an loaded pkgimage), we emit a global variable which we will patch during loading with the address of the function to call. 2. Split `.ji` and `.so` Validation headers and srctext goes into `.ji`, data and objectcode goes into .so. 3. Implement Base.Linking using lld to link on user machines On MacOS we are not gurantueed to have a usable `-lSystem` we can link against, so we use `-undefined dynamic_lookup` Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> 30 November 2022, 12:20:41 UTC
5da8d5f Add a warning about inadvertent Diagonal(::Matrix) (#46864) 30 November 2022, 11:11:07 UTC
41b73e2 Bump libuv. (#47707) Adapts to the final version of the constrained/available memory APIs. 30 November 2022, 06:37:13 UTC
70bda2c Merge pull request #44527 from JuliaLang/teh-vc/serialize_partial Support external linkage in "sysimages" 30 November 2022, 01:44:53 UTC
328dd57 Fix generator-invocation legality check for varargs generators (#47739) This code was introduced by me back in #31025 to speed up evaluation of generated functions that didn't make use of all of their arguments to make generation decisions. However, it neglected to take into account the possibility that the generator could be varargs. As a result, an unfortunate coincidence of an unused slot in the correct position could have allowed expansion of generators that were not supposed to be expandable. This can cause incorrect inference with all the usual consequences. However, fortunately this coincidence appears to be pretty rare. Fixes https://github.com/JuliaDebug/CassetteOverlay.jl/issues/12 29 November 2022, 23:48:15 UTC
e06a591 Allow re-initialization and caching of foreign types (#47407) Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Max Horn <max@quendi.de> 29 November 2022, 20:56:22 UTC
cbfdb3f Replace the `.ji` serialization with sysimage format This unifies two serializers, `dump.c` (used for packages) and `staticdata.c` (used for system images). It adopts the `staticdata` strategy, adding support for external linkage, uniquing of MethodInstances & types, method extensions, external specializations, and invalidation. This lays the groundwork for native code caching as done with system images. Co-authored-by: Valentin Churavy <v.churavy@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Tim Holy <tim.holy@gmail.com> 29 November 2022, 20:56:22 UTC
54a9c2f improve inlining cost analysis for invoke (#47671) 29 November 2022, 16:36:50 UTC
edc8241 Revert "improve @(s)printf docstrings (#47583)" (#47734) This reverts commit 4d5fd91463ee59e759e627b3d6fc2ef7c6cdb22c. 29 November 2022, 07:38:07 UTC
4d5fd91 improve @(s)printf docstrings (#47583) 29 November 2022, 07:13:43 UTC
4fd26ba reflection: support additional call syntaxes for `@invoke[latest]` (#47705) Like `@invoke (xs::Xs)[i::I] = v::V` and `@invokelatest x.f = v`. Co-Authored-By: Jameson Nash <vtjnash@gmail.com> 29 November 2022, 04:19:25 UTC
f6e911a make `ml_matches` return `nothing` when there are too many matches (#44478) Continuation from <https://github.com/JuliaLang/julia/pull/44448#discussion_r820025006>. Previously `ml_matches` (and its dependent utilities like `_methods_by_ftype`) returned `false` for cases when there are too many matching method, but its consumer like `findall(::Type, ::InternalMethodTable)` usually handles such case as `missing`. This commit does a refactor so that they all use the more consistent value `nothing` for representing that case. 29 November 2022, 04:18:07 UTC
865007d Add section headings to the Doc's home page & links (#47646) * Add sections heading to the Doc's home & links Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> 29 November 2022, 00:05:51 UTC
2642c4e allow `Base._which` to take overlay method table (#47722) 28 November 2022, 23:12:37 UTC
1badb9d doc: add example of unwrapping `Some(nothing)` in `something` docstring (#47682) 28 November 2022, 22:36:07 UTC
3f9409c Fix nth_methtable tparam of -1 when n==0 (#47666) Fixes #47625 28 November 2022, 20:33:45 UTC
c8ea33d Add link to alloc profiler issue in Profile docs (#47728) 28 November 2022, 17:50:17 UTC
902e8a7 fix 5-arg `mul!` for vectors of vectors (#47665) Co-authored-by: N5N3 <2642243996@qq.com> 28 November 2022, 11:17:27 UTC
ea23403 Return early in `axp[b]y` if alpha and beta is zero, fixes #47531. (#47557) 28 November 2022, 06:48:17 UTC
20d13da Reuse `du2` of `Tridiagonal` matrix for pivoting in `lu!` if extant (#47564) 28 November 2022, 06:45:13 UTC
7514bcf Fix REPL keybinding CTRL-Q for stdlib methods (#47637) 28 November 2022, 06:44:05 UTC
99be295 Fix length of Markdown header underlines (#47708) 28 November 2022, 06:28:45 UTC
b34fe1d Allow crc32c hashing of SubString{String} (#47693) 28 November 2022, 06:26:07 UTC
f9662b8 Remove dead code in Base.retry (#47718) y === nothing is always false inside of while y !== nothing loop. 28 November 2022, 06:24:11 UTC
42ac4b1 `Test`: fix `allowed_undefineds` typo (#47572) 28 November 2022, 06:18:13 UTC
5495b8d Fix GCExt test (#47699) * Add test/gcext to out-of-tree * Disable gcext test that uses jl_gc_internal_obj_base_ptr 27 November 2022, 23:21:46 UTC
60668c5 Add loose compilation time test (#47716) 27 November 2022, 01:35:55 UTC
88a0627 Fix and simplify inference timing logic (#47711) * Fix and simplify inference timing logic * Reduce task struct size 26 November 2022, 09:58:10 UTC
02aa0b0 Fix overflow in pow5 (#47511) Fixup for #46764 26 November 2022, 00:47:30 UTC
04214ec add string literal continuation syntax to docs for `"` (#47690) 25 November 2022, 10:49:03 UTC
9d25932 sort out argument order of `maybe_erase_unused!` (#47701) 25 November 2022, 09:14:36 UTC
039d8fd effects: add `:removable` convenient setting for `Base.@assume_effects` (#47700) This setting is similar to `:foldable` but for dead call elimination. 25 November 2022, 09:11:50 UTC
d0a211a Filesystem: `rm(; recursive=true)` should ignore `UV_EACCES` (#47668) The command-line program `rm` has no problem deleting an empty directory that we do not have listing permissions on, so we should follow suit. Example: ``` mktempdir() do dir mkpath("$(dir)/foo") chmod("$(dir)/foo", 0o200) rm(dir; recursive=true) end ``` 24 November 2022, 15:42:49 UTC
726bbd7 Fix regression in generic_bitcast with Union{} arguments. (#47605) 24 November 2022, 11:30:00 UTC
25b2746 LinearAlgebra: Speed up the trace function (#47585) 24 November 2022, 09:33:32 UTC
113efb6 Remove typeinfer lock altogether (#46825) * Remove typeinfer lock altogether * Don't remove the typeinf lock functions * Track reentrancy in current task state * Fix up some git status * Initialize task variables * Promise that jl_typeinf_func is rooted somewhere 23 November 2022, 22:11:39 UTC
27ebaa7 Print the detailed type on heap snapshot (#47503) Fixes https://github.com/JuliaLang/julia/issues/47502 23 November 2022, 19:26:11 UTC
3200219 build: add get-lld target (#47589) Fixes `make -C deps getall` 23 November 2022, 04:02:38 UTC
95165bb Add an inference option to assume no new bindings being added (#47674) This is currently intended for use with external AbstractInterpreters that want to be able to constant fold `:isdefined` away. We always support the `true` case, since we don't support removing bindings, but the `false` case is currently not foldable. In the future, we might partition bindings by world age, in which case we would likely get this for free, but for now, just add this as a hook for external AbstractInterpreters to use. 22 November 2022, 23:48:33 UTC
7262534 Fix mapreduce_first docstring error (#42832) The docstring of Base.mapreduce_first referred `reduce_first(op, f, x)`, but `reduce_first` is a 2-argument function, and it should refer to `mapreduce_first(f, op, x)` instead. 22 November 2022, 10:28:02 UTC
4fa07cd Add compat note for `sortperm(x; dims)` (#47657) 22 November 2022, 01:25:15 UTC
3966d5c minor NFC cleanups on slot2ssa (#47652) 21 November 2022, 22:44:17 UTC
5996520 update MPFR (#47659) checksums updated via approach described in #47174. 21 November 2022, 21:31:33 UTC
1e2ba33 Cleanup: Use `issingletontype` consistently (#47618) Rather than reaching for `isdefined(x, :instance)`. They are currently equivalent, but I was playing with an extension that would have made them not be. I don't currently have plans to finish that particular PR, but this cleanup seems good regardless to specify exactly what is meant rather than reaching for the implementation. 21 November 2022, 20:28:29 UTC
23160a1 correct throw `ArgumentError` from `lbt_find_backing_library` (#47651) 21 November 2022, 19:43:36 UTC
ab262e7 Unroll `foldl/r` at julia level for small `NamedTuple` (#47109) And make `Tuple` dispatched similarly. This commit also renames `_reverse`, as it has a non-related 2-arg version in `Base`. 21 November 2022, 18:27:33 UTC
c5fe17b Doc: The default sorting alg. is stable from 1.9 (#47579) * Update doc/src/base/sort.md * Update docs: The default sorting alg. is stable * Compat 1.9 for QuickSort to be stable * Specify the default algorithm * Use example from InlineStrings.jl * Change example to jldoctest * Remove "*appear* to be stable." as slightly misleading. Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> 21 November 2022, 14:45:21 UTC
d18fd47 Make DemoteFloat16 a conditional pass (#43327) * add TargetMachine check * Add initial float16 multiversioning stuff * make check more robust and remove x86 check * move check to inside the pass * C++ is hard * Comment out the ckeck because it won't work inside the pass * whitespace in the comment * Change the logic not to depend on a TM * Add preliminary support for x86 test * Cosmetic changes 21 November 2022, 12:34:31 UTC
c9eccfc Algorithmic improvements for LateLowerGC pass (#47634) On a particularly pathological case I'm looking at (~100k calls, each a safepoint, similar number of allocations), I'm seeing LateLowerGC pass take the majority of the middle end time (around 80s out of 100s). This PR goes through and improves some of the algorithmics and data structure choices and gives a roughly 10x improvement on this particular pathological case (down to about 7.6s on my machine). That still represents about 1/3 of the total middle end time, which I'm not happy about, but perhaps that is reasonable given how pathological my particular test case is. For comparison, register allocation (which needs to solve a somewhat similar problem) on this IR takes about 20s. 21 November 2022, 04:16:40 UTC
67b8ac0 build: separate stdlib manifests by version (#47596) We install these by version, so it helps a lot if they reflect that in the manifest name. Also some other mild cleanup. 20 November 2022, 22:24:52 UTC
bba41d4 Turn on Intel jitevents by default on Linux (#47586) 20 November 2022, 19:45:20 UTC
90934ff Initialize padding in datatype layout (#47640) We use that memory for hashing it, so we need to ensure it is set to zero. 19 November 2022, 21:56:42 UTC
185b583 Revert "Improve performance of toplevel code (#47578)" (#47635) This reverts commit 526cbf7260c4b31a7f83c27e56694096185519bb. 19 November 2022, 11:14:12 UTC
1d8f7e0 inference: implement type-based alias analysis to refine constrained field (#41199) This commit tries to propagate constraints imposed on object fields, e.g.: ```julia struct SomeX{T} x::Union{Nothing,T} end mutable struct MutableSomeX{T} const x::Union{Nothing,T} end let # o1::SomeX{T}, o2::MutableSomeX{T} if !isnothing(o1.x) # now inference knows `o1.x::T` here ... if !isnothing(o2.x) # now inference knows `o2.x::T` here ... end end end ``` The idea is that we can make `isa` and `===` propagate constraint imposed on an object field if the _identity_ of that object. We can have such a lattice element that wraps return type of abstract `getfield` call together with the object _identity_, and then we can form a conditional constraint that propagates the refinement information imposed on the object field when we see `isa`/`===` applied the return value of the preceding `getfield` call. So this PR defines the new lattice element called `MustAlias` (and also `InterMustAlias`, which just works in a similar way to `InterConditional`), which may be formed upon `getfield` inference to hold the retrieved type of the field and track the _identity_ of the object (in inference, "object identity" can be represented as a `SlotNumber`). This PR also implements the new logic in `abstract_call_builtin` so that `isa` and `===` can form a conditional constraint (i.e. `Conditional`) from `MustAlias`-argument that may later refine the wrapped object to `PartialStruct` that holds the refined field type information. One important note here is, `MustAlias` expects the invariant that the field of wrapped slot object never changes. The biggest limitation with this invariant is that it can't propagate constraints imposed on mutable fields, because inference currently doesn't have a precise (per-object) knowledge of memory effect. 19 November 2022, 06:22:50 UTC
6707077 fix tab completion of invalid identifiers (#47594) fix #47593 19 November 2022, 06:20:27 UTC
8201e8a use jl_phicnode_type to create phicnode struct (#47600) Co-authored-by: pengxiangcai <pxcai@abeliancap.com> 19 November 2022, 06:19:53 UTC
e020ac8 the variable assert should before it being used (#47624) Co-authored-by: pengxiangcai <pxcai@abeliancap.com> 19 November 2022, 06:18:28 UTC
ef6974d Add an option to not run compiler in IR2OC (#47633) I have a case where I'm generating an opaque closure that is only run once, but LLVM takes 200s to compile it. This adds an option to not run LLVM in the IR2OC path, which is useful for two things: 1. Getting a handle on the OC without waiting for LLVM to finish, so we can have it dump out the unoptimized LLVM IR for profiling purposes. 2. Just actually not running LLVM, since it's probably not worth it. 19 November 2022, 05:19:27 UTC
553047f InteractiveUtils: use quoted `typesof` in macroexpansion (#47626) fix #47606 19 November 2022, 00:56:02 UTC
d12ac36 fix STABLE version number in README (#47582) 18 November 2022, 06:54:15 UTC
526cbf7 Improve performance of toplevel code (#47578) * Demote the atomic world age load to monotonic. * Only load the world age before call instructions. 17 November 2022, 22:07:28 UTC
5f0da83 Fix error in docstring and improve comment in gcdx (#47573) The names `x` and `y` are internal. 17 November 2022, 15:58:16 UTC
e5ed5be Improve effect analysis of bitshifts by non `Int` and `UInt` `Integer`s (#47567) *Improve effect analysis of bitshifts by non Int and UInt Integers Co-authored-by: Thomas Christensen <tchr@mit.edu> 17 November 2022, 13:57:01 UTC
3e7d796 optimizer: exclude `ConditionalsLattice` from the optimizer lattice (#47575) Since `Conditional`s (should) never appear within the optimization. Also added a missing widening of `Conditional`s in `slottypes` (a.k.a. `argtypes` in optimization) so that they never appear in the optimization. 16 November 2022, 23:01:26 UTC
b369511 ensure bindings handle write barriers for ty and globalref (#47580) This has probably been wrong for a long time (since being introduced in 79082468986). 16 November 2022, 21:17:00 UTC
5f256e7 fix #47410, syntax error with anonfn inside `elseif` and short-circuit op (#47499) 16 November 2022, 16:17:34 UTC
ee0f3fc lattice: fix minor lattice issues (#47570) I found some lattice issues when implementing `MustAlias` under the new extendable lattice system in another PR. 16 November 2022, 00:27:26 UTC
e805a18 minor compiler cleanups (#47571) 16 November 2022, 00:27:05 UTC
fe81138 fix #46778, precompile() for abstract but compileable signatures (#47259) 16 November 2022, 00:01:25 UTC
9b3f5c3 export `jl_gc_set_max_memory` (#47545) Also initialize it later, outside option parsing, so that modifying jl_options before calling jl_init works. 15 November 2022, 23:32:29 UTC
9413050 Define `parentmodule(::Method)` (#47548) Among the methods of `parentmodule` is one that looks for a matching method and retrieves the parent module of that method. However, there was no method of `parentmodule` for `Method`s themselves. The change made here introduces such a method and modifies code elsewhere to make use of it. 15 November 2022, 23:29:30 UTC
626f3b2 build: improve parsing of gfortran version (#47352) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 15 November 2022, 17:47:47 UTC
58b559f Limit initial OpenBLAS thread count (#46844) * Limit initial OpenBLAS thread count We set OpenBLAS's initial thread count to `1` to prevent runaway allocation within OpenBLAS's initial thread startup. LinearAlgebra will later call `BLAS.set_num_threads()` to the actual value we require. * Support older names 15 November 2022, 17:36:14 UTC
afe10f9 Faster and more accurate sinpi, cospi, sincospi for Float32, Float64 (#41744) faster and more accurate `sinpi` `cospi` and `sincospi` for `Float64`, `Float32`, and `Float16` 15 November 2022, 17:27:41 UTC
8d03330 UTF16 conversion in loader uses dynamic buffers (#47421) Follow up to #47406 15 November 2022, 14:53:14 UTC
a5c5acb Typofix in Asynchronous Programming docs (#47563) 15 November 2022, 06:59:43 UTC
18e7f40 lattice: not introduce `Conditional`s when external lattice doesn't handle it (#47555) This slightly increases the complexity but hopefully comes without any actual performance penalty. 15 November 2022, 03:40:41 UTC
d0559c1 add `isunix` for BinaryPlatforms `AbstractPlatform` (#47543) This provides symmetry with the methods defined in `Sys`, and is convenient for use in e.g. BinaryBuilder platform filters. Note that there are other `is.*bsd` variants we omit since they are unsupported by BinaryPlatforms. The capitilization conventions are also different so we do not call the Sys methods directly. 14 November 2022, 23:04:50 UTC
7fe6b16 Set VERSION to 1.10.0-DEV (#47222) * Set VERSION to 1.10.0-DEV * move NEWS over to HISTORY 14 November 2022, 14:01:09 UTC
9b20aca fix code alignment in example (#47514) 14 November 2022, 08:25:40 UTC
755775c Improve performance of `isapprox(::AbstractArray, ::AbstractArray)` when `rtol = 0` (#47464) Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> 14 November 2022, 06:21:24 UTC
7116a8b Fix documentation mistake in Test.jl (#47552) Fix a mistake in the documentation: remove the interpolated loop indices from the `@testset` macro with a function call, since there are no loops in that example. 14 November 2022, 03:30:51 UTC
b44ce13 edit NEWS for v1.9 (#47535) 13 November 2022, 19:46:15 UTC
7650173 Update CONTRIBUTING.md (#47547) 13 November 2022, 18:09:58 UTC
f6f6e8f Switch Coveralls to Codecov in CONTRIBUTING.md (#47549) 13 November 2022, 18:09:14 UTC
3510eeb Don't show redundant typeinfo when printing LinRange (take 2) (#47521) 11 November 2022, 16:47:35 UTC
317211a Dates: Error on construction/parsing with empty strings (#47117) When attempting to construct a `DateTime`, `Date` or `Time` from an `AbstractString`, throw an `ArgumentError` if the string is empty. Likewise, error when `parse`ing an empty string as one of these types, and return `nothing` from `tryparse`. This behavior differs from previously. Before, `Date` and `Time` would return default values of `Date(1)` and `Time(0)`, respectively, while `DateTime` would error without a `format` argument. With a `format` argument, it would return `DateTime(1)`. However, this appears not to have been explicitly intended, but rather a consequence of the way parsing was implemented; no tests for empty string parsing existed. This addresses #28090 and #43883; see discussion therein. Summary of changes: - Check for empty string in `Base.parse(::DateTime)` and throw if so. - Change documentation to mention this. - Add a compat notice to the docs contrasting the old behavior. 10 November 2022, 22:08:06 UTC
e0ba28a Improve help for broadcasted && and ||, closes #47526. (#47527) Currently, the help text for `.&&` and `.||` says: `x .&& y` is akin to `broadcast(&&, x, y)`. However, that is invalid syntax. 10 November 2022, 18:37:38 UTC
c81456e Fix the whitespace check (#47533) 10 November 2022, 18:29:26 UTC
0af14f5 Sparse NEWS.md Update (#47278) 10 November 2022, 17:58:55 UTC
back to top