https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
9f7086c Fix more bugs 09 November 2022, 17:30:57 UTC
c2b9247 fix analyzegc, update codeinst pointer while updating stub 08 November 2022, 20:05:30 UTC
0aa2a4e Bugfixes and performance improvements 08 November 2022, 07:30:24 UTC
9708ef0 Speculation and locking bugfixes 07 November 2022, 23:41:05 UTC
9a692a1 Bugfixes and cleanup 07 November 2022, 04:25:52 UTC
b1df787 Parallel reoptimization 31 October 2022, 07:56:38 UTC
65346fa Implement function call reentry 31 October 2022, 05:25:10 UTC
3d765b6 Very lazy compilation 31 October 2022, 05:23:06 UTC
0942cd8 Scrape some profiling info at runtime 30 October 2022, 05:06:53 UTC
27201e5 Improve docs for `vcat`, `cat`, etc. (#46429) * improve docs for cat, hcat, vcat * add cross-references * spaces * tweaks in reply to own comments * fix last doctest * tweaks & simplifications + compat note for dims=Val((1,2)) 29 October 2022, 19:54:26 UTC
42907bf [CSL_jll] [MPFR_jll] Update builds to get fixed RUNPATHs (#47381) 29 October 2022, 08:36:36 UTC
91d2e09 [CSL_jll] [MPFR_jll] Update builds to get fixed RUNPATHs (#47381) 29 October 2022, 08:36:17 UTC
bf5f420 Fixed IR ordering of globals in argument lists (#47263) GlobalRefs and outerrefs can have side effects attached to them, which was not being considered during lowering. Fixes #46251 Co-authored-by: Jameson Nash <vtjnash@gmail.com> 29 October 2022, 02:58:38 UTC
9c563ad Fix rewrap-where for anonymous function parse (#47315) Was throwing away the tail of the list, dropping the result of where clauses. Fixes #45506 29 October 2022, 02:57:14 UTC
def946a datatype: move size into layout (#47170) saves maybe 1% of the sysimg size 29 October 2022, 02:56:58 UTC
58512ed make `samefile` of nonexistent files false (#47339) 29 October 2022, 02:44:26 UTC
9f843b8 make `load_library()` panic on some errors when `err=0` (#47343) load_library with `err=0` now panics on errors, provided that the file exists. It used to never panic on errors, leading to confusion between when cases the libjuliacodegen library had been intentionally removed and when it tried but failed to load it. Fixes #47027 28 October 2022, 23:04:14 UTC
bbdee0b inlining: Don't inline concrete-eval'ed calls whose result was too large (#47371) This undoes some of the choices made in #47283 and #47305. As Shuhei correctly pointed out, even with the restriction to `nothrow`, adding the extra flags on the inlined statements results in incorrect IR. Also, my bigger motivating test case turns out to be insufficiently optimized without the effect_free flags (which I removed in the final revision of #47305). I think for the time being, the best course of action here is to just stop inlining concrete-eval'ed calls entirely. The const result is available for inference, so in most cases the call will get deleted. If there's an important case we care about where this does not happen, we should take a look at that separately. 28 October 2022, 22:23:12 UTC
594d001 correct 0x literal info (#47348) Co-authored-by: Stefan Karpinski <stefan@karpinski.org> 28 October 2022, 20:25:08 UTC
3ead724 Fix RefArray(::AbstractArray{T}) method duplication (#47337) This removes the default argument in `RefArray(x::AbstractArray{T}, i::Integer=1)` such that it does not override `RefArray(x::AbstractArray{T}, i::Int=1)`. Refs: https://github.com/JuliaLang/julia/pull/43262#discussion_r1006209709 28 October 2022, 19:32:57 UTC
a4438b3 Fix list syntax typo in documentation.md (#47365) The end of the list item on "how to show object documentation in Juno" was broken in a separate paragraph 28 October 2022, 15:31:07 UTC
42563aa 🤖 Bump the Tar stdlib from 951955b to 6bfc114 (#47355) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 27 October 2022, 22:37:57 UTC
f71b839 lattice: Allow external lattice to have a say in how to widen (#47307) Currently, when e.g. a PartialStruct is not of interest to the lattice code, it just calls `widenconst` on it to pass it to the next lattice layer. This might be insufficient if an intermediate lattice layer has some other representation that is wider that the `PartialStruct`, but narrower than the corresponding `widenconst`. This adds `widenconst(::AbstractLatice, ::Any)` to allow the lattices to insert custom widening code. By default, it ends up calling `widenconst`, so there's no functional change in base, but custom lattices can make use of the extra hook. I'm not entirely sure that this is what we want the final interface to look like (I think it probably does too many type checks), but it works reasonably well and I think is good enough to experiment with. 27 October 2022, 16:23:54 UTC
e09e96e Avoid double copying in `nullspace` return value (#47340) 27 October 2022, 10:19:09 UTC
6baa9a6 inlining: Use concrete-eval effects if available (#47305) It is possible for concrete-eval to refine effects, but be unable to inline (because the constant is too large, c.f. #47283). However, in that case, we would still like to use the extra effect information to make sure that the optimizer can delete the statement if it turns out to be unused. There are two cases: the first is where the call is not inlineable at all. This one is simple, because we just apply the effects on the :invoke as we usually would. The second is trickier: If we do end up inlining the call, we need to apply the overriden effects to every inlined statement, because we lose the identity of the function as a whole. This is a bit nasty and I don't really like it, but I'm not sure what a better alternative would be. We could always refuse to inline calls with large-constant results (since we currently pessimize what is being inlined anyway), but I'm not sure that would be better. This is a simple solution and works for the case I have in practice, but we may want to revisit it in the future. 27 October 2022, 09:52:27 UTC
70c873e Returns -> Return (#47341) * Returns -> Return n many docstrings and comments, to follow the general recommendation for how docstrings should be phrases. Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> 27 October 2022, 09:48:23 UTC
2ebe577 cfg_simplify: Properly handle deleted multi-predecessor (#47306) When deleting an empty block with multiple predecessors that has an entry in a sucessors phi node, said phi nodes needs to be updated to have an entry for every predecessor of the original deleted block. We had some handling to detect this case, but we didn't actually do the PhiNode modification, resulting in corrupted IR. 27 October 2022, 07:17:10 UTC
eca5512 Merge pull request #47336 from JuliaLang/jn/47246 subtype: fix miscount of Tuple Vararg matching 27 October 2022, 03:59:14 UTC
8ff3358 fix formatting in `identify_package` docstring (#47335) 27 October 2022, 01:18:16 UTC
0daab8a Fix loading of AMDGPU and CUDA (#47334) Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> 27 October 2022, 01:17:11 UTC
19d06df fix inference of `split_rest` (#47329) Co-authored-by: Jakob Nissen <jakobnybonissen@gmail.com> 26 October 2022, 22:44:10 UTC
17515cd subtype: fix miscount of Tuple Vararg matching Fix #47246 26 October 2022, 21:39:39 UTC
d4af142 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 Update docs to use `Threads.threadpoolsize` instead `Base.threadpoolsize` (#47243) 26 October 2022, 19:37:29 UTC
900ffef [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 Widen RangeIndex from Int to BitInteger (#43262) 26 October 2022, 14:07:34 UTC
48abb72 doc: more info on sizehint! (#47235) 26 October 2022, 08:07:45 UTC
b902123 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 [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 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 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 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 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 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 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 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 🤖 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 Update `partialsort!` docstring (#47192) 25 October 2022, 00:40:27 UTC
afbad45 Reduce size of Profile test on 32 bit to avoid OOM (#47313) 24 October 2022, 22:42:34 UTC
fe72f81 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 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 [InteractiveUtils] win: handle empty clipboard errors (#47311) Fix #46981 24 October 2022, 19:38:42 UTC
0c382c2 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 Merge pull request #47289 from JuliaLang/kf/oraclefailures Fix various oracle check failures 24 October 2022, 13:50:08 UTC
be1be44 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 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 Profile: add method for `take_heap_snapshot` with auto path (#47300) 24 October 2022, 11:59:07 UTC
6be72c6 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 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 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 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 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 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 inference: add more constprop remarks (#47294) 24 October 2022, 02:24:08 UTC
54e6899 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 optimizer: improve type stability of `OptimizationState` (#47244) 23 October 2022, 03:40:30 UTC
fa9c137 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 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 Update test for change in CodeInstance const fields (#47284) 22 October 2022, 11:28:07 UTC
230576d inference: pass `𝕃::AbstractLattice` to more `nothrow`-tfuncs (#47266) 22 October 2022, 04:01:38 UTC
858223d Mark min_world and max_world as non-const (#47279) 22 October 2022, 02:01:48 UTC
ca3cd8b verify_ir: BBNumber is Int not Int64 (#47271) 21 October 2022, 14:02:08 UTC
ed786ba use more structs for `construct_ssa` datastructures (#47251) 21 October 2022, 09:54:30 UTC
b3ebc0a improve docstring of 'evalfile' and add doctest, fixes #45559 (#47130) 21 October 2022, 07:42:09 UTC
d5b1021 Merge pull request #47253 from JuliaLang/avi/47249 fix #47249, pass `𝕃::AbstractLattice` to `fieldtype_nothrow` 21 October 2022, 04:35:54 UTC
94aab83 irinterp: handle `gc_preserve_[begin|end]` (#47252) fix #47250 Also refines up `reprocess_instruction!`. 21 October 2022, 02:42:04 UTC
c52af4a inference: fix lattice for `abstract_invoke` 21 October 2022, 01:45:52 UTC
cfbfa1d fix #47249, pass `𝕃::AbstractLattice` to `fieldtype_nothrow` 21 October 2022, 01:13:07 UTC
ecf9e56 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 🤖 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 reword error when rng sampler is fed empty array (#47104) 20 October 2022, 13:14:25 UTC
82bd71b fix another incorrect quiescent finalizer detection (#47230) Missed in #47214 20 October 2022, 12:53:35 UTC
198e87d Merge pull request #47178 from JuliaLang/jn/47160.2 [REPL] tests: further improve IJulia IO ordering 20 October 2022, 12:48:55 UTC
87fd6d9 inference: clean up `getfield_tfunc` subroutines [NFC] (#47232) 20 October 2022, 08:33:32 UTC
3a8a9c6 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 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 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 Ensure that we run late-lowering over ccallable funcs (#47226) 19 October 2022, 16:43:05 UTC
48facc8 [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 [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 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 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 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 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 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 [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 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 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 fix spelling of :not_atomic symbol default value (#47187) 17 October 2022, 15:17:06 UTC
69f8a7b Products of `Givens` and `Rotations` (#47162) 17 October 2022, 08:33:35 UTC
back to top