8436f68 | adienes | 29 September 2023, 15:24:10 UTC | add rand dispatch for tuple types (#50251) as suggested by https://github.com/JuliaLang/julia/issues/50236 | 29 September 2023, 15:24:10 UTC |
8ab635d | Rafael Fourquet | 29 September 2023, 10:52:59 UTC | Random: allow negative seeds (#51416) Alternative to #46190, see that PR for background. There isn't a strong use-case for accepting negative seeds, but probably many people tried something like `seed = rand(Int); seed!(rng, seed)` and saw it failing. As it's easy to support, let's do it. This might "break" some random streams, those for which the upper bit of `make_seed(seed)[end]` was set, so it's rare. | 29 September 2023, 10:52:59 UTC |
b74daf5 | Rafael Fourquet | 29 September 2023, 08:30:58 UTC | define `Random.GLOBAL_RNG = TaskLocalRNG()` (#51388) `GLOBAL_RNG` is a relic from pre-v1.3 when our global RNG was not thread-safe: ``` const GLOBAL_RNG = MersenneTwister() ``` `GLOBAL_RNG` was never really specified, but was referred to in docstrings (of `rand` etc.), and people had to use it in packages in order to provide a default RNG to their functions. So we have to keep defining `Random.GLOBAL_RNG` for the time being. In v1.3, we didn't have anymore a unique global RNG, but instead one per thread; in order to keep code using `GLOBAL_RNG` working, we got this new definition as a clever hack: ``` struct _GLOBAL_RNG <: AbstractRNG end const GLOBAL_RNG = _GLOBAL_RNG() ``` I.e. `GLOBAL_RNG` is just a "handle", which refers to the actual threaded-RNG when passed to `rand` functions. This entails defining most functions taking a `default_rng()` to also accept `_GLOBAL_RNG`. See #41123, and #41235 which is not even merged. But since v1.7, we have `Random.default_rng()` (our now official way to refer to the default RNG) returning `TaskLocalRNG()`, which is itself a "handle" (singleton). So we can as well redefine `GLOBAL_RNG` to be `TaskLocalRNG()` instead of `_GLOBAL_RNG()`, with the advantage that all the relevant methods are already defined for `TaskLocalRNG`. The only expected difference in behavior is `seed!(GLOBAL_RNG, seed)`, which previously would update `Random.GLOBAL_SEED` (a hack used by `@testset`), but now is equivalent to `seed!(TaskLocalRNG(), seed)`, which doesn't update this global seed. This precise behavior was never documented (`GLOBAL_SEED` is purely internal), so this should be fine. | 29 September 2023, 08:30:58 UTC |
29f2b2f | Rafael Fourquet | 29 September 2023, 08:08:16 UTC | Random: reorganize some tests (#51480) This groups some toplevel tests together, and removes hardcoded random values generated by `MersenneTwister` for a given seed. | 29 September 2023, 08:08:16 UTC |
c099639 | Katharine Hyatt | 29 September 2023, 07:31:11 UTC | More tests for replace with AbstractDict (#50902) Co-authored-by: Rafael Fourquet <fourquet.rafael@gmail.com> | 29 September 2023, 07:31:11 UTC |
d3fb3b6 | Lilith Orion Hafner | 29 September 2023, 03:37:08 UTC | Update public keyword compat note (#51496) Co-authored-by: @IanButterworth Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> | 29 September 2023, 03:37:08 UTC |
66fe51f | Ian Butterworth | 28 September 2023, 19:57:19 UTC | Throw clearer ArgumentError for strip with two string args (#51491) | 28 September 2023, 19:57:19 UTC |
2d93567 | Andrew Radcliffe | 28 September 2023, 13:49:16 UTC | Add jump functions (`jump`, `long_jump`) for `Xoshiro` (#47743) Straightforward implementations given https://xoshiro.di.unimi.it/xoshiro256plusplus.c This is useful functionality which does not interfere with any existing code. Utility aside, it is arguable that the jump functions are necessary to complete the implementation of `xoshiro256++` tooling. In essence, given that the `xoshiro` family supports jump functions, we would be remiss to neglect this capability. For most users, I expect that the existing `TaskLocalRNG` is more than sufficient (hence, why I propose that this not be exported, just like `seed!`). However, if/when one does want to total control, jump functions are a requirement. Use cases arise when one wishes to utilize a single seed (with state advanced sufficiently far as to give non-overlapping subsequences) as the basis for a parallel computation. The alternative is manual seeding, which lacks the flexibility required for testing (imagine a program which requires a variable number of sub-sequences, one for each parallel portion). If further justification is needed, [good precedent](https://docs.rs/rand_xoshiro/latest/rand_xoshiro/struct.Xoshiro256PlusPlus.html) exists. | 28 September 2023, 13:49:16 UTC |
ed891d6 | Nicholas Bauer | 28 September 2023, 13:47:25 UTC | Remove fallback that assigns a module to inlined frames. (#51405) The work I did in #41099 introduced code which, if method information could not be found for an inlined frame, would fall back to use the module of the next-higher stack frame. This often worked there because the only frames that would not be assigned a module at this point would be e.g., `macro expansion` frames. However, due to the performance impact of the way method roots are currently encoded, the extra method roots were removed in #50546. The result is that inlined frames were being assigned a potentially incorrect module, rather than being left blank. Example: ``` julia> @btime plot([1 2 3], seriestype = :blah) ... [13] #invokelatest#2 @ BenchmarkTools ./essentials.jl:901 [inlined] [14] invokelatest @ BenchmarkTools ./essentials.jl:896 [inlined] ... ``` | 28 September 2023, 13:47:25 UTC |
bf3eb09 | Shuhei Kadowaki | 28 September 2023, 13:04:21 UTC | REPLCompletions: remove unnecessary copy of top-level `CodeInfo` (#51490) | 28 September 2023, 13:04:21 UTC |
daeb1b4 | Rafael Fourquet | 28 September 2023, 12:49:20 UTC | Random.default_rng: clarify and expand documentation (#51385) Co-authored-by: Nathan Zimmerberg <39104088+nhz2@users.noreply.github.com> | 28 September 2023, 12:49:20 UTC |
50146b2 | Daniel Karrasch | 27 September 2023, 19:57:54 UTC | Handle `AbstractQ` in concatenation (#51132) Handling `AbstractQ`s in concatenation got lost in the overhaul. This brings it back (though it seemed to not be used anywhere), and even better: pre-1.9 `Q`s where handled via `AbstractMatrix` fallbacks, so elementwise. Now, it first materializes the matrix, and then copies to the right place in the destination array. | 27 September 2023, 19:57:54 UTC |
5e8f8a9 | Gabriel Baraldi | 27 September 2023, 15:17:00 UTC | codegen: add src alignment arg to emit_memcpy (#51152) This maybe allows for LLVM to optimize things a bit further since some passes check if both sides have correct/equal alignment Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 27 September 2023, 15:17:00 UTC |
c105167 | Tim Besard | 27 September 2023, 15:00:57 UTC | Bump libunwind JLL to include revert. (#51477) Alternative to https://github.com/JuliaLang/julia/pull/51472 | 27 September 2023, 15:00:57 UTC |
b6a748f | DilumAluthgeBot | 27 September 2023, 13:23:50 UTC | 🤖 [master] Bump the Pkg stdlib from cf0019fbb to 3960c692b (#51464) | 27 September 2023, 13:23:50 UTC |
7428d8a | tecosaur | 27 September 2023, 11:03:49 UTC | Correct stat docstring on blocks' blocksize (#51460) The block size when reporting `blocks` is _always_ 512, regardless of the filesystem, on all systems we currently know about and support, and in particular is typically not the same as blksize (which is commonly reported as 4096). Fixes #51447 | 27 September 2023, 11:03:49 UTC |
cde964f | Kiran | 27 September 2023, 10:20:30 UTC | Fix segfault if root task is NULL (#51471) In `jl_print_task_backtraces()`. Follow-on to https://github.com/JuliaLang/julia/pull/51430. | 27 September 2023, 10:20:30 UTC |
0a82b71 | Jameson Nash | 27 September 2023, 09:31:25 UTC | inference: avoid inferring unreachable code methods (#51317) | 27 September 2023, 09:31:25 UTC |
8de80bd | Shuhei Kadowaki | 26 September 2023, 13:55:08 UTC | inference: restrict type of type parameter from `Vararg` (#51449) Inference has been able to restrict type of `Vararg` type parameter `N` to `Int` for cases like `func(..., ::Vararg{T,N}) where {T,N}`, but this refinement was not available for signatures like `func(::Tuple{Vararg{T,N}}) where {T,N}`. This commit allows the later case to be inferred as well. Now the following kind of case will be inferred, e.g.: ```julia julia> function sub2ind_gen_fallback(dims::NTuple{N,Int}, I) where N # N is knonw to be ::Int ind = I[N] - 1 for i = (N - 1):-1:1 ind = I[i] - 1 + dims[i]*ind end return ind + 1 end; julia> only(Base.return_types(sub2ind_gen_fallback, (NTuple,Tuple{Vararg{Int}}))) Int64 ``` | 26 September 2023, 13:55:08 UTC |
95c1dc5 | Shuhei Kadowaki | 26 September 2023, 13:52:34 UTC | [REPLCompletions] use inference for dict completions too (#51453) This allows us to get dict completions through nested `getindex`. | 26 September 2023, 13:52:34 UTC |
54bae4a | Shuhei Kadowaki | 26 September 2023, 13:50:07 UTC | [REPLCompletions] get completions for `:toplevel`/`:tuple` expressions (#51454) This allows us to get completions for the following kind of cases: ```julia julia> some_issue36437 = Some(Issue36437(42)); julia> some_issue36437.value.a, some_issue36437.value. a b c julia> some_issue36437.value.a; some_issue36437.value. a b c ``` | 26 September 2023, 13:50:07 UTC |
1db6bbd | Shuhei Kadowaki | 26 September 2023, 13:46:38 UTC | add convenience entry for `typeinf_[code|ircode|frame]` (#51457) This change allows them to take `match::MethodMatch` and `mi::MethodInstance`, making debugging easier and reflection code a bit cleaner. | 26 September 2023, 13:46:38 UTC |
28d9f73 | Shuhei Kadowaki | 26 September 2023, 06:44:16 UTC | inference: make `throw` block deoptimization concrete-eval friendly (#49235) The deoptimization can sometimes destroy the effects analysis and disable [semi-]concrete evaluation that is otherwise possible. This is because the deoptimization was designed with the type domain profitability in mind (#35982), and hasn't been adequately considering the effects domain. This commit makes the deoptimization aware of the effects domain more and enables the `throw` block deoptimization only when the effects already known to be ineligible for concrete-evaluation. In our current effect system, `ALWAYS_FALSE`/`false` means that the effect can not be refined to `ALWAYS_TRUE`/`true` anymore (unless given user annotation later). Therefore we can enable the `throw` block deoptimization without hindering the chance of concrete-evaluation when any of the following conditions are met: - `effects.consistent === ALWAYS_FALSE` - `effects.effect_free === ALWAYS_FALSE` - `effects.terminates === false` - `effects.nonoverlayed === false` Here are some numbers: | Metric | master | this commit | #35982 reverted (set `unoptimize_throw_blocks=false`) | |-------------------------|-----------|-------------|--------------------------------------------| | Base (seconds) | 15.579300 | 15.206645 | 15.296319 | | Stdlibs (seconds) | 17.919013 | 17.667094 | 17.738128 | | Total (seconds) | 33.499279 | 32.874737 | 33.035448 | | Precompilation (seconds) | 49.967516 | 49.421121 | 49.999998 | | First time `plot(rand(10,3))` [^1] | `2.476678 seconds (11.74 M allocations)` | `2.430355 seconds (11.77 M allocations)` | `2.514874 seconds (11.64 M allocations)` | | First time `solve(prob, QNDF())(5.0)` [^2] | `4.469492 seconds (15.32 M allocations)` | `4.499217 seconds (15.41 M allocations)` | `4.470772 seconds (15.38 M allocations)` | [^1]: With disabling precompilation of Plots.jl. [^2]: With disabling precompilation of OrdinaryDiffEq. These numbers made me question if we are getting any actual benefit from the `throw` block deoptimization anymore. Since it is sometimes harmful for the effects analysis, we probably want to either merge this commit or remove the `throw` block deoptimization completely. | 26 September 2023, 06:44:16 UTC |
13d3efb | Troels Arnfred Bojesen | 25 September 2023, 17:19:12 UTC | Fix typo in `Base.setindex` documentation (#51446) ... I also used `t` instead of `x`, since that seems to be more prevalent when talking about tuples. (I could be wrong about that, though...) | 25 September 2023, 17:19:12 UTC |
0287a00 | Tim Besard | 25 September 2023, 16:41:48 UTC | improve NTuple show and cleanup code for Vararg and NTuple type parameter construction (#51244) Various simplifications and improvements from investigating #51228. Improves the logic for showing of NTuple to handle constant lengths. Improves the logic for showing NTuple of bound length (e.g. NTuple itself). Also makes a choice to avoid showing non-types as NTuple, but instead try to write them out, to make it more visually obvious when the parameters have been swapped. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 25 September 2023, 16:41:48 UTC |
b44a95b | Shuhei Kadowaki | 25 September 2023, 13:40:26 UTC | set `max_methods = 4` for `merge` (#51443) This enhances type/effects inference for calls of the `merge` function, especially when input types are known only as abstract `NamedTuple`. While we improved inference for the fallback `merge` path in JuliaLang/julia#48262, the enhancements have not been available to general cases as inference gives up attempts when there are ≥4 matching methods. This commit fixes it up. | 25 September 2023, 13:40:26 UTC |
3220565 | Shuhei Kadowaki | 25 September 2023, 13:38:05 UTC | reflection: remove the `func_for_method_checked` check (#51444) Introduced in 539224f, the `func_for_method_checked` check has been used for some of the reflection utilities like `code_typed`, but now it appears to be outdated. E.g. previously, when provided with abstract input types for optionally-generated functions, they would raise unnecessary errors, even though the inference would utilize the fallback code path. In such instances, the reflection utilities should present what the inference would perform, instead of raising errors. This commit simply removes the check. This works because all the reflection utilities now internally calls the `InferenceState()` constructor, where code generation occurs, and they gracefully handle cases when code generation fails. Now their behavior is more synced with the actual behavior of inference. | 25 September 2023, 13:38:05 UTC |
e5c6340 | Jameson Nash | 25 September 2023, 11:20:19 UTC | add support for async backtraces of Tasks on any thread (#51430) | 25 September 2023, 11:20:19 UTC |
66e83e7 | Kristoffer Carlsson | 25 September 2023, 10:34:25 UTC | remove "skipping mtime check..." debug output (#51441) This doesn't really serve any purpose to have and it gets very spammy. | 25 September 2023, 10:34:25 UTC |
f7d8bfb | Jameson Nash | 22 September 2023, 21:18:24 UTC | deal with remaining race conditions in these APIs The jl_live_tasks API now reports all threads, instead of only Tasks first started by the current thread. There is a new abstraction called mtarraylist with adds functionality to small_arraylist (it is layout-compatible). In particular, it makes it safe for another thread to observe the content of the list concurrently with any mutations. | 24 September 2023, 17:28:56 UTC |
1d9ebbc | Jameson Nash | 22 September 2023, 00:12:38 UTC | add support for async backtraces of Tasks on any thread | 24 September 2023, 13:46:17 UTC |
3c0d480 | Lilith Orion Hafner | 23 September 2023, 18:01:39 UTC | Fix error in comment [NFC] (#51181) | 23 September 2023, 18:01:39 UTC |
9bf2620 | Lilith Orion Hafner | 23 September 2023, 18:01:14 UTC | Add public keyword to NEWS.md (#51322) Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> | 23 September 2023, 18:01:14 UTC |
ce86593 | Lilith Orion Hafner | 23 September 2023, 16:19:53 UTC | Public keyword documentation fixups (mostly adding compat entries) (#51333) | 23 September 2023, 16:19:53 UTC |
75b7826 | Tim Besard | 23 September 2023, 09:20:03 UTC | Make LBT verbose when LBT_VERBOSE is set. (#51426) | 23 September 2023, 09:20:03 UTC |
5d44a37 | Tim Besard | 23 September 2023, 09:19:51 UTC | Fixes and improvements for source builds (#51422) - A GMP patch was malformed; copy the corrected version from Yggdrasil - Always invoke `patch` with `-f` to avoid interactive prompts during build - Don't quote the path to `python`, or nghttp2's configure script fails with `error: Python interpreter is too old` (but `config.log` reveals `"/usr/bin/python": No such file or directory`) | 23 September 2023, 09:19:51 UTC |
6bb9111 | Tim Besard | 23 September 2023, 09:19:36 UTC | Update libunwind to v1.7.2. (#51424) | 23 September 2023, 09:19:36 UTC |
6bca048 | Shuhei Kadowaki | 23 September 2023, 01:56:48 UTC | a bunch of minor fixes and improvements (#51421) - fixed the docstring of `ir_inline_unionsplit!` - simplify `show` for `SlotNumber` - tweak bootstrap.jl (it slightly improves bootstrapping time) | 23 September 2023, 01:56:48 UTC |
2defa57 | Valentin Churavy | 23 September 2023, 00:45:32 UTC | Excise REPL and its dependencies from sysimg (#51399) | 23 September 2023, 00:45:32 UTC |
a127ab7 | Diogo Netto | 22 September 2023, 18:48:34 UTC | parallelize sweeping of object pools (#51282) Sweeping of object pools will either construct a free list through dead objects (if there is at least one live object in a given page) or return the page to the OS (if there are no live objects whatsoever). With this PR, we're basically constructing the free-lists for each GC page in parallel. | 22 September 2023, 18:48:34 UTC |
43f7538 | Ian Butterworth | 22 September 2023, 18:13:22 UTC | add note to `Experimental.@sync` explaining difference to `@sync` (#51427) | 22 September 2023, 18:13:22 UTC |
8bc6c35 | Valentin Churavy | 22 September 2023, 15:33:39 UTC | Fix precompilation of Pkg (#51425) Forgot this in https://github.com/JuliaLang/julia/pull/51368 | 22 September 2023, 15:33:39 UTC |
bf03753 | Rafael Fourquet | 22 September 2023, 13:57:37 UTC | make `hash(::Xoshiro)` compatible with `==` (#51376) | 22 September 2023, 13:57:37 UTC |
c476d84 | Cody Tapscott | 22 September 2023, 05:02:33 UTC | slot2ssa: consider liveness when inserting `PiNode`s (#51406) | 22 September 2023, 05:02:33 UTC |
9f0676c | Diogo Netto | 22 September 2023, 02:05:24 UTC | don't print task backtrace for GC threads (#51413) GC threads don't have tasks associated with them. | 22 September 2023, 02:05:24 UTC |
027fb37 | Valentin Churavy | 22 September 2023, 01:43:04 UTC | Make sysimg only recompile when stdlibs that are contained within change (#51368) Otherwise changing a stdlib would trigger a recompilation of the sysimg. | 22 September 2023, 01:43:04 UTC |
9a08d15 | Shuhei Kadowaki | 21 September 2023, 23:17:39 UTC | EA: fix `escape_invoke!` (#51418) The previous index offset was just wrong. | 21 September 2023, 23:17:39 UTC |
57e70c1 | Shuhei Kadowaki | 21 September 2023, 17:28:46 UTC | inference: follow up the `Vararg` fix in `abstract_call_unionall` (#51403) | 21 September 2023, 17:28:46 UTC |
85c96b9 | Jeff Bezanson | 21 September 2023, 09:07:11 UTC | define `show` instead of `repr` in BinaryPlatforms (#51398) Co-authored-by: Keno Fischer <keno@juliacomputing.com> | 21 September 2023, 09:07:11 UTC |
5fc5556 | Kristoffer Carlsson | 21 September 2023, 02:42:33 UTC | move Pkg out of the sysimage (take 2) (#51189) Co-authored-by: Jonas Schulze <jonas.schulze@st.ovgu.de> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> Co-authored-by: Tim Besard <tim.besard@gmail.com> | 21 September 2023, 02:42:33 UTC |
6023370 | mikmoore | 20 September 2023, 18:20:04 UTC | Clarify `searchsortedfirst`/`searchsortedlast` docstrings (#50941) | 20 September 2023, 18:20:04 UTC |
15f34aa | Stefan Karpinski | 20 September 2023, 15:54:56 UTC | [NFC] rng_split: some elaboration and clarification (#50680) I was rereading the comments I wrote about our approach to task splitting RNGs and had some clarifications and elaboration to add. --------- Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> | 20 September 2023, 15:54:56 UTC |
8f95c6b | Adnan Alhomssi | 20 September 2023, 15:54:18 UTC | Export num_stack_mappings to track the number of in-flight stack mappings and tasks in application (#51301) Julia already tracks the number of mapped stacks for Julia tasks in a local atomic. Exporting this atomic will allow applications to estimate the memory consumption by the stacks and also the number of in-flight tasks. --------- Co-authored-by: Nathan Daly <nathan.daly@relational.ai> | 20 September 2023, 15:54:18 UTC |
8d05a22 | Jeff Bezanson | 20 September 2023, 15:53:39 UTC | remove extra zero byte store in `jl_readuntil` (#51401) Since 3b1bbe30e53c487929c47d2a1facbc6173848e6c we no longer do this for arrays, only strings. Fixes a crash when using `readline`. | 20 September 2023, 15:53:39 UTC |
071d3ca | Ian Butterworth | 20 September 2023, 14:04:05 UTC | Docs: Make all env var mentions link to their entry (#51363) | 20 September 2023, 14:04:05 UTC |
c22adc0 | Kristoffer Carlsson | 20 September 2023, 12:08:52 UTC | call Pkg precompile hook in latest world (#51397) Fixes https://github.com/JuliaLang/julia/issues/51280. | 20 September 2023, 12:08:52 UTC |
151ef23 | Shuhei Kadowaki | 20 September 2023, 11:15:30 UTC | EAUtils: make sure to always run analysis on entry frame (#51402) Otherwise we may hit error when analyzing the same function multiple times. | 20 September 2023, 11:15:30 UTC |
4923e95 | Shuhei Kadowaki | 20 September 2023, 03:59:18 UTC | EAUtils: clarify error message when optimization didn't happen for top-frame (#51396) | 20 September 2023, 03:59:18 UTC |
3290bd7 | Shuhei Kadowaki | 20 September 2023, 03:58:54 UTC | inference: handle `Vararg` in `abstract_call_unionall` for `argtypes` computed by `abstract_apply` (#51393) This commit adds special handling for `Vararg` types that may appear at the end of `argtypes`, as computed by `abstract_apply`. Even though PR #42583 has ensured that `Vararg` and `TypeVar` should never appear within the abstract state, they can still be part of `argtypes`. As a result, this kind of special handling is still necessary. It remains an open question whether we can refactor `abstract_apply` to prevent `Vararg`s from appearing in `argtypes` in the first place. | 20 September 2023, 03:58:54 UTC |
7d8ba92 | Chris Elrod | 20 September 2023, 02:50:55 UTC | Inline `_log` to avoid passing symbol argument. (#51232) This reduces callsite code from ```julia julia> foo(x) = log(x) foo (generic function with 1 method) julia> @code_native syntax=:intel debuginfo=:none foo(2.3) .text .file "foo" .globl julia_foo_2627 # -- Begin function julia_foo_2627 .p2align 4, 0x90 .type julia_foo_2627,@function julia_foo_2627: # @julia_foo_2627 ; Function Signature: foo(Float64) #DEBUG_VALUE: foo:x <- $xmm0 push rbp mov rbp, rsp movabs rdi, offset ".Ljl_sym#log#2632.jit" movabs rax, offset j__log_2631 call rax pop rbp ret ``` to ```julia julia> @code_native syntax=:intel debuginfo=:none foo(2.3) .text .file "foo" .globl julia_foo_10446 # -- Begin function julia_foo_10446 .p2align 4, 0x90 .type julia_foo_10446,@function julia_foo_10446: # @julia_foo_10446 ; Function Signature: foo(Float64) #DEBUG_VALUE: foo:x <- $xmm0 push rbp mov rbp, rsp movabs rax, offset j_log_10450 call rax pop rbp ret ``` Note that we no longer have ```asm movabs rdi, offset ".Ljl_sym#log#2632.jit"` ``` saving an instruction at every call site. | 20 September 2023, 02:50:55 UTC |
c2e53f1 | Kristoffer Carlsson | 20 September 2023, 02:50:07 UTC | update docs for `package_callbacks` (#51241) Fixes https://github.com/JuliaLang/julia/issues/51166 cc @oxinabox --------- Co-authored-by: Frames White <oxinabox@ucc.asn.au> | 20 September 2023, 02:50:07 UTC |
1282a65 | Max Horn | 20 September 2023, 02:49:50 UTC | Change 'nonnegative' to 'non-negative' (#51380) This is for consistency. I picked the one which was more often used. | 20 September 2023, 02:49:50 UTC |
53a00f3 | Daniel Karrasch | 19 September 2023, 16:16:23 UTC | Correct `logdet` docstring (#51387) | 19 September 2023, 16:16:23 UTC |
2a0c8c8 | Shuhei Kadowaki | 19 September 2023, 15:46:37 UTC | EA: remove no longer used `is_ipo_profitable` (#51391) | 19 September 2023, 15:46:37 UTC |
7f37e70 | Shuhei Kadowaki | 19 September 2023, 14:32:02 UTC | docs: fix up generated function examples in metaprogramming.md (#51386) The last example was untested and has been non-functional actually. | 19 September 2023, 14:32:02 UTC |
22a0276 | Valentin Churavy | 19 September 2023, 14:15:03 UTC | Make Ctrl-D not hang in the fallback repl (#51384) | 19 September 2023, 14:15:03 UTC |
06432bc | Lars Göttgens | 19 September 2023, 11:26:41 UTC | Make `cache_file_entry` more type stable (#51382) According to JET.jl, the type inference was not able to tell the type of `pkg.uuid` in the `pkg.uuid !== nothing` branch. Moving this to a local variable first should resolve that problem. | 19 September 2023, 11:26:41 UTC |
27c75a4 | Daniel Karrasch | 19 September 2023, 09:57:45 UTC | Add alloc-free in-place `Tridiagonal` solves and `lu!` (#50535) | 19 September 2023, 09:57:45 UTC |
1dcd644 | Hossein Pourbozorg | 19 September 2023, 03:29:36 UTC | Fix typo: " is is " (#51379) Closes #51373 | 19 September 2023, 03:29:36 UTC |
e7290dc | Valentin Churavy | 19 September 2023, 02:06:57 UTC | Add environment variable to force the use of the fallback repl (#51370) While working on moving REPL.jl out of base I noticed that the fallback repl hangs. In order to debug that and to test this code we should allow `JULIA_FALLBACK_REPL=1 julia` to load the fallback repl even if REPL.jl is available. | 19 September 2023, 02:06:57 UTC |
14119e0 | Rafael Fourquet | 18 September 2023, 18:00:43 UTC | factor out common code for `Xoshiro` and `TaskLocalRNG` (#51347) This makes more use of `setstate!`, and adds `getstate(rng)` which returns the 5-tuple `(s0, s1, s2, s3, s4)`. This is essentially "NFC", but it enables the useless `copy!(TaskLocalRNG(), TaskLocalRNG())`. | 18 September 2023, 18:00:43 UTC |
b189bed | Valentin Churavy | 18 September 2023, 15:29:40 UTC | Move thread name after ptls field to avoid changing offsets (#51353) Makes it a bit easier to recompile with Tracy, the sysimg stays valid since we don't change the offset of the ptls field. | 18 September 2023, 15:29:40 UTC |
893fecc | Gabriel Baraldi | 18 September 2023, 14:42:29 UTC | Fix debug level check and add types to allocations in the IR (#51338) | 18 September 2023, 14:42:29 UTC |
a811406 | Shuhei Kadowaki | 18 September 2023, 14:11:44 UTC | EA: minor updates on EA (#51365) - update outdated test code - add more comments on TODO items - use `MethodInstance` for better frame-identity check - minor cleanups on the inlining code | 18 September 2023, 14:11:44 UTC |
3e9e3be | freemin7 | 18 September 2023, 13:19:04 UTC | Update Condition() docs to highlight return value and error (#50688) | 18 September 2023, 13:19:04 UTC |
5a1c31c | Katharine Hyatt | 18 September 2023, 13:05:48 UTC | Test that replace throws Method error for Pair arguments (#50901) | 18 September 2023, 13:05:48 UTC |
4a311d6 | Kristoffer Carlsson | 18 September 2023, 12:54:23 UTC | A few libgit2 improvements/fixes (#51259) * 1.7.0 support. * A few more operations on remote. * Getting commit parents. | 18 September 2023, 12:54:23 UTC |
8e21b21 | Zentrik | 18 September 2023, 12:50:13 UTC | Remove boxing in pinv (#51351) As discussed in https://discourse.julialang.org/t/pinv-not-type-stable/103885/14, the `tol` variable is captured which leads to it being boxed, as suggested can be fixed by having two separate variables. | 18 September 2023, 12:50:13 UTC |
106e867 | Dilum Aluthge | 18 September 2023, 02:15:27 UTC | testdefs: make sure that if a test set changes the active project, they change it back when they're done (#51029) We already check the following for mutation by a test set: 1. DEPOT_PATH 2. LOAD_PATH 3. ENV So this PR just adds the active project to the list of things we check. Changing the active project during a test set can definitely have negative effects on subsequent test sets that are run on the same worker, so we want to make sure if a test set changes the active project, that they change it back when they're done. | 18 September 2023, 02:15:27 UTC |
e708c5e | Christian Guinard | 17 September 2023, 21:15:13 UTC | Add cross-references between codeview functions/macros (#51349) | 17 September 2023, 21:15:13 UTC |
28d0e1e | Rafael Fourquet | 17 September 2023, 15:43:49 UTC | TaskLocalRNG: test that `copy` handles the splitmix state (#51355) This adds a test for #51332. | 17 September 2023, 15:43:49 UTC |
ee371a1 | Jerry Ling | 17 September 2023, 15:20:51 UTC | mention `getindex()` shouldn't return a "view" (#47099) fix #47078 --------- Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr> Co-authored-by: Tim Holy <tim.holy@gmail.com> | 17 September 2023, 15:20:51 UTC |
c932fb2 | Ian Butterworth | 17 September 2023, 14:08:37 UTC | Precompile pidlocks: add to NEWS and docs (#50385) | 17 September 2023, 14:08:37 UTC |
a83186f | Ian Butterworth | 17 September 2023, 13:55:54 UTC | Tweaks to repl tab complete hints - pt. 2 (#51339) | 17 September 2023, 13:55:54 UTC |
26ceebf | Lilith Orion Hafner | 17 September 2023, 12:25:50 UTC | Don't give public but unexported symbols as repl completions in an unqualified context (#51345) | 17 September 2023, 12:25:50 UTC |
ebe1a37 | Milan Bouchet-Valat | 16 September 2023, 12:52:17 UTC | Upgradeable Statistics stdlib (#46501) | 16 September 2023, 12:52:17 UTC |
27c24f6 | Valentin Churavy | 16 September 2023, 12:51:14 UTC | Scoped values (#50958) ScopedVariables are containers whose observed value depends the current dynamic scope. This implementation is inspired by https://openjdk.org/jeps/446 A scope is introduced with the `scoped` function that takes a lambda to execute within the new scope. The value of a `ScopedValue` is constant within that scope and can only be set upon introduction of a new scope. Scopes are propagated across tasks boundaries. Storage is implemented using a persistent dictionary. | 16 September 2023, 12:51:14 UTC |
6825abc | Shuhei Kadowaki | 16 September 2023, 08:29:07 UTC | EA: perform analysis once for post-optimization IR, and remove `IPO EA` (#51318) Following the discussions and changes in #50805, we now consider post-inlining IR as IPO-valid. Revisiting EA, I've realized that running EA twice—once for computing IPO-valid escape cache and once for local optimization analysis—is redundant. This commit streamlines the EA process to perform the analysis just once on post-optimization IR, and caches that result. This change also removes all interprocedural EA code, which had significant overlap with inlining code. --------- Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me> | 16 September 2023, 08:29:07 UTC |
9ccf346 | Lilith Orion Hafner | 16 September 2023, 02:57:37 UTC | Improve help grammar for field hints (#51178) | 16 September 2023, 02:57:37 UTC |
b2dfa1d | Lilith Orion Hafner | 16 September 2023, 02:57:10 UTC | Deprecate `permute!!` and `invpermute!!` (#51337) | 16 September 2023, 02:57:10 UTC |
a61d1b4 | Jameson Nash | 15 September 2023, 22:32:16 UTC | inference: apply tmerge limit elementwise to the Union (#50927) This allows forming larger unions, as long as each element in the Union is both relatively distinct and relatively simple. For example: tmerge(Base.BitSigned, Nothing) == Union{Nothing, Int128, Int16, Int32, Int64, Int8} tmerge(Tuple{Base.BitSigned, Int}, Nothing) == Union{Nothing, Tuple{Any, Int64}} tmerge(AbstractVector{Int}, Vector) == AbstractVector Disables a test from dc8d885, which does not seem possible to handle currently. This makes somewhat drastic changes to make this algorithm more commutative and simpler, since we dropped the final widening to `Any`. Co-authored-by: pchintalapudi <34727397+pchintalapudi@users.noreply.github.com> Co-authored-by: Oscar Smith <oscardssmith@gmail.com> | 15 September 2023, 22:32:16 UTC |
41b41ab | Nathan Zimmerberg | 15 September 2023, 22:28:26 UTC | [Random] Add s4 field to Xoshiro type (#51332) This PR adds an optional field to the existing `Xoshiro` struct to be able to faithfully copy the task-local RNG state. Fixes #51255 Redo of #51271 Background context: #49110 added an additional state to the task-local RNG. However, before this PR `copy(default_rng())` did not include this extra state, causing subtle errors in `Test` where `copy(default_rng())` is assumed to contain the full task-local RNG state. | 15 September 2023, 22:28:26 UTC |
ee34a68 | Valentin Churavy | 15 September 2023, 18:40:01 UTC | Make the persistent dict API less strict. (#51336) | 15 September 2023, 18:40:01 UTC |
3099af9 | Lilith Orion Hafner | 15 September 2023, 18:06:47 UTC | Fix typo in basedocs.jl (#51334) Thanks @DilumAluthge for finding this | 15 September 2023, 18:06:47 UTC |
e85f0a5 | Ian Butterworth | 15 September 2023, 18:02:41 UTC | complete false & true more generally as vals (#51326) | 15 September 2023, 18:02:41 UTC |
42d98a2 | Morten Piibeleht | 15 September 2023, 14:00:49 UTC | doc: correct unicode-input table generation (#51328) A couple small fixes and cosmetic improvements to the Unicode table in the docs: * Most importantly, makes sure that the resulting object from the at-eval block is `Markdown.MD`, which which will be necessary for Documenter 1.0 (#47105). It also fixes the `Markdown.Table` structure -- each of the cells should be an array, not just a string, so it adds one more layer of nesting. * Cosmetically, center-aligns the characters, and wraps the latex commands in `<code>` | 15 September 2023, 14:00:49 UTC |
b5feb45 | adienes | 15 September 2023, 12:42:10 UTC | [docs] add performance tip concerning overly-fused broadcast loops (#49228) cautionary / explanatory documentation following the wake of https://discourse.julialang.org/t/unexpected-broadcasting-behavior-involving-eachrow/96781/88 | 15 September 2023, 12:42:10 UTC |
d9a9be8 | Ian Butterworth | 14 September 2023, 23:43:27 UTC | Tweaks to repl tab complete hints (#51321) | 14 September 2023, 23:43:27 UTC |
d51ad06 | Gabriel Baraldi | 14 September 2023, 20:13:21 UTC | Avoid infinite loop when doing SIGTRAP in arm64-apple (#51284) The guard instruction for unreachables and other crashes in aarch64 is `brk`, in macos there isn't a distinction between a brk for a breakpoint and one for a crash, as an attempt we check the value of `pc` when the signal is triggered, if it is `brk #0x1` we say that it is a crash and go into the sigdie_handler. We should probably do the same in aarch64 linux, though I haven't dug too deep into what values it uses for traps, and if what compiler used matters, on apple I assumed we use clang/LLVM It might be possible to test this by calling some inline assembly. This means that something like https://github.com/JuliaLang/julia/issues/51267 actually crashes with ```c [16908] signal (5): Trace/BPT trap: 5 in expression starting at /Users/gabrielbaraldi/julia/test.jl:2 _collect at ./array.jl:768 collect at ./array.jl:757 top-level scope at /Users/gabrielbaraldi/julia/test.jl:5 _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2892 jl_toplevel_eval_flex at /Users/gabrielbaraldi/julia/src/toplevel.c:925 jl_toplevel_eval_flex at /Users/gabrielbaraldi/julia/src/toplevel.c:877 ijl_toplevel_eval at /Users/gabrielbaraldi/julia/src/toplevel.c:943 [inlined] ijl_toplevel_eval_in at /Users/gabrielbaraldi/julia/src/toplevel.c:985 eval at ./boot.jl:383 [inlined] include_string at ./loading.jl:2070 _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2873 ijl_apply_generic at /Users/gabrielbaraldi/julia/src/gf.c:3074 _include at ./loading.jl:2130 include at ./Base.jl:494 jfptr_include_46486 at /Users/gabrielbaraldi/julia/usr/lib/julia/sys.dylib (unknown line) _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2873 ijl_apply_generic at /Users/gabrielbaraldi/julia/src/gf.c:3074 exec_options at ./client.jl:317 _start at ./client.jl:552 jfptr__start_83179 at /Users/gabrielbaraldi/julia/usr/lib/julia/sys.dylib (unknown line) _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2873 ijl_apply_generic at /Users/gabrielbaraldi/julia/src/gf.c:3074 jl_apply at /Users/gabrielbaraldi/julia/src/./julia.h:1970 [inlined] true_main at /Users/gabrielbaraldi/julia/src/jlapi.c:582 jl_repl_entrypoint at /Users/gabrielbaraldi/julia/src/jlapi.c:731 Allocations: 570978 (Pool: 570031; Big: 947); GC: 1 fish: Job 1, './julia test.jl' terminated by signal SIGTRAP (Trace or breakpoint trap) ``` instead of hanging silently --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 14 September 2023, 20:13:21 UTC |
bdd3ffd | Lilith Orion Hafner | 14 September 2023, 19:53:16 UTC | Add public keyword (#50105) Co-authored-by: Claire Foster <aka.c42f@gmail.com> | 14 September 2023, 19:53:16 UTC |