sort by:
Revision Author Date Message Commit Date
05384ce Initialize world counter in adopted threads root task 30 August 2024, 13:24:58 UTC
4b4bf13 Merge branch 'master' into gb/io-loop-thread 30 August 2024, 10:48:39 UTC
fdc1090 Specialize newindex for StructuredMatrix broadcasting (#55626) This provides most of the benefits seen in https://github.com/JuliaLang/julia/pull/55604. The simpler implementation appears to help with branch-prediction in inferring the zero elements of the structured matrices. The improved performance as a consequence: ```julia julia> using LinearAlgebra julia> U = UpperTriangular(rand(3000,3000)); D = Diagonal(rand(size(U,1))); julia> @btime $U .+ $D; 23.405 ms (3 allocations: 68.66 MiB) # nightly 15.266 ms (3 allocations: 68.66 MiB) # This PR ``` --------- Co-authored-by: Matt Bauman <mbauman@juliahub.com> 30 August 2024, 03:15:42 UTC
da3468c add pending state back to jl_thread_suspend_and_get_state-machine (#55622) Fixes an issue with #55500, where signals may abruptly abort the process as they observe it is still processing the resume SIGUSR2 message and are not able to wait for that processing to end before setting the new message to exit. 29 August 2024, 18:45:01 UTC
e921dc8 Revert "Don't expose guard pages to malloc_stack API consumers" (#55555) Reverts JuliaLang/julia#54591 This cause the runtime to misbehave and crash, since all of the consumers of this information in the runtime assumed that the guard pages are accounted for correctly as part of the reserved allocation. Nothing in the runtime ever promised that it is valid to access the pages beyond the current redzone (indeed, ASAN would forbid it as well). 29 August 2024, 18:12:40 UTC
7ea8a9a Refactor `Binding` data structures in preparation for partition (#54788) This is a re-worked extraction of #54654, adjusted to support the new semantics arrived at over the course of that thread. Note that this is the data-structure change only. The semantics in this PR still match current master to the greatest extent possible. The core idea here is to split `Binding` in two: A new `Binding` with minimal data and a `BindingPartition` that holds all data that is world-age partitioned. In the present PR, these are always in 1:1 correspondednce, but after #54654, there will be multiple `BindingPartition`s for every `Binding`. Essentially the `owner` and `ty` fields have been merged into a new `restriction` field of `BindingPartition`, which may also hold the value of a constant (consistent with the final semantics reached in #54654). The non-partitioned binding->value field is now used exclusively for non-constant globals. The disambiguation for how to interpret the `restriction` field happens via flags. `->imported` grew to 2 bits and can now be one of `NONE`/`IMPLICIT`/ `EXPLICIT`/`GUARD`. `GUARD` corresponds to the old `b->owner == NULL` case. `NONE` corresponds to the old `b->owner == b` case, while IMPLICIT/EXPLICIT correspond to `b->owner != b` and the old `imported` flag. Other than that, the behavior of the flags is unchanged. Additionally, fields are provided for `min_world`/`max_world`/`next`, but these are unused in this PR and prepratory only. 29 August 2024, 17:21:22 UTC
b5af119 Fix algebra for block SymTridiagonal matrices (#55383) Currently, algebra between a `SymTridiagonal` and another structured matrix uses the bands of the `SymTridiagonal` directly to compute the result. However, this may lead to incorrect results for block matrices, where the elements are symmetrized or transposed. This PR resolves such issues by introducing some internal functions that apply the transforms before the addition/subtraction or equality check is carried out. Fixes issues like ```julia julia> using LinearAlgebra, StaticArrays julia> m = SMatrix{2,2}(1:4); julia> S = SymTridiagonal(fill(m,4), fill(m,3)) 4×4 SymTridiagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}: [1 3; 3 4] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [1 3; 3 4] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [1 3; 3 4] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [1 3; 3 4] julia> D = Diagonal(fill(m,4)) 4×4 Diagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}: [1 3; 2 4] ⋅ ⋅ ⋅ ⋅ [1 3; 2 4] ⋅ ⋅ ⋅ ⋅ [1 3; 2 4] ⋅ ⋅ ⋅ ⋅ [1 3; 2 4] julia> S + D 4×4 SymTridiagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}: [2 6; 6 8] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [2 6; 6 8] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [2 6; 6 8] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [2 6; 6 8] julia> S[1] + D[1] 2×2 SMatrix{2, 2, Int64, 4} with indices SOneTo(2)×SOneTo(2): 2 6 5 8 julia> S[1] + D[1] == (S + D)[1] false ``` With this PR, ```julia julia> S + D 4×4 Tridiagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}: [2 6; 5 8] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [2 6; 5 8] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [2 6; 5 8] [1 3; 2 4] ⋅ ⋅ [1 2; 3 4] [2 6; 5 8] julia> S[1] + D[1] == (S + D)[1] true ``` This would also make https://github.com/JuliaLang/julia/pull/50423 simpler. 29 August 2024, 15:13:47 UTC
19ac316 Indexing in diag for structured matrices (#55610) This would support a wider range of types, and won't be limited to ones that support `zero(T)`. The following would work after this: ```julia julia> D = Diagonal(fill([1 2; 3 4], 4)) 4×4 Diagonal{Matrix{Int64}, Vector{Matrix{Int64}}}: [1 2; 3 4] ⋅ ⋅ ⋅ ⋅ [1 2; 3 4] ⋅ ⋅ ⋅ ⋅ [1 2; 3 4] ⋅ ⋅ ⋅ ⋅ [1 2; 3 4] julia> diag(D,2) 2-element Vector{Matrix{Int64}}: [0 0; 0 0] [0 0; 0 0] ``` Performance in the common case seems unaffected (the variation is probably noise): ```julia julia> D = Diagonal(rand(1000)); julia> @btime diag($D, 2); 543.836 ns (3 allocations: 7.88 KiB) # nightly 429.551 ns (3 allocations: 7.88 KiB) # This PR ``` --------- Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 29 August 2024, 14:30:25 UTC
4f1af7f Allow opting out of `PartialOpaque` support via `Expr(:opaque_closure, ...)` (#55068) This can be useful for when an OpaqueClosure is desired, e.g., as an invalidation barrier or when you know it passes through an inference barrier naturally (in my case, a mutable type). This is intentionally left undocumented for now. 29 August 2024, 13:59:19 UTC
cebfd7b 🤖 [master] Bump the Downloads stdlib from a9d274f to 1061ecc (#55614) 29 August 2024, 09:34:00 UTC
ac0161a optimizer: don't insert `:throw_undef_if_not` for defined slots (#55600) As an application of JuliaLang/julia#55545, this commit avoids the insertion of `:throw_undef_if_not` nodes when the defined-ness of a slot is guaranteed by abstract interpretation. ```julia julia> function isdefined_nothrow(c, x) local val if c val = x end if @isdefined val return val end return zero(Int) end; julia> @code_typed isdefined_nothrow(true, 42) ``` ```diff diff --git a/old b/new index c4980a5c9c..3d1d6d30f0 100644 --- a/old +++ b/new @@ -4,7 +4,6 @@ CodeInfo( 3 ┄ %3 = φ (#2 => x, #1 => #undef)::Int64 │ %4 = φ (#2 => true, #1 => false)::Bool └── goto #5 if not %4 -4 ─ $(Expr(:throw_undef_if_not, :val, :(%4)))::Any -└── return %3 +4 ─ return %3 5 ─ return 0 ) => Int64 ``` 29 August 2024, 06:51:21 UTC
950a87f 🤖 [master] Bump the Pkg stdlib from d1d2fc986 to 43e7849ce (#55618) Stdlib: Pkg URL: https://github.com/JuliaLang/Pkg.jl.git Stdlib branch: master Julia branch: master Old commit: d1d2fc986 New commit: 43e7849ce Julia version: 1.12.0-DEV Pkg version: 1.12.0 Bump invoked by: @IanButterworth Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/Pkg.jl/compare/d1d2fc986e7249909b450979acc4d359aacfc88e...43e7849ce37545493d0da3226cd7449f5f88563e ``` $ git log --oneline d1d2fc986..43e7849ce 43e7849ce make some test_logs match any because of new Downloads debugs (#4007) 8b2c0f329 Better error messages if artifact rename fails (#3827) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 29 August 2024, 05:44:49 UTC
a732dc3 Synchronize arg name with description and --help (#55619) Co-authored-by: Piotrek Żygieło <pzygielo@users.noreply.github.com> 29 August 2024, 02:49:55 UTC
2ce69ea Make jl_static_show_func_sig more robust (#55620) Fixes a crash in existing compiler tests when build with debug symbols. More generally, this function is used for C-side debugging so should be robust to unexpected data. (In this particular case the signature in question was a plain `Tuple{Any}` from the opaque closure test). 29 August 2024, 02:45:34 UTC
378f192 precompile: Ensure CI has inference results available for `jl_create_native` (#55528) `jl_emit_codeinst` expects inference results to be available, so `jl_ci_cache_lookup` needs to provide a CI that has them. I noticed this because it was causing missing code when, e.g., compiling `NetworkOptions.__init__` using `--trim` (#55047). Unfortunately `jl_emit_codeinst` failures are silently ignored (they just leave the LLVM module empty), so it was easy to miss that the looked-up CIs sometimes fail to compile. 28 August 2024, 15:58:17 UTC
ec2d696 Test more UTF-8 characters in transcode (#55580) Previous test just covered 2-byte UTF8. This one should hit more branches for ASCII and 3-byte UTF-8. 28 August 2024, 12:33:17 UTC
6440292 Fast bounds-check for CartesianIndex ranges (#55596) `StepRangeLen{<:CartesianIndex}` indices have been supported since v1.11, but bounds-checking for such indices currently falls back to iterating over the entire range. This PR adds a quick `checkindex` for such ranges. The performance improvement as a consequence: ```julia julia> D = Diagonal(1:10_000); julia> @btime checkbounds($D, diagind($D, IndexCartesian())); 6.697 μs (0 allocations: 0 bytes) # nightly, O(n) 4.044 ns (0 allocations: 0 bytes) # This PR, O(1) ``` 28 August 2024, 08:35:58 UTC
d882d62 Use native tls model in macos for better performance (#55576) Macos has a native tls implementation in clang since at least clang 3.7 which much older than what we require so lets enable it for some small performance gains. We may want to turn on the ifunc optimization that's there as well but I haven't tested it and it's only in clang 18 and up so it would be off for most since Apple clang is 16 on their latest beta https://github.com/llvm/llvm-project/pull/73687 28 August 2024, 07:22:55 UTC
878f621 Convert triangular inv test comparison to isapprox (#55609) The failing test was noticed in https://github.com/JuliaLang/julia/pull/55607. The comparison will only hold approximately in general, as the inverses are computed differently. 28 August 2024, 07:11:45 UTC
16697f3 Downgrade patchelf to v0.17.2 (#55602) This should fix https://github.com/JuliaLang/julia/issues/55423 27 August 2024, 20:49:19 UTC
688811d re-enable profiling stack switch test (#55553) Removes the warning on platforms where CFI_NORETURN appears likely to be sufficient alone for this to work (from observation in gdb/lldb) and re-enables the test on all platforms so we can see if more work here is needed at all (e.g. similar annotations in jl_setjmp/jl_longjmp). Refs #43124 27 August 2024, 18:15:14 UTC
d5bbcc5 Initialize threadpools correctly during sysimg build (#55567) I made a mistake with which threadpool was which. 27 August 2024, 18:00:55 UTC
f457a75 Try to remove likely-unused codepath in codegen for :method (#55532) This codepath is odd. It derives a method name from the slotname metadata and then does an implicit assignment to that slot. Worse, as the comment indicates, the codepath is missing from the interpreter, which will crash if it were to ever encounter such a piece of code. I suspect this pattern is unused - I accidentally broke it badly in (the as of yet unmerged PR) #54788 and neither tests nor pkgeval noticed. So let's try removing it on master. If it turns out something does depend on it, we can go the opposite way and implement it properly in all the places that look at :method. 27 August 2024, 16:25:52 UTC
78b0b74 inference: refine slot undef info within `then` branch of `@isdefined` (#55545) By adding some information to `Conditional`, it is possible to improve the `undef` information of `slot` within the `then` branch of `@isdefined slot`. As a result, it's now possible to prove the `:nothrow`-ness in cases like: ```julia @test Base.infer_effects((Bool,Int)) do c, x local val if c val = x end if @isdefined val return val end return zero(Int) end |> Core.Compiler.is_nothrow ``` 27 August 2024, 12:29:03 UTC
733b3f5 Fix cong implementation to be properly random and not just cycling. (#55509) This was found by @IanButterworth. It unfortunately has a small performance regression due to actually using all the rng bits 26 August 2024, 22:27:17 UTC
6477530 prevent stackoverflow of stat/lstat (#55554) Gives a better error message if joinpath does not change types (which will cause stat/lstat to resolve to the same method and crash). Fixes #50890 25 August 2024, 23:39:29 UTC
03451ff Small missing AnnotatedString/Char tests (#55582) Just a few things that coverage shows aren't hit yet 25 August 2024, 22:06:09 UTC
383c8ef Redact object data in heap snapshots, with option to opt-out (#55326) The contents of strings can contain user data which may be proprietary and emitting them in the heap snapshot makes the heap snapshot a potential vulnerability rather than a useful debugging artifact. There are likely other tweaks necessary to make heap snapshots "safe", but this is one less. --------- Co-authored-by: Nathan Daly <NHDaly@gmail.com> Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 25 August 2024, 16:02:34 UTC
0c8641a Empty out loaded_precompiles dict instead of asserting it's empty. (#55564) This dict will contain things if we load a package image during precompilation 25 August 2024, 13:21:58 UTC
adb323f include the `[]` doc string into the docs (#55400) 25 August 2024, 10:41:21 UTC
638a049 Quick return for empty arrays in bidiagonal matrix multiplications (#55414) 25 August 2024, 09:04:36 UTC
eb5587d Fix self-recursion in generic triangular (l/r)mul! (#55547) This fixes a stack-overflow in the following: ```julia julia> using LinearAlgebra julia> struct MyTriangularWithoutLRMul{T, A<:LinearAlgebra.AbstractTriangular{T}} <: LinearAlgebra.AbstractTriangular{T} data :: A end julia> Base.size(A::MyTriangularWithoutLRMul) = size(A.data) julia> Base.getindex(A::MyTriangularWithoutLRMul, i::Int, j::Int) = A.data[i,j] julia> M = MyTriangularWithoutLRMul(UpperTriangular(rand(4,4))); julia> A = rand(4,4); julia> lmul!(M, A) Warning: detected a stack overflow; program state may be corrupted, so further execution might be unreliable. ERROR: StackOverflowError: Stacktrace: [1] unsafe_copyto! @ ./genericmemory.jl:122 [inlined] [2] _copyto_impl! @ ./array.jl:308 [inlined] [3] copyto! @ ./array.jl:299 [inlined] [4] copyto! @ ./array.jl:322 [inlined] [5] _trimul!(C::Matrix{Float64}, A::MyTriangularWithoutLRMul{Float64, UpperTriangular{Float64, Matrix{Float64}}}, B::Matrix{Float64}) @ LinearAlgebra ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.12/LinearAlgebra/src/triangular.jl:961 [6] lmul!(A::MyTriangularWithoutLRMul{Float64, UpperTriangular{Float64, Matrix{Float64}}}, B::Matrix{Float64}) @ LinearAlgebra ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.12/LinearAlgebra/src/triangular.jl:982--- the above 2 lines are repeated 39990 more times --- ``` This is done by rerouting the generic `lmul!`/`rmul!` methods to those for `UpperTriangular` or `LowerTriangular`, depending on which triangular half is populated. A similar issue with `ldiv!`/`rdiv!` is also resolved. 25 August 2024, 03:35:57 UTC
083bd8f added cholesky of cholesky (#55559) Currently, if you have a cholesky matrix, you cannot call `cholesky` on it again: ``` using LinearAlgebra N = 10 A = randn(N, N) P = Symmetric(A * A' + I) C = cholesky(P) CC = cholesky(C) # this line throws an error ``` This small PR provides the fix. --------- Co-authored-by: Jeff Bezanson <jeff.bezanson@gmail.com> 24 August 2024, 08:13:40 UTC
eaa2edd Add tests for alignment of `Int128`/`UInt128` (#55565) 24 August 2024, 06:47:20 UTC
94c9d0a document `fourthroot` (#55560) Updates #19529 24 August 2024, 02:57:44 UTC
5c1cfb3 [Profile] Replace `SIGTERM` with `SIGQUIT` (#55566) The `SIGQUIT` signal is handled specially in CI and automatically uploads failure information artifacts, which may be helpful to debug failures. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> 23 August 2024, 20:25:07 UTC
3d20a92 Fix indexing in _mapreducedim for OffsetArrays (#55506) The destination array was being indexed incorrectly if it had offset indices. This led to the following on nightly: ```julia julia> using OffsetArrays julia> r = 5:100; julia> a = OffsetVector(r, 2); julia> sum(a, dims=1) 1-element OffsetArray(::Vector{Int64}, 3:3) with eltype Int64 with indices 3:3: 0 julia> sum(a) 5040 ``` The indexing was marked `@inbounds`, so this was not throwing an error. This PR also follows #55329 and only marks the indexing operations as `@inbounds`, omitting the function calls. --------- Co-authored-by: Matt Bauman <mbauman@juliahub.com> 23 August 2024, 07:25:46 UTC
0c64283 better implementations for `unionlen`/`uniontypes` (#55561) - unify the dispatch targets - removed unnecessary `_uniontypes(::MustAlias)` method 23 August 2024, 04:31:54 UTC
6866b11 LinearAlgebra: return destination in `setindex!` (#55544) Currently, in LinearAlgebra, `setindex!` occasionally returns the value, and at other times the destination array (or its parent). This PR consistently returns the destination in `setindex!`, which matches the behavior for `Array`s. Note that this does not change the behavior of `A[i,j] = v`, which still returns `v`. This only changes `setindex!`. 22 August 2024, 21:51:44 UTC
6d7f4a2 Use `===` to compare with `nothing` in tests (#55563) This follows the generally recommended style, and updates instances of `a == nothing` to `a === nothing` in tests, and similarly for the `!=` comparison. 22 August 2024, 17:38:37 UTC
58c7186 inference: propagate partially initialized mutable structs more (#55533) 22 August 2024, 02:53:59 UTC
54142b7 effects: minor fixes for the effects system correctness (#55536) This commit implements several fixes related to the correctness of the effect system. The most significant change addresses an issue where post-opt analysis was not correctly propagating the taints of `:noub` and `:nortcall` of `:foreigncall` expressions, which could lead to incorrect effect bits. Additionally, adjustments have been made to the values of effects used in various worst-case scenarios. 21 August 2024, 13:13:39 UTC
86cba99 Remove specialized vector-matrix multiplication methods (#55538) The specialized methods for `TransposeAbsMat` and `AdjointAbsMat` seem unnecessary, as these are also `AbstractMatrix`es, and are treated identically. I've also added a `require_one_based_indexing` check on the vector to avoid accepting `OffsetArray`s. 21 August 2024, 01:46:39 UTC
7d341ea Update display style of `n` in `invmod(n)` dosctring. (#55539) From https://github.com/JuliaLang/julia/pull/55531#discussion_r1722585738 20 August 2024, 22:20:16 UTC
a2b1b4e Reduce size of Task object (#55515) Move the registers onto the stack, so that they only are present when the Task is actually switched out, saving memory when the Task is not running yet or already finished. It makes this mostly just a huge renaming job. On Linux x86_64 this reduces it from 376 bytes to 184 bytes. Has some additional advantages too, such as copy_stack tasks (e.g. with always_copy_stacks) can migrate to other threads before starting if they are not sticky. Also fixes a variable that got mixed up by #54639 and caused always_copy_stacks to abort, since the stack limits were wrong. Also now fixes https://github.com/JuliaLang/julia/issues/43124, though I am not quite confident enough in it to re-enable that test right now. 20 August 2024, 20:42:30 UTC
7b8dd90 inference: represent callers_in_cycle with view slices of a stack instead of separate lists (#55364) Inspired by Tarjan's SCC, this changes the recursion representation to use a single list instead of a linked-list + merged array of cycles. 20 August 2024, 20:07:06 UTC
f2f76d8 Mark the _state field as atomic and move to proper atomics instead of llvmcall (#55502) 20 August 2024, 17:39:55 UTC
31d413e Explain `walkdir` docstring second example. (#55541) This is a follow-up documentation PR to #55476. I believe the second example in the `walkdir` docstring is still unintuitive since the result changes each time. I attempted a simple explanation, but I don't really know what I'm talking about. Hopefully someone else can explain what is happening better. Some additional discussion in [this Discourse post](https://discourse.julialang.org/t/find-all-files-named-findthis-csv-in-nested-subfolders-of-rootfolder/118096). --------- Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> 20 August 2024, 17:31:31 UTC
f107c6b Make test GC safe 20 August 2024, 13:37:15 UTC
9650510 inference: model partially initialized structs with `PartialStruct` (#55297) There is still room for improvement in the accuracy of `getfield` and `isdefined` for structs with uninitialized fields. This commit aims to enhance the accuracy of struct field defined-ness by propagating such struct as `PartialStruct` in cases where fields that might be uninitialized are confirmed to be defined. Specifically, the improvements are made in the following situations: 1. when a `:new` expression receives arguments greater than the minimum number of initialized fields. 2. when new information about the initialized fields of `x` can be obtained in the `then` branch of `if isdefined(x, :f)`. Combined with the existing optimizations, these improvements enable DCE in scenarios such as: ```julia julia> @noinline broadcast_noescape1(a) = (broadcast(identity, a); nothing); julia> @allocated broadcast_noescape1(Ref("x")) 16 # master 0 # this PR ``` One important point to note is that, as revealed in JuliaLang/julia#48999, fields and globals can revert to `undef` during precompilation. This commit does not affect globals. Furthermore, even for fields, the refinements made by 1. and 2. are propagated along with data-flow, and field defined-ness information is only used when fields are confirmed to be initialized. Therefore, the same issues as JuliaLang/julia#48999 will not occur by this commit. 20 August 2024, 02:58:22 UTC
d4bd540 make jl_thread_suspend_and_get_state safe (#55500) Fixes async safety, thread safety, FreeBSD safety. 20 August 2024, 01:57:48 UTC
a218e82 handle Type{Union{}} like typeof(Union{}) more (#55508) We could try to make them both pointers (by setting mayinlinealloc=false on Core.TypeofBottom), but let's try to make them both equivalent representations of the typeof Union{} as a singleton value. Fixes #55208 20 August 2024, 01:57:38 UTC
bec4702 Improve `walkdir` docstring (#55476) I was not able to understand how to use `walkdir` with the current docstring. It was not clear to me that `root` changes each iteration. I thought `root` would stay fixed to the input and `dirs` would iterate. 19 August 2024, 22:05:42 UTC
4a229bc Add behavior for even values to docs for new invmod(n, T) functions (#55531) As discussed in https://discourse.julialang.org/t/the-new-invmod-n-t-function-and-even-arguments/118377 19 August 2024, 22:02:09 UTC
2313260 atomics: fix setonce runtime intrinsic (#55530) 19 August 2024, 20:30:10 UTC
62e7705 Set `.jl` sources as read-only during installation (#55524) This sets all `.jl` files in `$(prefix)/base` and `$(prefix)/test` to have `0444` permissions, to better match how `Pkg` installs packages (and sets them to be read-only). Fixes https://github.com/JuliaLang/juliaup/issues/865 --------- Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com> 19 August 2024, 19:10:29 UTC
26a234f Initialize task lock in adopt thread 19 August 2024, 17:26:54 UTC
ea9d1c2 Fix external IO loop thead interaction and add function to Base.Experimental to facilitate it's use. Also add a test. 19 August 2024, 16:17:44 UTC
39eaa3c Add test for upper/lower/titlecase and fix missing import (#55443) 19 August 2024, 15:38:52 UTC
fc7b40e Add JULIA_PKG_GC_AUTO to docs (#51583) 19 August 2024, 14:35:41 UTC
d17b5ac Faster trace for `StridedMatrix`es (#55523) This PR generalizes the `tr(::Matrix)` method to accept `StridedMatrix` types. As a consequence: ```julia julia> A = rand(1000,1000); julia> V = view(A, axes(A)...); julia> @btime tr($V); 1.990 μs (3 allocations: 7.88 KiB) # nightly v"1.12.0-DEV.1063" 999.455 ns (0 allocations: 0 bytes) # this PR ``` 19 August 2024, 14:00:17 UTC
9738bc7 Fix tr for Symmetric/Hermitian block matrices (#55522) Since `Symmetric` and `Hermitian` symmetrize the diagonal elements of the parent, we can't forward `tr` to the parent unless it is already symmetric. This limits the existing `tr` methods to matrices of `Number`s, which is the common use-case. `tr` for `Symmetric` block matrices would now use the fallback implementation that explicitly computes the `diag`. This resolves the following discrepancy: ```julia julia> S = Symmetric(fill([1 2; 3 4], 3, 3)) 3×3 Symmetric{AbstractMatrix, Matrix{Matrix{Int64}}}: [1 2; 2 4] [1 2; 3 4] [1 2; 3 4] [1 3; 2 4] [1 2; 2 4] [1 2; 3 4] [1 3; 2 4] [1 3; 2 4] [1 2; 2 4] julia> tr(S) 2×2 Matrix{Int64}: 3 6 9 12 julia> sum(diag(S)) 2×2 Symmetric{Int64, Matrix{Int64}}: 3 6 6 12 ``` 19 August 2024, 13:59:44 UTC
306cee7 remove redundant `print` method for `Splat` (#55494) also a related bugfix by Jameson Nash <vtjnash@gmail.com> 18 August 2024, 11:32:11 UTC
dff0f55 Avoid using zero for the eltype in `tr(::Matrix)` (#55519) This lets us compute the `tr` for `Matrix`es where the `eltype` does not have a zero, but we may sum over the diagonal. E.g. the following works after this: ```julia julia> M = fill([1 2; 3 4], 2, 2) 2×2 Matrix{Matrix{Int64}}: [1 2; 3 4] [1 2; 3 4] [1 2; 3 4] [1 2; 3 4] julia> tr(M) 2×2 Matrix{Int64}: 2 4 6 8 ``` Also, using linear indexing over Cartesian appears to provide a slight speed-up for small to mid-sized matrices: ```julia julia> A = rand(1000,1000); julia> @btime tr($A); 1.796 μs (0 allocations: 0 bytes) # nightly 1.524 μs (0 allocations: 0 bytes) # This PR ``` 18 August 2024, 04:20:06 UTC
4aa9dfa Some small tests for transcode (#55436) This logic appears to be [uncovered](https://app.codecov.io/gh/JuliaLang/julia/blob/master/base%2Fstrings%2Fcstring.jl#L232) although it does have a doctest! Running the tests locally managed to trigger these functions. 17 August 2024, 21:25:11 UTC
faa6095 Demote(B)Float16 pass: only keep enabled for PPC. (#55486) LLVM should handle this properly now for everything but PPC (where BFoat16 isn't supported anyway). 17 August 2024, 15:00:26 UTC
8a19b74 Update symmetric docstring to reflect the type of uplo (#55504) This brings the docstring closer to the actual implementation. In particular, following the current docstring and defining ```julia symmetric(::MyMatrix, uplo=:U) ``` leads to a method ambiguity, as `LinearAlgebra` defines `symmetric(::AbstractMatrix, uplo::Symbol=:U)`. 17 August 2024, 13:45:58 UTC
0a26e90 update precompile progress bar to match Pkg (#55512) 16 August 2024, 19:58:30 UTC
f2fc2d9 🤖 [master] Bump the Pkg stdlib from 7aef1f044 to d1d2fc986 (#55511) 16 August 2024, 19:58:08 UTC
5a633b7 Fix fast getptls ccall lowering. (#55507) 16 August 2024, 18:30:48 UTC
ddecfe7 fix overlapping definitions of `Base.active_module` and `REPL.active_module` (#55316) also avoid calling `active_module` from low-level printing functions fix #54888 16 August 2024, 18:14:36 UTC
5230d27 Fix push! for OffsetVectors, add tests for push! and append! on AbstractVector (#55480) Per https://github.com/JuliaLang/julia/pull/55470#discussion_r1714000529, the `push!(::AbstractArray, ...)` array implementation assumed one-based indexing and did not account for an `OffsetVector` scenario. Here we add tests for `push!(::AbstractArray, ...)` and `append(::AbstractArray, ...)` including using `@invoke` to test the effect on `OffsetVector`. cc: @fredrikekre 16 August 2024, 07:33:22 UTC
6916eb7 Use same toolchain throughout pgo+bolt build (#55460) Also, I added the pgo flags to the `finish_stage2` target in case they are or become useful there. 15 August 2024, 23:07:21 UTC
015c2cb [OpenBLAS_jll] Upgrade to new build to fix bug in threads buffers (#55496) 15 August 2024, 22:37:48 UTC
67c1723 handle async termination better (#55440) Fixes #55235 Disables the assertion failure in the scheduler, so that we are more likely to be able to report the underlying failure and run atexit handlers successfully. This should clean up some of the error messages that occur on timeout. ``` julia> sleep(5) ^\ [89829] signal 3: Quit: 3 in expression starting at REPL[1]:1 kevent at /usr/lib/system/libsystem_kernel.dylib (unknown line) unknown function (ip: 0x0) Allocations: 830502 (Pool: 830353; Big: 149); GC: 1 Quit: 3 ``` 15 August 2024, 12:57:26 UTC
b4ebb00 build: add missing dependencies for expmap (#55492) I was confused why https://github.com/JuliaLang/julia/issues/49121 was re-occuring locally, until I noticed this file was not getting rebuilt. 15 August 2024, 11:34:30 UTC
e1aefeb Do not load `ScopedValues` with `using` (#55452) Stop loading `ScopedValues` with `using` so folks use `ScopedValues.with` or `using ScopedValues` rather than `Base.with`. Implements https://github.com/JuliaLang/julia/pull/55095#issuecomment-2272334437 ~Have to bump the StyledStrings stdlib to include https://github.com/JuliaLang/StyledStrings.jl/pull/80~ Done --------- Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 15 August 2024, 02:23:43 UTC
c7309d0 subtyping: fast path for lhs union and rhs typevar (#55413) Fixes #55230 14 August 2024, 21:05:05 UTC
2a4e2b1 fix Event to use normal Condition variable (#55441) ThreadSynchronizer is only for things that are very trivial, as there are a lot of things they are forbidden from doing (such as waiting for a Task to set it). Happened to notice while reviewing https://github.com/JuliaLang/julia/pull/55439#pullrequestreview-2231026949 that this was still using the pre-v1.2 style lock, which makes this mostly useless in v1.4+ 14 August 2024, 15:34:06 UTC
b7aa5e3 simplify complex atanh and remove singularity perturbation (#55268) fixes https://github.com/JuliaLang/julia/issues/55266, and use `inv(z)` rather than `1/z` and use `muladd` in a couple places. --------- Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> 13 August 2024, 15:46:04 UTC
881be64 fix hierarchy level of "API reference" in `Dates` documentation (#55483) Currently, "API reference" is at the same level as "Dates" although it is a subsection of it. This looks particularly weird in the PDF version of the manual: Section 67 is "Dates" and Section 68 is "API reference". Note that I didn't change the nesting level of the subsection "Constants" at the end of the file. As a result, it is now at the same level as "Dates and Time Types" and "Dates Functions". Before it was a subsection of the latter, which appears wrong to me. 13 August 2024, 14:45:19 UTC
5eda597 make the previous active module in the REPL a non-global (#55418) The intent of the active module seems to have been for it to be REPL specific but this global kind of breaks that. Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com> 13 August 2024, 14:44:41 UTC
96fd25a 🤖 [master] Bump the JuliaSyntaxHighlighting stdlib from 04b2323 to b89dd99 (#55474) Stdlib: JuliaSyntaxHighlighting URL: https://github.com/julialang/JuliaSyntaxHighlighting.jl.git Stdlib branch: main Julia branch: master Old commit: 04b2323 New commit: b89dd99 Julia version: 1.12.0-DEV JuliaSyntaxHighlighting version: 1.12.0 Bump invoked by: @tecosaur Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/julialang/JuliaSyntaxHighlighting.jl/compare/04b2323c41f6422464c838fe9045700e9ee75e95...b89dd99db56700c47434df6106b6c6afd1c9ed01 ``` $ git log --oneline 04b2323..b89dd99 b89dd99 Actually use the syntax_errors argument fee6aa5 Use a mutable type instead of ref fields ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 13 August 2024, 03:07:40 UTC
ac425a5 Bump SparseArrays for SuiteSparse 7.8.0 (#55472) 12 August 2024, 19:01:03 UTC
a23aee8 🤖 [master] Bump the StyledStrings stdlib from d7496d2 to f6035eb (#55461) Stdlib: StyledStrings URL: https://github.com/JuliaLang/StyledStrings.jl.git Stdlib branch: main Julia branch: master Old commit: d7496d2 New commit: f6035eb Julia version: 1.12.0-DEV StyledStrings version: 1.11.0(Does not match) Bump invoked by: @LilithHafner Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/StyledStrings.jl/compare/d7496d24d3f05536bce6a7eb4cd8ca05a75c02aa...f6035eb97b516862b16e36cab2ecc6ea8adc3d7c ``` $ git log --oneline d7496d2..f6035eb f6035eb Replace accidental Int64s with Ints 4fcd8bb Use const fields in parser State instead of refs 35a3cdf Load user-customisations lazily 9802b6c Load ScopedValues symbols from their source 9b9cf71 Use branches when choosing how to merge face attrs eada2dc Avoid needlessly creating a new Face in get calls c647af9 Avoid boxing mergedface by making it toplevel a117008 Avoid creating strings for ansi_4bit_color_code 6863348 Improve type inference of face merging f588218 Quick fix for 4d04102adf0d (Optimised SimpleColor) 4d04102 Optimise creation of a SimpleColor from a UInt32 6d3f44d Actually overload Base's escape_string 58507e5 Fully qualify method overloads, avoid importing fc686f3 Explicitly test eachregion c417262 Refactor eachregion to be O(n log n) not O(n^2) f7af623 Use concrete refs in macro parser state struct 41b2446 Check for underline term capability flag 987f776 Treat printing as more than a nothing-return write 43fb018 Add types to some comprehensions d3aa7e1 Improve inference with a function over a closure 6901610 Mention the importance of semantic names in docs 0be209b Better hint at the package capabilities in readme 37b9e4b Load no faces.toml when the DEPOT_PATH is empty ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 12 August 2024, 16:20:03 UTC
cf4c30a Add push! implementation for AbstractArray depending only on resize! (#55470) Fix #55459 In Julia 1.10, `push!` and `append!` would be functional for `AbstractVector` implementations if `resize!` and `setindex!` were defined. As of #51903 by @vtjnash as in Julia 1.11.0-rc2, `append!` now depends on an implementation of `sizehint!` and `push!`. Since `push!` also depends on `append!`, a stack overflow situation can easily be created. To avoid this, this pull request defines the following * Add generic versions of `push!(a::AbstractVector, x)` which do not depend on `append!` * Add default implementation of `sizehint!` that is a no-op The implementation of `push!(a::AbstractVector, x)` is a generic version based on the implementation of `push!(a::Vector, x)` without depending on internals. # Example for SimpleArray Consider the `SimpleArray` example from test/abstractarray.jl: ```julia mutable struct SimpleArray{T} <: AbstractVector{T} els::Vector{T} end Base.size(sa::SimpleArray) = size(sa.els) Base.getindex(sa::SimpleArray, idx...) = getindex(sa.els, idx...) Base.setindex!(sa::SimpleArray, v, idx...) = setindex!(sa.els, v, idx...) Base.resize!(sa::SimpleArray, n) = resize!(sa.els, n) Base.copy(sa::SimpleArray) = SimpleArray(copy(sa.els)) ``` Note that `setindex!` and `resize!` are implemented for `SimpleArray`. ## Julia 1.10.4: push! is functional On Julia 1.10.4, `push!` has a functional implementation for `SimpleArray` ```julia-repl julia> push!(SimpleArray{Int}(zeros(Int,5)), 6) 6-element SimpleArray{Int64}: 0 0 0 0 0 6 ``` ## Julia 1.11.0-rc2 and nightly: push! requires sizehint! and is prone to stack overflow Before this pull request, on Julia 1.11.0-rc2 and nightly, `push!` fails for want of `sizehint!`. ```julia-repl julia> push!(SimpleArray{Int}(zeros(Int,5)), 6) ERROR: MethodError: no method matching sizehint!(::SimpleArray{Int64}, ::Int64) The function `sizehint!` exists, but no method is defined for this combination of argument types. ... ``` After implementing `sizehint!`, `push!` still fails with a stack overflow. ```julia-repl julia> Base.sizehint!(a::SimpleArray, x) = a julia> push!(SimpleArray{Int}(zeros(Int, 5)), 6) Warning: detected a stack overflow; program state may be corrupted, so further execution might be unreliable. ERROR: StackOverflowError: Stacktrace: [1] _append! @ ./array.jl:1344 [inlined] [2] append! @ ./array.jl:1335 [inlined] [3] push!(a::SimpleArray{Int64}, iter::Int64) @ Base ./array.jl:1336 --- the above 3 lines are repeated 79982 more times --- [239950] _append! @ ./array.jl:1344 [inlined] [239951] append! @ ./array.jl:1335 [inlined] ``` This is because the new implementation of `append!` depends on `push!`. ## After this pull request, push! is functional. After this pull request, there is a functional `push!` for `SimpleArray` again as in Julia 1.10.4: ```julia-repl julia> push!(SimpleArray{Int}(zeros(Int, 5), 6) 6-element SimpleArray{Int64}: 0 0 0 0 0 6 ``` 12 August 2024, 13:10:03 UTC
c907192 🤖 [master] Bump the SparseArrays stdlib from e61663a to 55976a6 (#55469) Stdlib: SparseArrays URL: https://github.com/JuliaSparse/SparseArrays.jl.git Stdlib branch: main Julia branch: master Old commit: e61663a New commit: 55976a6 Julia version: 1.12.0-DEV SparseArrays version: 1.12.0 Bump invoked by: @ViralBShah Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaSparse/SparseArrays.jl/compare/e61663ad0a79a48906b0b12d53506e731a614ab8...55976a6e4f883a32e3d3658af50c49879b98fce0 ``` $ git log --oneline e61663a..55976a6 55976a6 Keep sparse solvers docs as before (#552) 95fd7ff Missing space in error message (#554) b8a13ef implement in-place `ldiv!` for Cholesky factorization (#547) 1527014 Do not use nested dissection by default. (#550) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 12 August 2024, 10:51:19 UTC
9d222b8 [OpenBLAS_jll] Upgrade to v0.3.28 (#55462) Memo to self: * update version number in `stdlib/OpenBLAS_jll/Project.toml` * update version number and sha in `deps/openblas.version` * refresh checksums with `make -f contrib/refresh_checksums.mk -j openblas` See the [release notes of v0.3.28](https://github.com/OpenMathLib/OpenBLAS/releases/tag/v0.3.28). 12 August 2024, 01:13:05 UTC
a3859ed 🤖 [master] Bump the JuliaSyntaxHighlighting stdlib from a463611 to 04b2323 (#55464) Stdlib: JuliaSyntaxHighlighting URL: https://github.com/julialang/JuliaSyntaxHighlighting.jl.git Stdlib branch: main Julia branch: master Old commit: a463611 New commit: 04b2323 Julia version: 1.12.0-DEV JuliaSyntaxHighlighting version: 1.12.0 Bump invoked by: @tecosaur Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/julialang/JuliaSyntaxHighlighting.jl/compare/a463611e715c9ec546ac8463c38b6890d892e0c8...04b2323c41f6422464c838fe9045700e9ee75e95 ``` $ git log --oneline a463611..04b2323 04b2323 Support a syntax_errors keyword argument 3fba08b Use concrete refs in paren state struct ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 12 August 2024, 01:11:26 UTC
d302272 precompilepkgs: Handle when the terminal is very short (#55445) Fixes https://github.com/JuliaLang/Pkg.jl/issues/3935 1.10 counterpart https://github.com/JuliaLang/Pkg.jl/pull/3988 11 August 2024, 14:13:56 UTC
2e1235e Update asyncmap docs to clarify order of outputs (#54974) 10 August 2024, 22:35:20 UTC
7e809b0 compiler: apply more accurate effects to return_type_tfunc (#55338) In extreme cases, the compiler could mark this function for concrete-eval, even though that is illegal unless the compiler has first deleted this instruction. Otherwise the attempt to concrete-eval will re-run the function repeatedly until it hits a StackOverflow. Workaround to fix #55147 @aviatesk You might know how to solve this even better, using post-optimization effect refinements? Since we should actually only apply the refinement of terminates=false => terminates=true (and thus allowing concrete eval) if the optimization occurs, and not just in inference thinks the optimization would be legal. --------- Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> 10 August 2024, 04:31:37 UTC
86231ce LinearAlgebra: round-trippable 2-argument show for `Tridiagonal`/`SymTridiagonal` (#55415) This makes the displayed form of a `Tridiaognal` and a `SymTridiagonal` valid constructors. ```julia julia> T = Tridiagonal(1:3, 1:4, 1:3) 4×4 Tridiagonal{Int64, UnitRange{Int64}}: 1 1 ⋅ ⋅ 1 2 2 ⋅ ⋅ 2 3 3 ⋅ ⋅ 3 4 julia> show(T) Tridiagonal(1:3, 1:4, 1:3) julia> S = SymTridiagonal(1:4, 1:3) 4×4 SymTridiagonal{Int64, UnitRange{Int64}}: 1 1 ⋅ ⋅ 1 2 2 ⋅ ⋅ 2 3 3 ⋅ ⋅ 3 4 julia> show(S) SymTridiagonal(1:4, 1:3) ``` Displaying the bands has several advantages: firstly, it's briefer than printing the full array, and secondly, it displays the special structure in the bands, if any. E.g.: ```julia julia> T = Tridiagonal(spzeros(3), spzeros(4), spzeros(3)); julia> show(T) Tridiagonal(sparsevec(Int64[], Float64[], 3), sparsevec(Int64[], Float64[], 4), sparsevec(Int64[], Float64[], 3)) ``` It's clear from the displayed form that `T` has sparse bands. A special handling for `SymTridiagonal` matrices is necessary, as the diagonal band is symmetrized. This means: ```julia julia> using StaticArrays julia> m = SMatrix{2,2}(1:4); julia> S = SymTridiagonal(fill(m,3), fill(m,2)) 3×3 SymTridiagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}: [1 3; 3 4] [1 3; 2 4] ⋅ [1 2; 3 4] [1 3; 3 4] [1 3; 2 4] ⋅ [1 2; 3 4] [1 3; 3 4] julia> show(S) SymTridiagonal(SMatrix{2, 2, Int64, 4}[[1 3; 3 4], [1 3; 3 4], [1 3; 3 4]], SMatrix{2, 2, Int64, 4}[[1 3; 2 4], [1 3; 2 4]]) ``` The displayed values correspond to the symmetrized band, and not the actual input arguments. I think displaying the symmetrized elements makes more sense here, as this matches the form in the 3-argument `show`. 09 August 2024, 19:20:42 UTC
7ec39e7 fix swallowing internal errors in precompilepkgs (#55432) Testing: - with a package error ``` (SimpleLooper) pkg> precompile Precompiling all packages... ✗ SimpleLooper 0 dependencies successfully precompiled in 2 seconds ERROR: The following 1 direct dependency failed to precompile: SimpleLooper Failed to precompile SimpleLooper [ff33fe5b-d8e3-4cbd-8bd9-3d2408ff8cab] to "/Users/ian/.julia/compiled/v1.12/SimpleLooper/jl_PQArnH". ERROR: LoadError: Stacktrace: [1] error() @ Base ./error.jl:53 ``` - with interrupt ``` (SimpleLooper) pkg> precompile Precompiling all packages... ^C Interrupted: Exiting precompilation... ◒ SimpleLooper 1 dependency had output during precompilation: ┌ SimpleLooper │ [57879] signal 2: Interrupt: 2 │ in expression starting at /Users/ian/Documents/GitHub/SimpleLooper.jl/src/SimpleLooper.jl:2 └ ``` - an internal error simulated in the same scope that https://github.com/JuliaLang/Pkg.jl/issues/3984 was failing to throw from ``` JULIA stdlib/release.image Unhandled Task ERROR: Stacktrace: [1] error() @ Base ./error.jl:53 [2] (::Base.Precompilation.var"#27#65"{Bool, Bool, Vector{Task}, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}, String}, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}, String}, Base.Event, Base.Event, ReentrantLock, Vector{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}}, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}, String}, Vector{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}}, Int64, Vector{Base.PkgId}, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}, Bool}, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}, Base.Event}, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}, Bool}, Vector{Base.PkgId}, Dict{Base.PkgId, String}, Dict{Tuple{Base.PkgId, UInt128, String, String}, Bool}, Base.Precompilation.var"#color_string#38"{Bool}, Bool, Base.Semaphore, Bool, String, Vector{String}, Vector{Base.PkgId}, Base.PkgId, Base.CacheFlags, Cmd, Pair{Cmd, Base.CacheFlags}, Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}})() @ Base.Precompilation ./precompilation.jl:819 ``` 09 August 2024, 17:50:58 UTC
18340a3 `stale_cachefile`: handle if the expected cache file is missing (#55419) Part of fixing https://github.com/JuliaLang/Pkg.jl/issues/3984 09 August 2024, 17:47:20 UTC
c3d0d67 inference: follow up #49260, remove no longer necessary functions (#55430) 09 August 2024, 15:33:43 UTC
2727e36 Remove deprecated non string API for LLVM pass pipeline and parse all options (#55407) This technically removes the option for Oz in julia but it doesn't actually do what one wants. This removes an API currently used by Enzyme.jl and AllocCheck.jl but given that LLVM.jl doesn't support this API anymore that seems fine. @wsmoses @maleadt Do we want the replacement for this (a function that parses the PipelineConfig struct) to live in LLVM.jl or GPUCompiler.jl ? 09 August 2024, 13:59:51 UTC
3db1d19 add missing clamp function for IOBuffer (#55424) The `clamp` function was defined in Base.Math, but required to be in Base now, so move it to intfuncs with other similar functions Fixes #55279 09 August 2024, 11:08:23 UTC
ac9558c codegen: move undef freeze before promotion point (#55428) Fixes #55396 09 August 2024, 11:07:31 UTC
e7e8768 Vendor the terminfo database for use with base/terminfo.jl (#55411) This adds the `terminfo` database to `deps/`, providing a better user experience on systems that don't have `terminfo` on the system by default. The database is built using BinaryBuilder but is not actually platform-specific (it's built for `AnyPlatform`) and as such, this fetches the artifact directly rather than adding a new JLL to stdlib, and it requires no compilation. A build flag, `WITH_TERMINFO`, is added here and assumed true by default, allowing users to set `WITH_TERMINFO=0` in Make.user to avoid bundling `terminfo` should they want to do so. The lookup policy for `terminfo` entries is still compliant with what's described in `terminfo(5)`; the bundled directory is taken to be the first "compiled in" location, i.e. prepended to `@TERMINFO_DIRS@`. This allows any user settings that exist locally, such as custom entries or locations, to take precedence. Fixes #55274 Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> 08 August 2024, 23:44:30 UTC
back to top