sort by:
Revision Author Date Message Commit Date
1e5b095 doc: LinearAlgebra.BLAS; add compat note for `spr!`, `spmv!`, `hpmv!` (#45990) * doc: LinearAlgebra.BLAS; add compat note for `spr!` need v1.8+ add by: https://github.com/JuliaLang/julia/commit/ae336abc0ed7e63ab933d0073df28c51e981d8fc * doc: LinearAlgebra.BLAS; add compat note for `spmv!` need v1.5+ add by: https://github.com/JuliaLang/julia/commit/d8b2209bba09b649afc3288fce3f7e17f97a495e * doc: LinearAlgebra.BLAS; add compat note for `hpmv!` need v1.5+ add by: https://github.com/JuliaLang/julia/commit/0b034fd9fa7994b5f60b0f519f2038352e7c221c 11 July 2022, 15:19:50 UTC
afe3838 Show PID when dying from a signal (#45905) It's often useful to see which PID emitted a particular signal on CI logs. 10 July 2022, 23:54:34 UTC
ba146fb [doc/LinearAlgebra]: add exported functions to doc (#45978) 10 July 2022, 16:02:09 UTC
545bec0 ๐Ÿค– Bump the Downloads stdlib from 78255d4 to c34ec3e (#45970) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 10 July 2022, 04:19:23 UTC
5082728 ๐Ÿค– Bump the SparseArrays stdlib from 2bbdd7a to e081db6 (#45972) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 09 July 2022, 14:44:57 UTC
dc87e60 Faster `min`/`max`/`minmax` for float types (#41709) * Accelerate `IEEEFloat`'s `min`/`max`/`minmax`/`Base._extrema_rf` * Omit unneed `BigFloat` allocation during `min`/`max` 09 July 2022, 12:49:24 UTC
68d9d8f ๐Ÿค– Bump the Statistics stdlib from c38dd44 to 0588f2c (#45973) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 09 July 2022, 11:33:25 UTC
5a92bc8 ๐Ÿค– Bump the DelimitedFiles stdlib from f520e06 to 495ebc8 (#45969) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 09 July 2022, 09:42:32 UTC
c5f3fc9 ๐Ÿค– Bump the Pkg stdlib from 98d0cc276 to 56cd041cc (#45971) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 09 July 2022, 09:41:31 UTC
50627d6 Document that `L`ength parameter needs Julia 1.7 (#45961) * Document that `L`ength parameter needs Julia 1.7 vtjnash added the 4th type parameter `L` in #41619 to `StepRangeLen`. That addition seems to have appeared in Julia 1.7 so it should be documented as such. I found this out the hard way because my CI for code that used `L` is failing with Julia 1.6. Co-authored-by: Johnny Chen <johnnychen94@hotmail.com> Co-authored-by: Keno Fischer <keno@alumni.harvard.edu> 08 July 2022, 19:44:05 UTC
87558f6 Remove `jl_getch()` to fix race condition in `getpass()` (#45954) * Remove `jl_getch()` to fix race condition in `getpass()` We accidentally introduced a race condition in `getpass()` by having `jl_getch()` toggle terminal modes for each keystroke. Not only is this slower and wasteful, it allows the kernel to receive keystrokes within a TTY in canonical mode (where it replaces certain characters [0]) and then reads from the kernel buffer in non-canonical mode. This results in us reading a `0x00` when we expected a `0x04` in certain cases on CI, which breaks some of our tests. The fix is to switch the TTY into raw mode once, before we ever print the password prompt, which closes the race condition. To do this, we moved more code from C to Julia, and removed the `jl_getch()` export, instead providing `jl_termios_size()`. [0] https://github.com/torvalds/linux/blob/e35e5b6f695d241ffb1d223207da58a1fbcdff4b/drivers/tty/n_tty.c#L1318 * Update base/util.jl Co-authored-by: Jameson Nash <vtjnash@gmail.com> * Apply suggestions from code review Co-authored-by: Jameson Nash <vtjnash@gmail.com> * Apply suggestions from code review Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 08 July 2022, 19:40:20 UTC
63c6983 Merge pull request #45912 from inkydragon/source-build--zlib [deps/zlib]: fix source build 08 July 2022, 17:46:22 UTC
60219d6 Improving `Printf` error messages (#45366) 08 July 2022, 17:09:25 UTC
51bb968 Proof performance tips for clarity (#45862) 08 July 2022, 00:05:16 UTC
cae7fef Improve color for code_warntype types (#45503) This PR makes two changes: First, the "expected" union, i.e. the ones printed yellow is now defined as one with at most 3 types, and where every element of the union is Base.isdispatchelem. This is intended to be a conservative threshold for when the compiler definitely ought to be able to create efficient code for the union. Second, now, "red" types override "yellow" types, where it was the opposite before. See #45501, #45502 Co-authored-by: Jameson Nash <vtjnash@gmail.com> 07 July 2022, 20:16:39 UTC
4bc549e Merge pull request #45936 from inkydragon/source-build--gmp [deps/gmp]: sync build flags with Yggdrasil/GMP 07 July 2022, 16:28:07 UTC
fc243f7 Merge branch 'master' into source-build--gmp 07 July 2022, 14:45:54 UTC
f7e0c7e fix freeze on `@threads` loop exit (#45899) Closes #45626, hopefully. 07 July 2022, 10:29:09 UTC
74fe80d Merge branch 'master' into source-build--zlib 07 July 2022, 10:11:52 UTC
da13d78 Complete size checks in `BLAS.[sy/he]mm!` (#45605) 07 July 2022, 08:37:40 UTC
ccb6e41 Merge branch 'master' into source-build--gmp 07 July 2022, 05:21:28 UTC
dd19c5a fully normalize `x == ::Symbol` to `x === ::Symbol` (#45944) It would be better to use a consistent style in our code base. The changes are big, but all merely cosmetic changes made half-automatically with a find-and-replace. 06 July 2022, 20:40:22 UTC
301b62a Merge pull request #45834 from JuliaLang/jn/domsort-fast 06 July 2022, 18:53:05 UTC
1777ae5 Merge pull request #45933 from inkydragon/source-build--curl [deps/curl]: sync build flags with `Yggdrasil/LibCURL` 06 July 2022, 16:10:01 UTC
4d50ff8 Fix typo in comment, remove unnecessary escaping, and simplify toms (#45885) 06 July 2022, 12:35:05 UTC
8cc5445 union-types: use insertion (stable) sort instead of qsort (#45896) Different platforms implement qsort differently, leading to platform-specific errors. This is a quick port of the ml_matches algorithm for use instead. For small unions (almost always), this should also be slightly faster, though insignificant. Refs #45874 06 July 2022, 12:34:07 UTC
b73bf86 Remove unnecessary name qualification in examples (#45898) Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> 06 July 2022, 12:32:53 UTC
22c6eea Prepent 'Base.' to notnothing in docstring (#45927) 06 July 2022, 12:31:24 UTC
aa7d881 Merge branch 'master' into source-build--zlib 06 July 2022, 11:50:38 UTC
db94619 deps/gmp: add function to `Make.inc` 06 July 2022, 11:33:35 UTC
c5aa255 Fix doctests after factorization internals unexport. (#45943) 06 July 2022, 06:55:23 UTC
7a21d52 convert some equalities to symbols to use === rather than == (#45941) 06 July 2022, 06:33:47 UTC
3f4fc63 don't make `Stateful` nest on itself (#45920) 06 July 2022, 04:04:35 UTC
d6c5cb6 Aggressive constant propagation in `_eachslice` (#45923) 05 July 2022, 23:41:55 UTC
bac82a9 Fix rounding edge cases on `cld`, `fld`, and `rem` (#45910) Also, improve operator spacing and docstring formatting 05 July 2022, 22:49:28 UTC
8a776bd Don't inadvertently export factorization internals via at-deprecate (#45935) Accidentally introduced by #42594. 05 July 2022, 18:42:33 UTC
c31be80 Account for empty MethodList in show_method_table (#45883) 05 July 2022, 18:37:50 UTC
be65cdf deps/gmp: add hard link for win 05 July 2022, 16:34:19 UTC
0d3aca4 Extend `strides` for `ReshapedArray` with strided parent. (#44507) * Extend `strides(::ReshapedArray)` with non-contiguous strided parent * Make sure `strides(::StridedReinterpretArray)` calls `size_to_strides` Co-authored-by: Tim Holy <tim.holy@gmail.com> 05 July 2022, 15:23:22 UTC
89bdcce fix #45903, in place broadcast into a bit-masked bitmatrix (#45904) as reported in https://discourse.julialang.org/t/indexed-assignment-with-logical-indices-subarray-jl-error/83646 05 July 2022, 13:27:03 UTC
95ea594 Fix introspection macros on simple dot symbol call (#45894) 05 July 2022, 13:14:07 UTC
d2d042e deps/gmp: quote flag `CC_FOR_BUILD` 05 July 2022, 12:55:47 UTC
6205a11 deps/gmp: add new configure opt `CC_FOR_BUILD` Co-Authored-By: Y. Yang <metab0t@users.noreply.github.com> 05 July 2022, 12:47:41 UTC
e7f70d7 deps/gmp: clean Makefile 05 July 2022, 12:36:24 UTC
fd6483a deps/gmp: build versioned lib 05 July 2022, 12:31:25 UTC
4347b86 deps/gmp: sync build flags with `Yggdrasil/GMP` https://github.com/JuliaPackaging/Yggdrasil/blob/b2e0c2c5851b71230fb7170f74d773393ce37f80/G/GMP/common.jl#L30-L35 05 July 2022, 12:29:49 UTC
eb72c2a [deps/llvm] don't use hardcode `LLVM_SHARED_LIB_NAME` (#45908) 05 July 2022, 12:07:24 UTC
59ff2e5 Add compat to `@test_throws` (#45893) closes #45892 05 July 2022, 11:31:53 UTC
b287379 add a .gitignore to prevent double results when searching with editors (#45931) 05 July 2022, 11:31:27 UTC
96d45d8 deps/curl: use versioned shared lib 05 July 2022, 08:20:03 UTC
452f588 deps/curl: sync build flags with `Yggdrasil/LibCURL` 05 July 2022, 08:10:47 UTC
b81a6e2 deps/curl: use correct `build_prefix` 05 July 2022, 08:04:32 UTC
6b30387 deps/curl: sync build flags with `Yggdrasil/LibCURL` https://github.com/JuliaPackaging/Yggdrasil/blob/d63ee92b565067a7844c938bbbf2f0bdd1eb4e7b/L/LibCURL/common.jl#L28-L40 05 July 2022, 07:53:13 UTC
5ffa603 make `copyto_unaliased` more type-stable (#45930) This change makes static analysis happier. xref: <https://github.com/aviatesk/JET.jl/issues/374> 05 July 2022, 05:52:48 UTC
b363bd5 Merge branch 'master' into source-build--zlib 05 July 2022, 03:29:29 UTC
fc1093f Add more comments explaining package (de)serialization (#45891) 04 July 2022, 21:07:05 UTC
438bde4 Remove out of date comment about github notifications (#45915) 04 July 2022, 19:45:06 UTC
dd5760d Merge pull request #45861 from JuliaLang/jn/45704 improve cache loading behaviors 04 July 2022, 14:30:41 UTC
f4801ff Fix link for supported platforms in README (#45913) 03 July 2022, 21:41:44 UTC
9cba087 Fix LLVM source build version references (#45919) 03 July 2022, 21:21:01 UTC
2fdc646 deps/zlib: rm trailing whitespace 03 July 2022, 17:27:47 UTC
39253ad deps/zlib: update target `clean` and `configure` `make clean` will rm installed files too 03 July 2022, 13:47:13 UTC
55b4beb deps/zlib: use same flags as Yggdrasil https://github.com/JuliaPackaging/Yggdrasil/blob/7e15aedbaca12e9c79cd1415fd03129665bcfeff/Z/Zlib/build_tarballs.jl#L19-L24 03 July 2022, 13:44:02 UTC
755c552 deps/zlib: fix clean target 03 July 2022, 12:22:58 UTC
05eb153 Remove duplicate definition of jl_gc_safepoint (#45120) This prevents a compiler warning on some systems 01 July 2022, 22:42:57 UTC
bd7bd5e [stdlib/jll] Automatic include of all `*.version` makefile (#45851) * [stdlib/jll] rm `all_jlls.version` 30 June 2022, 21:08:08 UTC
9e3bd48 Doc: Update LLVM version (#45858) 30 June 2022, 21:07:04 UTC
3c04919 Fix integer overflow in `reverse!` (#45871) 30 June 2022, 19:33:03 UTC
08d3c85 domsort: add back missing predecessor lost during domsort Maybe we do not need this edge at all? Many places need to filter it out. 30 June 2022, 19:27:03 UTC
3fa7582 ssair: make passes slightly more efficient 30 June 2022, 19:27:03 UTC
eb40043 fix imports for Core.Compiler.Iterators Make sure iterators is importing all of the correct functions that it tries to use also, to avoid any surprises in Core.Compiler. 30 June 2022, 19:27:03 UTC
239a1f2 loading: stop corrupting memory all over the place Regressions introduced by #45607 30 June 2022, 18:09:16 UTC
d0e28af loading: validate all cache files before loading any Ensures we do not get easily wedged into bad states. 30 June 2022, 18:09:16 UTC
ad8893b loading: add missing deadlock causing #45704 Does not explicitly close issue #45704, as perhaps the deserialized module should still be valid after the replacement warning. 30 June 2022, 17:23:10 UTC
d81724a loading: prevent module replacement during precompile This is theoretically okay, but unlikely to be intended ever. 30 June 2022, 17:23:10 UTC
fec6951 Merge pull request #45815 from JuliaLang/sf/ko_kr_utf8 Clarify non-Unicode Korean tests 30 June 2022, 17:21:29 UTC
cce506f improve type stability of `Base.active_module()` (#45838) Now this method is called from many `show`-related utilities, so it would be better to make it robust against invalidations. 30 June 2022, 07:05:10 UTC
aa5b57e Change example in "Copying data is not always bad" (#45865) 30 June 2022, 06:48:16 UTC
dc81a4b improve type stabilities of `match` usages (#45850) 30 June 2022, 06:44:06 UTC
8419acc Merge pull request #45818 from giordano/mg/dates-colon [Dates] Define a method for `(:)(a::Date, b::Date)` with default step 30 June 2022, 02:57:29 UTC
636f5fe make `include("compiler/compiler.jl")` work again (#45849) 30 June 2022, 02:49:16 UTC
82fcea4 rename workspace to buffer (#45711) Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> 29 June 2022, 23:06:31 UTC
c78a8db Clarify non-unicode korean tests Add explanation and extra tests to ensure that our non-unicode transcription works properly and outputs a reasonable UTF-8 string. Note that on musl, `setlocales()` never fails, and so we cannot test this properly. 29 June 2022, 17:37:47 UTC
b11ccae Merge pull request #45765 from JuliaLang/vc/safe_atexit Don't segfault when running atexit before jl_threads_init 29 June 2022, 03:11:25 UTC
21ab24e Don't call `jl_errorf()` when we're early in bringup When calling `jl_error()` or `jl_errorf()`, we must check to see if we are so early in the bringup process that it is dangerous to attempt to construct a backtrace because the data structures used to provide line information are not properly setup. This can be easily triggered by running: ``` julia -C invalid ``` On an `i686-linux-gnu` build, this will hit the "Invalid CPU Name" branch in `jitlayers.cpp`, which calls `jl_errorf()`. This in turn calls `jl_throw()`, which will eventually call `jl_DI_for_fptr` as part of the backtrace printing process, which fails as the object maps are not fully initialized. See the below `gdb` stacktrace for details: ``` $ gdb -batch -ex 'r' -ex 'bt' --args ./julia -C invalid ... fatal: error thrown and no exception handler available. ErrorException("Invalid CPU name "invalid".") Thread 1 "julia" received signal SIGSEGV, Segmentation fault. 0xf75bd665 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo>, std::_Select1st<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> >, std::greater<unsigned int>, std::allocator<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> > >::lower_bound (__k=<optimized out>, this=0x248) at /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_tree.h:1277 1277 /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_tree.h: No such file or directory. #0 0xf75bd665 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo>, std::_Select1st<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> >, std::greater<unsigned int>, std::allocator<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> > >::lower_bound (__k=<optimized out>, this=0x248) at /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_tree.h:1277 #1 std::map<unsigned int, JITDebugInfoRegistry::ObjectInfo, std::greater<unsigned int>, std::allocator<std::pair<unsigned int const, JITDebugInfoRegistry::ObjectInfo> > >::lower_bound (__x=<optimized out>, this=0x248) at /usr/local/i686-linux-gnu/include/c++/9.1.0/bits/stl_map.h:1258 #2 jl_DI_for_fptr (fptr=4155049385, symsize=symsize@entry=0xffffcfa8, slide=slide@entry=0xffffcfa0, Section=Section@entry=0xffffcfb8, context=context@entry=0xffffcf94) at /cache/build/default-amdci5-4/julialang/julia-master/src/debuginfo.cpp:1181 #3 0xf75c056a in jl_getFunctionInfo_impl (frames_out=0xffffd03c, pointer=4155049385, skipC=0, noInline=0) at /cache/build/default-amdci5-4/julialang/julia-master/src/debuginfo.cpp:1210 #4 0xf7a6ca98 in jl_print_native_codeloc (ip=4155049385) at /cache/build/default-amdci5-4/julialang/julia-master/src/stackwalk.c:636 #5 0xf7a6cd54 in jl_print_bt_entry_codeloc (bt_entry=0xf0798018) at /cache/build/default-amdci5-4/julialang/julia-master/src/stackwalk.c:657 #6 jlbacktrace () at /cache/build/default-amdci5-4/julialang/julia-master/src/stackwalk.c:1090 #7 0xf7a3cd2b in ijl_no_exc_handler (e=0xf0794010) at /cache/build/default-amdci5-4/julialang/julia-master/src/task.c:605 #8 0xf7a3d10a in throw_internal (ct=ct@entry=0xf070c010, exception=<optimized out>, exception@entry=0xf0794010) at /cache/build/default-amdci5-4/julialang/julia-master/src/task.c:638 #9 0xf7a3d330 in ijl_throw (e=0xf0794010) at /cache/build/default-amdci5-4/julialang/julia-master/src/task.c:654 #10 0xf7a905aa in ijl_errorf (fmt=fmt@entry=0xf7647cd4 "Invalid CPU name \"%s\".") at /cache/build/default-amdci5-4/julialang/julia-master/src/rtutils.c:77 #11 0xf75a4b22 in (anonymous namespace)::createTargetMachine () at /cache/build/default-amdci5-4/julialang/julia-master/src/jitlayers.cpp:823 #12 JuliaOJIT::JuliaOJIT (this=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/jitlayers.cpp:1044 #13 0xf7531793 in jl_init_llvm () at /cache/build/default-amdci5-4/julialang/julia-master/src/codegen.cpp:8585 #14 0xf75318a8 in jl_init_codegen_impl () at /cache/build/default-amdci5-4/julialang/julia-master/src/codegen.cpp:8648 #15 0xf7a51a52 in jl_restore_system_image_from_stream (f=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:2131 #16 0xf7a55c03 in ijl_restore_system_image_data (buf=0xe859c1c0 <jl_system_image_data> "8'\031\003", len=125161105) at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:2184 #17 0xf7a55cf9 in jl_load_sysimg_so () at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:424 #18 ijl_restore_system_image (fname=0x80a0900 "/build/bk_download/julia-d78fdad601/lib/julia/sys.so") at /cache/build/default-amdci5-4/julialang/julia-master/src/staticdata.c:2157 #19 0xf7a3bdfc in _finish_julia_init (rel=rel@entry=JL_IMAGE_JULIA_HOME, ct=<optimized out>, ptls=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/init.c:741 #20 0xf7a3c8ac in julia_init (rel=<optimized out>) at /cache/build/default-amdci5-4/julialang/julia-master/src/init.c:728 #21 0xf7a7f61d in jl_repl_entrypoint (argc=<optimized out>, argv=0xffffddf4) at /cache/build/default-amdci5-4/julialang/julia-master/src/jlapi.c:705 #22 0x080490a7 in main (argc=3, argv=0xffffddf4) at /cache/build/default-amdci5-4/julialang/julia-master/cli/loader_exe.c:59 ``` To prevent this, we simply avoid calling `jl_errorf` this early in the process, punting the problem to a later PR that can update guard conditions within `jl_error*`. 29 June 2022, 03:11:11 UTC
67a43c5 Explicitly test for a failing exit code, do not include signals We accidentally ignored some test failures because we only tested for `!success(p)`, which passes even if `p` segfaulted. 29 June 2022, 03:11:11 UTC
3b77feb Don't segfault when running atexit before jl_threads_init 29 June 2022, 03:11:11 UTC
84bf42a Bump LLVM to include patch for MacOS aarch64 (#45841) 28 June 2022, 20:03:27 UTC
d58289c Improve `foldl`'s stability on nested Iterators (#45789) * Make `Fix1(f, Int)` inference-stable * split `_xfadjoint` into `_xfadjoint_unwrap` and `_xfadjoint_wrap` * Improve `(c::ComposedFunction)(x...)`'s inferability * and fuse it in `Base._xfadjoint`. * define a `Typeof` operator that will partly work around internal type-system bugs Closes #45715 28 June 2022, 17:30:12 UTC
a8d1d36 [deps] split `Versions.make` into standalone `*.version` file (#45720) * deps: include `$(LibName).version` * deps: rm `Versions.make` * repo: update `julia.spdx.json` * deps: split `unwind.version`, add new `llvmunwind.version` * deps: split `llvm.version` into `clang.version` + `llvm-tools.version` * stdlib: Add new makefile `all_jlls.version` to include all `_jll` names * deps/LibUnwind_jll: fix version mismatch (`Project.toml` and `checksum`), xref: #42782 28 June 2022, 14:36:53 UTC
4015e0d [src] Fix some compilation warnings on PowerPC (#45800) 27 June 2022, 23:22:54 UTC
684a8b7 add option to `verify_ir` that allows front_end forms (#45786) specifically in front end ir, the head of an operation can be an opaque closure 27 June 2022, 18:51:36 UTC
8ccf2d6 fix obvious_subtype bug with egal objects (#45771) When egal objects contain identical typevars with different environments, the resulting subtyping might not be so obvious. Fix #45703 27 June 2022, 17:06:20 UTC
a549929 Export `at-invoke` and make it use `Core.Typeof` instead of `Any` (#45807) The macro was introduced in Julia 1.7 but was not exported. Previously, when an argument's type was unspecified, the type used was `Any`. This doesn't play well with types passed as arguments: for example, `x % T` has different meanings for `T` a type or a value, so if `T` is left untyped in `at-invoke rem(x::S, T)`, the method to call is ambiguous. On the other hand, if the macro expands `rem(x::S, T)` to use `Core.Typeof(T)`, the resulting expression will interpret `T` as a type and the likelihood of method ambiguities is significantly decreased. 27 June 2022, 03:57:21 UTC
c686e4a improve `@nospecialize`-d `[push!|pushfirst!]` implementations (#45790) Currently the `@nospecialize`-d `push!(::Vector{Any}, ...)` can only take a single item and we will end up with runtime dispatch when we try to call it with multiple items: ```julia julia> code_typed(push!, (Vector{Any}, Any)) 1-element Vector{Any}: CodeInfo( 1 โ”€ $(Expr(:foreigncall, :(:jl_array_grow_end), Nothing, svec(Any, UInt64), 0, :(:ccall), Core.Argument(2), 0x0000000000000001, 0x0000000000000001))::Nothing โ”‚ %2 = Base.arraylen(a)::Int64 โ”‚ Base.arrayset(true, a, item, %2)::Vector{Any} โ””โ”€โ”€ return a ) => Vector{Any} julia> code_typed(push!, (Vector{Any}, Any, Any)) 1-element Vector{Any}: CodeInfo( 1 โ”€ %1 = Base.append!(a, iter)::Vector{Any} โ””โ”€โ”€ return %1 ) => Vector{Any} ``` This commit adds a new specialization that it can take arbitrary-length items. Our compiler should still be able to optimize the single-input case as before via the dispatch mechanism. ```julia julia> code_typed(push!, (Vector{Any}, Any)) 1-element Vector{Any}: CodeInfo( 1 โ”€ $(Expr(:foreigncall, :(:jl_array_grow_end), Nothing, svec(Any, UInt64), 0, :(:ccall), Core.Argument(2), 0x0000000000000001, 0x0000000000000001))::Nothing โ”‚ %2 = Base.arraylen(a)::Int64 โ”‚ Base.arrayset(true, a, item, %2)::Vector{Any} โ””โ”€โ”€ return a ) => Vector{Any} julia> code_typed(push!, (Vector{Any}, Any, Any)) 1-element Vector{Any}: CodeInfo( 1 โ”€ %1 = Base.arraylen(a)::Int64 โ”‚ $(Expr(:foreigncall, :(:jl_array_grow_end), Nothing, svec(Any, UInt64), 0, :(:ccall), Core.Argument(2), 0x0000000000000002, 0x0000000000000002))::Nothing โ””โ”€โ”€ goto #7 if not true 2 โ”„ %4 = ฯ† (#1 => 1, #6 => %14)::Int64 โ”‚ %5 = ฯ† (#1 => 1, #6 => %15)::Int64 โ”‚ %6 = Base.getfield(x, %4, true)::Any โ”‚ %7 = Base.add_int(%1, %4)::Int64 โ”‚ Base.arrayset(true, a, %6, %7)::Vector{Any} โ”‚ %9 = (%5 === 2)::Bool โ””โ”€โ”€ goto #4 if not %9 3 โ”€ goto #5 4 โ”€ %12 = Base.add_int(%5, 1)::Int64 โ””โ”€โ”€ goto #5 5 โ”„ %14 = ฯ† (#4 => %12)::Int64 โ”‚ %15 = ฯ† (#4 => %12)::Int64 โ”‚ %16 = ฯ† (#3 => true, #4 => false)::Bool โ”‚ %17 = Base.not_int(%16)::Bool โ””โ”€โ”€ goto #7 if not %17 6 โ”€ goto #2 7 โ”„ return a ) => Vector{Any} ``` This commit also adds the equivalent implementations for `pushfirst!`. 27 June 2022, 00:34:54 UTC
f849517 Proof the Types manual page (#45813) 26 June 2022, 16:19:14 UTC
5380495 [Dates] Define a method for `(:)(a::Date, b::Date)` with default step 26 June 2022, 14:02:23 UTC
a60c76e [src] Silence GCC 12 warnings about dangling pointers (#45617) * [src] Silence GCC 12 warnings about dangling pointers * [src] Compile with `-Wno-pragmas` to allow pragrams accepted only by different compilers * [src] Use pragma only when relevant (GCC >= 12) Using `-Wno-pragmas` would still cause issues when building with `-Werror`. 25 June 2022, 16:46:59 UTC
51c8812 Merge pull request #45801 from JuliaLang/sf/local_manager_rmprocs [Distributed] `kill(::LocalManager, ...)` should actually call `kill()` 24 June 2022, 15:24:00 UTC
b2b8ce8 Add stacktrace colors to showing `MethodError`s and method lists (#45069) * Add color pass to MethodError showing, like in stacktraces Co-authored-by: Sukera <Seelengrab@users.noreply.github.com> 24 June 2022, 12:35:24 UTC
back to top