https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
da25a87 replace `Base._stable_typeof` with `TypeofValid` And make `TypeofValid` stable. ("x isa Type{x}" should be equivalent for this use case.) 31 January 2023, 12:33:01 UTC
b2b713d Don't create Type{...} for incomplete types in most cases Core.Typeof is used implicitly in the system, but for types with free type parameters, e.g. `Vector{Core.TypeVar(:T)}`, it expects to subsequently be wrapped in a UnionAll. In particular, it is not in general valid to perform type queries on the result of `Core.Typeof` (without wrapping it in a UnionAll), but we were attempting to do so in a number of places. Of course, this is a bit of a rare sitatuation, since we're not in a habit of passing around types with free typevars, but since those are valid objects I think it is better to be defensive. This introduces `Base.TypeofValid` (better name suggestions welcome), which is like `Core.Typeof`, except that types with free typevars get mapped to `DataType`, rather than `Type{}` with a free typevars. As a result, it is always valid to perform type system operations on the result of this call. 31 January 2023, 12:19:35 UTC
94c4fb5 prevent heap snapshot test to write to julia dir (#48458) Co-authored-by: Ian <i.r.butterworth@gmail.com> 31 January 2023, 04:48:12 UTC
a1c4d85 Sorting documentation fixups for 1.9 (#48440) - Fix typos - Clarify that ! means mutation, not "in-place-ness". This should be backported because sort! is even less in place in 1.9 than it already was in 1.8. - Rewrite the section on default policy to reflect the new default policy - Move examples and extended description of previously default sorting algorithms out of sort.md and into their respective docstrings (still rendered in sort.md) Co-authored-by: Jeremie Knuesel <knuesel@gmail.com> 30 January 2023, 15:58:44 UTC
7e8515c inlining: make union splitting account for uncovered call (#48455) JuliaLang/julia#44421 changed the union-splitting to skip generating unnecessary fallback dynamic dispatch call when there is any fully covered call. But it turned out that this is only valid when there is any fully covered call in matches for all signatures that inference split, and it is invalid if there is any union split signature against which any uncovered call is found. Consider the following example: # case 1 # def nosplit(::Any) = [...] nosplit(::Int) = [...] # call nosplit(a::Any) split1: a::Any ┬ nosplit(a::Int) └ nosplit(a::Any) # fully covers split1 # case 2 # def convert(::Type{T}, ::T) = T # call convert(::Type{Union{Bool,Tuple{Int,String}}}, a::Union{Bool,Tuple{Int,Any}}) split1: a::Bool ─ convert(::Type{Bool}, ::Bool) # fully covers split1 split2: a::Tuple{Int,Any} ─ convert(::Type{Tuple{Int,String}}, ::Tuple{Int,String}) # NOT fully covers split2 JuliaLang/julia#44421 allows us to optimize the the first case, but handles the second case wrongly. This commit fixes it up while still optimizing the first case. fix #48397. 30 January 2023, 15:29:09 UTC
69a966c Prevent update_julia_type from creating a broken cgval_t. (#48426) When then incoming value is a union without any non-ghost component, we cannot update it with a non-ghost type. 30 January 2023, 14:33:23 UTC
4f92e79 NFC cosmetic changes (#48451) 30 January 2023, 11:52:47 UTC
6ab660d Optimizations for diagonal `HermOrSym` (#48189) 30 January 2023, 08:44:10 UTC
45b7e7a avoid hang when only threads are starting IO (#48433) When not in threaded region, only thread 0 will manage IO events, but it may have gone to sleep if there were no IO objects active for it to watch earlier. Fix #48430 29 January 2023, 04:06:21 UTC
7d4309c add code to prevent segfault during Eval of thunk Expr (#35429) Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com> Closes https://github.com/JuliaLang/julia/issues/32315 28 January 2023, 21:44:17 UTC
8955828 🤖 [master] Bump the SparseArrays stdlib from 287c6c6 to 4eaa458 (#48438) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 28 January 2023, 20:12:19 UTC
f6f6b1c make `Type{Union{}}` `ismutationfree` (#48417) 28 January 2023, 13:55:02 UTC
8b9da8d treat CartesianIndex as a broadcast scalar (#47044) 28 January 2023, 09:22:04 UTC
2eeefbe avoid generating native code if only output ji file (#48431) 28 January 2023, 05:49:24 UTC
82cec36 Revert "faster `hypot(::IEEEFloat...)` (#48130)" (#48436) This reverts commit 80f6f2a8b905318151672fa683e5e57fd8f55b71. 28 January 2023, 03:41:56 UTC
80f6f2a faster `hypot(::IEEEFloat...)` (#48130) * faster hypot for IEEEFloat 28 January 2023, 03:02:31 UTC
8776017 Update functions.md (#48356) According to the documentation at https://docs.julialang.org/en/v1/base/collections/#Base.get, the example here of a no argument function does not appear to implement a time delay as suggested in this doc. 28 January 2023, 02:06:20 UTC
1ef65e4 🤖 [master] Bump the Pkg stdlib from 67f39cd0a to 0b9d6c86d (#48428) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 27 January 2023, 21:07:48 UTC
87f8958 Store the frontend task object in the REPL struct. (#48400) 27 January 2023, 13:53:04 UTC
bd8ffef fix `Base.identify_package` docstring typo (#48415) 27 January 2023, 05:51:27 UTC
d775750 add docs for try-catch-else (#48414) ref #46928 Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 26 January 2023, 22:50:36 UTC
335cd5e Merge pull request #47676 from gbaraldi/gmp-libblas-version Use versioned libblastrampoline and GMP 26 January 2023, 22:10:09 UTC
0231c22 add docs for `getglobal` and `setglobal!` (#48409) closes #45480 Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 26 January 2023, 20:27:42 UTC
1a0b92c irinterp: use `optimizer_lattice` (#48412) Previously it uses `typeinf_lattice`, but it should use `optimizer_lattice` instead since irinterp is working on `IRCode` and otherwise it fails to handle `MaybeUndef`. 26 January 2023, 16:09:50 UTC
b6db2fd Axes tip in `AbstractArray` interface (#47221) Update the `AbstractArray` interface to mention that the axes of an array should, in general, be their own axes. This is required for internal consistency, and if this is not enforced (e.g. by choosing `UnitRange`s as axes instead of `Base.IdentityUnitRange`s), one may come across unexpected bugs (see https://juliaarrays.github.io/OffsetArrays.jl/stable/internals/#Wrapping-other-offset-array-types for an example). Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> 26 January 2023, 12:42:54 UTC
e536c77 Silence missing gfortran errors in `Make.inc` (#48403) When we attempt to invoke `gfortran` to determine the local `libgfortran` ABI version that we should attempt to mimic, if `gfortran` is not installed we get a harmless error printed out to `stderr`: ``` /bin/sh: line 1: gfortran: command not found ``` This should silence these errors, as they're not useful to us. 25 January 2023, 22:06:33 UTC
9b1ffbb NFC: simplify `code_escapes` a bit (#48399) 25 January 2023, 12:52:55 UTC
6c3808b Add a test verifying codegen of non-concrete varargs (#48395) This was issue #34459, fixed by #46953. 25 January 2023, 07:31:11 UTC
6b0b3a7 [libblastrampoline_jll] Fix test 24 January 2023, 22:10:14 UTC
30d11a3 Fix `apply_type_tfunc` for `Union{T::TypeVar}` (#48384) The type parameters to `Union` may be `Type`s or `TypeVar`s, but `apply_type_tfunc` failed to recognize the latter as valid in the single-argument case. 24 January 2023, 21:16:49 UTC
da4a8b6 Merge branch 'master' into gmp-libblas-version 24 January 2023, 19:17:39 UTC
ee73422 Update LBT to v5.4 and rebuild SuiteSparse 24 January 2023, 19:16:59 UTC
dfab7be GC mark-loop rewrite (#47292) ## Previous work Since https://github.com/JuliaLang/julia/pull/21590, the GC mark-loop was implemented by keeping two manually managed stacks: one of which contained iterator states used to keep track of the object currently being marked. As an example, to mark arrays, we would pop the corresponding iterator state from the stack, iterate over the array until we found an unmarked reference, and if so, we would update the iterator state (to reflect the index we left off), "repush" it into the stack and proceed with marking the reference we just found. ## This PR This PR eliminates the need of keeping the iterator states by modifying the object graph traversal code. We keep a single stack of `jl_value_t *` currently being processed. To mark an object, we first pop it from the stack, push all unmarked references into the stack and proceed with marking. I believe this doesn't break any invariant from the generational GC. Indeed, the age bits are set after marking (if the object survived one GC cycle it's moved to the old generation), so this new traversal scheme wouldn't change the fact of whether an object had references to old objects or not. Furthermore, we must not update GC metadata for objects in the `remset`, and we ensure this by calling `gc_mark_outrefs` in `gc_queue_remset` with `meta_updated` set to 1. ## Additional advantages 1. There are no recursive function calls in the GC mark-loop code (one of the reasons why https://github.com/JuliaLang/julia/pull/21590 was implemented). 2. Keeping a single GC queue will **greatly** simplify work-stealing in the multi-threaded GC we are working on (c.f. https://github.com/JuliaLang/julia/pull/45639). 3. Arrays of references, for example, are now marked on a regular stride fashion, which could help with hardware prefetching. 4. We can easily modify the traversal mode (to breadth first, for example) by only changing the `jl_gc_markqueue_t`(from LIFO to FIFO, for example) methods without touching the mark-loop itself, which could enable further exploration on the GC in the future. Since this PR changes the mark-loop graph traversal code, there are some changes in the heap-snapshot, though I'm not familiar with that PR. Some benchmark results are here: https://hackmd.io/@Idnmfpb3SxK98-OsBtRD5A/H1V6QSzvs. 24 January 2023, 19:07:52 UTC
f9d0473 binomial(x,k) for non-integer x (#48124) * binomial(x,k) for non-integer x * correct PR number in NEWS * return 0 for k < 0 * comment on further generalizations 24 January 2023, 15:26:59 UTC
596ce65 fix #47658, state stack overflow on unions containing typevars (#48221) 24 January 2023, 14:05:18 UTC
b8adb2e Relax type restriction in ismutationfree and isidentityfree. (#48357) Fixes #48353. 24 January 2023, 10:57:16 UTC
134f3e7 Switch remaining julia code bool envs to get_bool_envs (#48383) 23 January 2023, 15:06:02 UTC
f8493c7 set max_methods = 1 for REPL methods (#48330) * set max_methods = 1 for REPL methods 23 January 2023, 09:53:38 UTC
9f93b31 Merge pull request #48358 from adienes/master add docs for broadcast_shape 22 January 2023, 15:55:11 UTC
7630606 Further tweaks to LimitedAccuracy lattice operations (#48126) As discussed in #48045: 1. Switch the order of `causes` inclusion to make wider elements have fewer causes. 2. Fix two typos 3. Restore property that equal ulimited types will be preserved (though with potentially updated `causes` lists). 22 January 2023, 05:37:04 UTC
2949879 make `dlopen`ing `libssp` non fatal (#48333) 22 January 2023, 05:32:45 UTC
583aaa3 Amend docstring about compat entries of weakdeps (#48206) 22 January 2023, 05:30:48 UTC
b47837e docs: mark `locations` in `Libdl.find_library` as optional (#48193) These location argument is optional, but were not marked as such in the `find_library` doc strings. 22 January 2023, 05:22:33 UTC
cb74765 add `@fastmath maximum` (#48153) 22 January 2023, 05:20:11 UTC
1ecf73e build: turn off debug config default for TSAN (#48210) Fixes #48031 22 January 2023, 05:16:25 UTC
b1aa5a8 [Dates] Fix nonexistent method OverflowError() in steprange_last (#48242) 22 January 2023, 05:13:31 UTC
13fe91c Update base/broadcast.jl 22 January 2023, 05:11:06 UTC
26dd318 devdocs: correct some function names and locations (#48289) 22 January 2023, 05:09:02 UTC
62c1137 mac: add missing dSYM files (#48355) Fixes #47744 21 January 2023, 04:16:10 UTC
1481a89 Take "needs" labels seriously, block merge if labels are assigned (#48359) 20 January 2023, 17:46:23 UTC
ba69cba Add .clangd file for clang language server (#48214) 20 January 2023, 15:53:36 UTC
57101cf compact: Don't try to kill the same edge twice (#48343) In IR like: ``` goto if not true goto if not true ``` our implementation of `kill_edge!` goes through recursively to kill all newly unreachable blocks. However, it was still attempting to schedule the newly unreachable block. Then, when it got to the next GotoIfNot, it wsa again attempting to kill the same edge, which would fail, because the edge had already been removed from the CFG. Fix that by telling IncrementalCompact not to attempt scheduling any blocks that were newly discovered to be dead. 20 January 2023, 09:04:59 UTC
b83e225 add docs for broadcast_shape 20 January 2023, 02:55:22 UTC
6d8f54a doc: fix manual description of regex escapes (#48239) String interpolation happens before the regex is processed, so there is no guarantee that interpolated text will be properly escaped. 19 January 2023, 22:37:23 UTC
7d2499d Merge pull request #48342 from JuliaLang/sf/libstdcxx_probe_use_system_csl Move `libstdc++` path into `LOADER_*_DEP_LIBS` 19 January 2023, 21:36:00 UTC
4cab76c allow extensions to be loaded from non top level env (#48352) 19 January 2023, 20:38:42 UTC
b029fbf Wait for all tasks before writing precompile files (#46571) When the program goes to write out a precompile file, we would like for the process to first reach a point where it is not still running background tasks and work. This ensures that the precompile file is in a consistent state, and isn't forgetting or delaying intended work. In the future, we may want to add an `atexit` hook (after the other `atexit` hooks) which optionally calls this function for regular code too, probably under programmatic control and/or command line argument control for the user to decide. And we would need to decide how to close stdin first, so it doesn't continue to keep the program alive. Add uv_ref and uv_unref internal hooks for this. You probably really don't want to call these (as they may stop you from getting events on these objects also), but very specific internal things will need them for this to work. Also (mostly unrelated) rewrite a Profile test to conform to best-practices. Previously, the loop was expecting to observe the Profile test printing even though nothing kept it alive (there was no reads on stdin). We fix the design of that test, but also include a patch inside `jl_process_events` to ensure the loop is alive and will handle events, to avoid breaking anyone else who was relying on this pattern. To assist package authors fix errors, we automatically print a note if this new functionality is causing delays. They then need to ensure they are calling close explicitly (not relying solely on finalizers), when appropriate, and are cleaning up other resources (or calling the new `Base.uv_unref`) also. Fix #45170 19 January 2023, 19:55:48 UTC
87b8896 remove precompile mutation step from staticdata (#48309) Make sure things are properly ordered here, so that when serializing, nothing is mutating the system at the same time. Fix #48047 19 January 2023, 19:52:46 UTC
4e99860 Load special libraries in-order The `DEPS_LIBS` RPATH-substitute mechanism contains a list of paths to load, and some of these paths are "special", in that they require more involved loading than simply `load_library()`. These libraries are thereby denoted by a `@` prefixing them. Previously, we made note of these libraries, then loaded them at the end of the loading loop, but with the addition of `libstdc++` it is now important to have the order of the libraries (including special libraries) to be obeyed by the loading loop, so I have inlined special library handling into the loading loop. In the future, we may wish to denote special libraries more explicitly than simply relying on there being exactly three libraries, with the ordering being mapped to `libstdc++`, `libjulia-internal`, and `libjulia-codegen`. 19 January 2023, 18:15:34 UTC
fb97c82 Move `libstdc++` path into `LOADER_*_DEP_LIBS` After adding `libstdc++` probing into the Julia loader [0], we originally made the assumption that the `libstdc++` that is shipped with `julia` would always be co-located with `libjulia.so` [1]. This is not the case when building with `USE_SYSTEM_CSL=1`, however, where we sequester system libraries in `usr/lib/julia`, even at build-time. The path to `libstdc++.so` has already been getting altered when moving from build-time to install time via `stringreplace` [2], but after further thought, I decided that it would be better to just use the pre-existing `LOADER_*_DEP_LIBS` mechanism to communicate to the loader what the correct relative path to `libstdc++.so` is. This also allows the single `stringreplace` to update all of our "special" library paths. [0] https://github.com/JuliaLang/julia/pull/46976 [1] https://github.com/JuliaLang/julia/pull/46976/files#diff-8c5c98f26f3f7aac8905a1074c5bec11a57e9b9c7c556791deac5a3b27cc096fR379 [2] https://github.com/JuliaLang/julia/blob/master/Makefile#L430 19 January 2023, 18:15:34 UTC
1c5fa2b irinterp: Allow for non-Const first argument (#48326) The first argument isn't special here in any way. The original code here just wanted to avoid calling is_all_const_arg with the first argument included, because that condition was already computed when determining `f`. This code pre-dated semi-concrete eval and is now in the wrong place. The changes on the inlining semi-concrete interpreted opaque closure is also added because now we allow irinterp on opaque closure inference. Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> 19 January 2023, 15:09:31 UTC
b8ca7cf Improve effects for pairs(::NamedTuple) (#48344) The `new` syntax as well as the implicit inner constructor introduces an implicit `convert(fieldtype(T, n), x)` for every field. This convert is generally a no-op (because the fieldtype comes from the type parameter, which in turn comes from the type of `x`). However, the compiler cannot prove this and a `convert` call with unknown types taints all effects. Avoid that by manually avoiding the `convert` call. It is a bit ugly, but there isn't really another way to write it at the moment. In the future we may want to have some nicer way to disable the implicit generation of `convert` calls. Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 19 January 2023, 13:36:28 UTC
f9d1b85 irinterp: Remove redundant `is_inlineable_constant` check (#48345) The way that `is_inlineable_constant` is supposed to work is that during type inference, we allow a large `Const` type to persist in the inference domain and then at inlining time, we decide whether or not to remove the call and replace it by the constant (thus having to serialize the constant) or just leave the call as is (with the types eventually being widened). `irinterp` was being a bit overeager here, not even permitting large constants into the inference domain, which was hurting precision. We alraedy have an appropriate `is_inlineable_constant` call guarding the inlining of constants into the IR, so the move the one that checks it when returning from concrete eval. 19 January 2023, 13:33:25 UTC
1bff32b add a type assert to `read` on a `Cmd` (#48334) 19 January 2023, 11:44:29 UTC
c711f67 add test cases for module-wise `@max_methods` configuration (#48328) 18 January 2023, 21:44:09 UTC
9de3263 🤖 [master] Bump the Pkg stdlib from 5ae866151 to 67f39cd0a (#48335) 18 January 2023, 18:24:24 UTC
4e76346 Add docstring for `err` in the REPL (#48300) * Add docstring for `err` in the REPL * Add `err` to Essentials docs Co-authored-by: Sukera <Seelengrab@users.noreply.github.com> 18 January 2023, 16:22:12 UTC
4725b78 Add parameters to const triangular types (#48331) 18 January 2023, 12:33:15 UTC
c4cf1e6 fix an erronous type assert (#48327) 18 January 2023, 08:44:46 UTC
e7c339f remove uses of `@Module.macro` (#48316) 18 January 2023, 08:15:17 UTC
15b7c6b Allow effect inference of `eltype(::Tuple)` (#48322) By bumping max_methods for `eltype` slightly to cover all four Tuple methods. 18 January 2023, 08:01:50 UTC
688f5cf fix some issues discovered by JET (#48303) 18 January 2023, 04:34:53 UTC
e1fc482 Add missing return case in `isidentityfree` (#48321) Fixes #48313. 18 January 2023, 03:54:34 UTC
5b80e48 Fix typo in `isambiguous` (#48312) * Fix typo in `isambiguous` * add test 17 January 2023, 23:19:56 UTC
1b9f640 namedtuple: Use correct return type in merge/diff (#48290) In a lapse of memory, I had assumed that NamedTuple was covariant like Tuple, but since this is not the case, we do actually need to pass the types into the constructor. However, the main constructor for NamedTuple has an extra `convert` call to the declared tuple type. This call is problematic for effects, because the type is unknown. For the merge/diff case, we are guaranteed that the convert is a no-op, but the compiler's analysis is not strong enough to prove this. Work around that by introducing an `_NamedTuple` constructor that bypasses the unnecessary convert to make sure that the compiler can prove sufficiently strong effects. 17 January 2023, 22:32:08 UTC
ac080c5 Fix Splat->splat in HISTORY.md (#48305) 17 January 2023, 16:12:34 UTC
a6694d4 improve docs for IPython mode (#48314) 17 January 2023, 16:11:53 UTC
5f40f15 Don't bail out of inference early if effects could still be refined (#48263) We have an early out in inference that bails if the inferred return type of the method being called is `Any`. This makes sense in the absence of effects, because once the rt has hit `Any`, there is nothing new we can learn by looking at any subsequent calls. However, in the presence of effects, we likely want to keep going if we can prove all methods of the callsite `:foldable` as being `:foldable` can save significant inference time down the line if it enables concrete evaluation of the containing function. 17 January 2023, 07:25:56 UTC
9582937 Remove @inbounds in tuple iteration (#48297) * Remove @inbounds in tuple iteration LLVM can prove this inbounds and the annotation weakens the inferable effects for tuple iteration, which has a surprisingly large inference performance and precision impact. Unfortunately, my previous changes to :inbounds tainting weren't quite strong enough yet, because `getfield` was still tainting consistency on unknown boundscheck arguments. To fix that, we pass through the fargs into the fetfield effects to check if we're getting a literal `:boundscheck`, in which case the `:noinbounds` consistency-tainting logic I added in #48246 is sufficient to not require additional consistency tainting. Also add a test for both effects and codegen to make sure this doens't regress. * Int64 -> Int * fixup typo 17 January 2023, 07:24:51 UTC
36007b7 Profile: print profile peek to stderr (#48291) 17 January 2023, 01:00:37 UTC
388864a effects: Allow consistency of :new with slightly imprecise type (#48267) For our consistency check, all we need to prove is that the type we're constructing is not mutable and does not contain uinitialized data. This is possible as long as we know what the ultimate DataType is going to be, but we do not need all of the parameters. 16 January 2023, 23:24:30 UTC
687433b minor tweak to pow accuracy and tests (#48233) * minor tweak to pow accuracy and tests 16 January 2023, 17:58:42 UTC
f6a5de5 Add pkgimages news to 1.9 history (#48293) 16 January 2023, 17:57:23 UTC
681486d get_bool_env: remove default for default arg (#48292) 16 January 2023, 17:55:59 UTC
018a9ae 🤖 [master] Bump the SparseArrays stdlib from a3116b9 to 287c6c6 (#48287) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 16 January 2023, 16:25:52 UTC
74fc310 Fix code block type in doc (#48298) 16 January 2023, 13:25:37 UTC
8c48fe9 Change default output of `[@]code_native` to intel syntax (#48103) * Change `[@]code_{native,llvm}` default output to intel syntax * Add code_native change to NEWS.md Co-authored-by: Sukera <Seelengrab@users.noreply.github.com> 16 January 2023, 12:43:55 UTC
a9ce60a Avoid dtrace regenerating the header (#48278) 16 January 2023, 12:16:48 UTC
12c3b1c Fix mistake in docstring of `keys(::RegexMatch)` (#48252) This method was added in 1.7.0 and is not available in any 1.6 release 16 January 2023, 10:55:48 UTC
1bfdf98 Use `get_bool_env` in more places (#48202) 15 January 2023, 21:24:23 UTC
0371bf4 In string search, replace unsafe_wrap with codeunits (#48275) Currently, `findfirst(::String, ::String)` will eventually end up calling `unsafe_wrap` on both arguments, in order to use Julia's generic vector search functions. This causes unnecessary allocations. This PR replaces use of `unsafe_wrap` with `codeunits`, removing the allocation. See also: #45393 14 January 2023, 17:38:28 UTC
65e6919 Corrected a spelling mistake in CONTRIBUTING.md (#48274) Corrected a spelling mistake in CONTRIBUTING.md 14 January 2023, 12:26:35 UTC
0c3b950 Add inline to cache flags (#48179) and fix the behavior of the check-bounds flag. Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 14 January 2023, 08:33:22 UTC
428d242 threads: during abrupt thread-exit, cleanup anyways (#48223) Closes #47590 (pthread_cancel still forbidden though, since async mode will corrupt or deadlock the process, and synchronously tested with cancelation disabled whenever this is a lock is just a slow implementation of a boolean) Refs #47201 (only deals with thread exit, not other case where this is an issue, like cfunction exit and gc-safe-leave) May help #46537, by blocking jl_wake_libuv before uv_library_shutdown, and other tweaks to GC mode. For example, avoiding: [4011824] signal (6.-6): Aborted gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line) abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line) uv__async_send at /workspace/srcdir/libuv/src/unix/async.c:198 uv_async_send at /workspace/srcdir/libuv/src/unix/async.c:73 jl_wake_libuv at /data/vtjnash/julia1/src/jl_uv.c:44 [inlined] JL_UV_LOCK at /data/vtjnash/julia1/src/jl_uv.c:64 [inlined] ijl_iolock_begin at /data/vtjnash/julia1/src/jl_uv.c:72 iolock_begin at ./libuv.jl:48 [inlined] _trywait at ./asyncevent.jl:140 wait at ./asyncevent.jl:155 [inlined] profile_printing_listener at /data/vtjnash/julia1/usr/share/julia/stdlib/v1.10/Profile/src/Profile.jl:39 jfptr_YY.3_58617 at /data/vtjnash/julia1/usr/lib/julia/sys.so (unknown line) _jl_invoke at /data/vtjnash/julia1/src/gf.c:2665 [inlined] ijl_apply_generic at /data/vtjnash/julia1/src/gf.c:2866 jl_apply at /data/vtjnash/julia1/src/julia.h:1870 [inlined] start_task at /data/vtjnash/julia1/src/task.c:1093 Aborted Fixes #37400 14 January 2023, 01:03:51 UTC
faa37a6 Merge pull request #48256 from topolarity/noalias Add `!noalias` and `!alias.scope` metadata, starting to replace our current use of `tbaa` 13 January 2023, 23:32:11 UTC
4f34aa9 🤖 [master] Bump the Tar stdlib from 6bfc114 to ff55460 (#48268) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 13 January 2023, 21:23:54 UTC
313f646 fix a soure of invalidations (#48270) This occurred when loading GMT and came from a new `convert(::Type{String}, ...)` method getting defined in one of the dependencies. 13 January 2023, 20:03:14 UTC
670190c Don't deprecate splat (#48038) Keep the splat function and mention in the documentation that it's the recommended way of constructing a Base.Splat object. 13 January 2023, 18:47:51 UTC
9707594 rename QuickerSort to ScratchQuickSort (#48160) 13 January 2023, 18:01:08 UTC
eb5f6d6 docstring for `@time_imports`: explain what is shown (it's not cumulative) (#48248) Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 13 January 2023, 15:58:48 UTC
back to top