d4af142 | Valentin Churavy | 26 October 2022, 20:43:42 UTC | Merge pull request #47332 from giordano/mg/csl-win-staticlibs [CompilerSupportLibraries_jll] Update to v0.5.3 | 26 October 2022, 20:43:42 UTC |
69fdf1f | WooKyoung Noh | 26 October 2022, 19:37:29 UTC | Update docs to use `Threads.threadpoolsize` instead `Base.threadpoolsize` (#47243) | 26 October 2022, 19:37:29 UTC |
900ffef | Mosè Giordano | 26 October 2022, 18:10:31 UTC | [CompilerSupportLibraries_jll] Update to v0.5.3 The main difference compared to the previous build is the inclusion of some static libraries on Windows, needed for linking purposes. | 26 October 2022, 18:10:31 UTC |
7cbf55f | Mark Kittisopikul | 26 October 2022, 14:07:34 UTC | Widen RangeIndex from Int to BitInteger (#43262) | 26 October 2022, 14:07:34 UTC |
48abb72 | Udoh Jeremiah | 26 October 2022, 08:07:45 UTC | doc: more info on sizehint! (#47235) | 26 October 2022, 08:07:45 UTC |
b902123 | Shuhei Kadowaki | 26 October 2022, 07:51:30 UTC | follow up #47294, fix constprop remarks (#47321) xref: <https://github.com/JuliaLang/julia/pull/47294#discussion_r1003906388> | 26 October 2022, 07:51:30 UTC |
f4101e9 | Mosè Giordano | 26 October 2022, 00:36:38 UTC | [Zlib_jll] Upgrade to v1.2.13 (#47174) * [Zlib_jll] Upgrade to v1.2.13 * [Zlib_jll] Update version number in tests | 26 October 2022, 00:36:38 UTC |
22ae80c | Stephen Eglen | 25 October 2022, 23:42:33 UTC | Typo in an example (that was commented out) (#47323) Was using unicode closing double quote and missing a close paren. | 25 October 2022, 23:42:33 UTC |
d885fc7 | William Moses | 25 October 2022, 21:34:54 UTC | Fix GC assertion on array of derived pointers (#47299) * Fix GC assertion on array of derived pointers * Add test | 25 October 2022, 21:34:54 UTC |
1a7a131 | Valentin Churavy | 25 October 2022, 21:32:41 UTC | Emit safepoints at function entry (#41616) * Emit safepoints at function entry * Make safepoint emission on function entry a codegen feature * Hoist signal page lookup outside fence * Update src/cgutils.cpp * Fix rebase | 25 October 2022, 21:32:41 UTC |
a1ecc80 | ma-laforge | 25 October 2022, 21:27:56 UTC | Add C/C++ diff: scope, modules, packages. (#37167) * Add C/C++ diff: scope, modules, packages. * Tweak C/C++ info & wrap lines. * More tweaks to the C++ differences. * Update doc/src/manual/noteworthy-differences.md Co-authored-by: Stefan Karpinski <stefan@karpinski.org> * correction: cwd is not a package repo by default. * Apply suggestions from code review Co-authored-by: Stefan Karpinski <stefan@karpinski.org> Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 25 October 2022, 21:27:56 UTC |
a490197 | Max Horn | 25 October 2022, 20:15:02 UTC | Better Libdl.dlopen error when using non-standard extension (#46998) When trying to dlopen a file with non-standard extension (e.g. `foo.so` instead of `foo.dylib` when running on macOS), if this failed (e.g. because of a reference to an undefined symbol), then instead of printing the error message returned by `dlerror` with a helpful notice what went wrong, a message indicating something to the effect that "foo.so.dylib was not found" was shown, which was not helpful at all. To get the actual helpful error message, add a check so that when dlopen fails for a file that actually exists, we don't retry loading from a file with the standard extension attached, which might not even exist; instead we just give up. This matches what is already being done for relative paths. This patch simply copies the relevant check to also be applied to the case dealing with absolute paths. | 25 October 2022, 20:15:02 UTC |
35d1289 | Ian Butterworth | 25 October 2022, 07:47:10 UTC | a couple of tidy ups on #47300 (#47320) Co-Authored-By: Jameson Nash <vtjnash+github@gmail.com> Co-authored-by: Jameson Nash <vtjnash+github@gmail.com> | 25 October 2022, 07:47:10 UTC |
4a45e8b | Jameson Nash | 25 October 2022, 04:34:02 UTC | test: make ComposedFunction inference test easier (#47317) This was written to be a very difficult compiler stress test, and be nearly close to failing at runtime too. While we like tests to be comprehensive, we do not like them to be a stress test on unrelated parts of the compiler simultaneously. From: #45925 Fix: #47179 | 25 October 2022, 04:34:02 UTC |
c69dca4 | DilumAluthgeBot | 25 October 2022, 03:47:37 UTC | 🤖 Bump the Pkg stdlib from ca9f44265 to b11ca0acd (#47316) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 25 October 2022, 03:47:37 UTC |
06b74c7 | Lilith Orion Hafner | 25 October 2022, 00:40:27 UTC | Update `partialsort!` docstring (#47192) | 25 October 2022, 00:40:27 UTC |
afbad45 | Gabriel Baraldi | 24 October 2022, 22:42:34 UTC | Reduce size of Profile test on 32 bit to avoid OOM (#47313) | 24 October 2022, 22:42:34 UTC |
fe72f81 | pchintalapudi | 24 October 2022, 19:47:58 UTC | Standardize LLVM module verification (#46387) * hide away the llvm verification steps behind JL_VERIFY_PASSES in our llvm passes * verify modules before and after optimization runs * Verify passes when compiling with assertions | 24 October 2022, 19:47:58 UTC |
e50b32f | Diogo Netto | 24 October 2022, 19:43:46 UTC | GC docs (#46607) Co-authored-by: Christine H. Flood <christineflood@juliacomputing.com> Co-authored-by: Diogo Netto <d-netto@users.noreply.github.com> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> | 24 October 2022, 19:43:46 UTC |
0645427 | Jameson Nash | 24 October 2022, 19:38:42 UTC | [InteractiveUtils] win: handle empty clipboard errors (#47311) Fix #46981 | 24 October 2022, 19:38:42 UTC |
0c382c2 | apaz | 24 October 2022, 14:04:36 UTC | lowering: fix lhs-decls not handling parameters (#47274) This caused const to be dropped from declarations involving named tuple destructuring. Fixes #47168 | 24 October 2022, 14:04:36 UTC |
1e31390 | Keno Fischer | 24 October 2022, 13:50:08 UTC | Merge pull request #47289 from JuliaLang/kf/oraclefailures Fix various oracle check failures | 24 October 2022, 13:50:08 UTC |
be1be44 | Keno Fischer | 24 October 2022, 13:49:25 UTC | Fix yet more cfg_simplify bugs (#47286) I continue to throw cfg_simplify at big external IR examples and unfortunately, I continue finding bugs. Hopefully this is the last of it. The particular bug here had to do with scheduling fallthroughs properly across dropped basic blocks. The test gives an example, but it's pretty hard to hit this case. | 24 October 2022, 13:49:25 UTC |
a528f77 | Keno Fischer | 24 October 2022, 13:16:23 UTC | Make sure to preserve info in union-split (#47301) Generally we try pretty hard in inlining to make sure to preserve the :info of a statement when we turn it into :invoke. We don't use this information in the compiler itself, but it is used by external tools (including Cthulhu). However, we were dropping this info during union splitting for no particular reason. Fix that. | 24 October 2022, 13:16:23 UTC |
d93c661 | Ian Butterworth | 24 October 2022, 11:59:07 UTC | Profile: add method for `take_heap_snapshot` with auto path (#47300) | 24 October 2022, 11:59:07 UTC |
6be72c6 | Jakob Nybo Nissen | 24 October 2022, 11:36:47 UTC | Add nospecialize to methodswith (#47302) On current master, calling methodswith compiles a new specialization for each type being checked, which easily runs into the hundreds of specializations, completely unnecessarily. This PR adds a bunch of nospecialize statements to methodswith to reduce latency significantly. | 24 October 2022, 11:36:47 UTC |
a8bf137 | Lilith Orion Hafner | 24 October 2022, 11:08:15 UTC | Reduce the range of elements sorted by partialsort (#47191) Co-authored-by: Petr Vana <petvana@centrum.cz> | 24 October 2022, 11:08:15 UTC |
13c0060 | Keno Fischer | 24 October 2022, 04:46:21 UTC | concrete-eval: Use concrete eval information even if the result is too large (#47283) When we originally implemented concrete-eval, we decided not to create `Const` lattice elements for constants that are too large, on the fear that these would end up in the IR and blowing up the size. Now that we have some experience with this, I think that decision was incorrect for several reasons: 1. We've already performed the concrete evaluation (and allocated the big object), so we're just throwing away precision here that we could have otherwise used (Although if the call result is unused, we probably shouldn't do concrete eval at all - see #46774). 2. There's a number of other places in the compiler where we read large values into `Const`. Unless we add these kinds of check there too, we need to have appropriate guards in the optimizer and the cache anyway, to prevent the IR size blowup. 3. It turns out that throwing away this precision actually causes significant performance problems for code that is just over the line. Consider for example a lookup of a small struct inside a large, multi-level constant structure. The final result might be quite tiny, but if we refuse to propagate the intermediate levels, we might end up doing an (expensive) full-constprop when propagating the constant information could have given us a much cheaper concrete evaluation. This commit simply removes that check. If we see any regressions as a result of this, we should see if there are additional guards needed in the optimizer. | 24 October 2022, 04:46:21 UTC |
fa37bcb | Keno Fischer | 24 October 2022, 04:15:35 UTC | Parameterize OptimizerLattice like InferenceLattice (#47287) External AbstractInterpreters that do optimization while retaining lattice elements in their custom lattice will need to have this for the same reason that InferenceLattice is needed, so there isn't really a good reason to not parameterize this. | 24 October 2022, 04:15:35 UTC |
b809e27 | Keno Fischer | 22 October 2022, 12:04:33 UTC | Fix oracle check failure in IncrementalCompact We weren't accounting for the removed use when inlining a constant argtype into a GotoIfNot node. | 24 October 2022, 04:04:57 UTC |
a21b006 | Keno Fischer | 22 October 2022, 11:47:36 UTC | Fix oracle check failures in SROA Also make the oracle check work while there are still new_new_nodes, which helps generate oracle check failures closer to where the actual issue is. | 24 October 2022, 04:04:57 UTC |
c34347a | Shuhei Kadowaki | 24 October 2022, 02:24:08 UTC | inference: add more constprop remarks (#47294) | 24 October 2022, 02:24:08 UTC |
54e6899 | Keno Fischer | 23 October 2022, 04:10:33 UTC | Don't attempt concrete eval if there's no information to be gained (#46774) If the effects are already maximized and the rt is already Const, there is nothing concrete evaluation could possibly tell us that we don't already know - just bail early in that case to save some inference time. | 23 October 2022, 04:10:33 UTC |
c97adbb | Shuhei Kadowaki | 23 October 2022, 03:40:30 UTC | optimizer: improve type stability of `OptimizationState` (#47244) | 23 October 2022, 03:40:30 UTC |
fa9c137 | Jakob Nybo Nissen | 22 October 2022, 16:17:51 UTC | Test that internal constructor return type asserts are respected (#47227) On Julia 1.8, if the internal constructor's return value was typeasserted, this assertion could be violated without an error. For example, in this case: ```julia struct Foo x::Int Foo()::Nothing = new(1) end ``` Running `Foo()` would not throw. This was inadvertently fixed in a later PR, but not tested. This PR adds a test case similar to the example above. | 22 October 2022, 16:17:51 UTC |
8bef4a7 | Jameson Nash | 22 October 2022, 16:16:43 UTC | make libunwind substantially faster (#47272) Includes: https://github.com/JuliaPackaging/Yggdrasil/pull/5690 Fixes: https://github.com/JuliaLang/julia/issues/45983 | 22 October 2022, 16:16:43 UTC |
f3ec87a | Tim Besard | 22 October 2022, 11:28:07 UTC | Update test for change in CodeInstance const fields (#47284) | 22 October 2022, 11:28:07 UTC |
230576d | Shuhei Kadowaki | 22 October 2022, 04:01:38 UTC | inference: pass `𝕃::AbstractLattice` to more `nothrow`-tfuncs (#47266) | 22 October 2022, 04:01:38 UTC |
858223d | Valentin Churavy | 22 October 2022, 02:01:48 UTC | Mark min_world and max_world as non-const (#47279) | 22 October 2022, 02:01:48 UTC |
ca3cd8b | Valentin Churavy | 21 October 2022, 14:02:08 UTC | verify_ir: BBNumber is Int not Int64 (#47271) | 21 October 2022, 14:02:08 UTC |
ed786ba | Shuhei Kadowaki | 21 October 2022, 09:54:30 UTC | use more structs for `construct_ssa` datastructures (#47251) | 21 October 2022, 09:54:30 UTC |
b3ebc0a | Wolf Thomsen | 21 October 2022, 07:42:09 UTC | improve docstring of 'evalfile' and add doctest, fixes #45559 (#47130) | 21 October 2022, 07:42:09 UTC |
d5b1021 | Shuhei Kadowaki | 21 October 2022, 04:35:54 UTC | Merge pull request #47253 from JuliaLang/avi/47249 fix #47249, pass `𝕃::AbstractLattice` to `fieldtype_nothrow` | 21 October 2022, 04:35:54 UTC |
94aab83 | Shuhei Kadowaki | 21 October 2022, 02:42:04 UTC | irinterp: handle `gc_preserve_[begin|end]` (#47252) fix #47250 Also refines up `reprocess_instruction!`. | 21 October 2022, 02:42:04 UTC |
c52af4a | Shuhei Kadowaki | 20 October 2022, 14:42:19 UTC | inference: fix lattice for `abstract_invoke` | 21 October 2022, 01:45:52 UTC |
cfbfa1d | Shuhei Kadowaki | 20 October 2022, 13:00:28 UTC | fix #47249, pass `𝕃::AbstractLattice` to `fieldtype_nothrow` | 21 October 2022, 01:13:07 UTC |
ecf9e56 | Keno Fischer | 20 October 2022, 19:04:29 UTC | cfg_simplify: Fix more bugs (#47240) cfg_simplify still had issues with unreachable BBs, as well as BBs with try/catch in them. Additionally, it sometimes leaves unreachable BBs in the IR, which the verifier was upset about if there was a PhiNode that referenced it. I made that legal for now. The alternative is to make all unreachable BBs illegal, which I think would be reasonable, but is somewhat extreme for the time being. Let's see how this fares first. | 20 October 2022, 19:04:29 UTC |
7680f77 | DilumAluthgeBot | 20 October 2022, 16:54:52 UTC | 🤖 Bump the SparseArrays stdlib from 4694108 to 3c2b65f (#47242) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 20 October 2022, 16:54:52 UTC |
f4c4c33 | Jerry Ling | 20 October 2022, 13:14:25 UTC | reword error when rng sampler is fed empty array (#47104) | 20 October 2022, 13:14:25 UTC |
82bd71b | Jameson Nash | 20 October 2022, 12:53:35 UTC | fix another incorrect quiescent finalizer detection (#47230) Missed in #47214 | 20 October 2022, 12:53:35 UTC |
198e87d | Jameson Nash | 20 October 2022, 12:48:55 UTC | Merge pull request #47178 from JuliaLang/jn/47160.2 [REPL] tests: further improve IJulia IO ordering | 20 October 2022, 12:48:55 UTC |
87fd6d9 | Shuhei Kadowaki | 20 October 2022, 08:33:32 UTC | inference: clean up `getfield_tfunc` subroutines [NFC] (#47232) | 20 October 2022, 08:33:32 UTC |
3a8a9c6 | Shuhei Kadowaki | 20 October 2022, 05:19:58 UTC | optimize: parameterize `OptimizationState` with `InliningState` properly (#47224) Should improve the inlining pass performance a bit. External `AbstractInterpreter` has been required to recompile all inlining subroutines parameterized with `InliningState` anyway. | 20 October 2022, 05:19:58 UTC |
a311f4d | Jacob Quinn | 20 October 2022, 02:44:43 UTC | Ensure port in listenany stays UInt16 (#47213) As reported [here](https://discourse.julialang.org/t/test-failures-for-sockets-base-runtests-sockets/88898). My guess on the original issue reported is that, for some reason, the host where the tests are run is unable to listen on any ports, so we end up cycling through the entire UInt16 range (the test starts at port 11011), but when we fail on port 65535, we do `addr.port + 1` and instead of wrapping around as I believe this function intends to happen (as noted by the `addr.port == default_port` check before we error), it gets promoted to `Int(65536)` which then throws an (unexpected) error in the `InetAddr` constructor. I'm not quite sure how to test this exactly though, because we'd need to simulate not being able to listen on any ports? If anyone has any ideas, I'm all ears. | 20 October 2022, 02:44:43 UTC |
0d52506 | apaz | 19 October 2022, 17:24:13 UTC | Optimized heap snapshot json writing (#47217) * Combined ios_printf calls in serialize_heap_snapshot. * Optimized print_str_escape_json() | 19 October 2022, 17:24:13 UTC |
e1cbd11 | Valentin Churavy | 19 October 2022, 16:43:05 UTC | Ensure that we run late-lowering over ccallable funcs (#47226) | 19 October 2022, 16:43:05 UTC |
48facc8 | Jameson Nash | 17 October 2022, 18:59:28 UTC | [REPL] fix ipython_mode scope bug When writing macros, it is best to keep most of the work in functions, since otherwise it is hard to avoid scoping mistakes, and generates too much code. This made the test (and the REPL) crash if the user ever uses the `mod` function. | 19 October 2022, 15:19:49 UTC |
3d7347b | Jameson Nash | 15 October 2022, 17:55:57 UTC | [REPL] tests: further improve IJulia IO ordering Continuing from #47160, which seems to have been insufficient to fully resolve this problem on CI. | 19 October 2022, 15:19:17 UTC |
0aff6dd | Keno Fischer | 19 October 2022, 14:56:50 UTC | Add utility `IRCode()` constructor (#47218) Just to make it easy to get one. Right now, people tend to do `code_ircode` on something random and then strip it which is just silly. Should mostly be used in debug and utility code. Proper compile pipelines should still get it from the frontend or the cache, but it seems like a useful addition. | 19 October 2022, 14:56:50 UTC |
8181316 | Shuhei Kadowaki | 18 October 2022, 23:12:25 UTC | optimizer: simplify inlining algorithm (#47207) The main purpose of this commit is to try to simplify our inlining algorithm by removing the delayed callee resolving mechanism (i.e. `DelayedInliningSpec` stuff), since that kind of mechanism currently has no users and we provide more fine grained control with `inlining_policy` now. This commit also adds some more cleanups, changing argument ordering of some subroutines so that they are aligned with the other ones, and removing dead subroutines. | 18 October 2022, 23:12:25 UTC |
61ccb32 | Jameson Nash | 18 October 2022, 19:51:02 UTC | fix incorrect quiescent finalizer detection (#47214) We were checking and clearing the gc tag bits on a random memory location when running these quiescent finalizers (which do not point to julia memory, so they are not tag bits, but probably libc malloc metadata). Detected by ASAN (and also CI) Fixes #47171 Closes #47177 | 18 October 2022, 19:51:02 UTC |
e8aacc8 | Jameson Nash | 18 October 2022, 17:06:32 UTC | fix linkage of libuv (#47203) Only libjulia-internal is supposed to be linked against this, since it is a static library. Fix #47198 | 18 October 2022, 17:06:32 UTC |
94736a4 | apaz | 18 October 2022, 16:14:39 UTC | sysimg relocation lists now use LEB128 format (#47204) Appears to reduce the data size from about 165MB to 147MB! | 18 October 2022, 16:14:39 UTC |
bc7500b | apaz | 18 October 2022, 15:30:36 UTC | [Profile] Test heap snapshot in child process (#47205) Save memory (especially important for 32-bit) by running in a new process, and not one that has already run a lot of other test. This avoids a possible OOM situation. | 18 October 2022, 15:30:36 UTC |
b55c15e | Keno Fischer | 18 October 2022, 09:06:23 UTC | Fix insert_node! for insertion at pending nodes (#47189) We didn't handle this at all, now we at least handle insertions with `attach_after` an existing node. Attaching before is currently disallowed. We could have it attach before the node to which it is being attached, but it is not clear that this is what we want. We can revisit that if somebody has a usecase where they want that. Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> | 18 October 2022, 09:06:23 UTC |
2ca8d44 | Keno Fischer | 18 October 2022, 09:06:01 UTC | Thread through lattice in more places (#47188) It was missing in irinterp's `tmeet` for PiNodes as well as the optimizer (which I knew about but had just punted on until I needed it, which is now). Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> | 18 October 2022, 09:06:01 UTC |
dc3a2e8 | Jameson Nash | 17 October 2022, 15:17:06 UTC | fix spelling of :not_atomic symbol default value (#47187) | 17 October 2022, 15:17:06 UTC |
69f8a7b | Daniel Karrasch | 17 October 2022, 08:33:35 UTC | Products of `Givens` and `Rotations` (#47162) | 17 October 2022, 08:33:35 UTC |
c2dfe1d | Keno Fischer | 17 October 2022, 00:16:41 UTC | Also update phi counts in adce pass (#47181) The whole point of this pass is to compute and compare the counts of all SSA value uses vs those of only-phi uses to find SSA values that have no real uses. In #47080, I updated the code to properly account for removal of phi edges in the SSA count, but neglected to do the same in the phi-only count, leading to #47180. Fix that. Fixes #47180 | 17 October 2022, 00:16:41 UTC |
392bc97 | Mosè Giordano | 16 October 2022, 17:39:53 UTC | Revert "Add `jl_print_task_backtraces()`" (#47182) This reverts commit d89b96b3fc7ac13ed29ac1508ba302dc4f758d33. | 16 October 2022, 17:39:53 UTC |
e569459 | Mosè Giordano | 16 October 2022, 11:17:20 UTC | [MozillaCACerts_jll] Update to 2022-10-11 (#47175) | 16 October 2022, 11:17:20 UTC |
ccb0a02 | Jameson Nash | 16 October 2022, 08:00:40 UTC | remove kwfuncs from Julia (#47157) * remove kwfuncs from Julia These kwsorter methods only exist for dispatch, which means they do not need to be unique. We can optionally have the primary MethodTable contain an extra kwtable::MethodTable field, if this turns out to be slow, since this already introduces the concept of `jl_kwmethod_table_for` (for better reflection and max_args). * remove jl_f_kwinvoke builtin, reimplement in Julia This instantly grants total inference and inlining support, where previously this was a completely opaque call! | 16 October 2022, 08:00:40 UTC |
97d86f8 | Lilith Orion Hafner | 16 October 2022, 02:02:20 UTC | Remove some bootstrapping hacks from sort.jl (#47173) | 16 October 2022, 02:02:20 UTC |
277b1a5 | Keno Fischer | 15 October 2022, 21:50:05 UTC | Check inlining policy before inlining semi concrete eval IR (#47139) `inlining_policy!` recently gained the `info` argument to allow external AbstractInterpreters to decline inlining for certain CallInfos. This is for example used by Diffractor to avoid inlining any calls with a customized AD rule in its early optimization pass. However, we were missing a call to `inlining_policy!` in the path that was inlining semi concrete results, causing us to inline things that should have been forbidden by the external AbstractInterpreter's policies. | 15 October 2022, 21:50:05 UTC |
d89b96b | Kiran | 15 October 2022, 20:43:05 UTC | Add `jl_print_task_backtraces()` (#46845) Iterates through `jl_all_tls_states` and through all `live_tasks` in `ptls->heap`, printing backtraces. | 15 October 2022, 20:43:05 UTC |
532125d | Keno Fischer | 15 October 2022, 14:53:43 UTC | Add ability to not round-trip uncached inference results through IRCode (#47137) There's generally three reasons inference results end up uncached: 1. They come from typeinf_ext 2. We discover some validity limitation (generally due to recursion) 3. They are used for constant propagation Currently, we convert all such inference results back to CodeInfo, in case they come from 1. However, for inference results of kind 3, the only thing we ever do with them is turn them back into IRCode for inlining. This round-tripping through IRCode is quite wasteful. Stop doing that. This PR is the minimal change to accomplish that by marking those inference results that actually need to be converted back (for case 1). This probably needs some tweaking for external AbstractInterpreters, but let's make sure this works and has the right performance first. This commit just adds the capability, but doesn't turn it on by default, since the performance for base didn't quite look favorable yet. | 15 October 2022, 14:53:43 UTC |
8552543 | Shuhei Kadowaki | 15 October 2022, 09:52:19 UTC | compiler: fix minor issues detected by JET (#47163) | 15 October 2022, 09:52:19 UTC |
35431bf | Lilith Orion Hafner | 15 October 2022, 02:18:23 UTC | Stabilize, optimize, and increase robustness of QuickSort (#45222) * Change partitioning scheme to use scratch space * Randomize pivot selection with a hash-based fallback for when `rand` is unavailable * remove an unnecessary sorting operation in typealias construction in base/show.jl * Seed rng before generating precompile statements * Add presorted check to avoid performance regressions * test invalid `lt` to close #11429 & #32675 * test that PartialQuickSort is stable * update radix sort dispatch heuristics because quicksort is now faster and the primary competition Co-authored-by: Petr Vana <petvana@centrum.cz> Co-authored-by: Oscar Smith <oscardssmith@gmail.com> | 15 October 2022, 02:18:23 UTC |
05cfe24 | Keno Fischer | 14 October 2022, 21:54:37 UTC | Fix various bugs in maybe-undef handling (#47167) We weren't accounting for the possiblity that a slot could be undef in our effect handling and the recently introduced shortcut in the type lifting pass wasn't quite correct. Ironically, the test case I have here compiles correctly on master, because the compiler miscompiles itself (due to this issue) to always make the `@isdefined(last_val)` check `false` in this test case. We can still look at the IR though, which this does. Fixes #47127 | 14 October 2022, 21:54:37 UTC |
625aed1 | t-bltg | 14 October 2022, 20:58:37 UTC | disable `brotli` linkage (#47165) | 14 October 2022, 20:58:37 UTC |
3144a5b | Alex Arslan | 14 October 2022, 20:15:52 UTC | Implement `jl_rec_backtrace` for ASM/SETJMP on FreeBSD (#47156) This removes the message emitted while compiling on FreeBSD that says it isn't supported. | 14 October 2022, 20:15:52 UTC |
c63c1e4 | Jeff Bezanson | 14 October 2022, 20:15:25 UTC | Merge pull request #46609 from JuliaLang/jb/jn/mthreads support foreign threads | 14 October 2022, 20:15:25 UTC |
981f3d2 | Jameson Nash | 14 October 2022, 16:33:59 UTC | [REPL] tests: be better about correct IO ordering (#47160) Particularly relevant for COLUMNS being narrow for some cases, or the kernel being configured with small IO buffers, or both. Or someone setting a particularly long path for TMPDIR. Or so on. | 14 October 2022, 16:33:59 UTC |
f424431 | Jeff Bezanson | 13 October 2022, 17:37:17 UTC | make CodeInstance 1 word smaller by moving the trailing UInt8 field (#47146) | 13 October 2022, 17:37:17 UTC |
8bdd52d | Jeff Bezanson | 13 October 2022, 17:23:12 UTC | fix bug in --strip-ir when fields are replaced with NULL (#47145) | 13 October 2022, 17:23:12 UTC |
08d5b0d | Keno Fischer | 13 October 2022, 15:04:47 UTC | irshow: Fix CFG display with directly inserted new nodes (#47135) Slight fix to #47043 for the case where nodes where inserted using `insert_node_here!`. | 13 October 2022, 15:04:47 UTC |
40346e1 | Max Horn | 13 October 2022, 15:04:02 UTC | Improve the memory profiler documentation (#47144) - PProf is a package, not a library - mention PProf in the docstring and say how to invoke it - turn URLs into markdown links | 13 October 2022, 15:04:02 UTC |
01310a9 | Jerry Ling | 13 October 2022, 13:35:11 UTC | `map` of unequal length bitarray (#47013) * fix `bit_map!` with unequal length. * relax three-arg `bit_map!`. * add bit array test for unequal length. Co-authored-by: N5N3 <2642243996@qq.com> Co-authored-by: Cameron Bieganek <8310743+CameronBieganek@users.noreply.github.com> | 13 October 2022, 13:35:11 UTC |
186c0be | DilumAluthgeBot | 13 October 2022, 12:17:05 UTC | 🤖 Bump the SparseArrays stdlib from 1bae96d to 4694108 (#47147) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 13 October 2022, 12:17:05 UTC |
faa49a0 | apaz | 13 October 2022, 03:23:43 UTC | Avoid duplicating jl_datatype_layout_t (#46973) Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 13 October 2022, 03:23:43 UTC |
b685edd | Dilum Aluthge | 13 October 2022, 01:34:20 UTC | Test system: Allow the "test set mutated ENV and did not restore..." check to be turned off (#47148) | 13 October 2022, 01:34:20 UTC |
b7201d6 | Jameson Nash | 25 July 2022, 20:14:42 UTC | threading: support more than nthreads at runtime Hook a couple functions (notably cfunction) to handle adopting foreign threads automatically when used. n.b. If returning an object pointer, we do not gc_unsafe_leave afterwards as that would render the pointer invalid. However, this means that it can be a long time before the next safepoint (if ever). We should look into ways of improving this bad situation, such as pinning only that specific object temporarily. n.b. There are some remaining issues to clean up. For example, we may trap pages in the ptls after GC to keep them "warm", and trap other pages in the unwind buffer, etc. | 12 October 2022, 21:32:22 UTC |
0b2a8a5 | Jishnu Bhattacharya | 12 October 2022, 13:06:56 UTC | Update patch version in readme (#47140) Change the version to be checked out from v1.8.0 to v1.8.2 Co-authored-by: Jishnu Bhattacharya <jishnub@users.noreply.github.com> | 12 October 2022, 13:06:56 UTC |
015874c | Sosuke | 12 October 2022, 10:04:19 UTC | add Bidiagonal/Tridiagonal constructor from its own type (#47115) | 12 October 2022, 10:04:19 UTC |
a7d446b | Jakob Nybo Nissen | 12 October 2022, 06:33:38 UTC | Do not use `Stateful` for `cmp` of `AbstractString` (#47125) PR #45924 fixed length of `Stateful`, but this change requires `Stateful` to call `length` on its wrapped iterator on instantiation. The current implementation of `cmp(::AbstractString, ::AbstractString)` wraps the strings in `Stateful` to efficiently check if one string is longer than the other without needing an O(N) call to `length`. However, with #45924 this length call is done anyway, which led to a performance regression. In this PR, the `cmp` method is changed so it no longer relies on `Stateful` to do the same thing. Fix #46719 | 12 October 2022, 06:33:38 UTC |
9104c20 | Jeff Bezanson | 12 October 2022, 06:07:13 UTC | fix #46918, unstable `jl_binding_type` behavior (#46994) Now it will return `nothing` before the binding has been resolved, and afterward fully look up the binding as declared by the owner. | 12 October 2022, 06:07:13 UTC |
e304cd5 | Jameson Nash | 12 October 2022, 00:30:59 UTC | dump: make serialization gc-safe (#47086) | 12 October 2022, 00:30:59 UTC |
a68235c | William Moses | 10 October 2022, 18:09:38 UTC | optimizer: fix alloc opt on unknown offset with references (#47076) Fixes issued mentioned in https://github.com/JuliaLang/julia/issues/47075#issuecomment-1269283426 | 10 October 2022, 18:09:38 UTC |
1cb70ff | Keno Fischer | 10 October 2022, 17:40:27 UTC | type_lift_pass: Don't introduce unnecessary phi nodes (#47119) Try to avoid introducing phi nodes whos edges all have the same value. This cuts down the generated IR a bit and exposes more optimization opportunities. While we're at it, also allow IncrementalCompact to fold :throw_undef_if_not nodes with constant condition (which happen more frequently now, since a condition that is proven defined on all reachable paths now has some chance to end up as a constant condition rather than a PhiNode SSAValue). | 10 October 2022, 17:40:27 UTC |
233a37d | Dilum Aluthge | 10 October 2022, 17:11:51 UTC | Fix whitespace (#47120) | 10 October 2022, 17:11:51 UTC |