-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comparison of branch: master+RAI #47
Commits on Mar 19, 2024
-
minor refactoring on
find_method_matches
(JuliaLang#53741)So that it can be tested in isolation easier.
Configuration menu - View commit details
-
Copy full SHA for 8f76c69 - Browse repository at this point
Copy the full SHA 8f76c69View commit details -
Fix handling of virtual exit node in
PostDomTree
(JuliaLang#53739)This is an alternative to JuliaLang#53642 The `dom_edges()` for an exit block in the CFG are empty when computing the PostDomTree so the loop below this may not actually run. In that case, the right semidominator is the ancestor from the DFSTree, which is the "virtual" -1 block. This resolves half of the issue in JuliaLang#53613: ```julia julia> let code = Any[ # block 1 GotoIfNot(Argument(2), 3), # block 2 ReturnNode(Argument(3)), # block 3 (we should visit this block) Expr(:call, throw, "potential throw"), ReturnNode(), # unreachable ] ir = make_ircode(code; slottypes=Any[Any,Bool,Bool]) visited = BitSet() @test !Core.Compiler.visit_conditional_successors(CC.LazyPostDomtree(ir), ir, #=bb=#1) do succ::Int push!(visited, succ) return false end @test 2 ∈ visited @test 3 ∈ visited end Test Passed ``` This needs some tests (esp. since I don't think we have any DomTree tests at all right now), but otherwise should be good to go.
Configuration menu - View commit details
-
Copy full SHA for 2775c9a - Browse repository at this point
Copy the full SHA 2775c9aView commit details -
post-opt: add more test cases for
visit_conditional_successors
(Jul……iaLang#53642) This commit fixes the first problem that was found while digging into JuliaLang#53613. It turns out that the post-domtree constructed from regular `IRCode` doesn't work for visiting conditional successors for post-opt analysis in cases like: ```julia julia> let code = Any[ # block 1 GotoIfNot(Argument(2), 3), # block 2 ReturnNode(Argument(3)), # block 3 (we should visit this block) Expr(:call, throw, "potential throw"), ReturnNode(), # unreachable ] ir = make_ircode(code; slottypes=Any[Any,Bool,Bool]) visited = BitSet() @test !Core.Compiler.visit_conditional_successors(CC.LazyPostDomtree(ir), ir, #=bb=#1) do succ::Int push!(visited, succ) return false end @test 2 ∉ visited @test 3 ∈ visited end Test Failed at REPL[14]:16 Expression: 2 ∉ visited Evaluated: 2 ∉ BitSet([2]) ``` This might mean that we need to fix on the `postdominates` end, but for now, this commit tries to get around it by using the augmented post domtree in `visit_conditional_successors`. Since the augmented post domtree is enforced to have a single return, we can keep using the current `postdominates` to fix the issue. However, this commit isn't enough to fix the NeuralNetworkReachability segfault as reported in JuliaLang#53613, and we need to tackle the second issue reported there too (JuliaLang#53613 (comment)).
Configuration menu - View commit details
-
Copy full SHA for 9df47f2 - Browse repository at this point
Copy the full SHA 9df47f2View commit details -
Remove some duplicates from emitted compilation traces (JuliaLang#53774)
When multiple threads concurrently attempt to compile the same method, `--trace-compile` could emit duplicate `precompile` statements. This small tweak eliminates one source of these duplicates.
Configuration menu - View commit details
-
Copy full SHA for 5c891de - Browse repository at this point
Copy the full SHA 5c891deView commit details
Commits on Mar 20, 2024
-
compileall: Print error on failure (JuliaLang#53770)
This test appears to be failing intermittently on aarch64 darwin, so stop suppressing any errors that might be happening.
Configuration menu - View commit details
-
Copy full SHA for 1c2b9ad - Browse repository at this point
Copy the full SHA 1c2b9adView commit details -
Configuration menu - View commit details
-
Copy full SHA for cc27a7b - Browse repository at this point
Copy the full SHA cc27a7bView commit details -
small changes to make Base more statically compileable (JuliaLang#53778)
This makes it easier to fully-statically-type Base and init methods. The changes are from gb/small-image2.
Configuration menu - View commit details
-
Copy full SHA for e0bb95a - Browse repository at this point
Copy the full SHA e0bb95aView commit details -
compiler: Refactor
concrete_eval_invoke
(JuliaLang#53771)This passes slightly more information into this function (the full `inst` rather than just the `stmt`) in order to allow external absint to access additional fields (the flags and the info) if necessary to make concrete evaluation decisions. It also splits out the actual concrete evaluation from the part that just maps the `inst` to a CodeInstance.
Configuration menu - View commit details
-
Copy full SHA for bc7ba3d - Browse repository at this point
Copy the full SHA bc7ba3dView commit details -
Configuration menu - View commit details
-
Copy full SHA for a30feec - Browse repository at this point
Copy the full SHA a30feecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 55afecc - Browse repository at this point
Copy the full SHA 55afeccView commit details
Commits on Mar 21, 2024
-
Document LazyString in performance tips (JuliaLang#53779)
Does what it says. Doc-changes only. Recent motivating example: FluxML/Flux.jl#2399
Configuration menu - View commit details
-
Copy full SHA for 72b1c9e - Browse repository at this point
Copy the full SHA 72b1c9eView commit details -
minor followups on recent
CodeInstance
refactors (JuliaLang#53581)- ~~simplifies the signature of `transform_result_for_cache`~~ - ~~make `jl_uncompress_ir` take `MethodInstance` instead of `CodeInstance` and simplifies the inlining algorithm~~ - renames of `codeinst::CodeInstace` objects - removal of dead code
Configuration menu - View commit details
-
Copy full SHA for 8e8b533 - Browse repository at this point
Copy the full SHA 8e8b533View commit details -
Switch LLVM codegen of Ptr{T} to an actual pointer type. (JuliaLang#5…
…3687) This PR switches our code generation for `Ptr{T}` from `i64` to an actual LLVM pointer type (`ptr` when using opaque pointers, an untyped `i8*` otherwise). The main motivation is to simplify `llvmcall` usage (doing away with the `inttoptr`/`ptrtoint` conversions), and also make it possible to simply use `ccall` to call intrinsics with `Ptr`-valued arguments (where we currently always need `llvmcall` for converting to an actual pointer). Changing codegen like this is a breaking change for `llvmcall` users, but I've added backwards compatibility and a deprecation warning. Before: ```llvm julia> @code_llvm pointer([]) define i64 @julia_pointer_1542(ptr noundef nonnull align 8 dereferenceable(24) %"x::Array") #0 { top: ; ┌ @ pointer.jl:65 within `cconvert` %0 = load ptr, ptr %"x::Array", align 8 ; └ ; ┌ @ pointer.jl:90 within `unsafe_convert` ; │┌ @ pointer.jl:30 within `convert` %bitcast_coercion = ptrtoint ptr %0 to i64 ret i64 %bitcast_coercion ; └└ } ``` After: ```llvm julia> @code_llvm pointer([]) define ptr @julia_pointer_3880(ptr noundef nonnull align 8 dereferenceable(24) %"x::Array") #0 { top: ; ┌ @ pointer.jl:65 within `cconvert` %0 = load ptr, ptr %"x::Array", align 8 ; └ ; ┌ @ pointer.jl:90 within `unsafe_convert` ; │┌ @ pointer.jl:30 within `convert` ret ptr %0 ; └└ } ``` This also simplifies "real code", e.g., when `ccall` converts an Array to a pointer, resulting in some more optimization opportunities.
Configuration menu - View commit details
-
Copy full SHA for 09400e4 - Browse repository at this point
Copy the full SHA 09400e4View commit details
Commits on Mar 22, 2024
-
Add missing GC_POP() in emit_cfunction (JuliaLang#53809)
~~Apparently somewhere in codegen inside `emit_codeinst`some piece of code is relying on the implicit try catch gcstack restoring. I haven't got the analyzer working on that file yet (it has hundreds of issues and it doesn't like C++ code that much + the file is tens of thousands of lines after includes so it struggles).~~ This fixes the compileall segfault in apple-aarch64 ci. JuliaLang#53811
Configuration menu - View commit details
-
Copy full SHA for 52fc796 - Browse repository at this point
Copy the full SHA 52fc796View commit details -
Remove fl_julia_current_{file, line} (JuliaLang#53797)
These flisp accessor functions make use of the `jl_filename` and `jl_lineno` globals. I was looking at removing these globals for unrelated reasons, when I saw that one of the primary uses was in these flisp accessor, which appear entirely unnecessary. They are only used to provide a default for an error message, but the place that puts the error message into a list to return to julia does actually already have access to this information, so there's no need for these to look at the globals. While we're at it, also add a test for this code path, which was otherwise unexercised in our test suite.
Configuration menu - View commit details
-
Copy full SHA for 6c22dfd - Browse repository at this point
Copy the full SHA 6c22dfdView commit details -
Use jl_filename/jl_lineno less (JuliaLang#53799)
I don't like `jl_filename`/`jl_lineno`. They are weird internal state, and they are also not thread safe, so if different threads are evaling different things at the same time, line numbers can get confused. This PR changes the core function `jl_toplevel_eval_flex` to keep track of its current file/line context on the stack, so at least there is no confusion within one call to this function. With this PR and JuliaLang#53797, the global `jl_filename`/`jl_lineno` are used for three purposes: 1. To initialize the filename/lineno used by lowering from `Core.eval`. 2. To give binding deprecation warnings. 3. For `jl_critical_error`. 4. By humans in the debugger. I think 3 and 4 are fine, they are exceptional cases. Case 2, I think could be changed to plumb through locations explicitly, but it's a bit annoying, so I didn't tackle it here. Case 1, I think can probably just be changed to consistently initialize, and if you want a proper line number, you need to put it in there explicitly. However, I didn't change that in this PR, because I think it could be slightly breaking, so should be pkgeval'd.
Configuration menu - View commit details
-
Copy full SHA for 9145571 - Browse repository at this point
Copy the full SHA 9145571View commit details -
also check that UUID of project is non-null when treating it as a pac…
…kage (JuliaLang#53789) Fixes JuliaLang#53788
Configuration menu - View commit details
-
Copy full SHA for 3e37e17 - Browse repository at this point
Copy the full SHA 3e37e17View commit details -
precompilepkgs: simplify custom config printing if only one (JuliaLan…
…g#53805) Currently it's a bit excessive in the `Pkg.test` precompile job ![Screenshot 2024-03-20 at 12 04 03 PM](https://github.com/JuliaLang/julia/assets/1694067/7600f0b8-6e4b-43b2-9c42-c8d5d16b8d57) This PR ``` Precompiling project for configuration --code-coverage=none --color=yes --check-bounds=yes --warn-overwrite=yes --depwarn=yes --inline=yes --startup-file=no --track-allocation=none... 354.9 ms ✓ RFFT 1 dependency successfully precompiled in 1 seconds. 38 already precompiled. ``` Pkg could also just set the non-default flags to minimize the list.
Configuration menu - View commit details
-
Copy full SHA for 9291845 - Browse repository at this point
Copy the full SHA 9291845View commit details -
Revert "small changes to make Base more statically compileable" (Juli…
…aLang#53808) Reverts JuliaLang#53778 which appears to have introduced a windows failure See JuliaLang#53778 (comment)
Configuration menu - View commit details
-
Copy full SHA for d68a04e - Browse repository at this point
Copy the full SHA d68a04eView commit details
Commits on Mar 23, 2024
-
Fixes JuliaDebug/Cthulhu.jl#541 by picking up libuv/libuv@3ecce91.
Configuration menu - View commit details
-
Copy full SHA for 5ed51d3 - Browse repository at this point
Copy the full SHA 5ed51d3View commit details -
reland "small changes to make Base more statically compileable (Julia…
…Lang#53778)" (JuliaLang#53820) This makes it easier to fully-statically-type Base and init methods. The changes are from gb/small-image2.
Configuration menu - View commit details
-
Copy full SHA for 6172020 - Browse repository at this point
Copy the full SHA 6172020View commit details -
REPL: Expand macros before looking for
using
statements (JuliaLang#……53821) Currently, in order to give the nice prompt for missing packages, we look for any `using`/`import` statements in the AST before evaluation. However, this misses any `using` statements introduced by macros: ``` julia> using Pkg julia> using BenchmarkTools │ Package BenchmarkTools not found, but a package named BenchmarkTools is │ available from a registry. │ Install package? │ (@v1.11) pkg> add BenchmarkTools └ (y/n/o) [y]: n ERROR: ArgumentError: Package BenchmarkTools not found in current path. - Run `import Pkg; Pkg.add("BenchmarkTools")` to install the BenchmarkTools package. Stacktrace: [1] macro expansion @ Base ./loading.jl:1781 [inlined] [2] macro expansion @ Base ./lock.jl:267 [inlined] [3] __require(into::Module, mod::Symbol) @ Base ./loading.jl:1762 [4] #invoke_in_world#3 @ Base ./essentials.jl:963 [inlined] [5] invoke_in_world @ Base ./essentials.jl:960 [inlined] [6] require(into::Module, mod::Symbol) @ Base ./loading.jl:1755 julia> macro foo() :(using BenchmarkTools) end @foo (macro with 1 method) julia> @foo ERROR: ArgumentError: Package BenchmarkTools not found in current path. - Run `import Pkg; Pkg.add("BenchmarkTools")` to install the BenchmarkTools package. Stacktrace: [1] macro expansion @ Base ./loading.jl:1781 [inlined] [2] macro expansion @ Base ./lock.jl:267 [inlined] [3] __require(into::Module, mod::Symbol) @ Base ./loading.jl:1762 [4] #invoke_in_world#3 @ Base ./essentials.jl:963 [inlined] [5] invoke_in_world @ Base ./essentials.jl:960 [inlined] [6] require(into::Module, mod::Symbol) @ Base ./loading.jl:1755 [7] top-level scope @ REPL[4]:1 ``` Generally, it doesn't matter, but embedded DSLs may want to do this kind of thing, so we might as well try to support it.
Configuration menu - View commit details
-
Copy full SHA for 63e365f - Browse repository at this point
Copy the full SHA 63e365fView commit details -
Add docstring for Base.Sort.SMALL_ALGORITHM (JuliaLang#53807)
Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> Co-authored-by: Steven G. Johnson <stevenj@mit.edu>
Configuration menu - View commit details
-
Copy full SHA for 243f67d - Browse repository at this point
Copy the full SHA 243f67dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bd7343 - Browse repository at this point
Copy the full SHA 9bd7343View commit details -
add code loading + precompilation support for workspaces (JuliaLang#5…
…3653) This is similar to workspaces in cargo where multiple projects share a manifest https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html and upon resolving the dependencies and compat of all projects in the workspace is adhered to. The idea is to use this for e.g. test, doc environments where you want to "overlay" a dependency graph on top of a base one. The code change in Base adds support for the code loading and precompilation part of this, those changes are: - Finding the manifest from any active project in the workspace - Merge preferences among projects in a workspace. - Allowing one to pass `manifest=true` to `precompilepkgs` to compile every package in the manifest. - The effect of giving no packages to `precompilepkgs` was changed from compiling all packages in the manifest to only those in the active project (which is equivalent in case of no workspace being used but different when it is used).
Configuration menu - View commit details
-
Copy full SHA for 4a2c593 - Browse repository at this point
Copy the full SHA 4a2c593View commit details
Commits on Mar 25, 2024
-
create phantom task for GC threads (JuliaLang#53815)
A common idiom used throughout the codebase is to get a pointer to thread-local-state through `jl_current_task->ptls`. Create a phantom task for GC threads so that we can make use of this idiom when running in the GC threads as well. Idea originally suggested by @vchuravy, bugs are mine.
Configuration menu - View commit details
-
Copy full SHA for 9636ef7 - Browse repository at this point
Copy the full SHA 9636ef7View commit details -
Add Xoshiro reference to Random module docstring (JuliaLang#53784)
Since currently `Xoshiro` is a default random number generator I propose to add it to the docstring of `Random` module.
Configuration menu - View commit details
-
Copy full SHA for 944f180 - Browse repository at this point
Copy the full SHA 944f180View commit details -
update MPFR to 4.2.1 (JuliaLang#53837)
MPFR 4.2.1 was released on 22 August 2023. It contains bugfixes.
Configuration menu - View commit details
-
Copy full SHA for 61caaa8 - Browse repository at this point
Copy the full SHA 61caaa8View commit details
Commits on Mar 26, 2024
-
Update nghttp2 to 1.60.0 (JuliaLang#53842)
Released 1st March 2024: https://github.com/nghttp2/nghttp2/releases/tag/v1.60.0
Configuration menu - View commit details
-
Copy full SHA for cd523fe - Browse repository at this point
Copy the full SHA cd523feView commit details -
Update patchelf to 0.18.0 (JuliaLang#53845)
Released Apr 23, 2023: https://github.com/NixOS/patchelf/releases/tag/0.18.0
Configuration menu - View commit details
-
Copy full SHA for 324e353 - Browse repository at this point
Copy the full SHA 324e353View commit details -
update PCRE2 to 10.43.0 (JuliaLang#53838)
Released on 16 February 2024. Among the changes is support for Unicode 15.0.0
Configuration menu - View commit details
-
Copy full SHA for bf9079a - Browse repository at this point
Copy the full SHA bf9079aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 018152f - Browse repository at this point
Copy the full SHA 018152fView commit details -
lowering: Don't bother rewrapping bare linenumbers in hygienic-scope (J…
…uliaLang#53850) JuliaInterpreter tries to do some very questionable pre-lowering introspection to find line numbers, but doesn't properly handle hygienic scope. That should be fixed, but as I was about to put in a hack there, I figured we might as well not bother re-wrapping bare LineNumberNodes in hygienic scopes. They just get discarded again immediately anyway. No functional change in that this is semantically equivalent to what we had before, just with a slightly more compact lowering result and additional JuliaInterpreter test passing.
Configuration menu - View commit details
-
Copy full SHA for 4607d53 - Browse repository at this point
Copy the full SHA 4607d53View commit details -
🤖 [master] Bump the Pkg stdlib from 6859d6857 to 162634c56 (JuliaLang…
…#53846) Stdlib: Pkg URL: https://github.com/JuliaLang/Pkg.jl.git Stdlib branch: master Julia branch: master Old commit: 6859d6857 New commit: 162634c56 Julia version: 1.12.0-DEV Pkg version: 1.12.0 Bump invoked by: @KristofferC Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: JuliaLang/Pkg.jl@6859d68...162634c ``` $ git log --oneline 6859d6857..162634c56 162634c56 Add workspace feature (JuliaLang#3841) a4ec712eb Remove outdated UUID instructions (JuliaLang#3855) 9c6356fa9 collect e.g. weak deps from project even if it is not a package (JuliaLang#3852) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
Configuration menu - View commit details
-
Copy full SHA for 86a697c - Browse repository at this point
Copy the full SHA 86a697cView commit details -
Update libgit2 to 1.8.0 (JuliaLang#53840)
According to the release notes, three breaking (ABI) changes are handled here: - `GIT_CONFIG_LEVEL_WORKTREE` constant (and modification to value of `GIT_CONFIG_LEVEL_APP`) - `git_config_entry` structure - `git_push_options` structure https://github.com/libgit2/libgit2/releases/tag/v1.8.0
Configuration menu - View commit details
-
Copy full SHA for 64de065 - Browse repository at this point
Copy the full SHA 64de065View commit details -
precompilepkgs: don't confuse single package in project with requesti…
…ng single package (JuliaLang#53865) Followup to JuliaLang#53653 Separate from JuliaLang#53862 because this one is just broken on master Without this if you precompile a project with a single dep it thought the user was calling `precompile Dep` or `using Dep` so went into live print mode, which is confusing.
Configuration menu - View commit details
-
Copy full SHA for 653c0ae - Browse repository at this point
Copy the full SHA 653c0aeView commit details
Commits on Mar 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fc2d3af - Browse repository at this point
Copy the full SHA fc2d3afView commit details -
chore: fix some comments (JuliaLang#53861)
Signed-off-by: crazeteam <lilujing@outlook.com>
Configuration menu - View commit details
-
Copy full SHA for d4d34b9 - Browse repository at this point
Copy the full SHA d4d34b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6737a1d - Browse repository at this point
Copy the full SHA 6737a1dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f413b01 - Browse repository at this point
Copy the full SHA f413b01View commit details -
Harmonize and add docs for
--math-mode
(JuliaLang#53818)The behavior was changed and the CLI doc was removed in JuliaLang#41638, though we current still allow users to selectively use the `@fastmath` macro. This adds back the CLI docs and makes a minor clarification about behavior. Co-authored-by: Matt Bauman <mbauman@juliahub.com>
Configuration menu - View commit details
-
Copy full SHA for 7a62dff - Browse repository at this point
Copy the full SHA 7a62dffView commit details -
Print more info when backtrace test fails (JuliaLang#53874)
This test fails intermittently on win32. Let's try to print some more info in that case to see if we can find out anything.
Configuration menu - View commit details
-
Copy full SHA for a3616a8 - Browse repository at this point
Copy the full SHA a3616a8View commit details -
inference: Fix handling of :throw_undef_if_not (JuliaLang#53875)
This stmt type doesn't usually get introduced until IR conversion, but we do allow it in inference (to allow it to be emitted by packages like Diffractor). However, we didn't have a test for it, so the code path grew a bug. Fix that and also allow this as a frontend form, so it can be tested without resorting to generated functions.
Configuration menu - View commit details
-
Copy full SHA for 0e2409a - Browse repository at this point
Copy the full SHA 0e2409aView commit details -
Configuration menu - View commit details
-
Copy full SHA for bb3b09d - Browse repository at this point
Copy the full SHA bb3b09dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f4866b7 - Browse repository at this point
Copy the full SHA f4866b7View commit details -
opaque_closure: Lookup optimized oc source inside code instance (Juli…
…aLang#53878) This is an alternative to JuliaLang#53852. I don't think it's semantically legal to put optimized source into the :source field of a method, but it should be fine to just look it up from the CodeInstance. That said, this is a bit of an unusual configuration. In particular it wasn't even reachable with the surface APIs, which assumed that inferred IR was always supposed to be compiled.
Configuration menu - View commit details
-
Copy full SHA for 4ee1022 - Browse repository at this point
Copy the full SHA 4ee1022View commit details
Commits on Mar 28, 2024
-
inference: Fix correctness and ensure termination in the presence of …
…PhiNodes (JuliaLang#53876) There's two related, but distinct, issues here: 1. We were not using `tmerge` for merging SSA results inside loops, which could cause infinite looping. In the absence of PhiNodes, things usually have to go through a slot to be able to make the round trip, which would usually put a PhiNode on the path, but it's possible there may be other ways to smuggle things around (e.g. through exception handling). 2. We were not properly accounting for the fact that PhiNode uses do not need to be linearly ordered in the same BB, so we were getting the type of the testcase here incorrect by failing to re-schedule the PhiNode. The first of these shows up in the Diffractor test suite, the second was found by writing the test case.
Configuration menu - View commit details
-
Copy full SHA for e07c0f1 - Browse repository at this point
Copy the full SHA e07c0f1View commit details -
RNG reproducibility discussion - rm confusing ref to MenneTwister (Ju…
…liaLang#53879) There was an odd phrase "in particular if `MersenneTwister` is used" in the reproducibility discussion, which made it seem like the discussion was specific to `MersenneTwister` (which we don't even use by default anymore). I just deleted this clause.
Configuration menu - View commit details
-
Copy full SHA for 2a944fa - Browse repository at this point
Copy the full SHA 2a944faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6f51966 - Browse repository at this point
Copy the full SHA 6f51966View commit details -
optimize: Delete incoming unreachable edges from PhiNode (JuliaLang#5…
…3877) Incoming IR very rarely contains PhiNodes, but we do allow it to make things easier on downstream packages like Diffractor that want to generate the same code structures in both typed and untyped mode. However, this does of course mean that once inference is finished, any PhiNodes in the original source must be adjusted to maintain IRCode invariants. One particular important invariant here is that the edges list in a PhiNode must match the predecessor list, so in particular if a predecessor becomes unreachable during inference, we must filter that edge before passing it on to the optimizer. --------- Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 89d59a9 - Browse repository at this point
Copy the full SHA 89d59a9View commit details -
Consistently format Julia in the docstring for Base.DEPOT_PATH (Julia…
…Lang#53873) It is unclear what `Julia` exactly means in this docstring, but the two occurences of the word have different formatting. The guidelines say > in docstrings refer to the language as "Julia" and the executable as "`julia`". Given that we are not talking about the executable here, I removed the backticks.
Configuration menu - View commit details
-
Copy full SHA for 3530c8f - Browse repository at this point
Copy the full SHA 3530c8fView commit details -
Utilize bitshifts correctly in signals-mach.c when storing/reading th…
…e previous GC state (JuliaLang#53868) I have not succeed in writing a test for this, but this was found on a CI hang together with @Keno and @vtjnash. In essence if we hit a safepoint while GC_SAFE things can go wrong <img width="748" alt="image" src="https://github.com/JuliaLang/julia/assets/28694980/7d8170ee-11ab-43de-9bb1-9219aa5a2d80">
Configuration menu - View commit details
-
Copy full SHA for 1e50a99 - Browse repository at this point
Copy the full SHA 1e50a99View commit details -
use flisp cprimitives for lowering large longs (JuliaLang#53860)
This addresses the previous limitation to `Base.literal_pow`, where it would only apply to literals between $\pm2\^{61}$ (or 29).
Configuration menu - View commit details
-
Copy full SHA for b18d2cc - Browse repository at this point
Copy the full SHA b18d2ccView commit details
Commits on Mar 29, 2024
-
fix
NoMethodError
ofchanged_lineinfo
(JuliaLang#53890)I will add a test case for this later. xref: https://github.com/JuliaDiff/Diffractor.jl/actions/runs/8476871477/job/23226991456
Configuration menu - View commit details
-
Copy full SHA for a3438d0 - Browse repository at this point
Copy the full SHA a3438d0View commit details -
fix typos in codegen.cpp (JuliaLang#53888)
Not sure why this typo didn't mess up the CI, but it looks like a clear problem, let's correct it. I'd appreciate any idea on how to exercise this change. - fixes JuliaDebug/JuliaInterpreter.jl#621
Configuration menu - View commit details
-
Copy full SHA for 11517f2 - Browse repository at this point
Copy the full SHA 11517f2View commit details -
Revert change to checksum for llvm-julia (JuliaLang#53870)
Should fix JuliaLang#53399. I think this is the correct fix. Makes it so you can build Julia with `USE_BINARYBUILDER=0`.
Configuration menu - View commit details
-
Copy full SHA for b2e8eb2 - Browse repository at this point
Copy the full SHA b2e8eb2View commit details -
fix relocatable upgrades test (JuliaLang#53889)
Fixes JuliaLang#53885 Not the first time MacOS serving tempdir via a symlink has caused obscure issues..
Configuration menu - View commit details
-
Copy full SHA for 09b356f - Browse repository at this point
Copy the full SHA 09b356fView commit details -
add initial support for OpenBSD (JuliaLang#53633)
These commits add initial support of OpenBSD in julia. It isn't strictly enough to make julia runable on OpenBSD (see JuliaLang#53632), but it covers the larger part. --------- Co-authored-by: Max Horn <max@quendi.de> Co-authored-by: Oscar Smith <oscardssmith@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for e26d140 - Browse repository at this point
Copy the full SHA e26d140View commit details -
curl: fix RPATH to find nghttp2 and libssh2 (JuliaLang#53894)
Fixes JuliaLang#48820 I think this is the proper fix, and there might be a configure option to curl or nghttp2 to set it, but I haven't been found it. So we'll do it that way.
Configuration menu - View commit details
-
Copy full SHA for d10a0fb - Browse repository at this point
Copy the full SHA d10a0fbView commit details
Commits on Mar 30, 2024
-
no need to check whether mq_master is nil in the GC work-stealing loop (
JuliaLang#53899) This is not needed after JuliaLang#53355.
Configuration menu - View commit details
-
Copy full SHA for 24ff6f4 - Browse repository at this point
Copy the full SHA 24ff6f4View commit details -
curl: remove patch (JuliaLang#53892)
This upstream patch needs to be removed because in latest curl, it's already applied. This currently prevents a build from source. (And I am wondering why that was not caught?)
Configuration menu - View commit details
-
Copy full SHA for 313f933 - Browse repository at this point
Copy the full SHA 313f933View commit details
Commits on Mar 31, 2024
-
Copy for
CartesianIndices
/LinearIndices
need not materialize (Jul……iaLang#53901) Currently, ```julia julia> C = CartesianIndices((1:2, 1:2)) CartesianIndices((1:2, 1:2)) julia> copy(C) 2×2 Matrix{CartesianIndex{2}}: CartesianIndex(1, 1) CartesianIndex(1, 2) CartesianIndex(2, 1) CartesianIndex(2, 2) ``` However, seeing that a `CartesianIndices` is equivalent to an n-D range, there doesn't seem to be a need to materialize the result. This PR also ensures that `copy(C)` returns the same type as `C`. After this PR: ```julia julia> C = CartesianIndices((1:2, 1:2)) CartesianIndices((1:2, 1:2)) julia> copy(C) CartesianIndices((1:2, 1:2)) ``` Also, a similar change for `LinearIndices` is added.
Configuration menu - View commit details
-
Copy full SHA for a3f710e - Browse repository at this point
Copy the full SHA a3f710eView commit details
Commits on Apr 1, 2024
-
Add
Base.isrelocatable(pkg)
(JuliaLang#53906)This PR adds a utility function `isrelocatable(pkg)` that can be used to check if `pkg` is already precompiled and if the associated cachefile is relocatable. The reason to implicitly perform the `isprecompiled` check is that the exact same computation needs to be done to find the right `.ji`. A `pkg` is said to be relocatable if 1. all `include()` paths are relocatable (they start with `@depot`), 2. all `include_dependency()` paths are relocatable (they start with `@depot` and `track_content=true` was used to include them).
Configuration menu - View commit details
-
Copy full SHA for e9d25ca - Browse repository at this point
Copy the full SHA e9d25caView commit details -
Fix calling LLVM_SIZE on windows (JuliaLang#53902)
Per JuliaCI/julia-buildkite#224 (comment), the path needs to be updated so that `llvm-size` can find `libLLVM.dll`.
Configuration menu - View commit details
-
Copy full SHA for 657ce04 - Browse repository at this point
Copy the full SHA 657ce04View commit details -
optimizer: allow multiple inlining again (JuliaLang#53911)
Before JuliaLang#52415 we could do multiple rounds of inlining on IR that had already been inlined, but this was no longer possible. By removing the assertion that was introduced in JuliaLang#52415, this commit makes it possible to do multi-inlining once more. Note that to fully solve this, though, we need to enhance `ir_inline_linetable!` so it can add new linetables to an inner linetable that's already been inlined. This commit notes that enhancement as something we need to do later, leaving it with a TODO comment.
Configuration menu - View commit details
-
Copy full SHA for 1fedcab - Browse repository at this point
Copy the full SHA 1fedcabView commit details -
More emoji completions! 🫠 (JuliaLang#53913)
Happy April fools day! 🪿 Let's celebrate with a very important PR 🩵 This PR updates the REPL completion list with all the fun new emoji from unicode 15.1! This makes Julia ready for the up-and-coming programmzers who want the latest trends in emoji coding! 🫶🫶 Fresh new emoji for fresh new ideas! 🫶🫶 Some of the new emoji include: - `\:biting_lip:` 🫦 for when the IO code gets *spicy* - `\:beans:` 🫘 beanssss - `\:mirror_ball:` 🪩 for parties! - `\:playground_slide:` 🛝 for really fun code :) Thanks to @oxinabox for the future-proof script! Enjoy!!
Configuration menu - View commit details
-
Copy full SHA for 0ac60b7 - Browse repository at this point
Copy the full SHA 0ac60b7View commit details
Commits on Apr 2, 2024
-
documentation followup for "invert linetable representation (JuliaLan…
…g#52415)" (JuliaLang#53781) - fix up added documents: eb05b4f - ~~set up a specific type to capture the 3-set data of `codelocs`: 6afde4b~~ (moved to a separate PR)
Configuration menu - View commit details
-
Copy full SHA for 718b988 - Browse repository at this point
Copy the full SHA 718b988View commit details -
Avoid repeated precompilation when loading from non-relocatable cache…
…files (JuliaLang#53905) Fixes JuliaLang#53859 (comment), which was actually fixed before in JuliaLang#52346, but JuliaLang#52750 undid that fix. This PR does not directly address JuliaLang#53859, because I can not reproduce it atm. --- The `@depot` resolution logic for `include()` files is adjusted as follows: 1. (new behavior) If the cache is not relocatable because of an absolute path, we ignore that path for the depot search. Recompilation will be triggered by `stale_cachefile()` if that absolute path does not exist. Previously this caused any `@depot` tags to be not resolved and so trigger recompilation. 2. (new behavior) If we can't find a depot for a relocatable path, we still replace it with the depot we found from other files. Recompilation will be triggered by `stale_cachefile()` because the resolved path does not exist. 3. (this behavior is kept) We require that relocatable paths all resolve to the same depot. 4. (new behavior) We no longer use the first matching depot for replacement, but instead we explicitly check that all resolve to the same depot. This has two reasons: - We want to scan all source files anyways in order to provide logs for 1. and 2. above, so the check is free. - It is possible that a depot might be missing source files. Assume that we have two depots on `DEPOT_PATH`, `depot_complete` and `depot_incomplete`. If `DEPOT_PATH=["depot_complete","depot_incomplete"]` then no recompilation shall happen, because `depot_complete` will be picked. If `DEPOT_PATH=["depot_incomplete","depot_complete"]` we trigger recompilation and hopefully a meaningful error about missing files is thrown. If we were to just select the first depot we find, then whether recompilation happens would depend on whether the first relocatable file resolves to `depot_complete` or `depot_incomplete`.
Configuration menu - View commit details
-
Copy full SHA for d8d3842 - Browse repository at this point
Copy the full SHA d8d3842View commit details -
Configuration menu - View commit details
-
Copy full SHA for e99627f - Browse repository at this point
Copy the full SHA e99627fView commit details -
Configuration menu - View commit details
-
Copy full SHA for b70e1ae - Browse repository at this point
Copy the full SHA b70e1aeView commit details -
Buildkite Test Analytics: fix failure_expanded
The `failure_expanded` attribute of a test result is an _array_ of objects, not a single object. I believe this is to support the possibility of multiple failure reasons in a single test case, although I'm not sure if that's used anywhere. https://buildkite.com/docs/test-analytics/importing-json#json-test-results-data-reference-test-result-objects
Configuration menu - View commit details
-
Copy full SHA for 1256e3e - Browse repository at this point
Copy the full SHA 1256e3eView commit details
Commits on Apr 3, 2024
-
note that REPL doesn't show "nothing" values (JuliaLang#53930)
It seemed worth documenting that display of `nothing` is suppressed by the REPL (and similar environments, e.g. IJulia).
Configuration menu - View commit details
-
Copy full SHA for 94f887b - Browse repository at this point
Copy the full SHA 94f887bView commit details -
minor followups on the linetable changes (JuliaLang#53921)
- remove unnecessary `Core.` accessors to `DebugInfo` within `Core.Compiler` - improve the type of `DebugInfoStream`'s `edges` field
Configuration menu - View commit details
-
Copy full SHA for 854170a - Browse repository at this point
Copy the full SHA 854170aView commit details -
oc: code_typed support for optimized opaque closures (JuliaLang#53929)
Reflection version of JuliaLang#53878. --------- Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for a69aa30 - Browse repository at this point
Copy the full SHA a69aa30View commit details -
fix typo in comment (JuliaLang#53936)
Signed-off-by: crazehang <zhangrenzhong@outlook.com>
crazehang authoredApr 3, 2024 Configuration menu - View commit details
-
Copy full SHA for c749147 - Browse repository at this point
Copy the full SHA c749147View commit details -
make @fastmath mirror how lowering applies literal_pow (JuliaLang#53819)
The expressions `a^x` and `@fastmath a^x` are now producing equivalent results (apart from floating point accuracy) in the case of literal integer `x`. The logic in the `fastmath` macro, trying to mimic the behaviour of the compiler is fixed. Fixes JuliaLang#53817 --------- Co-authored-by: Oscar Smith <oscardssmith@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for d7dc9a8 - Browse repository at this point
Copy the full SHA d7dc9a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 12c9391 - Browse repository at this point
Copy the full SHA 12c9391View commit details -
fix macros
@which
,@edit
,@functionloc
,@less
for `literal_po……w` case. (JuliaLang#53713) The macros `@which`, `@edit`, `@functionloc`, `@less` from `InteractiveUtils`, if applied to the case of literal powers, like `a^12` or `2^-1` used to direct the user to function `^`, while the compiler generates code for `Base.literal_pow`. Now the user is shown the code the compiler generates. Fixes JuliaLang#53691 Fixes JuliaLang#43337 Fixes JuliaLang#21014 Co-authored-by: Matt Bauman <mbauman@juliahub.com>
Configuration menu - View commit details
-
Copy full SHA for 286e339 - Browse repository at this point
Copy the full SHA 286e339View commit details
Commits on Apr 4, 2024
-
Use
copyto!
in convertingDiagonal
/Bidiagonal
/Tridiagonal
to ……`Matrix` (JuliaLang#53912) With this, we may convert a structured matrix to `Matrix` even if its `eltype` doesn't support `zero(T)`, as long as we may index into the matrix and the elements have `zero` defined for themselves. This makes the following work: ```julia julia> D = Diagonal(fill(Diagonal([1,3]), 2)) 2×2 Diagonal{Diagonal{Int64, Vector{Int64}}, Vector{Diagonal{Int64, Vector{Int64}}}}: [1 0; 0 3] ⋅ ⋅ [1 0; 0 3] julia> Matrix{eltype(D)}(D) 2×2 Matrix{Diagonal{Int64, Vector{Int64}}}: [1 0; 0 3] [0 0; 0 0] [0 0; 0 0] [1 0; 0 3] ``` We also may materialize partly initialized matrices: ```julia julia> D = Diagonal(Vector{BigInt}(undef, 2)) 2×2 Diagonal{BigInt, Vector{BigInt}}: #undef ⋅ ⋅ #undef julia> Matrix{eltype(D)}(D) 2×2 Matrix{BigInt}: #undef 0 0 #undef ``` The performance seems identical for numeric matrices.
Configuration menu - View commit details
-
Copy full SHA for 19919b7 - Browse repository at this point
Copy the full SHA 19919b7View commit details -
Add
zero
forBase.TwicePrecision
(JuliaLang#53787)Since `zero` exists for a `TwicePrecision` type, it makes sense for a method to exist for an instance as well. Fixes JuliaLang#52713, which was a regression from v1.9.1. After this, the following may be displayed without errors: ```julia julia> r = 1.0*(1:5) .+ im 1.0 + 1.0im:Base.TwicePrecision{Float64}(1.0, 0.0):5.0 + 1.0im ``` However, in this case, the step is a `Base.TwicePrecision`, which seems to be an implementation detail that's leaking out, although addressing this may be a separate PR.
Configuration menu - View commit details
-
Copy full SHA for cb4e107 - Browse repository at this point
Copy the full SHA cb4e107View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0cd3164 - Browse repository at this point
Copy the full SHA 0cd3164View commit details -
Fixes for allowing
:throw_undef_if_not
on the frontend (JuliaLang#5……3944) JuliaLang#53875 allowed `:throw_undef_if_not` as a frontend form. However, the `UndefVarError` being tested is thrown because the first argument is resolved to a global ref: ```julia julia> @eval function has_tuin() $(Expr(:throw_undef_if_not, :x, false)) end has_tuin (generic function with 1 method) julia> @code_lowered has_tuin() # master CodeInfo( 1 ─ %1 = $(Expr(:throw_undef_if_not, :(Main.x), false)) └── return %1 ) julia> @code_lowered has_tuin() # this pr CodeInfo( 1 ─ %1 = $(Expr(:throw_undef_if_not, :x, false)) └── return %1 ) ``` This change skips this global ref resolution for the first argument and fixes a typo which would throw an error in case of non-const second argument.
Configuration menu - View commit details
-
Copy full SHA for 19fffe1 - Browse repository at this point
Copy the full SHA 19fffe1View commit details -
Configuration menu - View commit details
-
Copy full SHA for c371e4c - Browse repository at this point
Copy the full SHA c371e4cView commit details -
Buildkite Test Analytics: fix
failure_expanded
(JuliaLang#53706)This pull request changes `failure_expanded` from `Dict{String, Any}` to `Vector{Dict{String, Any}}` to fix a JSON schema issue in the [Bootleg JSON writer](https://github.com/JuliaLang/julia/blob/7eb5cb89fb938a1dc67efa3861b25562767a7bbe/test/buildkitetestjson.jl#L13) 🏴☠️ which is responsible for producing JSON test results for [Buildkite Test Analytics](https://buildkite.com/test-analytics). The [`failure_expanded` attribute of a test result](https://buildkite.com/docs/test-analytics/importing-json#json-test-results-data-reference-test-result-objects) is a JSON array of objects, rather than a single object. I believe this is to support the possibility of multiple failure reasons in a single test case, although I'm not sure if that's used anywhere. I believe the associated uploads (batches of up to 5,000 results) are currently getting a successful HTTP 202 Accepted response, but the response body will contain an error for each test case that had a non-array `failure_expanded`, meaning those test cases will be dropped: ```http HTTP/1.1 202 Accepted Content-Type: application/json; charset=utf-8 Date: Tue, 12 Mar 2024 13:11:46 GMT X-Request-Id: a35322f6-9990-4b8e-8895-d62bd6e10935 { "id": "55ac3b92-…", "run_id": "bfa6de98-…", "queued": 4998, "skipped": 2, "errors": [ "Validation failed: Failure expanded must be an Array", "Validation failed: Failure expanded must be an Array" ], "run_url": "http://buildkite.com/…" } ``` Rather than make the Buildkite API more permissive, I figured I'd come and fix it upstream, and write my first few tiny lines of Julia while I'm at it 😁 I've verified that the adjusted JSON output it accepted by our ingestion system. --- For verification, I added an error to an arbitrarily selected test (because [workers don't return information about passing/broken tests, only errors or failure](https://github.com/JuliaLang/julia/blob/7eb5cb89fb938a1dc67efa3861b25562767a7bbe/test/runtests.jl#L363-L365)): ```patch diff --git a/test/char.jl b/test/char.jl index 1d3579013a..582423e8a3 100644 --- a/test/char.jl +++ b/test/char.jl @@ -1,6 +1,7 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license @testset "basic properties" begin + @test throw(ErrorException("testing Buildkite JSON")) @test typemax(Char) == reinterpret(Char, typemax(UInt32)) @test typemin(Char) == Char(0) @test typemax(Char) == reinterpret(Char, 0xffffffff) ``` … and then `CI=true ./julia test/runtests.jl char` which produces `test/results_1.json`. Before: ```json [ { "file_name": "/Users/pda/code/julia/test/char.jl", "history": { "duration": 2.123565912246704, "start_at": 1.710245465232599e9, "end_at": 1.710245467356165e9 }, "name": "test_error: throw(ErrorException(\"testing Buildkite JSON\"))", "location": "/Users/pda/code/julia/test/char.jl:4", "failure_reason": "Exception (unexpectedly) thrown during test", "scope": "/Overall/char", "failure_expanded": { "backtrace": [ " [1] top-level scope", " @ ~/code/julia/test/char.jl:4", " [2] macro expansion", " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", " [3] macro expansion", " @ ~/code/julia/test/char.jl:4 [inlined]", " [4] macro expansion", " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", " [5] macro expansion", " @ ~/code/julia/test/char.jl:4 [inlined]" ], "expanded": [ "testing Buildkite JSON" ] }, "id": "e9272117-d5f5-f542-039b-cfd3d2e8f33a", "result": "failed" } ] ``` After: ```json [ { "file_name": "/Users/pda/code/julia/test/char.jl", "history": { "duration": 2.123565912246704, "start_at": 1.710245465232599e9, "end_at": 1.710245467356165e9 }, "name": "test_error: throw(ErrorException(\"testing Buildkite JSON\"))", "location": "/Users/pda/code/julia/test/char.jl:4", "failure_reason": "Exception (unexpectedly) thrown during test", "scope": "/Overall/char", "failure_expanded": [ { "backtrace": [ " [1] top-level scope", " @ ~/code/julia/test/char.jl:4", " [2] macro expansion", " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", " [3] macro expansion", " @ ~/code/julia/test/char.jl:4 [inlined]", " [4] macro expansion", " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", " [5] macro expansion", " @ ~/code/julia/test/char.jl:4 [inlined]" ], "expanded": [ "testing Buildkite JSON" ] } ], "id": "e9272117-d5f5-f542-039b-cfd3d2e8f33a", "result": "failed" } ] ``` Diff: ```patch --- buildkite-before.json 2024-03-12 23:08:26 +++ buildkite-after.json 2024-03-12 23:07:58 @@ -10,23 +10,25 @@ "location": "/Users/pda/code/julia/test/char.jl:4", "failure_reason": "Exception (unexpectedly) thrown during test", "scope": "/Overall/char", - "failure_expanded": { - "backtrace": [ - " [1] top-level scope", - " @ ~/code/julia/test/char.jl:4", - " [2] macro expansion", - " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", - " [3] macro expansion", - " @ ~/code/julia/test/char.jl:4 [inlined]", - " [4] macro expansion", - " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", - " [5] macro expansion", - " @ ~/code/julia/test/char.jl:4 [inlined]" - ], - "expanded": [ - "testing Buildkite JSON" - ] - }, + "failure_expanded": [ + { + "backtrace": [ + " [1] top-level scope", + " @ ~/code/julia/test/char.jl:4", + " [2] macro expansion", + " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", + " [3] macro expansion", + " @ ~/code/julia/test/char.jl:4 [inlined]", + " [4] macro expansion", + " @ ~/code/julia/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:164 [inlined]", + " [5] macro expansion", + " @ ~/code/julia/test/char.jl:4 [inlined]" + ], + "expanded": [ + "testing Buildkite JSON" + ] + } + ], "id": "e9272117-d5f5-f542-039b-cfd3d2e8f33a", "result": "failed" } ```
Configuration menu - View commit details
-
Copy full SHA for 66a4fa7 - Browse repository at this point
Copy the full SHA 66a4fa7View commit details -
Make all command-line options documented in all related files (JuliaL…
…ang#53826) I checked and updated the three related files to make sure command-line documentations are the same in all of them. Previously mentioned in JuliaLang#52645 (comment) --------- Co-authored-by: Matt Bauman <mbauman@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for a931fbe - Browse repository at this point
Copy the full SHA a931fbeView commit details
Commits on Apr 5, 2024
-
Add missing methods for UniformScaling (JuliaLang#53949)
The methods `float`, `cis`, `sincos` and `sincosd` are defined for matrices, so it makes sense for these to be defined for a `UniformScaling` as well. E.g.: ```julia julia> float(2I) UniformScaling{Float64} 2.0*I julia> sincos(2I) (UniformScaling{Float64}(0.9092974268256817), UniformScaling{Float64}(-0.4161468365471424)) ```
Configuration menu - View commit details
-
Copy full SHA for e64fa86 - Browse repository at this point
Copy the full SHA e64fa86View commit details -
Configuration menu - View commit details
-
Copy full SHA for 57bbff6 - Browse repository at this point
Copy the full SHA 57bbff6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ea67a9 - Browse repository at this point
Copy the full SHA 6ea67a9View commit details -
make loading work with a
entryfile
entry in the manifest file (Juli……aLang#53939) also soft deprecate the `path` entry in project file in favour of using `entryfile` instead Fixes the Julia Base part of JuliaLang#53937
Configuration menu - View commit details
-
Copy full SHA for 5f4dec1 - Browse repository at this point
Copy the full SHA 5f4dec1View commit details -
LazyString
inLinearAlgebra.checksquare
error message (JuliaLang#……53961) This reduces dynamic dispatch and makes JET happier. Testing on v1.11: ```julia julia> import LinearAlgebra: checksquare julia> using JET julia> @report_opt checksquare(rand(2,2), rand(2,2)) ═════ 4 possible errors found ═════ ┌ checksquare(::Matrix{Float64}, ::Matrix{Float64}) @ LinearAlgebra /cache/build/builder-amdci4-1/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/LinearAlgebra.jl:307 │┌ string(::String, ::Tuple{Int64, Int64}) @ Base ./strings/io.jl:189 ││┌ print_to_string(::String, ::Tuple{Int64, Int64}) @ Base ./strings/io.jl:150 │││┌ _unsafe_take!(io::IOBuffer) @ Base ./iobuffer.jl:494 ││││┌ wrap(::Type{Array}, m::MemoryRef{UInt8}, l::Int64) @ Base ./array.jl:3101 │││││ failed to optimize due to recursion: wrap(::Type{Array}, ::MemoryRef{UInt8}, ::Int64) ││││└──────────────────── │││┌ print_to_string(::String, ::Vararg{Any}) @ Base ./strings/io.jl:143 ││││ runtime dispatch detected: Base._str_sizehint(%17::Any)::Int64 │││└──────────────────── │││┌ print_to_string(::String, ::Vararg{Any}) @ Base ./strings/io.jl:148 ││││ runtime dispatch detected: print(%59::IOBuffer, %97::Any)::Any │││└──────────────────── │││┌ string(::String, ::Int64, ::String, ::Tuple{Int64}, ::String, ::Int64, ::String, ::Int64, ::String) @ Base ./strings/io.jl:189 ││││ failed to optimize due to recursion: string(::String, ::Int64, ::String, ::Tuple{Int64}, ::String, ::Int64, ::String, ::Int64, ::String) │││└──────────────────── julia> function checksquare(A...) # This PR sizes = Int[] for a in A size(a,1)==size(a,2) || throw(DimensionMismatch(lazy"matrix is not square: dimensions are $(size(a))")) push!(sizes, size(a,1)) end return sizes end checksquare (generic function with 2 methods) julia> @report_opt checksquare(rand(2,2), rand(2,2)) No errors detected ```
Configuration menu - View commit details
-
Copy full SHA for d505c8c - Browse repository at this point
Copy the full SHA d505c8cView commit details -
Use StringMemory instead of StringVector where possible (JuliaLang#53962
) On `1.11.0-alpha2` Old: ```julia @benchmark Base.dec($0x1, $0, $false) BenchmarkTools.Trial: 10000 samples with 994 evaluations. Range (min … max): 33.702 ns … 4.242 μs ┊ GC (min … max): 0.00% … 97.61% Time (median): 37.626 ns ┊ GC (median): 0.00% Time (mean ± σ): 45.787 ns ± 147.794 ns ┊ GC (mean ± σ): 14.53% ± 4.47% ▄▅▆▇█▇▇▅▃▃▂▂▂▁ ▁▂▁▁▁ ▁▁ ▁ ▂ ▄▇███████████████▇▇██████▇█▆▆▄▄▃▄▅▄▆▇████████▆▅▅▇▆▅▆▄▄▅▄▄▄▁▅ █ 33.7 ns Histogram: log(frequency) by time 67.5 ns < Memory estimate: 88 bytes, allocs estimate: 3. ``` New: ```julia BenchmarkTools.Trial: 10000 samples with 995 evaluations. Range (min … max): 27.538 ns … 3.397 μs ┊ GC (min … max): 0.00% … 97.86% Time (median): 30.151 ns ┊ GC (median): 0.00% Time (mean ± σ): 34.547 ns ± 105.101 ns ┊ GC (mean ± σ): 10.37% ± 3.39% ▁ █▆▃ ▁ ▂▂▃▃▅█████▆████▆▄▄▃▃▃▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▁▂▂▂▂▂▁▂▂▂▂▂▂▂▂▂▂▂▂▂ ▃ 27.5 ns Histogram: frequency by time 43.8 ns < Memory estimate: 56 bytes, allocs estimate: 2. ``` Fixes JuliaLang#53950, actually now even faster than `1.10.2`. It doesn't look like the length is ever changed and we don't return these `StringMemory`s so this change should be fine.
Configuration menu - View commit details
-
Copy full SHA for 0e59c9e - Browse repository at this point
Copy the full SHA 0e59c9eView commit details -
TOML: Improve type-stability of BigInt/UInt support (JuliaLang#53955)
From a type-stability perspective, this restores a lot of our behavior before JuliaLang#47903. As it turns out, 10 of the 11 uses of `parse_int` (now called `parse_integer`) introduced in that PR are unnecessary since the TOML format already requires the parsed value to be within a very limited range. Note that this change does not actually revert any functionality (in contrast to JuliaLang#49576)
Configuration menu - View commit details
-
Copy full SHA for 59c3c71 - Browse repository at this point
Copy the full SHA 59c3c71View commit details -
Configuration menu - View commit details
-
Copy full SHA for d963a34 - Browse repository at this point
Copy the full SHA d963a34View commit details
Commits on Apr 6, 2024
-
Explicit namespaces in sort-related docstrings (JuliaLang#53968)
This represents the unexported names by the fully qualified namespace, which makes it simpler to interpret the keyword arguments. Otherwise, for example, it's not obvious where `Forward` comes from in the `sort` docstring. Also, replaces some occurrences of `instance <: Algorithm` by `instance isa Algorithm`, which is the correct relation. This is also closer to English, which helps with readability. --------- Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for c707a53 - Browse repository at this point
Copy the full SHA c707a53View commit details -
Make reshape and view on Memory produce Arrays and delete wrap (Julia…
…Lang#53896) - Make reshape and view with one based indexing on Memory produce Arrays - delete wrap Implements JuliaLang#53552 (comment) --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 273d91e - Browse repository at this point
Copy the full SHA 273d91eView commit details -
LazyString
inDimensionMismatch
error messages in broadcasting (J……uliaLang#53975) This reduces dynamic dispatch, and makes JET happier. Something similar is already used in line 523.
Configuration menu - View commit details
-
Copy full SHA for f7c7410 - Browse repository at this point
Copy the full SHA f7c7410View commit details -
fix minor typo in mktempdir docs (JuliaLang#53977)
This is a minor change, just adding a missing word to a docstring for `Base.Filesystem.mktempdir`
Configuration menu - View commit details
-
Copy full SHA for 4e5bd66 - Browse repository at this point
Copy the full SHA 4e5bd66View commit details -
Fix JuliaLang#52989: DateTime parser would return an error when parsi…
…ng a year string (JuliaLang#53954) Issue JuliaLang#52989. Originally checked on version 1.10.0 but still relevant in the current version in master Bug: When executing the method DateTime to create a DateTime value with a string input only containing a year (ex: "2000") the method returns an 'ArgumentError: Invalid DateTime string' when it should, from what I understood, return a DateTime like 2000-01-01T00:00:00 seeing as if you call the same method with a number indicating a year (ex: 2000) the method returns correctly. Fix: The fix was simple, on the first tryparsenext_base10 block (line 207-211) where a year is parsed from the string the exit condition i > end_pos should jump into 'done' so it returns a correct value instead of 'error'
Configuration menu - View commit details
-
Copy full SHA for 821c608 - Browse repository at this point
Copy the full SHA 821c608View commit details
Commits on Apr 7, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 1febcd6 - Browse repository at this point
Copy the full SHA 1febcd6View commit details -
Support broadcasting over structured block matrices (JuliaLang#53909)
Fix JuliaLang#48664 After this, broadcasting over structured block matrices with matrix-valued elements works: ```julia julia> D = Diagonal([[1 2; 3 4], [5 6; 7 8]]) 2×2 Diagonal{Matrix{Int64}, Vector{Matrix{Int64}}}: [1 2; 3 4] ⋅ ⋅ [5 6; 7 8] julia> D .+ D 2×2 Diagonal{Matrix{Int64}, Vector{Matrix{Int64}}}: [2 4; 6 8] ⋅ ⋅ [10 12; 14 16] julia> cos.(D) 2×2 Matrix{Matrix{Float64}}: [0.855423 -0.110876; -0.166315 0.689109] [1.0 0.0; 0.0 1.0] [1.0 0.0; 0.0 1.0] [0.928384 -0.069963; -0.0816235 0.893403] ``` Such operations show up when using `BlockArrays`. The implementation is a bit hacky as it uses `0I` as the zero element in `fzero`, which isn't really the correct zero if the blocks are rectangular. Nonetheless, this works, as `fzero` is only used to determine if the structure is preserved.
Configuration menu - View commit details
-
Copy full SHA for 243ebc3 - Browse repository at this point
Copy the full SHA 243ebc3View commit details -
Configuration menu - View commit details
-
Copy full SHA for c5a3b65 - Browse repository at this point
Copy the full SHA c5a3b65View commit details
Commits on Apr 8, 2024
-
Test and fix non-int-length bug in `view(::Memory, ::Union{UnitRange,…
… Base.OneTo})` (JuliaLang#53991) We assumed, falsely, that `length(inds) isa Int`. The length must be convertible to an `Int` or we throw, but that conversion may need to be explicitly performed. Fixes JuliaLang#53990 CC @oscardssmith @vtjnash @odow
Configuration menu - View commit details
-
Copy full SHA for e4f2124 - Browse repository at this point
Copy the full SHA e4f2124View commit details -
inference: fixes cache lookup with extended lattice elements
The previous local cache lookup system wasn't working well for caches with extended lattice elements that are transformed from the caller context to the callee context by `matching_cache_argtypes`. To address this, the current commit moves the call to `matching_cache_argtypes` right before `cache_lookup`, instead of within the `InferenceResult` constructor. Note that this adjustment leads to `given_argtypes` being allocated even when there's a cache hit, potentially affecting performance negatively. I'm looking to further optimize `matching_cache_argtypes` in an upcoming commit.
Configuration menu - View commit details
-
Copy full SHA for 62df400 - Browse repository at this point
Copy the full SHA 62df400View commit details -
Configuration menu - View commit details
-
Copy full SHA for 41347f5 - Browse repository at this point
Copy the full SHA 41347f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5356a4 - Browse repository at this point
Copy the full SHA a5356a4View commit details -
inference: fixes cache lookup with extended lattice elements (JuliaLa…
…ng#53953) The previous local cache lookup system wasn't working well for caches with extended lattice elements that are transformed from the caller context to the callee context by `matching_cache_argtypes`. To address this, the current commit moves the call to `matching_cache_argtypes` right before `cache_lookup`, instead of within the `InferenceResult` constructor. Note that this adjustment leads to `given_argtypes` being allocated even when there's a cache hit, potentially affecting performance negatively. I'm looking to further optimize `matching_cache_argtypes` in an upcoming commit.
Configuration menu - View commit details
-
Copy full SHA for 0e28cf6 - Browse repository at this point
Copy the full SHA 0e28cf6View commit details
Commits on Apr 9, 2024
-
Bump the StyledStrings stdlib from e0ca0f8 to bfdb4c3 (JuliaLang#53993)
Overall, a large pile of polish with some fixes too. Git log of commits involved: bfdb4c3 Modify tests to also pass when run as stdlib c084718 Fix return type of AnnotatedString write 180ab6c Try fixing the non-stdlib tests via refactor 528f245 Docs: minor index copyedits, and americanizations 9c015e2 Docs: create an examples page a9772d4 Markup annot keys cannot contain null character 243d959 Allow interpolation of underline properties fd2adcc Docs: tweak face description for clarity 4b06b79 Docs: clarify that AbstractString is wrapped 7f07b1b Docs: second paragraph reads better as not a note a3d15cb Docs: forgot to mention font attribute 9c10614 Show colour and styling in docs 59fd944 Add docs previews to PR CI 9709612 Mark styled and withfaces functions as public API a4c7678 Make withfaces behave more consistently 50d4198 Add speculative consideration of future face keys 04b5031 Add fuzzing to the tests set 7dc3c26 Allow color strings as in Face constructor c419317 Don't annotate interpolated empty strings dfef96d Adjust prioritisation of composed styling in parse 9a23e9e Test the display of parsing errors 1d7f42a Test parsing of each and every inline face attr 84ba211 No need to escape a string when parsing e3c0453 Add missing is-macro check to face value interp db006ed Mistyped font attribute as "face" in the parser 230fa8e Test errors emitted with various malformed stystrs 31f4c1d Overly aggressive color names check in styled strs bec9216 Expand on faces tests 093385e Improve showing of RGB SimpleColors without MIME d60d545 Test the show methods of SimpleColor and Face cb05225 Test the AnnotatedIOBuffer printstyled method c36911c Test the (legacy) loading of colors from envvars 14b4c6e Reduce test code verbosity by importing more names 3db948f Add a battery of HTML encoding tests 316bdd5 Remove extranious spaces from HTML underline style 62a7d25 Adjust named HTML colours to be not-garish 81e031e Add a battery of ANSI encoding tests a14c3b1 Check the Smulx termcap instead of Su b9d4aea Use the redmean colour distance in 8-bit approx f9976ad More careful comma handling with inline face specs 24e10e4 Accept a style symbol as the sole underline value 2ba234a Use the hardcoded bold ANSI code ab4f681 Refactro termcolor8bit to be less magic a8b8aaf Fix off-by-one errors in termcolor8bit 21e127a Introduce fuzzer for styled markup a3b40b7 Mention the loading of faces.toml in the docs 16c0e4f Fix functional parsing of inline face weight 7da631f Consolidate use of "ws" and "whitespace" in EBNF b76c1ce Introduce ismacro convenience func to parser b1cb60c Fix handling of space around inline face attrs e22d058 Clarification in styled markup grammar docs 701d29f Introduce isnextchar convenience func to parser 6efb352 Fix edge-case parsing of empty face construct 10f6839 Implement new functional styled markup interpreter e2d2d5f Refactor stylemacro into a submodule 11c5bd9 Introduce specialised write for AnnotatedIOBuffer
Configuration menu - View commit details
-
Copy full SHA for 3988860 - Browse repository at this point
Copy the full SHA 3988860View commit details -
irinterp: Don't try to access mi.def if it's not a Method (JuliaLang#…
…54003) I don't believe this is reachable from the base compiler pipeline, since we don't run irinterp on toplevel things, but I am seeing this in downstream packages.
Configuration menu - View commit details
-
Copy full SHA for 26070ca - Browse repository at this point
Copy the full SHA 26070caView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7099bdd - Browse repository at this point
Copy the full SHA 7099bddView commit details -
Configuration menu - View commit details
-
Copy full SHA for 97ac3ec - Browse repository at this point
Copy the full SHA 97ac3ecView commit details -
Correct return types in docstrings of sincos* (JuliaLang#54006)
Just a tiny correction to the return types noted in the docstrings, and include a phrase in `sincosd` that's present in the other two.
Configuration menu - View commit details
-
Copy full SHA for f870ea0 - Browse repository at this point
Copy the full SHA f870ea0View commit details -
Improve performance of
ncodeunits(::Char)
(JuliaLang#54001)This improves performance of `ncodeunits(::Char)` by simply counting the number of non-zero bytes (except for `\0`, which is encoded as all zero bytes). For a performance comparison, see [this gist]( https://gist.github.com/Seelengrab/ebb02d4b8d754700c2869de8daf88cad); there's an up to 10x improvement here for collections of `Char`, with a minor improvement for single `Char` (with much smaller spread). The version in this PR is called `nbytesencoded` in the benchmarks. Correctness has been verified with Supposition.jl, using the existing implementation as an oracle: ```julia julia> using Supposition julia> const chars = Data.Characters() julia> @check max_examples=1_000_000 function bytesenc(i=Data.Integers{UInt32}()) c = reinterpret(Char, i) ncodeunits(c) == nbytesdiv(c) end; Test Summary: | Pass Total Time bytesenc | 1 1 1.0s julia> ncodeunits('\0') == nbytesencoded('\0') true ``` Let's see if CI agrees! Notably, neither the existing nor the new implementation check whether the given `Char` is valid or not, since the only thing that matters is how many bytes are written out. --------- Co-authored-by: Sukera <Seelengrab@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for d183ee1 - Browse repository at this point
Copy the full SHA d183ee1View commit details
Commits on Apr 10, 2024
-
🤖 [master] Bump the Pkg stdlib from 162634c56 to 8f772ffa7 (JuliaLang…
…#54018) Stdlib: Pkg URL: https://github.com/JuliaLang/Pkg.jl.git Stdlib branch: master Julia branch: master Old commit: 162634c56 New commit: 8f772ffa7 Julia version: 1.12.0-DEV Pkg version: 1.12.0 Bump invoked by: @KristofferC Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: JuliaLang/Pkg.jl@162634c...8f772ff ``` $ git log --oneline 162634c56..8f772ffa7 8f772ffa7 prune manifest after the set of some deps have been "demoted" to weakdeps (JuliaLang#3864) 88c38b2cd make `add` and `dev` on a package remove it from the set of weak dependencies (JuliaLang#3865) 9210a1da5 fix how entry point to package is computed with `path` provided in project file (JuliaLang#3850) 77620a945 extensions: fixup entire manifest (JuliaLang#3720) 8cc835c7d Report failures to download artifacts as failures (JuliaLang#3860) 2f318cf66 remove unused PkgPrecompileError type (JuliaLang#3858) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
Configuration menu - View commit details
-
Copy full SHA for e9a24d4 - Browse repository at this point
Copy the full SHA e9a24d4View commit details -
allow extensions to trigger from packages in [deps] (JuliaLang#54009)
There is a use case where you have a weak dependency (for one of your extensions) that is misbehaving and you quickly want to try debug that issue. A workflow that feels reasonable for this could be: ``` pkg> dev WeakDependency # do some fixes in this dependency julia> using Package, WeakDependency # this loads the extension of Package triggered by loading WeakDependency # check that things work ok now ``` This doesn't work right now for two reasons: 1. Doing the `dev WeakDependency` will add the dependency to `[deps]` but not remove it from `[weakdeps]` which means you all of a sudden are in the scenario described in https://pkgdocs.julialang.org/v1/creating-packages/#Transition-from-normal-dependency-to-extension which is not what is desired. 2. The extension will not actually load because you can right now only trigger extensions from weak deps getting loaded, not from deps getting loaded. Point 1. is fixed by JuliaLang/Pkg.jl#3865 Point 2. is fixed by this PR.
Configuration menu - View commit details
-
Copy full SHA for f46cb4c - Browse repository at this point
Copy the full SHA f46cb4cView commit details -
revert moving "creating packages" from Pkg.jl (JuliaLang#53509)
As mentioned in JuliaLang#52102 (comment), having this information be moved from Pkg to Base creates a quite uncomfortable split between information about the package manager between the Pkg docs and Base. Pkg PR: JuliaLang/Pkg.jl#3818
Configuration menu - View commit details
-
Copy full SHA for 3357d1b - Browse repository at this point
Copy the full SHA 3357d1bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 45fb084 - Browse repository at this point
Copy the full SHA 45fb084View commit details
Commits on Apr 11, 2024
-
Fix comparison base for line table compression (JuliaLang#54032)
I'm not entirely sure what the original intent of this statement was, but the effect ends up being that some codeloc entries end up negative in the compressed representation, but the code always assumes unsigned integers, so things roundtripped badly, leading to badly corrupted stack traces. I guess this might have been a rebase mistake, since the same line exists (correctly) a few lines prior. Fixes JuliaLang#54031.
Configuration menu - View commit details
-
Copy full SHA for 630f754 - Browse repository at this point
Copy the full SHA 630f754View commit details -
ir: Add version of compute_trycatch for IRCode (JuliaLang#54035)
For ir transform passes that need to be aware of current_scope. Currently no users in Base, but available for external absint. --------- Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for dc8857a - Browse repository at this point
Copy the full SHA dc8857aView commit details -
Allow mutable-for-identity-only types to be inlined into IR (JuliaLan…
…g#54034) This extends the value-inability predicate to allow mutable structs that do not have any mutable fields. The motivating example for this is ScopedValue, which is mutable only for identity. By allowing it in this predicate, more of the ScopedValue support code becomes concrete-eval eligible, rather than attempting to constprop for every single ScopedValue, saving compilation time. --------- Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for a7fd6a7 - Browse repository at this point
Copy the full SHA a7fd6a7View commit details -
constprop: Add facility for widening arguments before constprop (Juli…
…aLang#54036) There are various situations where we may want to constprop with something other than the most precise concrete arguments in order to make the resulting cache more useful to other call sites. One particular example of this might be a method where non-concrete inference already discovered that one argument is unused: ``` function foo(a, b::DispatchOnly) expensive_to_compile(a) end ``` Right now, we will generally perform constprop for every different value of `b`, even though we already have the information that `b` is unused. Another example is external absints that may want to treat certain types fully symbolically. They may want to substitute concrete values for an abstract domain. This adds the facility to do both of these things by 1. Adding an appropriate interp hook in the constprop path 2. Adding a WidendedSimpleArgtypes wrapper that's like SimpleArgtypes but works around an issue where we would override cache information using values from concrete eval, which is not legal if the argtypes were widened.
Configuration menu - View commit details
-
Copy full SHA for f085913 - Browse repository at this point
Copy the full SHA f085913View commit details -
LinearAlgebra: Remove unnecessary adjoint/transpose for bidiag/tridiag (
JuliaLang#54024) These should be unnecessary, as the fallback methods do the same.
Configuration menu - View commit details
-
Copy full SHA for db247ce - Browse repository at this point
Copy the full SHA db247ceView commit details
Commits on Apr 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6e5c4e9 - Browse repository at this point
Copy the full SHA 6e5c4e9View commit details -
Add PR template and labels (#62)
labeler workflow fixes (#64) * Try fix labeler * Update labeler workflow triggers * fixup! Update labeler workflow triggers
Configuration menu - View commit details
-
Copy full SHA for e322667 - Browse repository at this point
Copy the full SHA e322667View commit details -
Presence is controlled by a build-time option. Start a separate thread which simply sleeps. When heartbeats are enabled, this thread wakes up at specified intervals to verify that user code is heartbeating as requested and if not, prints task backtraces. Also fixes the call to `maxthreadid` in `generate_precompile.jl`.
Configuration menu - View commit details
-
Copy full SHA for 878f6a4 - Browse repository at this point
Copy the full SHA 878f6a4View commit details -
Change heartbeat thread controls
When enabling heartbeats, the user must specify: - heartbeat_s: jl_heartbeat() must be called at least once every heartbeat_s; if it isn't, a one-line heartbeat loss report is printed - show_tasks_after_n: after these many heartbeat_s have passed without jl_heartbeat() being called, print task backtraces and stop all reporting - reset_after_n: after these many heartbeat_s have passed with jl_heartbeat() being called, print a heartbeats recovered message and reset reporting
Configuration menu - View commit details
-
Copy full SHA for ee2831c - Browse repository at this point
Copy the full SHA ee2831cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 18c0aa9 - Browse repository at this point
Copy the full SHA 18c0aa9View commit details