432f300 | Valentin Churavy | 15 June 2023, 22:41:38 UTC | Remove xsaves from Zen cpuspec (#50186) | 15 June 2023, 22:41:38 UTC |
0aa93e3 | Igor Proskurin | 15 June 2023, 20:56:20 UTC | fix missing punctuation in docs (#50126) * fix missing punctuation * Update types.md --------- Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> | 15 June 2023, 20:56:20 UTC |
9d1ac97 | Ian Butterworth | 15 June 2023, 18:14:45 UTC | Allow unquoted symbols for threadpool in `Threads.@spawn` (#50182) Co-authored-by: Julian Samaroo <jpsamaroo@gmail.com> | 15 June 2023, 18:14:45 UTC |
0b87d95 | Steve Kelly | 15 June 2023, 17:44:49 UTC | Use in-place operations where appropriate (#50119) This changes some uses of reverse/sort/filter to the in-place versions where appropriate. Should provide some minor memory savings. Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> Co-authored-by: Jakob Nybo Nissen <jakobnybonissen@gmail.com> | 15 June 2023, 17:44:49 UTC |
0f26966 | Keno Fischer | 15 June 2023, 06:07:56 UTC | Make sure Core.Compiler can throw kwarg mismatch errors (#50174) The _new_NamedTuple helper was in a Base-only branch, causing ``` julia> Core.eval(Core.Compiler, quote f(;a=1) = a end) f (generic function with 1 method) julia> Core.Compiler.f(;b=2) ERROR: UndefVarError: `_new_NamedTuple` not defined Stacktrace: [1] macro expansion @ Core.Compiler ./namedtuple.jl:0 [inlined] [2] structdiff(a::@NamedTuple{b::Int64}, b::Type{NamedTuple{(:a,)}}) @ Core.Compiler ./namedtuple.jl:421 [3] top-level scope @ REPL[2]:1 ``` After this change, we have the expected ``` julia> Core.eval(Core.Compiler, quote f(;a=1) = a end) f (generic function with 1 method) julia> Core.Compiler.f(;b=2) ERROR: MethodError: no method matching f(; b::Int64) Closest candidates are: f(; a) got unsupported keyword argument "b" @ Core REPL[13]:1 Stacktrace: [1] kwerr(kw::@NamedTuple{b::Int64}, args::Function) @ Core.Compiler ./error.jl:165 [2] top-level scope @ REPL[14]:1 ``` | 15 June 2023, 06:07:56 UTC |
5db2c27 | pchintalapudi | 15 June 2023, 03:47:49 UTC | Add marker passes to various pipeline stages (#50111) | 15 June 2023, 03:47:49 UTC |
a595274 | Juan José González Oneto | 15 June 2023, 03:27:15 UTC | Fixed small typo in `map`'s docstring (#50173) | 15 June 2023, 03:27:15 UTC |
9e43494 | pchintalapudi | 14 June 2023, 22:37:12 UTC | Compile JITLink for every platform (#50099) | 14 June 2023, 22:37:12 UTC |
abbe045 | Jakob Nybo Nissen | 14 June 2023, 20:14:58 UTC | FAQ: Clarify use of PROGRAM_FILE for importable scripts (#50139) In issue #45852, the proposed `@is_script` macro as a shorthand for `abspath(PROGRAM_FILE) == @__FILE__` was rejected, because it was agreed that the pattern of using the same file as a script and an importable library is questionable, so there is no reason to make it too idiomatic. For this reason, mention in the FAQ that while checking `PROGRAM_FILE` can be used to check if a file is run as a script, it is not recommended to have files double as both scripts and importable libraries. | 14 June 2023, 20:14:58 UTC |
0fb86dd | Oscar Smith | 14 June 2023, 18:36:36 UTC | Fix `rationalize(::Complex)` test on 32 bit systems (#50163) * Fix `rationalize(::Complex)` test on 32 bit systems the test was relying on `Int===Int64` | 14 June 2023, 18:36:36 UTC |
834aad4 | Ashley Milsted | 14 June 2023, 14:15:41 UTC | Add (broken) tests for allocation in 5-arg mul!() (#49210) | 14 June 2023, 14:15:41 UTC |
df09f67 | Keno Fischer | 14 June 2023, 09:06:07 UTC | irverify: Enforce invariant that PhiNodes are at the beginning of a BB (#50158) We have an invariant that all PhiNodes are at the beginning of a BasicBlock (only possible interrupted by a `nothing`) and we rely on this in various places for correctness. However, we did not actually verify this invariant. | 14 June 2023, 09:06:07 UTC |
8a1b642 | Tanay Sharma | 14 June 2023, 00:31:55 UTC | Add method to rationalize `Rational` (#43427) * Add Method to Rationalize Rational and Integer Co-authored-by: Jeff Bezanson <jeff.bezanson@gmail.com> Co-authored-by: Oscar Smith <oscardssmith@gmail.com> | 14 June 2023, 00:31:55 UTC |
03c4bc1 | Diogo Netto | 14 June 2023, 00:29:16 UTC | Promote objects more eagerly (#49644) Simplifies generational behaviour | 14 June 2023, 00:29:16 UTC |
84fc130 | Cody Tapscott | 13 June 2023, 19:06:19 UTC | Merge pull request #50083 from topolarity/fasttls-semaphore Prevent registering static FASTTLS with multiple libjulias | 13 June 2023, 19:06:19 UTC |
9d839f9 | Keno Fischer | 13 June 2023, 17:25:12 UTC | Refactor irinterp refinement logic (#50155) This continues the refactoring begun by #49340 to have irinterp consume the IR_FLAG_REFINED flag. This essentially has the same effect as the extra_reprocess bitset that irinterp takes, so we can remove that. However, there is a related issue where we would like to inform irinterp that we have *already* refined the type of a particular statement (likely using information not available to the irinterp) and would like it to just propagate that if possible. So bring back that extra bitset with a new name and these new semantics to make that possible. While I was working on this, I also noticed that the control hook I added in #48199 wasn't quite working as advertised. I don't currently need it, so rather than trying to work through an API without a concrete consumer, just nuke that hook for now. I do still think it'll be required at some point, but we can always add it back. | 13 June 2023, 17:25:12 UTC |
320e00d | Jameson Nash | 13 June 2023, 14:33:57 UTC | lowering: try to ignore special metadata nodes in tail position (#49963) A number of packages are relying on lowering removing or ignoring line number nodes that they place in incorrect position in the AST. Accommodate those packages accordingly. Fix #49920 | 13 June 2023, 14:33:57 UTC |
97f445e | Cody Tapscott | 13 June 2023, 14:30:57 UTC | Update cli/loader_lib.c From Jameson: > apparently on Windows, the _Atomic x syntax means something slightly different and is not correctly implemented Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 13 June 2023, 14:30:57 UTC |
0d89d8b | Shuhei Kadowaki | 13 June 2023, 10:50:10 UTC | Test: support multiple assignments for `@testset let` (#50151) Nested `ContextTestset` is supported, so we can stack it when there are multiple assignments in a given `let` block. ```julia julia> @testset let logi = log(im), op = !iszero @test imag(logi) == π/2 @test op(real(logi)) end Test Failed at none:3 Expression: !(iszero(real(logi))) Context: logi = 0.0 + 1.5707963267948966im op = !iszero ERROR: There was an error during testing ``` | 13 June 2023, 10:50:10 UTC |
f007c01 | Shuhei Kadowaki | 13 June 2023, 10:46:51 UTC | fix `array_builtin_common_nothrow` for `arrayref` (#50152) | 13 June 2023, 10:46:51 UTC |
7cd7a1b | Mosè Giordano | 13 June 2023, 06:54:21 UTC | Enable JITLink in aarch64 linux. (#49745) * Enable JITLink in aarch64 linux. * Simplify logic to enable JITLink * Do not enable JITLink on Aarch64 Linux with LLVM < 15 * Add NEWS entry and mention JITLink memory bug in ARM devdocs --------- Co-authored-by: Sunho Kim <ksunhokim123@gmail.com> | 13 June 2023, 06:54:21 UTC |
061401e | Elliot Saba | 13 June 2023, 04:27:13 UTC | Merge pull request #50150 from JuliaLang/kf/refkillissues Fix various refcount violations | 13 June 2023, 04:27:13 UTC |
0083a04 | Keno Fischer | 13 June 2023, 01:24:42 UTC | Fix refcount violations in new ifelse sroa lifting Fixes a refcount violation in #49882. Unlike PhiNodes, the code for ifelse was referencing the old arguments in the newly inserted nodes, so they were getting counted. However, it did not update the count when replacing these arguments later. Fix this by aligning with PhiNode and leaving the arguments unset, pushing them in later. | 13 June 2023, 01:27:16 UTC |
c3cd3eb | Keno Fischer | 13 June 2023, 01:23:20 UTC | Fix refcount violation for pending_nodes These nodes get passed through renaming, but with SSAValues already renamed. Due to a long-standing bug, we were failing to refcount those SSAValues on insertion. Fix that bug. | 13 June 2023, 01:27:16 UTC |
970941c | Shuhei Kadowaki | 12 June 2023, 22:38:40 UTC | effects: allow concrete-eval when `--check-bounds=no` if proven "safe" (#50107) From version 1.9 onwards, when `--check-bounds=no` is used, concrete-eval is completely disabled. However, it appears `--check-bounds=no` is still being used within the community, causing issues like the one reported in JuliaArrays/StaticArrays.jl#1155. Although we should move forward to a direction of eliminating the flag in the future (#48245), for the time being, there are many requests to carry out a certain level of compiler optimization, even when this flag is enabled. This commit aims to allow concrete-eval "safely" even under `--check-bounds=no`. Specifically, when the method call being analyzed is `:nothrow`, it should be predominantly safe to concrete-eval it under this flag. Technically, however, even `:nothrow` methods could trigger undefined behavior, since `:nothrow` isn't a strict constraint and it's possible for users to annotate potentially risky methods with `Base.@assume_effects :nothrow`. Nonetheless, since this possibility is acknowledged in `Base.@assume_effects` documentation, I feel it's fair to relegate it to user responsibility. | 12 June 2023, 22:38:40 UTC |
bf9bbb2 | Sheehan Olver | 12 June 2023, 19:07:25 UTC | Add doc string for reflectorApply! (#50081) | 12 June 2023, 19:07:25 UTC |
d69b1a2 | Christopher Rackauckas | 12 June 2023, 14:26:22 UTC | Add check call to getrf! (#50134) * Add check call to getrf! `lu!(A; check=false)` is supposed to disable the checking and leave it to the user: > When check = true, an error is thrown if the decomposition fails. When check = false, responsibility for checking the decomposition's validity (via issuccess) lies with the user. However, this is not quite true since `lu!` calls `getrf!` which internally does a check for `chkfinite` which does throw an error. This updates the `getrf!` function to have a `check` argument which is then used by `lu!` to fully disable the error throwing checks. * Update lapack.jl | 12 June 2023, 14:26:22 UTC |
75bda64 | Jeff Bezanson | 12 June 2023, 07:13:48 UTC | speed up expansion and lowering of ccall macro (#50077) | 12 June 2023, 07:13:48 UTC |
a81398f | Mosè Giordano | 11 June 2023, 20:47:32 UTC | [CompilerSupportLibraries_jll] Upgrade to v1.0.5 (#50135) This build includes a fix from GCC 12.2 for a bug in libgomp 12.1 which was causing frequent crashes on Windows in third-party libraries. | 11 June 2023, 20:47:32 UTC |
c58e508 | Martin Kunz | 10 June 2023, 16:12:48 UTC | fix(docs): typo in code-loading (#50123) | 10 June 2023, 16:12:48 UTC |
a31c8ef | Shuhei Kadowaki | 10 June 2023, 04:12:00 UTC | inlining: fix the `joint_effects` calculation (#50117) There are cases when `joint_effects` already has `:nothrow` tainted while the matches are fully covered. | 10 June 2023, 04:12:00 UTC |
0919cba | Chris Hodapp | 09 June 2023, 20:30:51 UTC | Fix typo in calling-c-and-fortran-code.md (#50121) | 09 June 2023, 20:30:51 UTC |
59bf9e8 | Kristoffer Carlsson | 09 June 2023, 19:24:52 UTC | use a fixed world for code loading (#49525) | 09 June 2023, 19:24:52 UTC |
feaea22 | Kristoffer Carlsson | 09 June 2023, 19:23:54 UTC | print the skipping bytes notification when skipping printing parts of a string in color (#50096) | 09 June 2023, 19:23:54 UTC |
f8827f1 | Jishnu Bhattacharya | 09 June 2023, 14:46:41 UTC | Structured display for adjoint/transpose (#49979) * Structured display for adjoint/transpose * structured display for Symmetric/Hermitian * tests with Symmetric and Transpose | 09 June 2023, 14:46:41 UTC |
2584b59 | Jishnu Bhattacharya | 09 June 2023, 13:17:47 UTC | Fill zeros only if necessary in `Matrix(::Diagonal)` and friends (#50008) * delay filling zeros while convering (sym)tridiag to matrix * conditional zero fill for bidiagonal/diagonal | 09 June 2023, 13:17:47 UTC |
43d7f88 | Shuhei Kadowaki | 09 June 2023, 04:28:41 UTC | effects: audit `EFFECTS_UNKNOWN` usages (#50106) | 09 June 2023, 04:28:41 UTC |
d041162 | Viral B. Shah | 09 June 2023, 01:42:26 UTC | Update mailmap (#50116) | 09 June 2023, 01:42:26 UTC |
7ceea13 | Erik Schnetter | 09 June 2023, 01:39:18 UTC | Update Unicode.jl (#50087) Correct confusing typo in documentation | 09 June 2023, 01:39:18 UTC |
746a15b | Lilith Orion Hafner | 08 June 2023, 21:52:57 UTC | Fail gracefully when attempting pair destructuring (#49368) `a => b = x` was interpreted as a function definition. Now it's an error unless you `import Base: =>` | 08 June 2023, 21:52:57 UTC |
c4d162e | Max Horn | 08 June 2023, 15:55:41 UTC | mkpidlock: clarify that stale_age is given in seconds (#50014) | 08 June 2023, 15:55:41 UTC |
0a2d6fc | Gabriel Baraldi | 08 June 2023, 15:28:34 UTC | Don't use exchange in the hot path of the GC (#50021) * Don't use exchange in the hot path of the GC and save one extra load | 08 June 2023, 15:28:34 UTC |
2c80455 | Lars Göttgens | 08 June 2023, 14:54:42 UTC | Revert "allow artifact string macro to take an explicit path to the artifact file (#46755)" (#50036) This reverts commit 1720a54011f7520f30ae69088e5c1b6f9643b35e. | 08 June 2023, 14:54:42 UTC |
4200aa9 | pchintalapudi | 07 June 2023, 21:15:19 UTC | Unify and split the pass pipeline (#49798) Unify and split the pass pipeline | 07 June 2023, 21:15:19 UTC |
2e76fc4 | Jishnu Bhattacharya | 07 June 2023, 19:27:36 UTC | Update return type in collect(::Dict) docs (#50056) | 07 June 2023, 19:27:36 UTC |
1f174a6 | Lilith Orion Hafner | 07 June 2023, 19:14:20 UTC | Fix typo in CONTRIBUTING.md (#50104) | 07 June 2023, 19:14:20 UTC |
d7d7ffa | pchintalapudi | 07 June 2023, 16:46:41 UTC | Invoke the passbuilder's extension point callbacks when possible (#50095) Invoke the passbuilder's extension point callbacks when possible | 07 June 2023, 16:46:41 UTC |
13e40af | Lilith Orion Hafner | 07 June 2023, 14:01:12 UTC | Skip flakey tests in CI (#50071) | 07 June 2023, 14:01:12 UTC |
36c5953 | Oscar Smith | 07 June 2023, 13:26:17 UTC | More `hash` optimization (#50041) * speed up hash of Float32/Float16 since they never are big numbers, and hash of arbitrary real types by not hashing the denominator when it is one | 07 June 2023, 13:26:17 UTC |
dbd82a4 | pchintalapudi | 07 June 2023, 04:40:07 UTC | Update newpm pass pipeline (#49747) Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> | 07 June 2023, 04:40:07 UTC |
0b47546 | Shuhei Kadowaki | 07 June 2023, 01:04:05 UTC | array: make `DimensionMismatch` lazy-string friendly (#50079) At the moment, the `msg` field of `DimensionMismatch` is typed as `String`. This means lazy strings passed to `DimensionMismatch` are instantly instantiated, defeating the whole purpose of using `LazyString`. This commit tweaks the field type to `AbstractString`. This way, lazy strings get instantiated during the exception handling later on. | 07 June 2023, 01:04:05 UTC |
e111c01 | Valentin Churavy | 06 June 2023, 23:34:53 UTC | add default order for atomics to docstring (#50086) | 06 June 2023, 23:34:53 UTC |
bbbe8c3 | Shuhei Kadowaki | 06 June 2023, 22:08:30 UTC | missing: improve effects for some missing operations (#50080) | 06 June 2023, 22:08:30 UTC |
c3ea5dc | Oscar Smith | 06 June 2023, 17:26:20 UTC | fix `hash(::BigInt)` on 32 bit systems (#50076) * don't define hash(::BigInt) on 32 bit systems | 06 June 2023, 17:26:20 UTC |
e1c0d83 | Cody Tapscott | 02 June 2023, 21:36:45 UTC | Prevent registering static FASTTLS with multiple libjulias When there are multiple copies of libjulia present in the application, they can both end up trying to use the same static fast tls storage. The alternative options I considered for this were: - Add `jl_options.use_static_fasttls` and update PackageCompiler.jl to set the flag to FALSE - Use `dlvsym` in the CLI loader and attach to the exported jl_pgcstack_static symbols `__attribute__((symver(...)))` The second approach is not available on musl, but the first one seems like the ideal way to handle this long-term. | 06 June 2023, 17:18:17 UTC |
4d2f35e | Mike Boyle | 06 June 2023, 16:23:45 UTC | Update URL for "lexical scoping" (#50085) | 06 June 2023, 16:23:45 UTC |
53bcb39 | Lilith Orion Hafner | 06 June 2023, 13:25:00 UTC | Fixup `hash(::Real)` broken by #49996 (#50067) * fixup for 49996 and add test from 50065 --------- Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> | 06 June 2023, 13:25:00 UTC |
1bb3d26 | DilumAluthgeBot | 06 June 2023, 11:39:36 UTC | 🤖 [master] Bump the Pkg stdlib from 9c01707a2 to 4de1826bc (#50078) | 06 June 2023, 11:39:36 UTC |
112554e | Mosè Giordano | 06 June 2023, 00:01:44 UTC | [test] Automatically install `llvm-tools` when runnning `llvmpasses` (#49985) | 06 June 2023, 00:01:44 UTC |
c16891d | Zachary P Christensen | 05 June 2023, 23:20:47 UTC | Atomic pointer operations APIs (#49811) This provides and interface to `Intrinsics.atomic_pointerref` and `Intrinsics.atomic_pointerset` through `unsafe_load` and `unsafe_store!`. Added the following atomic pointer operations: unsafe_modify! unsafe_replace! unsafe_swap! elsize(::Type{<:Ptr}) Tests previously using the explicit intrinsic method here are replaced by the new user facing variants. Add notes about atomic implementation and refs to relevant field and property method docs. Move general atomic doc strings to kw doc and ref in multi-threading. Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com> | 05 June 2023, 23:20:47 UTC |
32e2986 | pchintalapudi | 05 June 2023, 22:44:49 UTC | Add LLVMExtra stubs for newpm (#50042) | 05 June 2023, 22:44:49 UTC |
3051f47 | Takafumi Arakaki | 05 June 2023, 18:29:23 UTC | Use xchg to swap boxed values (#45147) * Use xchg to swap boxed values * Update src/cgutils.cpp Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> * Update src/cgutils.cpp Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> | 05 June 2023, 18:29:23 UTC |
270a1d8 | Fons van der Plas | 05 June 2023, 18:26:51 UTC | Docs: simple docstring for `write(filename::AbstractString, x)` (#49835) * Docs: simple docstring for `write(filename::AbstractString, x)` * use `content` instead of `x` * Update base/io.jl Co-authored-by: Jameson Nash <vtjnash@gmail.com> * Update base/io.jl --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 05 June 2023, 18:26:51 UTC |
3c29942 | Nathan Daly | 05 June 2023, 17:18:44 UTC | Remove printlns from test/atexit.jl (#50066) | 05 June 2023, 17:18:44 UTC |
f407a4c | Shuhei Kadowaki | 04 June 2023, 03:20:02 UTC | inlining: allow callsite inlining with cached results (#50048) In some rare cases with callsite inlining, we try to inline an inferred result from a local cache (`inf_result::InferenceResult`), whose source has been transformed by `transform_result_for_cache`. At present, `inf_result.src` stays to be `OptimizationState` in such cases, causing `inlining_policy` to handle the callsite inlining. This commit adjusts `transform_result_for_cache` so that it stores the transformed source in `inf_result.src`, letting the callsite inliner use it. Down the line, we might revisit this change to align it with 532125d51d23f22c3fd117fe8a37c158fe16ac62, which isn't enabled yet. | 04 June 2023, 03:20:02 UTC |
ff23b37 | Ian Butterworth | 04 June 2023, 01:27:33 UTC | add docs on task migration (#50047) | 04 June 2023, 01:27:33 UTC |
0c774c7 | Alexander Plavin | 03 June 2023, 05:13:14 UTC | fix empty string error in Printf (#50011) * fix empty string error in Printf * Update runtests.jl * Update runtests.jl | 03 June 2023, 05:13:14 UTC |
c3d70e8 | Colin Caine | 03 June 2023, 05:02:18 UTC | Update Printf.jl reference link (#50029) The old link described %g inaccurately. The new one is better (tho it mentions %n, which we don't support). | 03 June 2023, 05:02:18 UTC |
f4a264a | pchintalapudi | 02 June 2023, 23:31:22 UTC | Rename LLVM passes to be suffixed with Pass (#50043) | 02 June 2023, 23:31:22 UTC |
1961019 | Lilith Orion Hafner | 02 June 2023, 14:45:38 UTC | Optimize top_set_bit(::BigInt) and hash(::Real) (#49996) * implement top_set_bit in Julia for increased performance * simplify and optimize hash(::Real) --------- Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> | 02 June 2023, 14:45:38 UTC |
f09e46d | Steve Kelly | 02 June 2023, 13:27:26 UTC | add Compiler diagram (#49893) This is inspired by the diagram presented by Lionel Zoubritzky in his 2018 JuliaCon talk. This gives a visual overview of what is happening in the compiler. | 02 June 2023, 13:27:26 UTC |
0efb7c5 | Steve Kelly | 02 June 2023, 13:26:41 UTC | add docs for `Base.shred!` (#50032) It was mentioned in `Base.SecretBuffer`. | 02 June 2023, 13:26:41 UTC |
be2c35a | Steve Kelly | 02 June 2023, 13:26:11 UTC | mention `Cmd(::Vector{String})` in `Cmd` docstring (#49684) * mention `Cmd(::Vector{String})` in `Cmd` docstring This seems like a cyclical definition without it, and naively `Cmd` and `String` seem on the surface to be similar so it can be surprising that `Cmd("a string")` does not work. Adding this signature in the docstring should obviate the issues for first time users that read the docstring without having reviewed the manual. We also clarify the behavior of `exec` and command literals. --------- Co-authored-by: Steven G. Johnson <stevenj@mit.edu> | 02 June 2023, 13:26:11 UTC |
a35e53d | Cody Tapscott | 02 June 2023, 03:25:46 UTC | Merge pull request #49901 from topolarity/julia-side-timing Allocate timing counts on-the-fly + support dynamic events | 02 June 2023, 03:25:46 UTC |
3c915f3 | Cody Tapscott | 26 May 2023, 02:30:52 UTC | Sort jl_timing counts events before printing | 01 June 2023, 19:38:42 UTC |
3b90d5e | Cody Tapscott | 26 May 2023, 00:49:51 UTC | Use `jl_timing_set_enable` instead of `DISABLE_SUBSYSTEM` | 01 June 2023, 19:38:41 UTC |
5850227 | Cody Tapscott | 25 May 2023, 16:11:45 UTC | Add timing event locks + de-duplicate ITTAPI events | 01 June 2023, 19:37:48 UTC |
cb0537f | Cody Tapscott | 19 May 2023, 07:46:07 UTC | timing: Allocate all timing events dynamically This paves the way for a Julia-side API that can create new events on-the-fly without having to modify timing.h The core of the change is to introduce two different structs: - An "event" stores all of the statically-determined attributes of a profiler event (typically, zone name and source location info) - A "timing block" stores the dynamic information relevant to a particular span/measurement in the timing run Events and timing blocks have a one-to-many relationship. The intended pattern for a Julia-side API is to construct an event once at parse-time using `jl_timing_event_create` (since this is relatively expensive due to profiler traffic and allocations) and then to create its own timing block on-the-fly for each block entry/exit. This also re-factors the API a bit to hopefully be more consistently named | 01 June 2023, 19:37:46 UTC |
f61bbfb | Stefan Karpinski | 01 June 2023, 12:45:04 UTC | Some mailmap updates (#49997) | 01 June 2023, 12:45:04 UTC |
e0761b3 | Shuhei Kadowaki | 01 June 2023, 04:37:51 UTC | inlining: some refactoring on the inlining code (#50016) - clean up the edge tracking: * removed `valid_worlds` tracking since it is never updated * removed `EdgeTracker` object and make `InliningEdgeTracker` update inlining edges always - clean up dead `OptimizationParams` arguments | 01 June 2023, 04:37:51 UTC |
304e9a0 | Kiran | 31 May 2023, 20:16:01 UTC | Add GC metric `last_full_sweep` (#50018) Records the time that the last full sweep ran. | 31 May 2023, 20:16:01 UTC |
e4cf096 | Kristoffer Carlsson | 31 May 2023, 18:50:46 UTC | Merge pull request #50010 from JuliaLang/kc/profiling_changes Minor tweaks to the runtime profiling | 31 May 2023, 18:50:46 UTC |
28630ee | Elliot Saba | 31 May 2023, 18:39:13 UTC | Merge pull request #50002 from topolarity/clangsa-gcc-error Makefile: Use Clang CFLAGS when running `analyzegc` | 31 May 2023, 18:39:13 UTC |
dd44113 | Shuhei Kadowaki | 31 May 2023, 17:25:03 UTC | add `@inline` annotation to `Core.Compiler.specialize_method` (#50015) Since the return type of `Core.Compiler.specialize_method` relies on the boolean keyword argument `preexisting`, it is profitable to constant propagate it to get better inferrability. | 31 May 2023, 17:25:03 UTC |
9b27a8f | Shuhei Kadowaki | 31 May 2023, 15:49:36 UTC | errorshow: simplify printing of keyword argument types using a new macro format (#49959) In Julia, keyword arguments are represented as `Base.Pairs` objects. However, the object type often appears unnecessarily complex, especially when printed in a stack trace. This commit aims to simplify the printing of stack traces that involve keyword method calls, while still allowing us to reconstruct the actual method signature types from the printed signature types. The approach is similar to #49117: this commit introduces a new macro called `Base.@Kwargs`. It follows the same syntax as `@NamedTuple` and returns a `Base.Pairs` type that is used for keyword method calls. We use this syntax when printing keyword argument types. Here's an example of a stack trace: ```diff diff --git a/b.jl b/a.jl index 91dd6f0464..b804ae4be5 100644 --- a/b.jl +++ b/a.jl @@ -22,12 +22,11 @@ Stacktrace: @ Base ./reduce.jl:44 [inlined] [6] mapfoldl(f::typeof(identity), op::typeof(Base.add_sum), itr::String; init::Int64) @ Base ./reduce.jl:175 [inlined] - [7] mapreduce(f::typeof(identity), op::typeof(Base.add_sum), itr::String; kw::Base.Pairs{…}) + [7] mapreduce(f::typeof(identity), op::typeof(Base.add_sum), itr::String; kw::@Kwargs{init::Int64}) @ Base ./reduce.jl:307 [inlined] - [8] sum(f::typeof(identity), a::String; kw::Base.Pairs{Symbol, Int64, Tuple{Symbol}, @NamedTuple{init::Int64}}) + [8] sum(f::typeof(identity), a::String; kw::@Kwargs{init::Int64}) @ Base ./reduce.jl:535 [inlined] - [9] sum(a::String; kw::Base.Pairs{Symbol, Int64, Tuple{Symbol}, @NamedTuple{init::Int64}}) + [9] sum(a::String; kw::@Kwargs{init::Int64}) @ Base ./reduce.jl:564 [inlined] [10] top-level scope ``` --- * RFC: errorshow: simplify printing of keyword argument types using a new macro format * export and document `Base.@Kwargs` and further simplify the stack trace view * use the `@Kwargs` syntax only when printing kwmethod signature within stack trace view And add tests. * add news entry * more type stability * Apply suggestions from code review * enable the type-repr simplification unconditionally in the stack trace Since keyword pairs can appear within positional arguments, it can be confusing if we print the same type with different representations. * omit type annotation for splat keyword argument * add test for `@Kwargs` * clean up test/errorshow.jl | 31 May 2023, 15:49:36 UTC |
d3d09c1 | Kristoffer Carlsson | 31 May 2023, 14:04:41 UTC | add a timing zone for `call_require` (#49723) | 31 May 2023, 14:04:41 UTC |
d5145de | Lilith Orion Hafner | 31 May 2023, 13:44:55 UTC | fix and test sorting arrays with >1 dimension and custom `similar` (#49392) * fix and test sorting arrays with >1 dimension and custom `similar` * add PR number --------- Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> | 31 May 2023, 13:44:55 UTC |
faca5bd | KristofferC | 31 May 2023, 10:18:36 UTC | disable `TYPE_CACHE_INSERT` profile zone by default This one tend to be very fast, produce many entries and it tends to be not very interesting in most cases | 31 May 2023, 11:16:15 UTC |
b050ca9 | KristofferC | 31 May 2023, 10:17:45 UTC | only add an entry for `METHOD_MATCH` if it does some work | 31 May 2023, 11:16:15 UTC |
da98f54 | KristofferC | 31 May 2023, 10:17:23 UTC | move `jl_timing_apply_env` to a later place where it uses initialized data Also, move it after `DISABLE_SUBSYSTEM` to avoid it clobbering the results. | 31 May 2023, 11:15:40 UTC |
ca3270b | Jameson Nash | 31 May 2023, 09:33:03 UTC | lowering: apply let hygiene in let environment (#49999) Not just a regression, since this test also fails on old versions, but #49897 applied the wrong environment to make this hygiene correct which broke it worse. Fix #49984 | 31 May 2023, 09:33:03 UTC |
7e25ebf | DilumAluthgeBot | 31 May 2023, 09:32:18 UTC | 🤖 [master] Bump the Pkg stdlib from daf02a458 to 9c01707a2 (#50005) * 🤖 [master] Bump the Pkg stdlib from daf02a458 to 9c01707a2 * remove Pkg.LazilyInitializedFields from docs --------- Co-authored-by: Dilum Aluthge <dilum@aluthge.com> Co-authored-by: Ian <i.r.butterworth@gmail.com> | 31 May 2023, 09:32:18 UTC |
c3a08fe | Cody Tapscott | 30 May 2023, 20:13:57 UTC | Makefile: For gcanalyze, use Clang's CFLAGS not GCC's It's supported to build the analysis plugin with GCC, but the flags we actually run it with need to match Clang. | 31 May 2023, 02:47:09 UTC |
84bf67c | Lilith Orion Hafner | 30 May 2023, 19:55:28 UTC | Support sorting iterators (#46104) * widen sort's type signature * throw on AbstractString * Throw on infinite iterator * make sort(::NTuple) return a tuple (use vector internally for sorting for large tuples) | 30 May 2023, 19:55:28 UTC |
d912d85 | Fons van der Plas | 30 May 2023, 19:32:58 UTC | doc: simple docstring for `read(filename::AbstractString)` (#49836) | 30 May 2023, 19:32:58 UTC |
318f0ea | Fons van der Plas | 30 May 2023, 19:29:25 UTC | docs: first describe simple `read` and `write` without streaming (#49834) | 30 May 2023, 19:29:25 UTC |
c63feee | Fabian Zickgraf | 30 May 2023, 19:25:24 UTC | show: fix printing of "function (x...) end" (#49874) Previously, the parentheses were missing. | 30 May 2023, 19:25:24 UTC |
bd5e6da | Jameson Nash | 30 May 2023, 19:11:00 UTC | fix atomic intrinsics implementation issues (#49967) * jltypes: add missing GC root for cmpswap_type Tuple. This is called with a fieldtype, which might not even be a DataType. * support Ptr{Union{}} and Ptr{Cvoid} better | 30 May 2023, 19:11:00 UTC |
f6f637a | Jameson Nash | 30 May 2023, 19:09:40 UTC | cleanup: some fixes from effort to break up monolithic sysimg build (#49953) From #38119 | 30 May 2023, 19:09:40 UTC |
20752db | Nathan Daly | 30 May 2023, 16:23:39 UTC | thread safety: lock around atexit_hooks global (#49868) Ensure the lock is precise, so that we are allowed to register new atexit hooks from inside an atexit hook. But then disable `atexit()` when shutting down after it finishes running. Add tests that cover all the cases: 1. registering a hook from inside a hook 2. registering a hook from another thread while hooks are running 3. attempting to register a hook after all hooks have finished (disallowed) Fixes #49841 Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 30 May 2023, 16:23:39 UTC |