https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
7790d6f release-1.10: set VERSION to 1.10.1 (#53306) 13 February 2024, 20:41:13 UTC
4745ef8 Backports release 1.10 (#53201) A few stragglers. Backported PRs: - [x] #53091 <!-- Ensure elision of `require_one_based_indexing` with high-dim array views --> - [x] #53117 <!-- Try to fix incorrect documentation of `nthreads` --> - [x] #52855 <!-- Fix variable name in scaling an `AbstractTriangular` with zero alpha --> - [x] #52952 <!-- [REPLCompletions] enable completions for `using Module.Inner|` --> - [x] #53101 <!-- Inplace transpose for unit Triangular may skip diagonal --> Need manual backport: - [ ] #52505 <!-- fix alignment of emit_unbox_store copy --> Non-merged PRs with backport label: - [ ] #53125 <!-- coverage: count coverage where explicitly requested by inference only --> - [ ] #52694 <!-- Reinstate similar for AbstractQ for backward compatibility --> - [ ] #51479 <!-- prevent code loading from lookin in the versioned environment when building Julia --> 06 February 2024, 13:44:50 UTC
6fcff37 fix bus error on smaller readonly file in unix (#44354) Fixes: #28245 Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Stefan Karpinski <stefan@karpinski.org> (cherry picked from commit ead627e5608b27dbf50cbb15d45b32bb41c5d8b2) 06 February 2024, 11:47:33 UTC
2ef3842 Inplace transpose for unit Triangular may skip diagonal (#53101) Since the diagonal elements of a `UnitUpperTriangular` are given by `onelement`, these should be unchanged under `transpose/adjoint`, and we don't need to access these elements in the parent array when performing in-place operations. Fixes ```julia julia> using LinearAlgebra julia> M = Matrix{BigFloat}(undef, 2, 2); julia> M[1,2] = 3; julia> U = UnitUpperTriangular(M) 2×2 UnitUpperTriangular{BigFloat, Matrix{BigFloat}}: 1.0 3.0 ⋅ 1.0 julia> transpose!(U) ERROR: UndefRefError: access to undefined reference Stacktrace: [1] getindex @ ./essentials.jl:882 [inlined] [2] getindex @ ./array.jl:915 [inlined] [3] copytri! @ ~/packages/julias/julia-latest/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:414 [inlined] [4] transpose!(A::UnitUpperTriangular{BigFloat, Matrix{BigFloat}}) @ LinearAlgebra ~/packages/julias/julia-latest/share/julia/stdlib/v1.11/LinearAlgebra/src/triangular.jl:470 [5] top-level scope @ REPL[5]:1 ``` After this PR: ```julia julia> transpose!(U) 2×2 UnitLowerTriangular{BigFloat, Matrix{BigFloat}}: 1.0 ⋅ 3.0 1.0 ``` (cherry picked from commit cc74d241be9f023ceb6d2ded7314bfbd02f8b17c) 06 February 2024, 11:19:02 UTC
a1ad1ba [REPLCompletions] enable completions for `using Module.Inner|` (#52952) (cherry picked from commit a0d55cd4b53adf91770ff5cbdab5b30ba81fbe96) 06 February 2024, 10:58:44 UTC
93a596e Fix variable name in scaling an `AbstractTriangular` with zero alpha (#52855) There is no `C` defined in these methods, so this branch used to error. (cherry picked from commit c5d7b87a35b5beaef9d4d3aa53c0a2686f3445b9) 06 February 2024, 10:56:28 UTC
e1af4a9 Try to fix incorrect documentation of `nthreads` (#53117) Since https://github.com/JuliaLang/julia/pull/49094, the docstring of `nthreads` has been incorrect. It currently states that > The threads in default have id numbers `1:nthreads(:default)`. whereas that is no longer true: ```julia julia> filter(i -> Threads.threadpool(i) == :interactive, 1:Threads.maxthreadid()) 3-element Vector{Int64}: 1 2 3 julia> filter(i -> Threads.threadpool(i) == :default, 1:Threads.maxthreadid()) 6-element Vector{Int64}: 4 5 6 7 8 9 ``` (cherry picked from commit 95ae27f6255fdb5f10d32ab6e8134632171bb822) 06 February 2024, 10:47:00 UTC
ff295ca Ensure elision of `require_one_based_indexing` with high-dim array views (#53091) Closes #49332 --------- Co-authored-by: Denis Barucic <barucic.d@gmail.com> (cherry picked from commit 9edf1dd8e971a6f43af4b39992fcb6eb81f8fb5d) 06 February 2024, 10:46:59 UTC
1dfdf66 Backports for 1.10.1 (#52755) Backported PRs: - [x] #51095 <!-- Fix edge cases where inexact conversions to UInt don't throw --> - [x] #52583 <!-- Don't access parent of triangular matrix in powm --> - [x] #52645 <!-- update --gcthreads section in command line options --> - [x] #52423 <!-- update nthreads info in versioninfo --> - [x] #52721 <!-- inference: Guard TypeVar special case against vararg --> - [x] #52637 <!-- fix finding bundled stdlibs even if they are e.g. devved in an environment higher in the load path --> - [x] #52752 <!-- staticdata: handle cycles in datatypes --> - [x] #52758 <!-- use a Dict instead of an IdDict for caching of the `cwstring` for Windows env variables --> - [x] #51375 <!-- Insert hardcoded backlinks to stdlib doc pages --> - [x] #52994 <!-- place work-stealing queue indices on different cache lines to avoid false-sharing --> - [x] #53015 <!-- Add type assertion in iterate for logicalindex --> - [x] #53032 <!-- Fix a list in GC devdocs --> - [x] #52748 - [x] #52856 - [x] #52878 - [x] #52754 - [x] #52228 - [x] #52924 - [x] #52569 <!-- Fix GC rooting during rehashing of iddict --> - [x] #52605 <!-- Default uplo in symmetric/hermitian --> - [x] #52618 <!-- heap snapshot: add gc roots and gc finalist roots to fix unrooted nodes --> - [x] #52781 <!-- fix type-stability bugs in Ryu code --> - [x] #53055 <!-- Profile: use full terminal cols to show function name --> - [x] #53096 - [x] #53076 - [x] #52841 <!-- Extensions: make loading of extensions independent of what packages are in the sysimage --> - [x] #52078 <!-- Replace `&hArr;` by `&harr;` in documentation --> - [x] #53035 <!-- use proper cache-line size variable in work-stealing queue --> - [x] #53066 <!-- doc: replace harr HTML entity by unicode --> - [x] #52996 <!-- Apple silicon has 128 byte alignment so fix our defines to match --> - [x] #53121 Non-merged PRs with backport label: - [ ] #52694 <!-- Reinstate similar for AbstractQ for backward compatibility --> - [ ] #51479 <!-- prevent code loading from lookin in the versioned environment when building Julia --> 06 February 2024, 10:41:56 UTC
7a96210 Add link to PR in NEWS (#53189) The link to https://github.com/JuliaLang/julia/pull/49349 was missing. 05 February 2024, 15:29:14 UTC
0627076 Put mingw32 `*.a` files in `private_libdir` (#51698) This avoid that these files are picked up during julia's build process, and are instead only used to link pkgimages, as intended. Co-authored-by: Tim Besard <tim.besard@gmail.com> (cherry picked from commit 4ef353c6e4ad5156ad65cb40c3a2a61fbd324b59) 05 February 2024, 07:38:02 UTC
6407c33 inference: avoid adding duplicate edges as invoke targets (#53121) This was inefficient, though not wrong. Fixes #53020 05 February 2024, 07:37:38 UTC
00aa65e bump NetworkOptions 05 February 2024, 07:37:37 UTC
c644e89 apply OpenBLAS_jll v0.3.23+4 patch (#53074) Closes #53054 CC: @giordano @ViralBShah 30 January 2024, 10:40:22 UTC
a45cd5f doc: replace harr HTML entity by unicode (#53066) Documenter does not support HTML entities. See discussion in PR #52078 for further background. Co-authored-by: Dilum Aluthge <dilum@aluthge.com> (cherry picked from commit 746fad00a4fb11fe34502c1b89e966fa129b645c) 30 January 2024, 10:40:22 UTC
b0b804e use proper cache-line size variable in work-stealing queue (#53035) (cherry picked from commit 919c3908066da7ac361fa5677a6af11acbdc3153) 30 January 2024, 10:40:22 UTC
3c73873 [OpenBLAS] Ugrade to v0.3.23+4 29 January 2024, 11:55:46 UTC
a215b37 1.10: inlining: fix `joint_effects` calculation (#53076) This particular fix was part of #50805, but it wasn't included in version 1.10, leading to situations where an incorrect `:nothrow` could occur in 1.10 (#53062). This commit implements a minimal correction in 1.10 and also added some test cases. Fixes #53062. 29 January 2024, 06:26:42 UTC
2c8ecd3 1.10: REPL: fix intermittent REPL test failure (#53096) The earlier test relied on the order of the method match list returned by `_methods_by_ftype`. However, particularly in cases where the `ambig=true` option is used, the match list isn't deterministic. This commit modifies it, similar to other pieces of code, so that it `any` to ensure the code does not depend on the implementation details of `ml_matches`. Fixes #52739. 29 January 2024, 06:26:26 UTC
ece8b7b Profile: use full terminal cols to show function name (#53055) (cherry picked from commit 4919dd79dfd848eb6d9929768666977f374c7f10) 26 January 2024, 14:54:55 UTC
6fdf37e Replace `&hArr;` by `&harr;` in documentation (#52078) There is no HTML entity `&hArr;` and accordingly all the usual browsers (Chrome, Firefox, Safari) don't render it. My guess is that there is confusion because GitHub supports `&hArr;` and shows it as &hArr; (and `&harr;` as &harr;). But here is for example what Firefox shows: <img width="853" alt="Screen Shot 2023-11-08 at 14 02 01" src="https://github.com/JuliaLang/julia/assets/241512/af7d9e27-a5c3-46c3-94d9-82ed52653cb4"> This patch could be backported to 1.9 and 1.10. (cherry picked from commit 81c4f8e1b3dc16738d136967c1b32f3e1ee969ba) 24 January 2024, 15:31:43 UTC
f06a63d Apple silicon has 128 byte alignment so fix our defines to match (#52996) https://github.com/JuliaLang/julia/blob/8a69745bdcb06409ab7e4fc84718f34d7d54a7f9/base/lock.jl#L33-L50 this probably also needs a fix, and maybe other places as well (cherry picked from commit 91ec2bb646ca1ef14a86232da2aa80a9c9f46d40) 24 January 2024, 15:30:39 UTC
cfbff10 heap snapshot: add gc roots and gc finalist roots to fix unrooted nodes (#52618) (cherry picked from commit fe0db7d9474781ee949c7927f806214c7fc00a9a) 24 January 2024, 13:05:37 UTC
8a04df0 Fix GC rooting during rehashing of iddict (#52569) Should fix #52558. `a` should be rooted before the alloc call. I removed the comment as it seemed to refer to a write barrier that was removed long ago. (cherry picked from commit 5977cb0a0c1ef98fa0e4019bf1a41380a717be6f) 24 January 2024, 12:54:22 UTC
f371de8 Default uplo in symmetric/hermitian (#52605) This makes the function signatures match the respective docstrings, as well as that of `Symmetric/Hermitian`. (cherry picked from commit b4eefd0f8afe91fb8e68c79f1a6615de25005529) 24 January 2024, 12:46:00 UTC
e0e3c63 fix type-stability bugs in Ryu code (#52781) Fixes #52749. (cherry picked from commit 5643c601f4c9819ed055c111a2d7d14cff6c5f7c) 24 January 2024, 12:45:01 UTC
a4cc920 make "dec" and ryu functions faster and simpler (#51273) We had some common code in `Ryu.append_c_digits` that can be combined with Base logic for the same thing. But it turns out all of this duplicated code in Ryu seems to just make it run slightly slower in most cases. The old version had many more branches to check, even though often numbers are small, so only the last check is meaningful. But the assumption that it would be faster even if all of them were used also seems to not hold up in practice. Particularly for a function like `append_nine_digits` which unrolls completely, but the complicated version has slightly more data dependencies because of they way it is written. Similarly, we replace `unsafe_copy` with `@inbounds[]`, since this is better for the optimizer, which doesn't need to treat this operation as an unknown reference escape. Lastly, we use the append_nine_digits trick from Ryu to make printing of arbitrary big numbers much faster. ``` julia> @btime string(typemax(Int128)) 402.345 ns (2 allocations: 120 bytes) # before 151.139 ns (2 allocations: 120 bytes) # after ``` (cherry picked from commit e9d931419c54c21f749bcac0991fc9f5a059d4aa) 24 January 2024, 12:44:58 UTC
fa85fa7 Fix a list in GC devdocs (#53032) When splitting a Markdown list item into multiple lines, the following lines must be indented or else a new paragraph starts. (cherry picked from commit 35c0498ceb1668fbc05ff5ae24ac1e696fdfa6a5) 24 January 2024, 12:40:28 UTC
8517eb3 Add type assertion in iterate for logicalindex (#53015) The type-assertion helps convey the information that `iterate(tail(s)...)` would never return `nothing`, which makes JET happy. On master ```julia julia> L = Base.LogicalIndex([true]) 1-element Base.LogicalIndex{Int64, Vector{Bool}}: 1 julia> @report_call iterate(L) ═════ 2 possible errors found ═════ ┌ iterate(L::Base.LogicalIndex{Int64, Vector{Bool}}) @ Base ./multidimensional.jl:778 │┌ iterate(L::Base.LogicalIndex{Int64, Vector{Bool}}, s::Tuple{Int64, LinearIndices{1, Tuple{Base.OneTo{Int64}}}}) @ Base ./multidimensional.jl:789 ││┌ indexed_iterate(I::Nothing, i::Int64) @ Base ./tuple.jl:94 │││ no matching method found `iterate(::Nothing)`: x = iterate(I::Nothing) ││└──────────────────── ││┌ indexed_iterate(I::Nothing, i::Int64, state::Int64) @ Base ./tuple.jl:99 │││ no matching method found `iterate(::Nothing, ::Int64)`: x = iterate(I::Nothing, state::Int64) ``` This PR ```julia julia> @report_call iterate(L) No errors detected ``` Close https://github.com/JuliaArrays/StaticArrays.jl/issues/1225 (cherry picked from commit 32ad80bbdb6d80589e0232221dd66e52a8da205b) 24 January 2024, 12:40:28 UTC
4f3a3ae place work-stealing queue indices on different cache lines to avoid false-sharing (#52994) For some reason this only shows up in the `many_refs.jl` benchmark, since it's the only one that hammers the work-stealing queue (we also didn't test this benchmark on a large number of GC threads in our [previous analysis](https://github.com/JuliaLang/julia/pull/48600#issuecomment-1518944785)). - master: ``` bench = "many_refs.jl" (gcthreads, threads) = (1, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 4268 │ 3243 │ 3048 │ 194 │ 1126 │ 15 │ 868 │ 76 │ │ median │ 4270 │ 3246 │ 3051 │ 195 │ 1128 │ 17 │ 868 │ 76 │ │ maximum │ 4278 │ 3247 │ 3052 │ 195 │ 1128 │ 18 │ 868 │ 76 │ │ stdev │ 5 │ 2 │ 2 │ 0 │ 1 │ 1 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (2, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2728 │ 1692 │ 1551 │ 141 │ 598 │ 23 │ 868 │ 62 │ │ median │ 2732 │ 1709 │ 1567 │ 141 │ 603 │ 23 │ 868 │ 62 │ │ maximum │ 2744 │ 1712 │ 1571 │ 143 │ 607 │ 24 │ 868 │ 63 │ │ stdev │ 6 │ 9 │ 9 │ 1 │ 4 │ 0 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (4, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2105 │ 1082 │ 987 │ 95 │ 405 │ 23 │ 875 │ 51 │ │ median │ 2115 │ 1089 │ 994 │ 95 │ 409 │ 23 │ 875 │ 52 │ │ maximum │ 2127 │ 1100 │ 1003 │ 97 │ 417 │ 25 │ 875 │ 52 │ │ stdev │ 8 │ 8 │ 7 │ 1 │ 5 │ 1 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (8, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 3861 │ 2755 │ 2676 │ 79 │ 1301 │ 22 │ 878 │ 68 │ │ median │ 3864 │ 2835 │ 2756 │ 80 │ 1342 │ 25 │ 879 │ 73 │ │ maximum │ 4032 │ 2877 │ 2797 │ 80 │ 1378 │ 26 │ 880 │ 74 │ │ stdev │ 73 │ 45 │ 45 │ 1 │ 28 │ 2 │ 1 │ 2 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (16, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 7455 │ 6425 │ 6344 │ 80 │ 3262 │ 24 │ 882 │ 86 │ │ median │ 7703 │ 6682 │ 6602 │ 81 │ 3313 │ 25 │ 884 │ 87 │ │ maximum │ 7826 │ 6806 │ 6725 │ 81 │ 3422 │ 27 │ 887 │ 87 │ │ stdev │ 152 │ 153 │ 153 │ 0 │ 68 │ 1 │ 2 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` - PR: ``` bench = "many_refs.jl" (gcthreads, threads) = (1, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 4264 │ 3240 │ 3048 │ 192 │ 1127 │ 15 │ 868 │ 76 │ │ median │ 4271 │ 3244 │ 3052 │ 192 │ 1129 │ 17 │ 868 │ 76 │ │ maximum │ 4514 │ 3481 │ 3289 │ 193 │ 1247 │ 18 │ 868 │ 77 │ │ stdev │ 109 │ 106 │ 106 │ 0 │ 53 │ 1 │ 0 │ 1 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (2, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2712 │ 1680 │ 1541 │ 138 │ 591 │ 22 │ 868 │ 62 │ │ median │ 2713 │ 1691 │ 1552 │ 140 │ 594 │ 24 │ 868 │ 62 │ │ maximum │ 2732 │ 1710 │ 1569 │ 141 │ 606 │ 25 │ 868 │ 63 │ │ stdev │ 11 │ 12 │ 12 │ 1 │ 6 │ 1 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (4, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2090 │ 1057 │ 962 │ 95 │ 398 │ 22 │ 874 │ 50 │ │ median │ 2103 │ 1070 │ 974 │ 95 │ 401 │ 24 │ 874 │ 51 │ │ maximum │ 2140 │ 1074 │ 978 │ 96 │ 402 │ 25 │ 875 │ 51 │ │ stdev │ 19 │ 6 │ 6 │ 0 │ 1 │ 1 │ 1 │ 1 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (8, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2236 │ 1208 │ 1129 │ 79 │ 528 │ 23 │ 880 │ 54 │ │ median │ 2238 │ 1214 │ 1135 │ 79 │ 533 │ 23 │ 880 │ 54 │ │ maximum │ 2246 │ 1218 │ 1138 │ 80 │ 534 │ 35 │ 880 │ 54 │ │ stdev │ 4 │ 4 │ 4 │ 0 │ 3 │ 5 │ 0 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ (gcthreads, threads) = (16, 1) ┌─────────┬────────────┬─────────┬───────────┬────────────┬──────────────┬───────────────────┬──────────┬────────────┐ │ │ total time │ gc time │ mark time │ sweep time │ max GC pause │ time to safepoint │ max heap │ percent gc │ │ │ ms │ ms │ ms │ ms │ ms │ us │ MB │ % │ ├─────────┼────────────┼─────────┼───────────┼────────────┼──────────────┼───────────────────┼──────────┼────────────┤ │ minimum │ 2326 │ 1297 │ 1216 │ 80 │ 595 │ 24 │ 884 │ 56 │ │ median │ 2348 │ 1325 │ 1245 │ 80 │ 620 │ 25 │ 885 │ 56 │ │ maximum │ 2370 │ 1341 │ 1262 │ 81 │ 631 │ 26 │ 887 │ 57 │ │ stdev │ 17 │ 19 │ 19 │ 0 │ 14 │ 1 │ 1 │ 0 │ └─────────┴────────────┴─────────┴───────────┴────────────┴──────────────┴───────────────────┴──────────┴────────────┘ ``` (cherry picked from commit 9f36490f02e92302d93e9f993cadbde04c104f9c) 24 January 2024, 12:40:27 UTC
d2fd317 Insert hardcoded backlinks to stdlib doc pages (#51375) This is #48814 times 23. It solves most of but not all of #50035. (cherry picked from commit a327a9594fa469a2d5df32a79a86965286968e54) 24 January 2024, 12:40:26 UTC
69d58e0 use a Dict instead of an IdDict for caching of the `cwstring` for Windows env variables (#52758) Should fix https://github.com/JuliaLang/julia/issues/52711. My analysis of the invalidation is as follows: We added code to cache the conversion to `cwstring` in env handling on Windows (https://github.com/JuliaLang/julia/pull/51371): ```julia const env_dict = IdDict{String, Vector{UInt16}}() function memoized_env_lookup(str::AbstractString) ... env_dict[str] = cwstring(str) ... end function access_env(onError::Function, str::AbstractString) var = memoized_env_lookup(str) ... end ``` Since `IdDict` has `@nospecialize` on `setindex!` we compile this method: ```julia setindex!(::IdDict{String, Vector{UInt16}}, ::Any, ::Any) ``` which has an edge to: ```julia convert(Type{Vector{Int64}}, Any}) ``` But then StaticArrays comes along and adds a method ```julia convert(::Type{Array{T, N}}, ::StaticArray) ``` which invalidates the `setindex!` (due to the edge to `convert`) which invalidates the whole env handling on Windows which causes 4k other methods downstream to be invalidated, in particular, the artifact string macro which causes a significant delay in the next jll package you load after loading StaticArrays. There should be no performance penalty to this since strings already does a hash for their `objectid`. (cherry picked from commit b7c24ed67bc42d51ee33da5ed5a97361c49313b8) 24 January 2024, 12:40:23 UTC
cc26004 staticdata: handle cycles in datatypes (#52752) Handle any sort of cycle encountered in the datatype super fields by always deferring that field until later and setting a deferred mechanism for updating the field only after the supertype is ready. Fix #52660 (cherry picked from commit c94b1a3cd810efd35b66ca4f5a60839989e18692) 24 January 2024, 12:40:22 UTC
2481fdf loading: fix finding bundled stdlibs even if they are e.g. devved in an environment higher in the load path (#52637) I noticed this when seeing some weird precompile issues when I had SparseArrays devved in my main environment but it was with the standard stdlib format in the current environment: ``` (NearestNeighbors) pkg> st -m Project NearestNeighbors v0.4.15 Status `~/JuliaPkgs/NearestNeighbors.jl/Manifest.toml` ... [2f01184e] SparseArrays v1.10.0 ... ``` But even so, `locate_package` claims that the path to SparseArrays is the one in the main environment: ``` julia> pkg = Base.PkgId(Base.UUID("2f01184e-e22b-5df5-ae63-d93ebab69eaf"), "SparseArrays") SparseArrays [2f01184e-e22b-5df5-ae63-d93ebab69eaf] julia> Base.locate_package(pkg) "/home/kc/JuliaPkgs/SparseArrays.jl/src/SparseArrays.jl" ``` This correctly fixes it so that packages without a `git-tree-sha1` (and without a `path`) are resolved to the stdlib path. (cherry picked from commit c9bc2ffd52e558aecf228b17d55e3eb0e4d5f693) 24 January 2024, 12:40:21 UTC
7d3c68e Fix edge cases where inexact conversions to UInt don't throw (#51095) (cherry picked from commit fb7613635cab77cf269790335e8121f513c9ea96) 24 January 2024, 12:40:17 UTC
3552d36 🤖 [backports-release-1.10] Bump the Pkg stdlib from 11cf00df7 to 70525539d (#53028) Stdlib: Pkg URL: https://github.com/JuliaLang/Pkg.jl.git Stdlib branch: release-1.10 Julia branch: backports-release-1.10 Old commit: 11cf00df7 New commit: 70525539d Julia version: 1.10.0 Pkg version: 1.10.0 Bump invoked by: @IanButterworth Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/Pkg.jl/compare/11cf00df71dca76ccb34320ad11ad64ea015fe25...70525539d3157891445abe806962f780f64143cd ``` $ git log --oneline 11cf00df7..70525539d 70525539d Merge pull request #3770 from JuliaLang/backports-release-1.10 729ebe1e3 Avoid deleting existing artifacts when ignoring hashes. (#3768) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 24 January 2024, 04:39:14 UTC
ddb9d0d 🤖 [backports-release-1.10] Bump the Pkg stdlib from 563a3387a to 11cf00df7 (#53008) 22 January 2024, 20:34:34 UTC
47999ab Fix `widen_diagonal` bug for nested `UnionAll` (#52924) 17 January 2024, 13:53:11 UTC
f9c2461 Widen diagonal var during `Type` unwrapping in `instanceof_tfunc` (#52228) 17 January 2024, 13:52:42 UTC
788eff9 Correctly port realloc from 1.9 to 1.10 (#52929) I think when we backed off the new heuristics for 1.10 this got missed in the meanwhile. Should fix https://github.com/JuliaLang/julia/issues/52923 16 January 2024, 21:16:45 UTC
aaaf5de 🤖 [backports-release-1.10] Bump the Downloads stdlib from f97c72f to ead289a (#52886) Stdlib: Downloads URL: https://github.com/JuliaLang/Downloads.jl.git Stdlib branch: release-1.10 Julia branch: backports-release-1.10 Old commit: f97c72f New commit: ead289a Julia version: 1.10.0 Downloads version: 1.6.0(It's okay that it doesn't match) Bump invoked by: @IanButterworth Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/Downloads.jl/compare/f97c72fbd726e208a04c53791b35cc34c747569f...ead289a7f1be7689738aaea9b12d919424a106ef ``` $ git log --oneline f97c72f..ead289a ead289a Close Multi timers atexit. Add 1.6 CI (#234) 8a614d5 Skip flakey "concurrent requests" tests on windows (#228) 246504e add a small precompile workload (#226) 3ed0f08 Document how to bypass the 20-second timeout (#222) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 16 January 2024, 10:10:18 UTC
e5ccc44 inference: always bail out const-prop' with non-const result limited (#52836) Investigating into #52763, I've found that `AbstractInterpreters` which enables the `aggressive_constprop` option, such as `REPLInterpreter`, might perform const-prop' even if the result of a non-const call is `LimitedAccuracy`. This can lead to an unintended infinite loop with a custom aggressive const-prop' implementation. This commit restricts const-prop' for such cases where the non-const call result is limited to avoid the issue. This fix is conservative, but given that accurate inference is mostly impossible when there are unresolvable cycles (which is indicated by limited result), aggressive const-prop' isn't necessary for such cases, and I don't anticipate this leading to any obvious regression. fix #52763 16 January 2024, 03:49:35 UTC
813bfac Revert inlined method signature stacktrace lookup code (#52754) The fallback code that was written for #41099 is causing unintended issues with some inlined stack frames (one previous #51405, new #52709), since the main piece, linetable storage and lookup, was removed in #50546. Probably better to strip it all back to how it was previously, until it can all be revisited more fully. Should be backported to 1.10. 14 January 2024, 08:32:23 UTC
df9062b lowering: remove `QuoteNode` wrapping for captured variables (#52878) Issues like #52531 were more broadly fixed by #52856. This commit partially reverts #52596, while leaving the added tests. 13 January 2024, 08:49:13 UTC
0cea48e change Downloads branch to release-1.10 13 January 2024, 03:27:05 UTC
fd13cf0 effects: fix #52843, account for mutable values directly embedded to IR Fixes another variant of #52531. 12 January 2024, 00:28:30 UTC
5c0a2a6 release 1.10: backport the lattice fix for array op type checks (#52773) (#52774) 07 January 2024, 10:26:18 UTC
6a107d0 Use `jl_types_egal` in `equiv_field_types` (#52748) Fixes #52686 Fixes https://github.com/timholy/Revise.jl/issues/770 --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 06 January 2024, 06:14:22 UTC
6eb535d inference: Guard TypeVar special case against vararg (#52721) Fix #52613 by making the TypeVar special case in inference check for vararg first. There's nothing the special case can really do with vararg anyway, so fall back to the ordinary abstract call handling. 06 January 2024, 05:20:33 UTC
79684ad update nthreads info in versioninfo (#52423) Fixes https://github.com/JuliaLang/julia/issues/52404 @nilshg I opted to make it one line as it fits. ``` julia> versioninfo() Julia Version 1.11.0-DEV.1011 Commit bb7091c6f2* (2023-12-04 14:58 UTC) Platform Info: OS: macOS (arm64-apple-darwin23.0.0) CPU: 10 × Apple M2 Pro WORD_SIZE: 64 LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1) Threads: 1 default, 0 interactive, 1 GC (on 6 virtual cores) Environment: JULIA_EDITOR = code ``` (cherry picked from commit e96c13aa5b2e2b41e618ac009d43e1fdea0a70d4) 05 January 2024, 13:37:33 UTC
5de62a4 update --gcthreads section in command line options (#52645) Make these consistent with what's shown by `julia --help`. Fixes https://github.com/JuliaLang/www.julialang.org/issues/1997. (cherry picked from commit e7e8b8900d471f38f90d7150c5123c503aa1ac36) 05 January 2024, 13:37:33 UTC
a2e4054 Don't access parent of triangular matrix in powm (#52583) Since the values stored in the parent corresponding to the structural zeros of a tridiagonal matrix aren't well-defined, using it in `ldiv!` is a footgun that may lead to heisenbugs (one seen in https://buildkite.com/julialang/julia-master/builds/31285#018c7cc7-6c77-41ac-a01b-1c7d14cb1b15). This PR changes it to using the tridiagonal matrix directly in `ldiv!`, which should lead to predictable results, and be bug-free. The failing tests for #52571 pass locally with this change. (cherry picked from commit ef549aef46c52ea616d99a3717a55656894c81cf) 05 January 2024, 13:37:33 UTC
3120989 set VERSION to 1.10.0 (#52584) 25 December 2023, 18:01:13 UTC
85d852d Backports for 1.10.0. (#52622) 24 December 2023, 19:29:48 UTC
3fd8bae update NEWS file 23 December 2023, 21:20:04 UTC
1f3c424 Lowering: Insert QuoteNode for captured boxed value (#52596) `Core.Box` is not self-quoting so it should be captured in a QuoteNode. This has been benign until the improved effect system, we handle `QuoteNode` of a mutable value as a global access, whereas a direct reference to a value is treated as inaccessible memory. Fixes #52531 --------- Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> (cherry picked from commit 1290b51a478602f4672e481ba6e5b1eed706843a) 23 December 2023, 13:45:44 UTC
24b525d inference: fix `istuple` check in `apply_type_tfunc` (#52585) close #51927 (cherry picked from commit 58fac69cfa1277c6f9db9a5cb475d08ce267f725) 23 December 2023, 13:45:03 UTC
e38f117 Fix ?(#TAB method search name exploration (#52555) Fix #52551. This PR ensures that a `SomeModule.?(...#TAB` completion can only suggests method `foo` such that `SomeModule.foo` exists (by checking `isdefined(SomeModule, :foo)`). This is equivalent, I believe, to the initial implementation of https://github.com/JuliaLang/julia/pull/38791, less the bug. Now that we have #51345, we may want to relax the above condition somewhat to include public names present in modules loaded into `SomeModule`, so that, for instance, a direct completion of `?(` would include `@assume_effects`. This could be good for method exploration because even though typing `@assume_effects` with no qualification in `Main` will error, the error now includes the helpful message ``` Hint: a global variable of this name also exists in Base. ``` But that can wait for a later PR anyway, this one is just the bugfix. The bug mentioned at https://github.com/JuliaLang/julia/issues/52551#issuecomment-1858543413 dates from the initial #38791 so this could be backported as far back as v1.8. --------- Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> (cherry picked from commit a987f56bf35da093c6b93e98eea8e09dd06dcc20) 23 December 2023, 13:44:05 UTC
5bf09bb fix isequal_normalized for combining-char reordering (#52447) Fixes #52408. (Note that this function was added in Julia 1.8, in #42493.) In the future it would be good to further optimize this function by adding a fast path for the common case of strings that are mostly ASCII characters. Perhaps simply skip ahead to the first byte that doesn't match before we begin doing decomposition etcetera. (cherry picked from commit 3b250c73dc686cb3857067582f47be336ac788ef) 23 December 2023, 13:43:46 UTC
a7dbaad Document environment variable JULIA_PKG_PRESERVE_TIERED_INSTALLED (#52362) This is based on ```julia julia> using Pkg help?> Pkg.add ... │ Note │ │ To change the default strategy to PRESERVE_TIERED_INSTALLED set the env var │ JULIA_PKG_PRESERVE_TIERED_INSTALLED to true. ... ``` I suggest to backport this so that it becomes available in the release docs of Julia v1.9 and newer. (cherry picked from commit 2c2ea3aa649fcea7a7b889c80e211b84cf6f2510) 23 December 2023, 13:43:37 UTC
d487a8d Fix `show` for `MethodList` when methods are from another module (#52354) When a type is defined in one module but its methods are defined elsewhere, `show_method_table` errors due to an incorrect lookup of the defining module used to determine colors for printing. In particular, the code had been assuming that the type is defined in the module in which its constructor's first method (in the sense of `first(methods())`) is defined, which isn't always true. The color used for printing the module name needs to be determined on a per-method basis and can't be correctly done based on the method table's module. For each method, we attempt to derive the module for the method table to which the method was added, then determine whether it's the same as the defining module for the method. Fixes #49382 Fixes #49403 Fixes #52043 Co-Authored-By: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 40bc64c2c213f0e3bf6c91f9b5868221ec4b0c05) 23 December 2023, 13:43:28 UTC
b6dd527 [release 1.10] backport GC developer docs to 1.10 (#52616) The current GC developer docs are fairly out-of-date with the actual implementation. This PR should be strictly a NFC. 22 December 2023, 17:56:37 UTC
ed79752 set VERSION to 1.10.0-rc3 (#52568) 18 December 2023, 09:57:58 UTC
e27685f Backports release 1.10 (#52503) Backported PRs: - [x] #51234 <!-- Fix getfield codegen for tuple inputs and unknown symbol fields. --> - [x] #52170 <!-- fix invalidations related to `ismutable` --> - [x] #52342 <!-- Add single-term multiplication for `AbstractQ` on v1.10 and above --> - [x] #52333 <!-- bugfix for dot of Hermitian{noncommutative} --> - [x] #52407 <!-- channels: fix memory ordering violation in iterate --> - [x] #52405 <!-- Bump LLVM to 15.0.7+10 to fix GC issue --> - [x] #52441 <!-- Remove `Pkg` dependency from `SuiteSparse_jll` --> - [x] #52367 <!-- docs: add notes about scratchspaces in depot --> - [x] #52456 <!-- Make `jl_write_coverage_data` dllexported again --> - [x] #52294 <!-- GC scheduler refinements --> - [x] #52359 <!-- make custom log macros work --> - [x] #52548 17 December 2023, 19:50:45 UTC
5a0bda4 fix #52531, fix the effects modeling of `QuoteNode` (#52548) What observed in #52531 is that `QuoteNode` can embed global variables that users can modify. Therefore, when dealing with `QuoteNode`, it's necessary to taint its `:inaccessiblememonly` just like we do for `GlobalRef`. - fixes #52531 - replaces #52536 16 December 2023, 05:03:35 UTC
c61b27f make custom log macros work (#52359) (cherry picked from commit 641f717a15cf89964db446c1bb32d0d672763786) 12 December 2023, 12:28:24 UTC
4241d4c GC scheduler refinements (#52294) Supersedes https://github.com/JuliaLang/julia/pull/51061 and https://github.com/JuliaLang/julia/pull/51414. Still needs more perf analysis. (cherry picked from commit e26c257b28ec6285c8687aef466b64f9ce23c3c7) 12 December 2023, 12:20:40 UTC
6627b91 Make `jl_write_coverage_data` dllexported again (#52456) Closes #52452 (cherry picked from commit 8cf7598ebd0c120f50db2f5d6bbd091855a4836c) 12 December 2023, 12:13:24 UTC
1dd88d1 docs: add notes about scratchspaces in depot (#52367) Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> (cherry picked from commit bf6c31ceb5c4da5839026463bc29d00458d80a75) 12 December 2023, 12:13:23 UTC
af11859 Remove `Pkg` dependency from `SuiteSparse_jll` (#52441) This dependency seems to be superfluous, and `Pkg` brings lots of dependencies into the project (Downloads, LibGit2, etc.) which makes it hard to create leaner binary packages via `PackageCompiler` for projects that depend on `SuiteSparse_jll`. (cherry picked from commit 3b9c39ac1cbb46688d7b3597e70b9ae591e3b0ec) 12 December 2023, 12:13:22 UTC
1e66ce2 Bump LLVM to 15.0.7+10 to fix GC issue (#52405) (cherry picked from commit e5046b4579cf571931714abbe14a3a049ca6383b) 12 December 2023, 12:13:22 UTC
4f09b54 channels: fix memory ordering violation in iterate (#52407) Channel `iterate` calls might miss trailing items without this patch. I have not seen proof of this reaching a failure, but we do appear to be missing this ordering specification in visual review. Should not make a difference to generated code on x86, which already has TSO guaranteed, but may alter optimizations and other CPUs with weaker memory orderings. (cherry picked from commit 856e1120a8f255e4907a05f0146a2026a6665dd4) 12 December 2023, 12:13:22 UTC
e94785f bugfix for dot of Hermitian{noncommutative} (#52333) Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> (cherry picked from commit 53f1eb82b8a4265def61ab677746b63a583ef865) 12 December 2023, 12:13:21 UTC
ea88b8c Add single-term multiplication for `AbstractQ` on v1.10 and above (#52342) (cherry picked from commit 150c1adfd6f1a54e6a74393c7bb73af8f772fa30) 12 December 2023, 12:13:20 UTC
14677ae fix invalidations related to `ismutable` (#52170) Related to #52134. It would be nice if the underlying inference issue was fixed but this seems to be a hotfix for now. I have seen this inference problem occurring in Julia v1.9, v1.10, and current `master`. For example, on Julia v1.9.3, I get ```julia julia> code_warntype(ismutable, (Function,)) MethodInstance for ismutable(::Function) from ismutable(x) @ Base reflection.jl:521 Arguments #self#::Core.Const(ismutable) x::Function Body::Any 1 ─ nothing │ nothing │ %3 = Base.typeof(x)::Type{<:Function} │ %4 = Base.getproperty(%3, :name)::Any │ %5 = Base.getproperty(%4, :flags)::Any │ %6 = (%5 & 0x02)::Any │ %7 = (%6 == 0x02)::Any └── return %7 ``` This causes some invalidations when `using OrdinaryDiffEq`. (cherry picked from commit df40bab2dadf6ad46b822e5ea3e71ac3ee238628) 12 December 2023, 12:13:18 UTC
dbb9c46 Update VERSION to 1.10.0-rc2 (#52375) 03 December 2023, 15:25:58 UTC
d9da975 Backports for 1.10.0-rc2 (#52045) Backported PRs: - [x] #51213 <!-- Wait for other threads to finish compiling before exiting --> - [x] #51520 <!-- Make allocopt respect the GC verifier rules with non usual address spaces --> - [x] #51598 <!-- Use a simple error when reporting sysimg load failures. --> - [x] #51757 <!-- fix parallel peakflop usage --> - [x] #51781 <!-- Don't make pkgimages global editable --> - [x] #51848 <!-- allow finalizers to take any locks and yield during exit --> - [x] #51847 <!-- add missing wait during Timer and AsyncCondition close --> - [x] #50824 <!-- Add some aliasing warnings to docstrings for mutating functions in Base --> - [x] #51885 <!-- remove chmodding the pkgimages --> - [x] #50207 <!-- [devdocs] Improve documentation about building external forks of LLVM --> - [x] #51967 <!-- further fix to the new promoting method for AbstractDateTime subtraction --> - [x] #51980 <!-- macroexpand: handle const/atomic struct fields correctly --> - [x] #51995 <!-- [Artifacts] Pass artifacts dictionary to `ensure_artifact_installed` dispatch --> - [x] #52098 <!-- Fix errors in `sort` docstring --> - [x] #52136 <!-- Bump JuliaSyntax to 0.4.7 --> - [x] #52140 <!-- Make c func `abspath` consistent on Windows. Fix tracking path conversion. --> - [x] #52009 <!-- fix completion that resulted in startpos of 0 for `\\ --> - [x] #52192 <!-- cap the number of GC threads to number of cpu cores --> - [x] #52206 <!-- Make have_fma consistent between interpreter and compiled --> - [x] #52027 <!-- fix Unicode.julia_chartransform for Julia 1.10 --> - [x] #52217 <!-- More helpful error message for empty `cpu_target` in `Base.julia_cmd` --> - [x] #51371 <!-- Memoize `cwstring` when used for env lookup / modification on Windows --> - [x] #52214 <!-- Turn Method Overwritten Error into a PrecompileError -- turning off caching --> - [x] #51895 <!-- Devdocs on fixing precompile hangs, take 2 --> - [x] #51596 <!-- Reland "Don't mark nonlocal symbols as hidden"" --> - [x] #51834 <!-- [REPLCompletions] allow symbol completions within incomplete macrocall expression --> - [x] #52010 <!-- Revert "Support sorting iterators (#46104)" --> - [x] #51430 <!-- add support for async backtraces of Tasks on any thread --> - [x] #51471 <!-- Fix segfault if root task is NULL --> - [x] #52194 <!-- Fix multiversioning issues caused by the parallel llvm work --> - [x] #51035 <!-- refactor GC scanning code to reflect jl_binding_t are now first class --> - [x] #52030 <!-- Bump Statistics --> - [x] #52189 <!-- codegen: ensure i1 bool is widened to i8 before storing --> - [x] #52228 <!-- Widen diagonal var during `Type` unwrapping in `instanceof_tfunc` --> - [x] #52182 <!-- jitlayers: replace sharedbytes intern pool with one that respects alignment --> Contains multiple commits, manual intervention needed: - [ ] #51092 <!-- inference: fix bad effects for recursion --> Non-merged PRs with backport label: - [ ] #52196 <!-- Fix creating custom log level macros --> - [ ] #52170 <!-- fix invalidations related to `ismutable` --> - [ ] #51479 <!-- prevent code loading from lookin in the versioned environment when building Julia --> 02 December 2023, 19:15:37 UTC
b497f44 simplify call to promote_eltype with repeated elements (#51135) Helps to short-circuit calls to large splat calls, since those have all the same type elements. Fixes #51011 (cherry picked from commit 3527213ccb1bfe0c48feab5da64d30cadbd4c526) 28 November 2023, 16:12:22 UTC
465ff74 jitlayers: reduce excess alignment of #52182 (#52210) (cherry picked from commit 72cd63ce28c50c8c72e009df03dfec608802450e) 28 November 2023, 14:25:48 UTC
332d9f3 jitlayers: replace sharedbytes intern pool with one that respects alignment (#52182) The llvm optimizations may increase alignment beyond the initial MAX_ALIGN. This pool's alignment was previously only `sizeof(struct { atomic<int> RefCount; size_t Length; char Data[]; })` however, potentially resulting in segfaults at runtime. Fixes #52118. Should make CI much happier. (cherry picked from commit a65bc9a267837fcf9813bef2fc6eb79d02e25ea5) 28 November 2023, 14:25:48 UTC
0e96c9c Fix getfield codegen for tuple inputs and unknown symbol fields. (#51234) (cherry picked from commit eab8d6b96b05f7e84103f66a902e4ee7ad395b48) 28 November 2023, 12:24:14 UTC
46617e5 bump Pkg to latest v1.10 27 November 2023, 14:54:11 UTC
1e3842c bump SparseArrays to latest v1.10 27 November 2023, 14:52:54 UTC
e77afbf Fix multiversioning issues caused by the parallel llvm work (#52194) So after struggling with this for a long while it seems there were two different issues. The first one we lacked coverage over, but the other was a very subtle issue when we sorted the fptrs. ~I still need to add test that does multiversioning where we call between multiversioned functions~ Fixes https://github.com/JuliaLang/julia/issues/52079 (cherry picked from commit a386cd101ca8ff1775f38e2ec2fbeb7076a39c4f) 27 November 2023, 14:23:04 UTC
db56488 refactor GC scanning code to reflect jl_binding_t are now first class (#51035) Removes some redundant code. Credits to Eduardo for pointing this out in the GC meeting. (cherry picked from commit 5bc558c9cde5db6fa89b7b4d1d56bf3f8dbe8454) 27 November 2023, 14:23:04 UTC
e8673bd codegen: ensure i1 bool is widened to i8 before storing (#52189) Teach value_to_pointer to convert primitive types to their stored representation first, to avoid exposing undef bits later (via memcpy). Take this opportunity to also generalizes the support for zext Bool to anywhere inside any struct for changing any bitwidth to a multiple of 8 bytes. This would change a vector like <2 x i4> from occupying i8 to i16 (c.f. LLVM's LangRef), if such an operation were expressible in Julia today. And take this opportunity to do a bit of code cleanup, now that codegen is better and using helpers from LLVM. Fixes #52127 (cherry picked from commit 9aa7980358349ee7017fa614525f571ffa92c55d) 27 November 2023, 14:23:04 UTC
a16e4e1 Fix segfault if root task is NULL (#51471) In `jl_print_task_backtraces()`. Follow-on to https://github.com/JuliaLang/julia/pull/51430. (cherry picked from commit cde964f392659b301c6019e4ec02c07d43da2c92) 27 November 2023, 14:23:04 UTC
4f7feb1 add support for async backtraces of Tasks on any thread (#51430) (cherry picked from commit e5c6340e252986c0bba240a0924ee4b6885aeb65) 27 November 2023, 14:23:04 UTC
4aeef21 [REPLCompletions] allow symbol completions within incomplete macrocall expression (#51834) fix #51827 --------- Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> (cherry picked from commit 3b1ba62bd27e0dabbd2ec0a6c000edb8138c5915) 27 November 2023, 14:23:04 UTC
5c9602e Don't mark nonlocal symbols as hidden (#51596) Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com> (cherry picked from commit 341e9d067d0cbdce5fe85ff18d6ef5945cbadc28) 27 November 2023, 09:10:44 UTC
9f55128 Devdocs on fixing precompile hangs, take 2 (#51895) This is #50914, with only the documentation changes, plus an improvement to the warning message. --------- Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> (cherry picked from commit 6d5787a993ae7623df479217c9805767ceaa3556) 27 November 2023, 09:09:19 UTC
2030e7d Turn Method Overwritten Error into a PrecompileError -- turning off caching (#52214) Fixes #52213 Overwritting methods during cache creation is currently not something that the system can support and can lead to surprising, counter-intuitive and fatal errors. In 1.10 we turned it from a warning to a strong error, with this PR it remains a strong error, but the precompilation system recognizes it and essentially sets `__precompile__(false)` for this module and all modules that depend on it. Before: ``` julia> using OverwriteMethodError [ Info: Precompiling OverwriteMethodError [top-level] WARNING: Method definition +(Bool, Bool) in module Base at bool.jl:166 overwritten in module OverwriteMethodError at /home/vchuravy/src/julia2/OverwriteMethodError.jl:2. ERROR: LoadError: Method overwriting is not permitted during Module precompile. Stacktrace: [1] top-level scope @ ~/src/julia2/OverwriteMethodError.jl:2 [2] include @ Base ./Base.jl:489 [inlined] [3] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) @ Base ./loading.jl:2216 [4] top-level scope @ stdin:3 in expression starting at /home/vchuravy/src/julia2/OverwriteMethodError.jl:1 in expression starting at stdin:3 ERROR: Failed to precompile OverwriteMethodError [top-level] to "/home/vchuravy/.julia/compiled/v1.10/jl_guiuCQ". Stacktrace: [1] error(s::String) @ Base ./error.jl:35 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool) @ Base ./loading.jl:2462 [3] compilecache @ Base ./loading.jl:2334 [inlined] [4] (::Base.var"#968#969"{Base.PkgId})() @ Base ./loading.jl:1968 [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool}) @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.0-rc1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93 [6] #mkpidlock#6 @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.0-rc1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined] [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64}) @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.0-rc1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111 [8] #invokelatest#2 @ Base ./essentials.jl:889 [inlined] [9] invokelatest @ Base ./essentials.jl:884 [inlined] [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64) @ Base ./loading.jl:2977 [11] maybe_cachefile_lock @ Base ./loading.jl:2974 [inlined] [12] _require(pkg::Base.PkgId, env::String) @ Base ./loading.jl:1964 [13] __require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:1806 [14] #invoke_in_world#3 @ Base ./essentials.jl:921 [inlined] [15] invoke_in_world @ Base ./essentials.jl:918 [inlined] [16] _require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:1797 [17] macro expansion @ Base ./loading.jl:1784 [inlined] [18] macro expansion @ Base ./lock.jl:267 [inlined] [19] __require(into::Module, mod::Symbol) @ Base ./loading.jl:1747 [20] #invoke_in_world#3 @ Base ./essentials.jl:921 [inlined] [21] invoke_in_world @ Base ./essentials.jl:918 [inlined] [22] require(into::Module, mod::Symbol) @ Base ./loading.jl:1740 ``` After: ``` julia> using OverwriteMethodError ┌ Info: Precompiling OverwriteMethodError [top-level] └ @ Base loading.jl:2486 WARNING: Method definition +(Bool, Bool) in module Base at bool.jl:166 overwritten in module OverwriteMethodError at /home/vchuravy/src/julia2/OverwriteMethodError.jl:2. ERROR: Method overwriting is not permitted during Module precompile. ┌ Info: Skipping precompilation since __precompile__(false). Importing OverwriteMethodError [top-level]. └ @ Base loading.jl:2084 ``` --------- Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> (cherry picked from commit 9e8fe688c5e32bde3ab48bb71f9d4ab45ef272ee) 27 November 2023, 09:08:13 UTC
9c097b6 Revert "Support sorting iterators (#46104)" (#52010) Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> (cherry picked from commit 1cb85ad3fb1ba32e18be9be67775d1b36dc27079) 27 November 2023, 09:02:33 UTC
2638522 Memoize `cwstring` when used for env lookup / modification on Windows (#51371) ~This is just me proposing a suggestion from @KristofferC in https://discourse.julialang.org/t/debug-has-massive-performance-impact/103974/22, it's all his code / idea, not mine.~ This PR makes it so that on windows, we pre-allocate an `IdDict` and every time someone looks up environment variables (motivating example here is `@debug` statements), we store the result of `cwstring(::String)` in that `IdDict` so that it doesn't need to be re-computed for future uses. The idea behind this is that people have observed that [using `@debug` is significantly more costly on Windows than other platforms](https://discourse.julialang.org/t/debug-has-massive-performance-impact/103974), even though we have documented in that manual that it should be a really cheap operation. @KristofferC suggests this is due to the fact that [checking environment variables in Windows is more costly](https://discourse.julialang.org/t/debug-has-massive-performance-impact/103974/18). ~The idea here is that we preallocate a `Cwstring` on Windows that just holds the text `"JULIA_DEBUG"`, so that if `access_env(f, "JULIA_DEBUG")` gets called, we don't need to create a new `Cwstring` and then throw it away each time.~ --------- Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 9dcedaa8ec198b49387a8459e4daff1474b93ce2) 27 November 2023, 08:46:21 UTC
99d71c0 More helpful error message for empty `cpu_target` in `Base.julia_cmd` (#52217) Fix #52209. (cherry picked from commit 4a18886a16308dee8d475c942bc641d718e59e9f) 27 November 2023, 08:46:20 UTC
e9acaf5 fix Unicode.julia_chartransform for Julia 1.10 (#52027) #49559 by @JeffBezanson updated `src/flisp/julia_charmap.h` but missed [the comment](https://github.com/JuliaLang/julia/blob/164969f3d06919b073f3aa9ee608e40974ca82d9/src/flisp/julia_charmap.h#L5-L6) noting that `base/strings/unicode.jl` has to be updated accordingly. (cherry picked from commit 05f4b05384af9af364dcdf181db1a35020e07270) 27 November 2023, 08:46:16 UTC
f67439c Make have_fma consistent between interpreter and compiled (#52206) Currently the interpreter always returns false. Which isn't very good. Make it follow whatever the JIT will do. (cherry picked from commit a6c656e6c47ff2b1237c92e90ba73ac267fc1dc0) 27 November 2023, 08:46:15 UTC
0218599 cap the number of GC threads to number of cpu cores (#52192) (cherry picked from commit f26947b4f5aee73135581bb14290c1c00102b8e3) 27 November 2023, 08:46:12 UTC
dc2c4f1 [REPL] fix computation of startpos for path completions (#52009) Fixes https://github.com/JuliaLang/julia/issues/51985 Ensure that the REPL completions escape and unescape text correctly, using the correct functions, and accounting for exactly what the user has currently typed. The old broken method is left around for Pkg, since it has an over-reliance on it returning incorrect answers. Once Pkg is fixed, we can delete that code. Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 5edcdc5a234fa69a65f5e2b8d85ac51cfb37a653) 27 November 2023, 08:46:12 UTC
0a1e83e Make c func `abspath` consistent on Windows. Fix tracking path conversion. (#52140) Explanation for the `GetFullPathName` behavior https://developercommunity.visualstudio.com/t/GetFullPath-fails-if-given-empty-string/483359#T-N486167 (cherry picked from commit eaef647957ca5e085eea299cfa9f699c6afe6d8f) 27 November 2023, 08:46:11 UTC
back to top