https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
668a674 RFC: Less aggressive recursion limiting Our recusion heuristic works by detection recursion of edges of methods (N.B.: Methods, not specializations). This works reasonably well, but there are some pathological cases that defeat it. One common one is to have a wrapper function that calls an internal function, e.g. ``` mymap(f, x) = _mymap(f, x) ``` If a higher order function is written with such a pattern, it is quite easy to run into the recursion limit even in legitimate cases. For example, with the above definition, a fuction like: ``` f(x) = mymap(x) do t mymap(sin, t) end ``` will fail to get precise inference. There's various other patterns that cause similar issues, e.g. optional arguments and keyword arguments and is one of the more common causes of inference suboptimalities. This PR attempts to relax this criterion significantly. It is still based on methods, but considers the entire recursion path rather than just a single edge. So for example, in our current heuristic, we would limit: E -> A -> B -> C -> A -> B immediately, but with the proposed heuristic we would not limit it until we reach: E -> A -> B -> C -> A -> B -> C And in particular, we would not limit E -> A -> B -> C -> A -> B -> D -> A -> B -> E even though the `A->B` edge repeats frequently. This is intentional to allow code that has a central dispatch function (e.g. Diffractor has code patterns like that). If this turns out to be not aggressive enough, we could consider imposing additional limitations on the intermediate edges, but I think this is worth a try. 31 December 2022, 17:27:32 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
dd8d58e Fix doc comment in internal `__convert_digit` (#47997) Co-authored-by: Sukera <Seelengrab@users.noreply.github.com> 28 December 2022, 08:07:01 UTC
fc4c666 Update calling-c-and-fortran-code.md (#47976) * Update calling-c-and-fortran-code.md Co-authored-by: Alex Arslan <ararslan@comcast.net> 28 December 2022, 08:05:46 UTC
8b2b7f5 minor fixes on `[getfield|setfield!]_tfunc`s (#48009) 28 December 2022, 02:11:08 UTC
9448c89 minor NFC improvements on abstractlattice.jl (#48008) 28 December 2022, 00:22:40 UTC
79bee80 Disable errormonitor temporarily 27 December 2022, 22:39:17 UTC
a40e24e Fix zero-length Markdown headers (#47725) * Fix zero-length Markdown headers * Add test on empty header 27 December 2022, 21:01:05 UTC
4c018c9 Merge branch 'master' into pv/parallel-repl-statements-v2 27 December 2022, 20:32:09 UTC
4c2a431 Initialize the rng of external threads (#47956) * Initialize the rng of external threads with uv_random 27 December 2022, 20:00:22 UTC
a815192 Wait for both steps 27 December 2022, 19:07:41 UTC
1794d64 Make printing thread-safe 27 December 2022, 18:43:09 UTC
1fb6ec8 Fix printing 27 December 2022, 15:51:56 UTC
a2db90f Implement support for object caching through pkgimages (#47184) This implements caching native code in "package images" (pkgimages). We now write two serialization files, one ending in `*.ji` and the other with the platform dynamic library extension (e.g., `*.so`). The `*.ji` contains "extended" header information (include the source-code dump for Revise), whereas the dynamic library includes the Julia objects, including LLVM-generated native code. Native code is compiled once during precompilation and then a second time to build a "clean" module. When we find an edge to an external function (already cached in anloaded pkgimage), we emit a global variable which we will patch during loading with the address of the function to call. This allows us to leverage the standard multiversioning capabilities. Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Kristoffer Carlsson <kristoffer.carlsson@chalmers.se> Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> Co-authored-by: Max Horn <max@quendi.de> Co-authored-by: Michael Schlottke-Lakemper <michael@sloede.com> Co-authored-by: Alex Ames <alexander.m.ames@gmail.com> 27 December 2022, 13:46:24 UTC
03bdf15 Merge pull request #47994 from JuliaLang/avi/improve-semi-concrete-accuracy Currently semi-concrete interpretation can end up with more inaccurate result than usual abstract interpretation because `src.ssavaluetypes` are all widened when cached so semi-concrete interpretation can't use extended lattice information of `SSAValue`s. This commit tries to fix it by making the codegen system recognize extended lattice information such as `Const` and `PartialStruct` and not-widening those information from `src::CodeInfo` when caching. I found there are other chances when semi-concrete interpretation can end up with inaccurate results, but that is unrelated to this and should be fixed separately. 27 December 2022, 13:23:28 UTC
6979ff3 Improve printing, add errormonitor, and enable serial run for debug 27 December 2022, 12:37:44 UTC
7ace688 improve semi-concrete interpretation accuracy, take 2 Currently semi-concrete interpretation can end up with more inaccurate result than usual abstract interpretation because `src.ssavaluetypes` are all widened when cached so semi-concrete interpretation can't use extended lattice information of `SSAValue`s. This commit tries to fix it by making the codegen system recognize extended lattice information such as `Const` and `PartialStruct` and not-widening those information from `src::CodeInfo` when caching. I found there are other chances when semi-concrete interpretation can end up with inaccurate results, but that is unrelated to this and should be fixed separately. 27 December 2022, 11:36:38 UTC
b7e3da6 Revert "improve semi-concrete interpretation accuracy" This reverts commit 67d9dc57709b37c8fe17d817c109efd8e2c8188c. 27 December 2022, 11:36:38 UTC
a2ead37 improve semi-concrete interpretation accuracy, take 1 Currently semi-concrete interpretation can end up with more inaccurate result than usual abstract interpretation because `src.ssavaluetypes` are all widened when cached so semi-concrete interpretation can't use extended lattice information of `SSAValue`s. This commit tries to fix it by making `CodeInstance` keep extended lattice information of `SSAValue`s that are widened and allowing semi-concrete interpretation to override `src.ssavaluetypes` when it uncompressed `src` from `CodeInstance`. I found there are other chances when semi-concrete interpretation can end up with inaccurate results, but that is unrelated to this and should be fixed separately. 27 December 2022, 11:35:58 UTC
a9e0545 compiler: Use correct method to construct empty NamedTuple (#48005) The `NamedTuple(())` method is not available in the inference world age. Empty named tuples needs to be constructed with `NamedTuple()`. This was causing the Diffractor tests to error. 27 December 2022, 11:16:34 UTC
3ff7186 Define `gt_fast` and `ge_fast` (#47972) The important thing here is that `>` is used in `max_fast`, `min_fast`, and `minmax_fast`. These functions did not SIMD in reductions because `>` didn't have an associated fast op. This PR fixes that. 27 December 2022, 10:26:37 UTC
2d0b640 allow external `AbstractLattice` to customize intrinsic tfuncs (#48000) This would be useful for `AbstractInterpreter`-based static analyzers that use custom `AbstractLattice`. 27 December 2022, 07:03:53 UTC
5c493c5 Fix reference to the wrong parse function (#48002) Reference linked to Base.parse instead of Meta.parse 26 December 2022, 16:58:00 UTC
5bd0160 minor lattice fix on `egal_tfunc` (#47998) 26 December 2022, 11:45:37 UTC
f5eeba3 Testsystem: allow skipping tests that require Internet with `--skip internet_required` (#47914) 26 December 2022, 08:40:51 UTC
162ee48 lattice: Don't forget to pass down lattice in Conditional tmerge (#47992) Also add some extra cases that before were taken care of by the tmerge_fast_path at the entry to the tmerge code. I briefly considered splitting an extra slow path function to avoid the one `===` in the ConstsLattice, but in the non-equality case that check should be quite fast, so it didn't seem worth it. 25 December 2022, 12:36:55 UTC
21529a9 irinterp: Add missing widenconst into tmeet (#47993) The `fixup_slot!` code in slot2ssa.jl indiscrimnately moves lattice elements into `PiNode` `typ` fields. As a result, we cannot assume that we have `typ::Type`, so we must widenconst in irinterp to avoid errors. 25 December 2022, 10:05:05 UTC
ea13810 Restore libgcc_s symlinkin in !macOS (#47986) Commit c8b72e2bf49046e8daca64214765694377277947 completely removed libgcc_s symlinking (I assume unintentionally) in !macOS. 24 December 2022, 23:57:00 UTC
3add4cd lattice: Don't short-circuit layers between PartialStruct and Type (#47988) This catches a corner case I missed in #46881. In particular, when both arguments are `Const`, it is legal for intermediate lattice layers between the PartialsLattice and the ConstLattice to do something other than give the merged type. The current code in the PartialsLattice was short-circuiting this, leading to inference imprecision. I think technically, we'd be ok to do the short-circuiting when both are known to be PartialStruct (since we know that they widenlattice to a type), but it doesn't seem worth the extra effort to check. 24 December 2022, 23:17:54 UTC
b540315 Add Juliaup and versions.json to release proc instr (#47984) 24 December 2022, 04:45:00 UTC
c28a71e Merge branch 'master' into pv/parallel-repl-statements-v2 23 December 2022, 22:47:36 UTC
0f9186a Clean the code 23 December 2022, 22:42:02 UTC
7481dcc Parallelize precompilation script 23 December 2022, 22:10:18 UTC
ebeda7a move regex tests to test/; make more precise (#47959) These tests aren't specific to PCRE; no matter how Regex matching is implemented, these tests should pass, so I'm moving them into test/regex.jl. I'm also making them more precise and testing that the match is not only something, but also that it is the exact substring that should match. Might catch some future PCRE regression. 22 December 2022, 23:02:47 UTC
3930ce1 Add NEWS entry for #47804 (#47969) 22 December 2022, 22:49:52 UTC
8d943c1 Merge pull request #47804 from JuliaLang/sf/broken_test_nonboolean Change `@test ex broken=true` to error if `ex` evaluates to non-boolean 22 December 2022, 18:36:56 UTC
12e679c Apply `InitialOptimizations` more consistently in sorting & fix dispatch bug (#47946) * Apply InitialOptimizations by default in several cases when it was previously present * fixup for MissingOptimization * fix stability in the sortperm union with missing case 22 December 2022, 11:44:35 UTC
a074d06 inference: mark flag for effect-free `:call`s during abstractinterpret (#47689) So that they can be deleted during the first `compact!`-ion. This allows us to delete an inlineable and effect-free, but unused call. This is essentially an alternative of #47305, but doesn't introduce a problem like #47374. 22 December 2022, 11:30:28 UTC
181328c reland refinement on instantiation of partially-known empty `NamedTuple` (#47961) This is a re-land of #47481. This commit improves inference accuracy of instantiation of partially-known, empty NamedTuple. Note that we can't do the same for inference of `apply_type` call as pointed at #47481. ```julia @test Base.return_types((Any,)) do Tpl T = NamedTuple{(),Tpl} nt = T(()) values(nt) end === Tuple{} ``` 22 December 2022, 10:15:44 UTC
2568160 add test case for "fix incorrect inference of `NamedTuple{(), <:Any}` (#47962) Co-Authored-By: Martin Holters <martin.holters@hsu-hh.de> Co-authored-by: Martin Holters <martin.holters@hsu-hh.de> 22 December 2022, 09:18:27 UTC
915dd8e use parameterized lattice in various optimization passes (#47948) We may want to parameterize our optimization passes with `AbstractInterpreter` in the future, but this commit adds minimum changes to parameterize them with `AbstractInterpreter` maintained by `InliningState`. 22 December 2022, 09:18:04 UTC
43d9352 fix incorrect inference of `NamedTuple{(), <:Any}` (#47947) closes #47481 22 December 2022, 05:46:09 UTC
b050b5d 🤖 Bump the NetworkOptions stdlib from 791fa05 to f7bbeb6 (#47954) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 December 2022, 22:53:07 UTC
b5ae2ff 🤖 Bump the Statistics stdlib from 20fbe57 to e9ac70b (#47955) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 December 2022, 22:46:55 UTC
e4c064b Modify `@test_broken` on `cfunction` platform support failure This `@test_broken` is meant to just register a "broken" result for these platforms, so let's ensure the test always results in a `false`. 21 December 2022, 21:45:53 UTC
b89d017 🤖 Bump the Downloads stdlib from 11b6bb7 to 030cfb3 (#47953) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 December 2022, 21:30:36 UTC
5c5e490 add `get_bool_env` for parsing bool-like env vars (#47436) 21 December 2022, 21:29:44 UTC
508bb92 Fix `@test_broken` to actually assert type intersection result This test is still valid, but it was not actually asserting anything due to not returning a boolean value. 21 December 2022, 21:03:51 UTC
b33d7c7 Remove wrong `@test_broken @inferred` test This test does not fail on any Julia version I've tested going all the way back to v0.7 when it was first introduced. My assumption is that it broke on an RC version, and we didn't noticed when it was fixed because `@test_broken` ignored tests that returned non-boolean values. 21 December 2022, 21:03:51 UTC
6d4132b Format extensions with parent in `@time_imports` report (#47945) 21 December 2022, 20:52:42 UTC
0773140 subtype: fix merge_env innervars getting copied to itself (#47941) 21 December 2022, 18:55:40 UTC
cf2176f tweak extension header in manual for search-ability (#47951) 21 December 2022, 17:02:49 UTC
ee77ebe 🤖 Bump the Pkg stdlib from a8a8e224e to a8ae3c580 (#47950) 21 December 2022, 14:26:17 UTC
1c7cdd5 Merge pull request #47940 from Seelengrab/bump_pcre [PCRE2_jll] Upgrade to 10.42 21 December 2022, 09:16:34 UTC
30236cf Add regression tests 20 December 2022, 22:09:53 UTC
ac77be9 [PCRE2_jll] Upgrade to 10.42 20 December 2022, 21:45:35 UTC
8cdb17b put back the old QuickSort, PartialQuickSort, and MergeSort algorithms... (#47788) ...as they were in 1.8 and rename the new PartialQuickSort to QuickerSort Also improve the documentation and API for constructing QuickerSort and test the API Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> 20 December 2022, 16:07:55 UTC
a3ba757 [Markdown] use textwidth to compute string width (#47761) 20 December 2022, 15:53:37 UTC
4341b96 compute env for typeintersect better (#47925) Avoid discarding intermediate information sooner than we must (e.g. at return). 20 December 2022, 15:42:36 UTC
d7363d8 add bounds check to Slices indexing (#47622) Co-authored-by: Simon Byrne <simonbyrne@gmail.com> 20 December 2022, 15:09:18 UTC
1f0700a Precompile cache: always add worklist CIs (#47924) We cache only those external CodeInstances that link back to the package being precompiled. Formerly we required a backedge; this PRs adds any whose `specTypes` could only link back to the package. This scoops up a few runtime-dispatched CodeInstances and their callees. 20 December 2022, 14:30:20 UTC
70c1e45 add missing innervars handling to merge_env (#47877) Otherwise, we would write NULL here immediately when handling intersect_all, and may fail to restore this array correctly. 20 December 2022, 09:31:52 UTC
61afe7b Remove DelimitedFiles checksums (#47931) 20 December 2022, 08:29:38 UTC
e976206 allow external lattice to provide its own field-merge implementation (#47910) When merging `PartialStruct`, we are currently merging their fields a bit aggressively (#44404) in order to accelerate (or rather, guarantee) convergence. However, when `PartialStruct` wraps external lattice elements, this can be too aggressive since it does not use `tmerge(𝕃, fields...)` recursively and thus the external lattice elements are not merged as expected. This commit adds an additional lattice hook, `tmerge_field`, inside `tmerge(::PartialsLattice)` so that external lattice implementation can provide its own field-merge strategies. 20 December 2022, 07:33:09 UTC
9be3c85 only load extensions once dependencies have finished loading (#47927) 19 December 2022, 21:17:13 UTC
427432e revert promotions of abstract arrays inside other arrays (#47893) 19 December 2022, 11:53:55 UTC
eb57a77 Added hseqr! LAPACK function (#47872) * Added hseqr LAPACK function * Added API documentation * Added schur function and test * Added test with Int matrix Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 18 December 2022, 11:31:23 UTC
c1a322f 🤖 Bump the Pkg stdlib from 5d8b9ddb8 to a8a8e224e (#47915) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 16 December 2022, 22:28:14 UTC
b6f32bc make Ctrl-C during sleeping work better (#47901) fixes #46635 co-authored-by: Jameson Nash <vtjnash@gmail.com> 16 December 2022, 01:26:25 UTC
26a7dbb intersect: fix a minor soundness issue with supertypes (#47813) When doing intersection, we might end up with a value in `env` (as the only possible *value* for that parameter) without properly considering that the parameter might be a TypeVar. 16 December 2022, 01:25:50 UTC
847cdde Fix an impossible-to-reach `InexactError` in `parse(Int, ::String)` (#47900) * Fix an impossible-to-reach `InexactError` in `parse(Int, ::String)` Previously, even though everything was bounded by checks earlier, this function would have an error path about an `InexactError` that makes it through LLVM and into assembly. By converting to `UInt32` before the call, the inner conversion will always succeed. This is safe, since we know 2 <= `base` <= 62 from the checks at the start of `tryparse_internal`. * Add type restriction to `__convert_digit` Co-authored-by: Sukera <Seelengrab@users.noreply.github.com> 15 December 2022, 21:53:30 UTC
cbcae07 doc: correct example norm -> mynorm (#47904) 15 December 2022, 18:58:24 UTC
e84634e Reduce invalidations when loading JuliaData packages (#47889) 15 December 2022, 09:39:58 UTC
7b10d5f add back wordaround for `Slot objects should not occur in an AST` in Ipython mode (#47878) 14 December 2022, 19:15:15 UTC
back to top