swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40

sort by:
Revision Author Date Message Commit Date
538476b typo 13 May 2023, 15:31:40 UTC
4c52114 started docs 13 May 2023, 15:29:54 UTC
0a05a5b improve type inference of `Base.aligned_sizeof` (#49801) This commit includes a bit of refactoring of `Base.aligned_sizeof` to make it more inference-friendly, especially in cases like `Base.aligned_sizeof(::Union{DataType,Union})`. In particular, it eliminates the chance of inference accounting for a method error of `datatype_alignment(::Union)` in the second branch. xref: <https://github.com/aviatesk/JET.jl/issues/512> 13 May 2023, 14:18:09 UTC
d55314c allow loading extensions when a trigger is loaded from below the parent's load path (#49701) also allow loading extensions of the active project 12 May 2023, 18:54:17 UTC
c6fc12c fix build failure with dyld4 deadlock workaround (#49776) Accidentally missed in #49740 Fixes #49773 12 May 2023, 14:02:12 UTC
7bd3977 Update NEWS.md for grammar (#49759) [skip ci] 12 May 2023, 12:00:44 UTC
46b8a35 remove duplicate gc_try_claim_and_push (#49780) 12 May 2023, 12:00:21 UTC
2f6941f Update stable version in README.md to 1.9.0 (#49767) 12 May 2023, 11:59:41 UTC
ae6484d Update toolchain requirements and LLVM build docs (#49742) 12 May 2023, 11:59:29 UTC
6733197 Artifacts: pull out a recursive function from a closure to a stand alone function (#49755) 12 May 2023, 09:13:17 UTC
021015d Remove 1.9 package extension news item from NEWS.md (#49786) This feature was already shipped with 1.9 so it probably shouldn't be mentioned a second time in the 1.10 NEWS.md. 12 May 2023, 08:13:47 UTC
9002d16 abstractarray: fix `append!(::AbstractVector, ...)` interface (#49754) JuliaLang/julia#47154 mistakenly added `@_safeindex` macro on the `_append!(a::AbstractVector, ::Union{HasLength,HasShape}, iter)` method, although `@_safeindex` is only valid for builtin vectors i.e. `Vector`. This commit adds `isa` check so that `@_safeindex` is only applied to builtin vectors. The `isa` check should be removed at compile time, so it should not affect the runtime performance. closes #49748 12 May 2023, 06:35:06 UTC
1d58f24 adopt `Core.Compiler.get_max_methods` changes from #46810 (#49781) Since this part of refactoring is generally useful and I would like to utilize it for other PRs that may be merged before #46810. 12 May 2023, 05:55:49 UTC
6a2e50d add docs for `Base.return_types` (#49744) Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 12 May 2023, 02:35:20 UTC
8d0282c Merge pull request #49770 from topolarity/fix-timing-warnings Fix various warnings with JL_TIMING enabled 12 May 2023, 00:12:55 UTC
b21f100 Make `*Triangular` handle units (#43972) 11 May 2023, 19:06:25 UTC
a09f426 Fix visibility of `timing.h` exports 11 May 2023, 17:53:22 UTC
e642cb9 Enable `TRACY_TIMER_FALLBACK` for libTracyClient This fallback is most likely to kick in on VM's that may not have support for the rdtsc instruction. The loss in timer fidelity can be pretty severe (8 ns -> 15.6 ms) but we pack lots of other metadata into our traces, so it can still be useful to run with the fallback (and forcefully crashing the application as Tracy does now is just not the Julian way to communicate a hard error anyway) 11 May 2023, 17:52:39 UTC
65c3b41 Initialize `last_alloc` The uninit usage analyzer appears to be thrown off by the `__attribute__((cleanup(*)))` used by the `JL_TIMING` macro, so work around it by explicitly initializing `last_alloc`. 11 May 2023, 17:52:39 UTC
528949f macOS: avoid deadlock inside dyld4 deadlock workaround (#49740) Extend the fix for #43578 (2939272af2ef3fe9d8921f7ed0a6500e31a550c9) to cover the deadlock bug present internally in dyld4 inside the function we use to avoid the previous deadlock issue. Fix #49733 11 May 2023, 17:29:07 UTC
c714e2e Add JITLink ELF debugger support (#47037) 11 May 2023, 17:09:54 UTC
e4633e0 add note about references in `Out` (#49729) 11 May 2023, 17:04:35 UTC
e3e5eaa 🤖 [master] Bump the Pkg stdlib from 94f668cee to daf02a458 (#49764) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 11 May 2023, 16:26:38 UTC
6618d44 minor follow up on #49692 (#49752) 11 May 2023, 08:40:56 UTC
0b5ec1f irinterp: Fix accidentally introduced deletion of effectful statement (#49750) I moved around some code in #49692 that broadened the replacement of statements by their const results. This is fine for how we're currently using irinterp in base, because we're requiring some fairly strong effects, but some downstream pipelines (and potentially Base in the future) want to use irinterp on code with arbitrary effects, so put in an appropriate check. 11 May 2023, 03:35:44 UTC
7757e46 Excise support for LLVM 13 (#49722) 10 May 2023, 22:05:42 UTC
21d4c2f Merge pull request #48700 from JuliaLang/vc/upgrade_llvm15 Update LLVM to 15.0.7 10 May 2023, 21:59:41 UTC
056112e make better use of visibility attributes (#49600) This pragma enables compilers to generate more optimal code than the identical command line flag, for better performance, by moving objects out of the GOT into direct references and eliminating the unnecessary PLT jump. Note that setting dllimport similarly enables more performance optimizations, at the cost of making duplicate symbols for functions so that they no longer have unique addresses (similar to the side-effect of setting -Bsymbolic-functions on ELF). 10 May 2023, 16:54:47 UTC
24a5dc4 Add `@eval using REPL` to the `atreplinit` do block in REPL documentation. (#49717) 10 May 2023, 15:43:22 UTC
77c13ad Reenable NonTrivial Loop Unswitch 10 May 2023, 14:51:16 UTC
2ddbb5a Fix tests and static analyzer for LLVM 15 Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com> 10 May 2023, 14:15:09 UTC
9e3da19 Activate NewPM support Co-authored-by: Valentin Churavy <v.churavy@gmail.com> 10 May 2023, 14:15:09 UTC
190f841 Upgrade Julia to LLVM 15.0.7+5 Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> 10 May 2023, 14:15:09 UTC
b2273d3 Do not yet mandate opaque pointers for LLVM 15 10 May 2023, 14:15:09 UTC
286b371 Update MemorySSA correctly when sinking gc_preserve_end 10 May 2023, 14:15:09 UTC
921f1b9 Fix remarks emissions from simdloop pass Co-authored-by: Valentin Churavy <v.churavy@gmail.com> 10 May 2023, 14:14:25 UTC
e204e20 irinterp: Consider cfg information from discovered errors (#49692) If we infer a call to `Union{}`, we can terminate further abstract interpretation. However, this of course also means that we can make use of that information to refine the types of any phis that may have originated from the basic block containing the call that was refined to `Union{}`. Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> 10 May 2023, 02:57:28 UTC
b9b8b38 Move test of stackoverflow with close(::Channel) to stack_overflow.jl (#49702) Per @vtjnash's comment here: https://github.com/JuliaLang/julia/pull/49508/files/bca5ac79d04fb2a95f3b9a7b7448fe5b478f950b#r1186161259 > the handling of this error is quite bad and sometimes ends up breaking > the process (as I found out today trying to debug something completely > unrelated) This is a Tests-only PR 09 May 2023, 20:47:27 UTC
d10d90c Do not reallocate on sizehint to same size (#49703) The sizehint! code currently do not reallocate when sizehinting to a smaller size if 1/8th or fewer elements will be freed. However, the check rounds down, so an array of size e.g. 3 resized to size 3 will "free" 1/8th of the elements, namely zero elements, needlessly resizing. This commit changes the check to only reallocate if MORE than 1/8th of elements will be freed. 09 May 2023, 20:30:54 UTC
e7425d5 TimeType subtraction using promote (#49700) 09 May 2023, 19:07:02 UTC
61f6082 Explicitly note that :consistent includes no-ub (#49693) * Explicitly note that :consistent includes no-ub We may split these effects in the future, but currently :consistent-cy requires the absence for undefined behavior for the function. There were a few questions about this, so explicitly document this in the help text. * Update base/expr.jl Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com> --------- Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com> 09 May 2023, 17:10:11 UTC
89b47cf Tweak `donotdelete` effects (#49691) I don't think there's any reason not to mark this intrinsic as `:consistent`. The only real property we need from it at the julia level is that the optimizer does not delete it, which `!:effect_free` will take care of. 09 May 2023, 17:09:15 UTC
7ef78e4 Add some more Effects system docs (#49652) * add docs for `Base.infer_effects` * add `show` decoder in `Effects` docs Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 09 May 2023, 06:39:44 UTC
493a16a Micro-optimization in WeakKeyDict constructor (#49690) 09 May 2023, 04:59:56 UTC
33a2a9d 🤖 [master] Bump the Pkg stdlib from c8249204b to 94f668cee (#49687) 08 May 2023, 22:53:48 UTC
a2d9c00 Some touchups to Task docs (#49682) 08 May 2023, 22:50:38 UTC
0a696a3 Remove unnecessary `Base.` prefix (#49668) 08 May 2023, 17:14:16 UTC
8bcea42 Merge pull request #49556 from JuliaLang/jn/small-typeof convert some typeof tags to small integers 08 May 2023, 17:13:35 UTC
2cad2a7 avoid allocating a GC frame on the alt stack (#49650) This might be confusing for GC marking, which will not expect to see it running on the altstack. And the link to prev might get corrupted if there is any sort of error that happens during the processing of the signal that causes us to start handling another signal. 08 May 2023, 14:22:51 UTC
43079cf 🤖 [master] Bump the Pkg stdlib from 7ebf98b43 to c8249204b (#49678) 08 May 2023, 13:00:30 UTC
1ae70ec test: fix TypeCompareError conflict (#49663) We have a slightly over-eager test in error.jl that requires all types ending in Error to subtype Exception, so this can cause a sporadic failure without this update. 08 May 2023, 12:56:15 UTC
4e782bf Bump LBT to v5.8.0 (#49658) Includes: https://github.com/JuliaLinearAlgebra/libblastrampoline/commit/81316155d4838392e8462a92bcac3eebe9acd0c7 08 May 2023, 07:21:01 UTC
09adbe3 Remove mention of TwicePrecision from the docs (#49665) 07 May 2023, 20:52:02 UTC
bdb3ded add reference to online tracy profile viewer (#49626) * Add docs for TRACY_CALLSTACKS and Tracy Web Viewer * add reference to online tracy profile viewer * Add `WITH_TRACY_CALLSTACKS` build option This change enables rudimentary call-stack support in Tracy. By default, call stack sampling is turned on for all zones along with random periodic sampling by the system. In the future, we'll probably want to take a more fine-grained approach to judiciously collect stack traces only where there are important, but for now gives users a flag to play with to uncover more information. --------- Co-authored-by: Cody Tapscott <topolarity@tapscott.me> 07 May 2023, 20:11:54 UTC
b69a417 Reduce `mul!` methods related to "banded" matrices (#49666) 06 May 2023, 14:08:50 UTC
83225c5 Remove at_time from GC test (#49662) 06 May 2023, 11:35:04 UTC
4be81cd change CodeInfo compression from Array to String String is simpler and smaller (since we do not yet have a Buffer{UInt8} type, which might be almost as simple) making it easier to manipulate. Combined with the previous changes, this lets us eliminate many more relocations from the image (previously every Array->data), which is quite a few megabytes of array header objects simply gone. MASTER: sysimg size breakdown: sys data: 79207516 isbits data: 58603452 symbols: 463610 tags list: 1078555 reloc list: 4491653 gvar list: 118848 fptr list: 214000 .text 11109176 .data 144184704 BEFORE (moving existing Strings): sysimg size breakdown: sys data: 75146604 isbits data: 62679532 symbols: 463411 tags list: 1015525 reloc list: 4481370 gvar list: 118688 fptr list: 213952 .text 11129192 .data 144126152 AFTER (making CodeInfo into Strings): sys data: 71348124 isbits data: 63789244 symbols: 463411 tags list: 933984 reloc list: 4398377 gvar list: 118688 fptr list: 213904 .text 11132968 .data 141272824 06 May 2023, 04:40:55 UTC
160d261 move simple (isbits) objects into the constdata section 06 May 2023, 04:40:55 UTC
e26b63c convert some typeof tags to small integers The value here is two-fold. One, we speed up sysimg load times slightly, since we can entirely skip relocations for these values and avoid faulting in some writable pages. This should let us (later) move more content into the ConstData section, such as String objects. Secondly, some type-manipulation native code becomes simpler, since it is based on small consecutive constants instead of requiring extra pointer loads to check for pointer identity. This is similar to the existing small-union optimization, but for type tags, and only for specific ones. This makes use of the fact that the zero page (about 4096 byes) cannot be allocated in the usual C memory model, which lets us define up to 255 of these special types, after taking into account the 4 gc bits. As a current implementation limitation for performance, these cannot be parametric types. Note there are probably more places in Base that can be updated to use `jl_typetagof` instead of `jl_typeof`, where we know if it is a type or tag. For example, this optimize most of builtins.c file, except for the `jl_object_id` function. 06 May 2023, 04:39:46 UTC
7cf01e5 Merge pull request #49601 from JuliaLang/kp/channel-task-fix Reduce unnecessary task stickiness from Channel bind calls. Fix also a race condition between scheduling a Task and picking which thread it is sticky to. 06 May 2023, 04:37:38 UTC
633d1ae Define a method for `hash(::Type, ::UInt)` (#49636) Currently, `hash(::Type, ::UInt)` uses `objectid`, which can have some odd behavior for types: in particular, subsequent identical type-valued variable definitions can have `objectid`s which differ from the first such definition. This has some bizarre downstream effects when e.g. using types as the values of a `Set` or the keys of a `Dict`. See issue 49620 for examples. There is an internal `type_hash` C function used for caching types but isn't exposed to Julia, as Jameson pointed out in the linked issue. This commit exposes it as `jl_type_hash` which is then used via `ccall` to define a method `hash(::Type, ::UInt)`. This method then fixes #49620. Note, however, that this does not affect the differing `objectid`s for otherwise identical types. 06 May 2023, 04:31:06 UTC
9bb0731 fix some SCC cycle mistakes (#49654) 06 May 2023, 04:27:35 UTC
67dd21c codegen: move union optimizations into emit_exactly_isa where emit_f_is expects them (#49655) 06 May 2023, 04:27:06 UTC
7ea902c Extend NamedTuple special case to PartialStruct (#49641) A little later in the `precise_container_type` function, we have a special case for extracting the iteration type from a `NamedTuple`, treating it the same as `Tuple`. However, as a result of this special case we were accidentally discarding any constant information that may have been in a `PartialStruct`. If we didn't have this special case, `abstract_iteration` would have taken care of it properly. To fix this, simply add the same special case to the `PartialStruct` check at the top of the function. Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 06 May 2023, 03:31:57 UTC
6296f57 Test: improve robustness of stacktrace scrubbing (#49646) 06 May 2023, 03:31:16 UTC
9b7d88b subtype: more conservative intersection of triangular variables (#49591) When a variable is used triangularly, we need to be careful not to propagate the lower bound implied by the other side to the upper bound implied by the invariant usage of the value--that is only legal when we are intersecting a variable that is used diagonally. Fix #49578 05 May 2023, 19:45:47 UTC
b8c347a Thread lattice through tuple_tail_elem (#49643) 05 May 2023, 17:50:43 UTC
f4d9416 `widenconst` before type check in SROA (#49642) * `widenconst` before type check in SROA These days, mutable structs can be `PartialStruct` if one of the fields is annotated as `const`, so we need to widenconst before this check. * Update test/compiler/irpasses.jl Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> --------- Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 05 May 2023, 17:47:19 UTC
9201414 fix whitespace in test/ranges.jl (#49648) 05 May 2023, 17:36:15 UTC
6bcdd00 Fix type comparison printing in `MethodError`s from convert. (#49645) This patch removes the erroneous `{}` for types without parameters when printing `MethodError`s from convert. Fixes e.g. the following (note `Float64{}`): ```julia julia> struct A{B, C} end julia> convert(A{Float64,1}, A{Float64,2}()) ERROR: MethodError: Cannot `convert` an object of type A{Float64{},2} to an object of type A{Float64{},1} ``` 05 May 2023, 16:22:03 UTC
6adea08 Merge code that handles `Adjoint` and `Transpose` (#49521) Co-authored-by: Takafumi Arakaki <tkf@users.noreply.github.com> 05 May 2023, 14:49:44 UTC
0c83a23 Don't assume macro expansion info is present in stacktrace (#49633) 05 May 2023, 06:47:57 UTC
9c6cfc6 silence compiler warning when not building with ITTAPI (#49630) 05 May 2023, 06:46:02 UTC
e70354d Fix for #48911: Bugfix for the generic left-divide (ldiv!) algorithm with pivoted QR decomposition and wide matrices (#49570) * Fix for #48911 1. Fix output permutation when A.P is not the identity matrix. 2. Fix the application of the elementary transformation (correct complex conjugation) to the solution as per LAPACK zlarzb https://netlib.org/lapack/explore-html/d5/ddd/zlarzb_8f_source.html 3. Align the final permutation with LAPACK's ZGELSY at https://netlib.org/lapack/explore-html/d8/d6e/zgelsy_8f_source.html 4. Fix a complex conjugate bug in the original solution for #48911, align with LAPACK zlarzb, https://netlib.org/lapack/explore-html/d5/ddd/zlarzb_8f_source.html 5. Improve permutation performance * Integration fix for #48911: Permutation is taken care by ldiv!(QRPivoted, ...) * Tests for #48911: LinearAlgebra/test/qr.jl * Issue #48911: Include original test case mentioned in the issue. --------- Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 05 May 2023, 06:40:01 UTC
1729d40 add another entry to the git ignore blame file (#49638) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 05 May 2023, 06:39:27 UTC
68cdf29 Fix infinite loop on macOS with TIMING enabled (#49632) `jl_pathname_for_handle` calls `jl_load_dynamic_library` internally on macOS, so naively calling it for our TIMING instrumentation causes an infinite loop. This is a simple fix that disables instrumentation when we are RTLD_NOLOAD'ing the library, which probably makes the trace information more meaningful as a set of _opened_ libraries anyway. 05 May 2023, 06:34:13 UTC
6b8ebb3 annotate type of Task.queue field (#48420) This is apparently a common source of false-positives in JET. Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 05 May 2023, 06:33:58 UTC
16e10a1 🤖 [master] Bump the LibCURL stdlib from fd8af64 to a65b64f (#49091) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 05 May 2023, 06:33:40 UTC
dffb9f0 optimizer: allow inlining of constant `::TypeName` object (#49225) This allows us to inline `Ref.body.name` and such. This doesn't seem to have much impact on sysimage size: > master ``` ➜ ls -la ./usr/lib/julia total 906640 drwxr-xr-x 7 aviatesk staff 224 Apr 2 20:51 . drwxr-xr-x 276 aviatesk staff 8832 Apr 1 11:22 .. -rw-r--r-- 1 aviatesk staff 18344432 Apr 2 20:49 corecompiler.ji -rw-r--r-- 1 aviatesk staff 192771632 Apr 2 20:51 sys-o.a -rwxr-xr-x 1 aviatesk staff 161034648 Apr 2 20:51 sys.dylib drwxr-xr-x 3 aviatesk staff 96 Apr 1 11:26 sys.dylib.dSYM -rw-r--r-- 1 aviatesk staff 92039864 Apr 2 20:50 sys.ji ``` > this commit ``` ➜ ls -la ./usr/lib/julia total 906912 drwxr-xr-x 7 aviatesk staff 224 Apr 2 20:52 . drwxr-xr-x 276 aviatesk staff 8832 Apr 2 20:48 .. -rw-r--r-- 1 aviatesk staff 18329400 Apr 2 20:49 corecompiler.ji -rw-r--r-- 1 aviatesk staff 192790232 Apr 2 20:52 sys-o.a -rwxr-xr-x 1 aviatesk staff 161051240 Apr 2 20:52 sys.dylib drwxr-xr-x 3 aviatesk staff 96 Mar 30 13:18 sys.dylib.dSYM -rw-r--r-- 1 aviatesk staff 92160128 Apr 2 20:50 sys.ji ``` 05 May 2023, 06:33:20 UTC
08945aa Prettify printing of a small number of completions (#49284) Previously show_completions() tended to maximize the number of columns used, and if there were few enough completions to only use one or two lines the text would be a little difficult to read. Now it tries to minimize the number of columns, and there's a minimum number of completions needed before it'll start using multiple columns. Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 05 May 2023, 06:32:53 UTC
ef359e3 don't add cross-compile prefix for CC twice (#49575) * don't add cross-compile prefix twice make reexports changed environment variables to subprocesses Co-authored-by: Jameson Nash <vtjnash@gmail.com> 05 May 2023, 06:32:19 UTC
356c746 Merge pull request #49488 from topolarity/smuggle-task-lineinfo Base.Threads: copy `__source__` LineInfo into closure for @spawn/@async 05 May 2023, 06:31:42 UTC
ee95843 Allow showing of StepRangLen{T} with generic T (#49516) 05 May 2023, 00:16:10 UTC
ad939df Add U+297A (`⥺`) and U+2977 (`⥷`) to binary operators (recreated) (#49623) 05 May 2023, 00:13:55 UTC
c0e12cd inference: enable `:call` inference in irinterp (#49191) * inference: enable `:call` inference in irinterp Built on top of #48913, this commit enables `:call` inference in irinterp. In a case when some regression is detected, we can simply revert this commit rather than reverting the whole refactoring from #48913. * fix irinterp lattice Now `LimitedAccuracy` can appear in irinterp, so we should include `InferenceLattice` for `[typeinf|ipo]_lattice` for irinterp. 04 May 2023, 22:49:25 UTC
5032a1a Initialize hoisted object allocations (#49584) 04 May 2023, 21:43:33 UTC
93ce36c Merge pull request #48709 from JuliaLang/prohibit-tabs-in-whitespace-check Prohibit tabs in whitespace check 04 May 2023, 17:38:32 UTC
9dbfc05 Set task tid before scheduling task in `_wait2` 04 May 2023, 16:11:41 UTC
e95416f Close channel task doesn't need to be sticky 04 May 2023, 16:11:41 UTC
5e7d7c3 Remove last references to gc_num.since_sweep (#49628) Commit ebc6776 removed the since_sweep field, but left two references to it, which makes Julia fail to build. This commit removes those references. 04 May 2023, 13:15:34 UTC
1d361c0 Remove redundant and unused _extrema in sorting (#48641) Found via coveralls line-by-line coverage. 04 May 2023, 11:37:28 UTC
ebc6776 (re-factor) gc: Remove redundant `since_sweep` field (#49195) This field is at all times 0 or identical to allocd, so this change removes it in preference of `gc_num.allocd`. Hopefully this makes the GC metrics a bit easier to interpret for newcomers. 04 May 2023, 11:36:05 UTC
724c93d Objects.md modified to include outdation warning (#49013) 04 May 2023, 11:33:58 UTC
bb31772 make `map` on tuples accept different lengths (#49336) fix #49299, fix #42216 04 May 2023, 11:20:31 UTC
99e194f refactor: add `jl_timing_init_task` This provides a generic entrypoint to initialize any task-specific handles or metadata for profiling back-ends. This change also adds the Module name to the Task name. 04 May 2023, 11:17:06 UTC
0e8c0ea Base.Threads: copy `__source__` LineInfo into closure for @spawn/@async This is useful for profilers such as Tracy which need to give a distinguishing name to different tasks. Another useful thing would be to accept an optional `name` parameter in these macros, but that's left for future work. 04 May 2023, 11:15:09 UTC
daea3c3 character literals are delimited with single quotes (#48998) Immediately inform the reader that character literals are delimited with single quotes, not double quotes. 04 May 2023, 10:57:49 UTC
705bfd3 Remove unneeded allocations in `ldiv!(::QRPivoted, ...)` (#49282) 04 May 2023, 10:55:39 UTC
c90aa77 Base: twiceprecision: optimize mul12 (#49568) It is well known and obvious that the algorithm behind `Base.mul12` (sometimes known as "Fast2Mult") doesn't require a "Fast2Sum" (known in the Julia codebase as `Base.canonicalize2`) call at the end, so remove it. This follows from the fact that IEEE-754 floating-point multiplication is required to be well-rounded, so Fast2Sum can't change the result. Reference, for example, the beginning of https://doi.org/10.1145/3121432 by Joldes, Muller, Popescu. Furthermore, `Base.Math.two_mul` already exists, so use it as a kernel function. This required adding a general fallback method for `Base.Math.two_mul`, required, for example, for `BigFloat`. Also removed the `iszero` check that is now obviously not necessary. 04 May 2023, 10:48:48 UTC
ce2c3ae Base: TwicePrecision: improve constructors (#49616) Correctness is improved for constructing `TwicePrecision{T}` from `TwicePrecision{S}`. Previously a call like `TwicePrecision{Float64}(::TwicePrecision{Float32})` would leave `hi` and `lo` unnormalized; while a call like `TwicePrecision{Float32}(::TwicePrecision{Float64})` would additionally introduce unnecessary truncation. Accuracy is improved for constructing `TwicePrecision` from types like `BigFloat` or `Rational`. Previously a call like `TwicePrecision{Float64}(::BigFloat)` would unconditionally leave `lo` as zero. Example code that tests the improvements (all Boolean values should evaluate to `true`): ```julia const TwicePrecision = Base.TwicePrecision const canonicalize2 = Base.canonicalize2 function twiceprecision_roundtrip_is_not_lossy( ::Type{S}, x::T, ) where {S<:Number, T<:Union{Number,TwicePrecision}} tw = TwicePrecision{S}(x) x == T(tw) end function twiceprecision_is_normalized(tw::Tw) where {Tw<:TwicePrecision} (hi, lo) = (tw.hi, tw.lo) normalized = Tw(canonicalize2(hi, lo)...) (abs(lo) ≤ abs(hi)) & (tw == normalized) end rand_twiceprecision(::Type{T}) where {T<:Number} = TwicePrecision{T}(rand(widen(T))) rand_twiceprecision_is_ok(::Type{T}) where {T<:Number} = !iszero(rand_twiceprecision(T).lo) setprecision(BigFloat, 70) # The mantissa needs to be just a bit larger than for `Float64` rand_twiceprecision_is_ok(Float32) rand_twiceprecision_is_ok(Float32) rand_twiceprecision_is_ok(Float32) rand_twiceprecision_is_ok(Float64) rand_twiceprecision_is_ok(Float64) rand_twiceprecision_is_ok(Float64) twiceprecision_roundtrip_is_not_lossy(Float64, rand(BigFloat)) twiceprecision_roundtrip_is_not_lossy(Float64, rand(BigFloat)) twiceprecision_roundtrip_is_not_lossy(Float64, rand(BigFloat)) twiceprecision_roundtrip_is_not_lossy(Float64, rand_twiceprecision(Float32)) twiceprecision_roundtrip_is_not_lossy(Float64, rand_twiceprecision(Float32)) twiceprecision_roundtrip_is_not_lossy(Float64, rand_twiceprecision(Float32)) twiceprecision_is_normalized(TwicePrecision{Float32}(rand_twiceprecision(Float64))) twiceprecision_is_normalized(TwicePrecision{Float32}(rand_twiceprecision(Float64))) twiceprecision_is_normalized(TwicePrecision{Float32}(rand_twiceprecision(Float64))) twiceprecision_is_normalized(TwicePrecision{Float64}(rand_twiceprecision(Float32))) twiceprecision_is_normalized(TwicePrecision{Float64}(rand_twiceprecision(Float32))) twiceprecision_is_normalized(TwicePrecision{Float64}(rand_twiceprecision(Float32))) ``` Updates #49589 04 May 2023, 10:45:22 UTC
back to top