https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
6f75053 cache env lookups in the precompile process 12 January 2023, 13:32:27 UTC
548aee6 Revert "Merge pull request #47994 from JuliaLang/avi/improve-semi-concrete-accuracy" (#48194) This reverts commit 03bdf15483cbe2d06526d3b46f26e5d20893f07e, reversing changes made to a9e0545969bb76f33fe9ad9bcf52180caa1651b9. Fixes #48089 regression That PR causes the runtime to store an undesirable amount of garbage, to work around a bug in the semi-concrete interpreter failing to correctly compute the inferred result. That should be fixed in the semi-concrete interpreter, without bloating the runtime caches with extraneous information. 10 January 2023, 14:20:53 UTC
2424af1 make `getfield_notundefined` more robust (#48207) Follow up #48203. See the added test cases for the purpose of this commit. 10 January 2023, 13:57:09 UTC
6deb98f Merge pull request #48158 from JuliaLang/avi/inbounds effects: taint `:consistent`-cy on `:inbounds` and `:boundscheck` exprs 10 January 2023, 11:39:04 UTC
8c131d4 Fix `top_set_bit` docstring and use it in more places (#48201) * Fix `top_set_bit` docstring and use it in more places * Fix `top_set_bit` doctest now that it's actually running Co-authored-by: Oscar Smith <oscardssmith@gmail.com> 10 January 2023, 10:24:31 UTC
79eb7be fix boundscheck tests Co-Authored-By: Shawn LeMaster <shlemas@users.noreply.github.com> 10 January 2023, 09:22:25 UTC
e9f44a9 add a hack to avoid tainting `:consistent`-cy of `getfield(::Tuple, ::Int)` too aggressively 10 January 2023, 09:22:25 UTC
7928591 effects: taint `:consistent`-cy on `:inbounds` and `:boundscheck` exprs - taint `:consistent`-cy on `:boundscheck` expr - taint `:consistent`-cy on `:inbounds` expr N.B it turns out that we didn't taint it correctly before, since `jl_code_info_set_ir` encodes `:inbounds` expressions into `ssaflags` and eliminates them before abstract interpretation - improved `ntuple` effects slightly Since this commit ends up tainting `:consistent` of `getindex(::Tuple, ::Int)` too aggressively even for cases when the `getindex` call is known to safe, this commit also converts some `getindex(::Tuple, ::Int)` calls in Base to direct `getfield(::Tuple, i)` calls. 10 January 2023, 09:22:25 UTC
9a2f016 Merge pull request #48203 from JuliaLang/kf/instanceffects Refine effects for getfield corner cases 10 January 2023, 09:21:48 UTC
26b0588 effects: Mark _typevar CONSISTENT_IF_NOTRETURNED Like other mutable allocation consistency here is flow-dependent. 10 January 2023, 06:55:58 UTC
e397948 effects: Refine effects for getfield of unknown field When all fields are known initialized syntactically, we do not need to test whether accessing the fields will give an UndefRef. We only need to check for the fields that are not syntactically known to be initialized. As a result, this commit improves `:consistent`-cy of `getfield` call, which is better in general but leads to inference/inlining accuracy regression in some edge cases because now irinterp is enabled on more frames. There are two regressions, but we are fine with them so we modify the test cases: - inlining regression: irinterp ends up some extra junk basic blocks, that LLVM can optimize away down the road. - inference regressions: these regressions are all related to the `MustAlias` lattice extension, which was added for JET's use case especially and not enabled in base yet. Since JET doesn't enable irinterp, this commit marks the regressed cases as broken. 10 January 2023, 06:50:07 UTC
5ba3f1b Refine effects for T.instance We were already able to essentially fold this away, but we were incorrectly tainting :consistency. 10 January 2023, 06:33:18 UTC
2fc3b29 irinterp: Fix extra_reprocess with loops and add control hook (#48199) Fixes a bug where the extra_reprocess argument was ignored once we switched to the looping code and also adds a hook to allow external absint that may have control-dependent lattice elements to enqueue additional statements to revisit during irinterp. 10 January 2023, 06:27:41 UTC
557ddf2 fix some nits in gc docs (#48204) Co-authored-by: Diogo Netto <dcn@dhcp-10-29-83-174.dyn.MIT.EDU> 10 January 2023, 06:18:15 UTC
e163c84 lattice: Thread lattice through to va_process_argtypes (#48198) 10 January 2023, 06:00:37 UTC
88030b0 🤖 [master] Bump the Pkg stdlib from a8ae3c580 to 5ae866151 (#48184) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 09 January 2023, 22:07:42 UTC
d21a25d parameterize lattice operations in `abstract_call_unionall` (#48191) 09 January 2023, 20:35:43 UTC
ec437b7 add a suffix to a new cache files in case of failure of renaming it to an exisiting cache file already in use (#48137) * add a suffix to a new cache files in case of failure of renaming it to an exisiting file 09 January 2023, 18:44:29 UTC
45c81b1 ensure jl_compilation_sig does not narrow Vararg (#48152) Some code cleanup, and an early exit path that avoids trying to create a compilation signature from something that cannot be turned into one. Previously we might try a little too hard to make one, even if it meant we ignored that it was expected to be Varargs. Fix #48085 09 January 2023, 18:37:08 UTC
53a0a69 Extend method root to support more than 16bit roots (#48185) 09 January 2023, 14:11:15 UTC
708d1bd Add internal `top_set_bit` function (#47523) * add top_set_bit Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> Co-authored-by: Michael Abbott <32575566+mcabbott@users.noreply.github.com> 08 January 2023, 22:16:48 UTC
f6b5157 deps: fix broken `p7zip` url (#48176) 08 January 2023, 18:48:28 UTC
2f51851 🤖 Bump the SparseArrays stdlib from 31b491e to a3116b9 (#48175) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 08 January 2023, 18:14:00 UTC
0847a7f Make cache mismatch log more informative (#48168) 08 January 2023, 17:42:39 UTC
db7d762 Move safepoint emission to llvm-final-gc-lowering (#47393) 08 January 2023, 15:03:08 UTC
de73c26 Make sure `reachable_var` not falls into infinite recusion. (#48135) 07 January 2023, 10:39:46 UTC
8dbf7a1 Remove redundant definition of `UIntType` (#48157) 07 January 2023, 07:17:30 UTC
98d5a0a ir/passes: Various followups from previous PRs (#48164) Rolls up individual review comments from #48066, #48144, #48151. 07 January 2023, 02:45:27 UTC
b76fdcc ir: Respect GlobalRef lattice elements (#48151) Currently IncrementalCompact recomputes the type of globals on every iteration. There is not much reason to do this - the type of a global cannot change. In addition, external abstract interpreters may want to inject custom, more precise lattice elements for globals, which should be respected. Overall, this should be both faster and better for external absint, though of course GlobalRefs now need to be inserted into the IR with the correct type. If there's any callsites that don't do that, those would have to be updated. 06 January 2023, 22:50:40 UTC
1508425 Slightly generalize _compute_sparam elision (#48144) To catch a case that occurs in FuncPipelines.jl and was causing precision issues in #48066. 06 January 2023, 22:50:26 UTC
fd41b59 Allow irinterp to refine nothrow effect (#48066) This addresses a remaining todo in the irinterp code to allow it to compute whether its particular evaluation refined `nothrow`. As a result, we can re-enable it for a larger class of ir (we had previously disabled it to avoid regressing cases where regular constprop was able to prove a `nothrow` refinement, but irinterp was not). 06 January 2023, 22:49:43 UTC
0eafda8 doc: clarify `let x` without an assignment (#48122) 06 January 2023, 15:29:58 UTC
46365ea improve the effects of `Base._tuple_unique_fieldtypes` (#48112) Discovered during inspecting #48097. 06 January 2023, 14:28:41 UTC
f056c34 Improve type stability of array_subpadding slightly (#48136) This should be slightly more efficient as the compiler now only tries to call `iterate` on `t` and `s` once, and will not try to destructure the result if the `iterate` call returns `nothing`. This change reduce spurious JET warnings. 06 January 2023, 08:19:13 UTC
463e5f0 add a note to `ismutable` docstring about `String` and `Symbol` (#48149) 06 January 2023, 03:43:23 UTC
6d14b0f Math tests: if fma is not available, relax some tests from exact equality to approximate equality (#48102) * Math tests: if fma is not available, relax some tests from exact equality to approximate equality * Apply suggestions from code review Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> * `has_fma` has no runtime support * Add `Rational{Int}` * Put the FMA support info in the testset context * Fix whitespace * Remove inaccurate testset name Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> 06 January 2023, 01:57:07 UTC
4562cfa Fix small nits in multiversioning (#47675) 05 January 2023, 20:17:59 UTC
54aa57c Make QuickerSort efficient for non-homogonous eltype (#47973) * set `v[j] = pivot` in partition rather than returning pivot to caller to make partition! type stable for non-concrete eltype 05 January 2023, 20:15:01 UTC
0913cbc Fix invalidations in `finish_show_ir` (#48134) The whole module is under `@nospecialize`, so inference needs us to annotate the argtypes. 05 January 2023, 20:03:05 UTC
dc2b4d9 Deprecate AMD's LWP extension (#48131) 05 January 2023, 18:32:40 UTC
321c5f5 Avoid a couple of InexactErrors in the IdDict code. (#48116) 05 January 2023, 15:59:45 UTC
35d1840 Switch back to LLVM's IR linker (#48106) Co-authored-by: Tim Besard <tim.besard@gmail.com> 05 January 2023, 15:52:54 UTC
b984c4e make get! type-stable for AbstractDict (#48128) 05 January 2023, 15:18:23 UTC
80aeebe Don't perform extra inference during incremental image creation (#48054) As noted in #48047, we're currently attempting to infer extra methods during incremental image saving, which causes us to miss edges in the image. In particular, in the case of #48047, Cthulhu had the `compile=min` option set, which caused the code instance for `do_typeinf!` to not be infered. However, later it was nevertheless queued for precompilation, causing inference to occur at an inopportune time. This PR simply prevents code instances that don't explicitly have the `->precompile` flag set (e.g. the guard instance created for the interpreter) from being enqueued for precompilation. It is not clear that this is necessarily the correct behavior - we may in fact want to infer these method instances, just before we set up the serializer state, but for now this fixes #48047 for me. I also included an appropriate test and a warning message if we attempt to enter inference when this is not legal, so any revisit of what should be happening here can hopefully make use of those. 05 January 2023, 12:47:42 UTC
a9506f5 Avoid allocations in reduction over adjoints (#48120) 05 January 2023, 08:05:58 UTC
a77774a Improve documentation on tuples and named tuples (#47981) * Improve documentation on semicolon, tuples and named tuples Co-authored-by: Stefan Karpinski <stefan@karpinski.org> 05 January 2023, 02:57:26 UTC
4a42367 [GCChecker] add support for tracking JL_NOTSAFEPOINT regions (#47978) We have regions of code that we either cannot (gcsafe_enter) or should not (locks) enter GC since it would cause data races or deadlocks. Teach the GCChecker how to analyze those state transitions. Additionally, mark all functions inside files named 'llvm-*.*' as not safepoints. This saves us some manual annotation effort. 04 January 2023, 20:05:55 UTC
b6794f9 Add test for invperm for incorrect permutation (#47869) 04 January 2023, 19:21:14 UTC
b604fc9 Specialize isinf(::IEEEFloat) (#48109) * specialize isinf(::IEEEFloat) Co-authored-by: mikmoore <mikmoore@users.noreply.github.com> 04 January 2023, 19:12:07 UTC
7b92f38 Add example for now(::Type{UTC}) and mention TimeZones.jl (#48117) 04 January 2023, 15:44:18 UTC
e73c261 Document array literals equivalent to hvncat (#48118) 04 January 2023, 15:33:31 UTC
cdcb07f optimizer: keep statements that may throw from being optimized by SROA (#48068) SROA should verify a statement won't throw, otherwise it can't be eliminated safely. Note that this commit skips the nothrow-ness verification on `getfield` statement. This is acceptable because currently we are unable to prove it in the presence of potentially undefined fields. This is okay because our SROA pass will eliminate such a `getfield` statement only if it determines that the forwarded value safely defines the potentially undefined field. 04 January 2023, 08:54:32 UTC
a5ab48f Merge pull request #48029 from N5N3/inter-fix3 Avoid some stackoverflow during typeintersect. 04 January 2023, 08:09:48 UTC
52af407 Use native fmin/fmax in aarch64 (#47814) * Use native fmin in aarch64 * Small cleanup + effects * Cleanup * Update base/math.jl Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> * Some more cleanup Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> 03 January 2023, 21:00:26 UTC
4831361 Parallelize precompiles generation II (#48049) Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 03 January 2023, 15:07:01 UTC
87b1f2f 🤖 Bump the SparseArrays stdlib from 72827cd to 31b491e (#48084) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 03 January 2023, 09:21:28 UTC
36cd9c6 Avoid setting circular var's bounds during intersection. This fixes the MWE reported in https://github.com/JuliaLang/julia/issues/47874#issue-1491378956 And this fixes the remaining internal error in `Healpix.jl`'s test. gc fix 03 January 2023, 04:55:48 UTC
2901f0e Avoid stack-overflow in #46736 When we perform re-`intersection_unionall`, the `Union` bounds might be generated from `simple_join and thus not identical to the src `Union`. This commit adds a fast-path to skip the following `intersect_all. 03 January 2023, 04:55:48 UTC
e3c62cb Make sure `env` is restored between 2 adjacent `subtype_in_env_existential` 03 January 2023, 04:55:48 UTC
79e29e3 use invokelatest to prevent invalidations in TOML (#48083) 02 January 2023, 22:17:19 UTC
fe45f01 Refine LimitedAccuracy's ⊑ semantics (#48045) * Refine LimitedAccuracy's ⊑ semantics As discussed in #48030, this is a different attempt to fix the semantics of LimitedAccuracy. This fixes the same test case as #48030, but keeps `LimitedAccuracy` ε smaller than its wrapped lattice element. The primary change here is that now all lattice elements that are strictly `⊑ T` are now also `⊑ LimitedAccuracy(T)`, whereas before that was only true for other `LimitedAccuracy` elements. Quoting the still relevant parts of #48030's commit message: ``` I was investigating some suboptimal inference in Diffractor (which due to its recursive structure over the order of the taken derivative likes to tickle recursion limiting) and noticed that inference was performing some constant propagation, but then discarding the result. Upon further investigation, it turned out that inference had determined the function to be `LimitedAccuracy(...)`, but constprop found out it actually returned `Const`. Now, ordinarily, we don't constprop functions that inference determined to be `LimitedAccuracy`, but this function happened to have `@constprop :aggressive` annotated. Of course, if constprop determines that the function actually terminates, we do want to use that information. We could hardcode this in abstract_call_gf_by_type, but it made me take a closer look at the lattice operations for `LimitedAccuracy`, since in theory `abstract_call_gf_by_type` should prefer a more precise result. ``` * Apply suggestions from code review Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 02 January 2023, 18:56:34 UTC
7a561bd Hook up effect modeling for `TypeVar` and `UnionAll` (#48063) * Hook up effect modeling for `TypeVar` and `UnionAll` We already had effect modeling for `_typevar`, which `TypeVar` should just defer to. Add a simple model for `UnionAll` as well, though in the future we can add the Vararg case also. * Apply suggestions from code review Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 02 January 2023, 11:18:09 UTC
16f4f05 Disable further FileWatching tests (#47920) 02 January 2023, 11:18:03 UTC
8184b07 turn a comment into a test in sorting tests (#47965) Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> 02 January 2023, 11:17:45 UTC
b5b16fc Fix documentation in non-toplevel blocks (#48016) 02 January 2023, 10:58:23 UTC
75bc5ee use the correct env variable name to set default openblas num threads (#48064) This was add to OpenBLAS in https://github.com/xianyi/OpenBLAS/pull/3773 and was supposed to be used in https://github.com/JuliaLang/julia/pull/46844/ but was likely typod 01 January 2023, 20:19:56 UTC
4795004 Remove suplicated sqrt_fast in inconsistent intrinsics list (#48060) 01 January 2023, 01:38:19 UTC
266341e Make the `getproperty` example type stable (#48004) The example as written is not type stable, as one can verify with`@code_warntype`. Seems worth this small change to illustrate the preferable approach. On a more general note, I just recently figured out that `getproperty` is not type stable in general. (Simply replace the `obj.x + 1` with something like `obj.x / 2`.) Probably whoever reviews this PR will know that already but I wish that I had been warned long ago about that. I would recommend that a warning be put right here in these docs for it. I could draft the warning if there is openness to including it, but I figured that might be more debatable than the type annotation... Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> 01 January 2023, 01:28:50 UTC
adf7558 Pass down lattice in `ifelse_tfunc` (#48065) 01 January 2023, 01:26:34 UTC
516b097 Remove unsafe initialized=true option in sortperm! (#47979) * remove unsafe initialized=true option in sortperm! and partialsortperm! * Update NEWS.md 31 December 2022, 17:57:24 UTC
e5d0440 isassigned: check bounds on multidimensional indexes (#48003) * isassigned: check bounds on multidimensional indexes * isassigned: remove isempty check This check was added in the previous commit to preserve existing behavior when calling isassigned with an empty splat for the indexes. But it turns out different version of isassigned treat this case differently (e.g. AbstractArray vs Array). So the check is being removed to make isassigned behavior consistent and more in line with checkbounds and expectations of the [] operator. 31 December 2022, 16:18:03 UTC
d020702 Add missing Makefile dependency link (#48052) 31 December 2022, 15:56:12 UTC
cc5bc87 Adjust assertion for pkgimage & code-coverage (#48036) 30 December 2022, 22:38:25 UTC
4d206c9 Fix typo in ComposedFunction docstring (#48044) 30 December 2022, 15:07:56 UTC
a8adb39 Merge pull request #47983 from petvana/pv/parallel-repl-statements-v2 Parallelize precompiles generation 29 December 2022, 21:12:19 UTC
0c28433 Merge branch 'master' into pv/parallel-repl-statements-v2 29 December 2022, 20:07:13 UTC
6740224 Stop renumbering statements in inference proper (#48022) I don't think there's any good reason to try to delete the statements here. The very next thing we do is to convert to IRCode which drops dead code anyway, so this just seems redundant. In addition, it complicates Cthulhu-like analysis, which now has to track an extra set of statement numbers. 29 December 2022, 18:13:15 UTC
a1ee9af don't report skipped comments as failures (and only show failed when > 0) 29 December 2022, 17:33:46 UTC
8c5e490 Remove redundant chatch 29 December 2022, 15:30:27 UTC
f1ec0cd Use try-catch not to loose cursor 29 December 2022, 15:08:33 UTC
338b562 White spinner + disable cursor 29 December 2022, 14:10:35 UTC
86ae9e9 Fix to stdout 29 December 2022, 13:50:54 UTC
f0daa0d Detect if stdout is TTY or CI 29 December 2022, 13:39:13 UTC
5c1b99a Improve wording based on the review 29 December 2022, 12:41:49 UTC
c0f7635 Fix spacing 29 December 2022, 12:30:27 UTC
5083d8e Make clock spinning 29 December 2022, 12:22:42 UTC
f49f537 Fancy printing 29 December 2022, 12:08:52 UTC
9ded051 Add remarks for more cases of failed method lookup (#48023) * Add remarks for more cases of failed method lookup * Update base/compiler/typeinfer.jl Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 29 December 2022, 10:05:45 UTC
0f2665f [CompilerSupportLibraries_jll] Add libssp for more platforms (#48027) 29 December 2022, 07:30:43 UTC
1fda4bb Don't double-count inference time (#48033) * Use the same timing reentrancy counter for both inference and codegen * Add some timing tests * Add macro-based timer test 29 December 2022, 06:52:10 UTC
6ac5159 Replace dynamic dispatch with runtime branch on `rev` keyword in sortperm (#47966) 28 December 2022, 19:47:15 UTC
58d9c87 Change permissions of stdlib pkgimgs (#48019) * Change permissions of pkgimgs * Update base/loading.jl Co-authored-by: Elliot Saba <staticfloat@gmail.com> Co-authored-by: Elliot Saba <staticfloat@gmail.com> 28 December 2022, 17:52:46 UTC
82fbf54 [CompilerSupportLibraries_jll] Add `libssp` as product on Windows (#48012) 28 December 2022, 16:19:51 UTC
b838067 Add dereferenceable LLVM attribute to some GC functions (#46256) 28 December 2022, 16:19:24 UTC
8324512 Add option to `jl_print_task_backtraces(bool)` to control whether or not to print DONE tasks (#47933) Add option to `jl_print_task_backtraces(bool)` to control whether or not to print DONE tasks This lets you print all live tasks, with less noise in the logs, in case it's been a while since the last GC. In some cases, we are seeing many thousands of DONE Tasks, which greatly increase the noise in the logs, and can overwhelm the DataDog logging. The API now takes a bool, which can allow us to control this setting, letting us print the DONE tasks if the user wants to, but also hide them if desired. 28 December 2022, 15:34:41 UTC
6ea5ad5 replace broken NFC link in manual (#48017) 28 December 2022, 14:49:11 UTC
02492f6 Update README.md (#48018) Fixed the version number of the current stable release 28 December 2022, 14:12:33 UTC
9a7a80c Merge branch 'master' into pv/parallel-repl-statements-v2 28 December 2022, 12:16:08 UTC
03b9cc6 Use fetch instead of errormonitor 28 December 2022, 10:00:56 UTC
68d4ee3 Use istaskfailed instead of errormonitor 28 December 2022, 08:29:58 UTC
back to top