https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
cc5fcb2 Bump SparseArrays to the merged version upstream. 18 January 2024, 19:21:51 UTC
877c05e Bump to SuiteSparse 7.5.1 (#52960) 18 January 2024, 19:10:52 UTC
a28e553 Remove single-argument methods for `map`, `foreach`, `Iterators.map` (#52631) In the case of `map` and `foreach`, this removes awkward functionality. `Iterators.map(::Any)`, on the other hand, already threw. 18 January 2024, 15:49:40 UTC
8c49e5e Fix eachslice docstring typo (#52926) 18 January 2024, 14:41:29 UTC
8562af5 minor refactors on REPLCompletions.jl (#52953) Those I found while working on #52952. 18 January 2024, 11:01:17 UTC
8f2f178 Make `hasdoc` public (#52708) Making `Docs.hasdoc` `public` per @LilithHafner https://github.com/JuliaLang/julia/pull/52139#issuecomment-1874748877. --------- Co-authored-by: Steven G. Johnson <stevenj@mit.edu> Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> 18 January 2024, 04:17:24 UTC
8274088 irinterp: don't add backedges to top-level thunks (#52916) irinterp utilizes `store_backedges(::MethodInstance, edges)`, but it doesn't check to prevent adding backedges to top-level thunks. This is no issue in native compilation, however, it can become problematic when an external `AbstractInterpreter` that does irinterp on top-level thunks tries precompilation (this could, for instance, trigger [this assert](https://github.com/JuliaLang/julia/blob/b058146cafec8405aa07f9647642fd485ea3b5d7/src/staticdata_utils.c#L450)). This commit tries to resolve this issue by performing the top-level thunk check within `store_backedges(::MethodInstance, edges)` instead of `store_backedges(::InferenceResult, edges)` 18 January 2024, 03:21:13 UTC
94db364 replace the `depwarn` special case with the recent compiler annotations (#52918) The special handling for `depwarn`, originating from JuliaLang/julia#27918 in 2018, is now set to be replaced by the more recent compiler annotations, esp. `@nospecializeinfer`. Assessing potential regressions from this change might be challenging, but I confirmed this only has a minimal impact on image sizes at least. 18 January 2024, 03:18:17 UTC
0b0e3bf doc: fix typos, Markdown, language in the Manual section on `Main.main` (#52939) 18 January 2024, 03:17:17 UTC
3ed49fd absint: merge `const_prop_enabled` into `bail_out_const_call` (#52921) Both of these interfaces have nearly identical roles. Considering the simplicity in the codebase and the possible overloads by external abstract interpreters, it seems more sensible to unify them into one interface. Also tweaks remarks a bit. 17 January 2024, 06:57:37 UTC
b4f7263 make `Base.remove_linenums!` public (#52911) 17 January 2024, 02:21:10 UTC
b1c4fbf Fix `widen_diagonal` bug for nested `UnionAll` (#52924) Fix #52919. 17 January 2024, 01:25:25 UTC
6fa896d [OpenBLAS_jll] Use new build compiled with GCC 11 (#52928) This enables SVE kernels on aarch64, and sapphire rapids kernels on x86_64. For the record, corresponding PR in Yggdrasil: https://github.com/JuliaPackaging/Yggdrasil/pull/7952. 16 January 2024, 23:23:57 UTC
a327a95 Insert hardcoded backlinks to stdlib doc pages (#51375) This is #48814 times 23. It solves most of but not all of #50035. 16 January 2024, 23:09:30 UTC
b058146 add `:import`/`:using`/`:export` heads to `VALID_EXPR_HEADS` (#52906) Typically, top-level thunks that include these exprs aren't compiled. However, in certain `AbstractInterpreter`s such as JET, there's a need to perform inference on arbitrary top-level thunks for analysis purposes. So this commit updates the IR validator so that it does not raise errors on these exprs. 16 January 2024, 01:18:01 UTC
d479660 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, 01:15:22 UTC
89710bf Add docstring for TOML stdlib module (#52834) 15 January 2024, 20:32:31 UTC
fc6295d 🤖 [master] Bump the Pkg stdlib from 3c86ba27e to ba4955e2e (#52903) 15 January 2024, 05:47:28 UTC
25c4166 add tests for undocumented symbols (#52723) Following #52413 by @jariji and the discussion in #51174, this adds tests to ensure that there are no undocumented *(= lacking docstrings)* public symbols in any documented module. Many of the tests are broken — we have a lot of undocumented exports. In such cases I added both a `@test_broken` and a `@test` to ensure that there are no additional regressions added in the future. ~~(This PR may have to be updated when https://github.com/JuliaLang/julia/pull/52413#discussion_r1441068405 is fixed, i.e. when ~~#52727~~ #52743 is merged.)~~ Has been updated. --------- Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> 14 January 2024, 23:00:41 UTC
681816c [WIP] Specialize `chklapackerror` to improve error messages (#51645) This is an attempt at resolving https://github.com/JuliaLang/julia/issues/46636. Since each LAPACK function generally has a specific meaning attached to a positive error code, this PR tries to specialize `chklapackerror` for the caller to throw a more informative error instead of a `LAPACKException`. For example: ```julia julia> U = UpperTriangular([1 2; 0 0]) 2×2 UpperTriangular{Int64, Matrix{Int64}}: 1 2 ⋅ 0 julia> inv(U) ERROR: SingularException(2) [...] ``` Currently, I've only specialized it for `trtrs!`, but if this seems reasonable, I'll add others. Functions to be implemented: - [ ] `gbtrf` - [ ] `gbtrs` - [ ] `gebal!` - [ ] `gebak!` - [ ] `gebrd!` - [ ] `gelqf!` - [ ] `geqlf!` - [ ] `geqp3!` - [ ] `geqrt!` - [ ] `geqrt3!` - [ ] `geqrf!` - [ ] `gerqf!` - [ ] `getrf!` - [ ] `tzrzf!` - [ ] `ormrz!` - [ ] `gels!` - [ ] `gesv!` - [ ] `getrs!` - [ ] `getri!` - [ ] `gesvx!` - [ ] `gelsd!` - [ ] `gelsy!` - [ ] `gglse!` - [ ] `geev!` - [ ] `gesdd!` - [ ] `gesvd!` - [ ] `ggsvd!` - [ ] `ggsvd3!` - [ ] `geevx!` - [ ] `ggev!` - [ ] `ggev3!` - [ ] `gtsv!` - [ ] `gttrf!` - [ ] `gttrs!` - [ ] `orglq!` - [ ] `orgqr!` - [ ] `orgql!` - [ ] `orgrq!` - [ ] `ormlq!` - [ ] `ormqr!` - [ ] `ormql!` - [ ] `ormrq!` - [ ] `gemqrt!` - [ ] `potrs!` - [ ] `ptsv!` - [ ] `pttrf!` - [ ] `pttrs!` - [ ] `trtri!` - [x] `trtrs!` - [ ] `trcon!` - [ ] `trevc!` - [ ] `trrfs!` - [ ] `stev!` - [ ] `stebz!` - [ ] `stegr!` - [ ] `stein!` - [ ] `syconv!` - [ ] `sytrs!` - [ ] `sytrs_rook!` - [ ] `syconvf_rook!` - [ ] `hesv!` - [ ] `hetri!` - [ ] `hetrs!` - [ ] `hesv_rook!` - [ ] `hetri_rook!` - [ ] `hetrs_rook!` - [ ] `sytri!` - [ ] `sytri_rook!` - [ ] `syconvf_rook!` - [ ] `syev!` - [ ] `syevr!` - [ ] `syevd!` - [ ] `bdsqr!` - [ ] `bdsdc!` - [ ] `gecon!` - [ ] `gehrd!` - [ ] `orghr!` - [ ] `ormhr!` - [ ] `hseqr!` - [ ] `hetrd!` - [ ] `ormtr!` - [ ] `gees!` - [ ] `gges!` - [ ] `gges3!` - [ ] `trexc!` - [ ] `trsen!` - [ ] `tgsen!` - [ ] `trsyl!` 14 January 2024, 15:03:44 UTC
eadec43 REPLCompletions: PATH caching tweaks (#52893) 14 January 2024, 13:50:36 UTC
77652fd Validate more on assertion builds, and abort on errors (#52830) This PR add a `jl_is_assertsbuild` function (cfr. `jl_is_debugbuild`) for checking if this is an assertions build. It's used in two places: 1. to enable additional validation, which currently often requires`-g2` 2. to make internal compiler errors fatal Both these changes are intended to help PkgEval in detecting more issues (invalid Julia IR) and make for more robust detection (a fatal signal instead of having to grep logs for `Internal error`, which leads to false positives). 14 January 2024, 11:28:37 UTC
a034aa1 domtree: Optimize `DFS!` allocations (#52880) Since `DFS!` is a decent fraction of the work for updating the domtree, this should be a noticeable improvement to semi-concrete eval for very large functions. Profiling downstream shows a lot of time spent `push!`ing into the worklist and creating temporary arrays. 14 January 2024, 08:42:02 UTC
8a69745 Add compat note to @lock (#52894) Fixes #52879. CC @IanButterworth 14 January 2024, 08:39:14 UTC
46e6f23 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, 02:54:05 UTC
cd4f44d Use `similar` in `empty` (#49958) After this, ```julia julia> S = StructArray{Complex{Int}}(([1,2], [3,4])) 2-element StructArray(::Vector{Int64}, ::Vector{Int64}) with eltype Complex{Int64}: 1 + 3im 2 + 4im julia> empty(S) 0-element StructArray(::Vector{Int64}, ::Vector{Int64}) with eltype Complex{Int64} ``` instead of ```julia julia> empty(S) Complex{Int64}[] ``` This behavior matches the docstring now: "Create an empty vector similar to `v`". Often, `similar` will fall back to creating a `Vector`, so the current behavior will be preserved. ~I'm unsure about what test to add for this, so suggestions are welcome.~ Test added for a `StructArray` through a new test helper 14 January 2024, 02:23:21 UTC
c3836e1 Do not hide libssp.dll.a (Windows import library) in private library dir (#52820) Fix #51740 Since we are providing libssp.dll on Windows and we want to dynamically link to it, exposing libssp.dll.a is necessary. The inconsistency is that libjulia-codegen.so looks in build_libdir and build_private_libdir while standard library precompilation looks in build_shlibdir and build_private_dir. 14 January 2024, 00:24:35 UTC
4d670fb 🤖 [master] Bump the Downloads stdlib from 8a614d5 to a9d274f (#52885) Stdlib: Downloads URL: https://github.com/JuliaLang/Downloads.jl.git Stdlib branch: master Julia branch: master Old commit: 8a614d5 New commit: a9d274f Julia version: 1.11.0-DEV 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/8a614d592810b15d17885838dec61da244a12e09...a9d274ff6588cc5dbfa90e908ee34c2408bab84a ``` $ git log --oneline 8a614d5..a9d274f a9d274f Close Multi timers atexit. Add 1.6 CI (#234) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 13 January 2024, 14:37:45 UTC
537ea4b doc: fix latex formatting in cis docstring (#52845) 13 January 2024, 12:44:09 UTC
6dc0da4 show UUID as Base.UUID(...) when not imported (#52881) Fixes the problem identified in https://github.com/JuliaLang/julia/pull/52795#issuecomment-1884000786 thanks to @IanButterworth — currently, a `UUID` displays as: ```jl julia> Base.UUID("30b93cbd-6b28-44ea-8d3f-42a2b647d023") UUID("30b93cbd-6b28-44ea-8d3f-42a2b647d023") ``` even if the `UUID` symbol has not been imported. It should display as a qualified name `Base.UUID` unless `UUID` is imported (e.g. by doing `using UUIDs`). That is, after this PR you will get ```jl julia> Base.UUID("30b93cbd-6b28-44ea-8d3f-42a2b647d023") Base.UUID("30b93cbd-6b28-44ea-8d3f-42a2b647d023") ``` This is a tiny patch that just uses the standard type-printing machinery to decide how to display the `UUID` type name. 13 January 2024, 10:30:07 UTC
e3a64e8 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:48:12 UTC
231fda3 REPL: Fix precompilation and add tests (#52783) 13 January 2024, 04:48:30 UTC
893e720 REPLCompletions: async cache PATH scan (#52833) 13 January 2024, 02:56:22 UTC
f14bf29 sroa: Fix affinity of inserted undef check (#52864) There is a bit of complexity here making sure that this instruction ends up in the correct basic block because there's a fair number of corner cases (e.g. whether we're deleting the first instruction of a basic block or the last or both). Side-step all that by never doing the delete-then-insert dance and instead doing regular instruction replacement if necessary. Fixes #52857. 13 January 2024, 01:57:08 UTC
6f73806 Improve comment in toplevel.c [NFC] (#52810) 12 January 2024, 20:41:42 UTC
5b6a94d docs: Clarify that `donotdelete` does not affect unreachable code (#52869) In generally accepted compiler terminology, dead code is all code that if removed does not affect the observable behavior of the program. However, people sometimes use the phrase dead code to mean *unreachable* code, which is a subset of dead code (being dead because it is never semantically executed). If one assumes that definition, the docstring for `donotdelete` may be confusing, as it may in fact be deleted from the code if it is unreachable (existence or non-existence in the IR is not ever semantically observable in Julia, so there could not be such an intrinsic, but of course knowing that requires a deep understanding of Julia semantics). Add an extra note to the docs to clarify this point. 12 January 2024, 14:20:44 UTC
270ea64 sroa: Relax scope assertion (#52866) It's possible for this assertion to be violated if there's dead code in the middle of the function. I think the best thing to do here is just to relax the assertion to allow this particular case. Fixes #52819. 12 January 2024, 14:19:07 UTC
314d40f ir: Don't accidentally consider pending statements from previous block (#52863) When IncremetnalCompact deletes and edge between blocks, it needs to go to the target and delete any reference to the edge from the PhiNodes therein. What happened in #52858, is that we had a situtation like: ``` # Block n-1 %a Expr(...) Expr(...) # <- This node is pending at the start of compaction # Block n %b PhiNode ``` To do the deletion, we use `CompactPeekIterator`, which gets a list of original statements and iterates over all the statements inside the range, including pending ones. However, there is a semantic confusion about whether to include all all statements since the previous statement (%a above), or only those statements that are actually attached to the first instruction (%b above). This of course doesn't really matter usually unless you're at a BasicBlock boundary. For the present case, we really do not want the instructions in the previous basic block - the iteration of PhiNodes terminates if it seems a stmt that cannot be in the phi block, so mistakenly seeing one of those instructions causes it to fail to fix a PhiNode that it should have, causing #52858. We fix #52858 by giving the CompactPeekIterator a flag to only return stmts in the correct basic block. While we're at it, also fix the condition for what kinds of statements are allowed in the phi block, as that was clarified more recently than this code was written. 12 January 2024, 14:18:39 UTC
9836f2d staticdata: Some refactors for clarity (#52852) I was reading this code as part of looking into #52797. To recap, when we serialize objects for package images, we classify each method as either internal or external, depending on whether the method extends a function in the ambient set of modules ( system image, other previously loaded package images, etc) or whether it is private to the module we're currently serializing (in which case we call it internal). One of my primary confusions in reading this code was that the `new_specializations` object holds only external code instances in most of the code, but towards the end of loading, we used to also add any internal code instances that had dependencies on other external method instances in order to share the code instance validation code between the two cases. I don't think this design is that great. Conceptually, internal CodeInstances are already in the CI cache at the point that validation happens (their max_world is just set to 1, so they're not eligible to run). We do guard the cache insertion by a check whether a code instance already exists, which also catches this case, but I think it's cleaner to just not add any internal code instances to the list and instead simply re-activate the code instance in situ. Another issue with the old code that I didn't observe, but I think is possible in theory is that any CodeInstances that are not part of the cache hierarchy (e.g. because they were created by external abstract interpreters) should not accidentally get added to the cache hierarchy by this code path. I think this was possible in the old code, but I didn't observe it. With this change, `new_specializations` now always only holds external cis, so rename it appropriately. While we're at it, also do some other clarity changes. 12 January 2024, 14:18:08 UTC
0fdd55b Fix inconsistency between exct and nothrow effect (#52853) Fixes #52846. Different unreachability checks use different definitions for this and were inconsistenct, causing the assertion. Since the exct modeling isn't fully plubmed through all corners of the compiler yet, also change the caller code to force the nothrow effect to be authoritative for the time being. 12 January 2024, 03:04:19 UTC
cf44b53 effects: fix #52843, account for mutable values directly embedded to IR (#52856) Fixes another variant of #52531. 11 January 2024, 18:55:42 UTC
403a80a Precision of language in `names` docstring (#52744) 11 January 2024, 18:48:52 UTC
c5d7b87 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. 11 January 2024, 13:26:23 UTC
3dcc07c effects: fix #52843, account for mutable values directly embedded to IR Fixes another variant of #52531. 11 January 2024, 10:01:23 UTC
73cdfd8 Code validation and IR verification improvements (#52844) 11 January 2024, 08:43:57 UTC
0f7b598 BinaryPlatforms: prevent creating an identical regex every time a `Platform` is parsed (#52829) Pkg likes to call `HostPlatform()` a bit too often for its own good which shows up in some profiles. This makes `HostPlatform()` go from 250 us to 150 us with a quite trivial code change so should be fairly uncontroversial. (Pkg should probably also be fixed, alt. `HostPlatform` should be cached in Base.) 10 January 2024, 20:11:41 UTC
2afc20c Disambiguate mul! for matvec and matmat through indirection (#52837) This forwards `mul!` for matrix-matrix and matrix-vector multiplications to the internal `_mul!`, which is then specialized for the various array types. With this, packages would not encounter any method ambiguity when they define ```julia mul!(::AbstractMatrix, ::MyMatrix, ::AbstractMatrix, alpha::Number, beta::Number) ``` This should reduce the number of methods that packages need to define to work around ambiguities with `LinearAlgebra`. There was already an existing internal function named `_mul!`, but the new methods don't clash with the existing ones, and since both sets of methods usually forward structured multiplications to specialized functions, it's fitting for them to have the same name. 10 January 2024, 16:38:49 UTC
124ce94 Add indirection to inplace matrix scaling (#52840) 10 January 2024, 14:48:28 UTC
bf13a56 Remove 3-term mul! methods involving AbstractTriangular (#52826) The multiplication can be handled by the 5-term methods, and constant propagation should eliminate the branch. This should reduce some potential method ambiguities. 10 January 2024, 04:38:04 UTC
8e4221f Bump Julia to LLVM 16 (#51720) Current Status: - [x] Self test of Julia-GCChecker :: `MissingRoots.c` - [x] ASAN: `error: <unknown>:0: Cannot represent a difference across sections` - [x] x86_64-apple-darwin fails in ranges - [x] llvmpasses --------- Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Tim Besard <tim.besard@gmail.com> 10 January 2024, 02:47:02 UTC
dceeafe InteractiveUtils: avoid side-effect compilation in first `@time_imports` print (#52832) 10 January 2024, 01:06:42 UTC
b4d857b [RFC:] Docstring for Unicode module (#52761) Part of #52725. Thank you --------- Signed-off-by: 11happy <soni5happy@gmail.com> 09 January 2024, 18:47:39 UTC
c0c676b compiler: eliminate `Core.Compiler.` qualifier (#52790) To avoid symbol name clashes, this commit defines and uses `partialorder(𝕃::AbstractLattice) = ⊑(𝕃)`. While I have a preference for a 2-arg binary operator for lattice operations, it's currently coexisting with a 3-arg version, suggesting that a unification might be beneficial. 09 January 2024, 15:07:05 UTC
4b64203 add an error hint for min/max on an iterable (#52716) Inspired by the discussion in https://discourse.julialang.org/t/max-of-a-vector/108294/15 ```julia julia> max([1,2,3]) ERROR: MethodError: no method matching max(::Vector{Int64}) Finding the maximum element of an iterable is performed with `maximum`. .... ``` 09 January 2024, 13:01:44 UTC
17280b2 Widen eltype in complex hermitian tridiagonal eigen (#52802) Close #52801 by widening the `eltype` appropriately. 09 January 2024, 04:11:45 UTC
bd3eab6 static-show: improve accuracy of some printings (#52799) - Show strings with escaping, rather than trying to output the text unmodified. - Show symbols with the same formatting as Strings - Avoid accidentally defining a broken Core.show method for NamedTuple 09 January 2024, 00:57:52 UTC
486f434 Do not let `public` unexport names (#52814) 08 January 2024, 21:32:34 UTC
b354ce7 reset mark queue indices at the end of GC (#52780) Should allow us to access fewer pages on the circular buffers owned by these work-stealing queues. 08 January 2024, 14:29:29 UTC
5643c60 fix type-stability bugs in Ryu code (#52781) Fixes #52749. 08 January 2024, 13:38:11 UTC
cc156d9 Improve type stability in Artifacts code (#52759) This was in an attempt to fix https://github.com/JuliaLang/julia/issues/52711 which ultimately proved unsuccessful. This might however still be useful in other scenarios. ``` using JET report_opt(Tuple{typeof(Artifacts._artifact_str), Module, String, Base.SubString{String}, String, Base.Dict{String, Any}, Base.SHA1, Base.BinaryPlatforms.Platform, Any}; target_modules=[Artifacts]) ``` is quite a bit cleaner with this. 08 January 2024, 13:20:03 UTC
b7c24ed 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`. 08 January 2024, 13:17:47 UTC
1701009 REPL: make context switch global typed (#52800) Followup https://github.com/JuliaLang/julia/pull/52670 08 January 2024, 12:12:26 UTC
0afa354 🤖 [master] Bump the SparseArrays stdlib from f890a1e to 63459e5 (#52792) Stdlib: SparseArrays URL: https://github.com/JuliaSparse/SparseArrays.jl.git Stdlib branch: main Julia branch: master Old commit: f890a1e New commit: 63459e5 Julia version: 1.11.0-DEV SparseArrays version: 1.11.0 Bump invoked by: @dkarrasch Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaSparse/SparseArrays.jl/compare/f890a1e13fc04c295cec48a9b08b76c6e1a7039a...63459e5ee9e361dbe7cf260030a7407a1f241430 ``` $ git log --oneline f890a1e..63459e5 63459e5 Reduce allocation of dense arrays on-the-fly in linalg tests (#485) c73d6e3 Reduce number of `*` methods by adopting `matprod_dest` (#484) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 08 January 2024, 08:39:52 UTC
55113b5 Allow `include()` and `include_dependency()` files to resolve to different depots (#52750) Fixes #52161 #52161 is an awkward use of the relocation feature in the sense that it attempts to load the `include()` and `include_dependency` files of a pkg from two separate depots. The problem there is that the value with which we replace the `@depot` tag for both `include()` and `include_dependency()` files is determined by trying to relocate only the `include()` files. We then end up not finding the `include_dependency()` files. Solution: @staticfloat noted that the pkg slugs in depot paths like `@depot/packages/Foo/1a2b3c/src/Foo.jl` are already enough to (weakly) content-address a depot. This means that we should be able to load any `include()` file of a pkg from any `depot` that contains a precompile cache, provided the hashes match. The same logic can be extended to `include_dependency()` files, which this PR does. Note that we continue to use only one file from the `include()` files to determine the depot which we use to relocate all `include()` files. [this behavior is kept from master] But for `include_dependency()` files we allow each file to resolve to a different depot. This way the MWE given in #52161 should be extendable to two README files being located in two different pkgs that lie in two different depots. --- Side note: #49866 started with explicitly verifying that all `include()` files come from the same depot. In #52346 this was already relaxed to pick the first depot for which any `include()` file can be resolved to. This works, because if any other file might be missing from that depot then this is caught in `stalecache()`. 08 January 2024, 06:59:46 UTC
8dc2c30 Preserve eltype in converting `Symmetric` to `Matrix` (#52738) This allows cases where the `eltype` differs from that of the parent: ```julia julia> M = [UpperTriangular([1 2; 3 4]) for i in 1:2, j in 1:2] 2×2 Matrix{UpperTriangular{Int64, Matrix{Int64}}}: [1 2; 0 4] [1 2; 0 4] [1 2; 0 4] [1 2; 0 4] julia> H = Hermitian(M) 2×2 Hermitian{AbstractMatrix, Matrix{UpperTriangular{Int64, Matrix{Int64}}}}: [1 2; 2 4] [1 2; 0 4] [1 0; 2 4] [1 2; 2 4] julia> Array(H) 2×2 Matrix{AbstractMatrix}: [1 2; 2 4] [1 2; 0 4] [1 0; 2 4] [1 2; 2 4] ``` This conversion throws an error at present on master. 08 January 2024, 03:01:08 UTC
d07de16 improve AbstractPipe docs and IOContext handling as an AbstractPipe (#52768) Following some complains that `AbstractPipe` did not mention the functions that comprise its API, I have updated that and some other related details of its subtypes. 1. Mention the expected API surface for AbstractPipe 2. Expand the docs for Pipe as well 3. And add better support for explicit type parameters to IOContext. This gives more options to users, such as creating an explicitly dynamic `IOContext{IO}(io)` to avoid excess specialization. Any explicitly set parameter should now be inherited by future `IOContext` constructions around it, rather than always directly adopting the `typeof(io.io)` type instead as the new parameter. 08 January 2024, 01:18:55 UTC
edd2223 Revert "Warn if an already loaded package is attempted to be loaded from a different path" (#52794) 08 January 2024, 00:32:07 UTC
1d3dd85 Use `ismissing(x)` instead of `x === missing` (#44407) This is more generic and will allow packages to define custom `missing`-like types allowing to distinguish several kinds of missing values like in e.g. Stata and SAS (see https://github.com/nalimilan/TypedMissings.jl). This should have no performance impact now thanks to #38905. 07 January 2024, 22:06:46 UTC
05992e7 Enable rational division with uniform scaling (#52785) 07 January 2024, 18:33:27 UTC
9bf84d4 REPL: make alt-m on an empty prompt go to previous module (#52670) 07 January 2024, 15:22:16 UTC
5cd61ec Switch `already_warned_path_change_pkgs` to `Set{PkgId}()` (#52789) 07 January 2024, 12:39:21 UTC
e2b31cd Guard against `nothing` appearing from `load_package()` (#52788) 07 January 2024, 04:20:50 UTC
c63c3b0 Update performance-tips.md with JET.jl instead of Traceur.jl (#52786) Switch this tip from Traceur to JET as Traceur is no longer maintained. 07 January 2024, 01:36:37 UTC
bac95cc inference: thread lattice through memoryop type check (#52773) We would probably need to backport similar changes to 1.10 too. xref: aviatesk/JET.jl#589 07 January 2024, 01:36:15 UTC
8fe383f Reland "Generalize broadcast!(f, ::BitVector) optimization to `BitArray`." (#52736) (#52776) Reland "Generalize broadcast!(f, ::BitVector) optimization to `BitArray`." (#52736) 07 January 2024, 01:28:52 UTC
ea085ea Disambiguate structured and abstract matrix multiplication (#52464) Co-authored-by: Daniel Karrasch <Daniel.Karrasch@posteo.de> 06 January 2024, 21:13:22 UTC
0cb5a0e Fix `MethodError` when warning about a toplevel module (#52782) 06 January 2024, 19:11:28 UTC
c827094 Fix variable naming confusion in `warn_if_already_loaded_different()` (#52778) 06 January 2024, 18:07:26 UTC
ecb668b RFC: Methods for `eigen` on complex hermitian tridiagonal matrices (#49546) Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> Co-authored-by: Steven G. Johnson <stevenj@mit.edu> 06 January 2024, 16:27:19 UTC
dd7f1f8 use `Integer` during broadcast when possible. 06 January 2024, 16:18:20 UTC
513d013 [Markdown] added doc string for @md_str string literal (#52606) This PR addresses #51168 . I guess this PR wants to have the labels doc & markdown . --------- Co-authored-by: Steven G. Johnson <stevenj@mit.edu> Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Steven G. Johnson <stevenj@alum.mit.edu> 06 January 2024, 14:53:54 UTC
c5dcf4f [SuiteSparse_jll] Update to v7.4.0 (#52577) Usual memo to self for the update: * change version number in `stdlib/SuiteSparse_jll/Project.toml` * refresh checksums in `deps/checksums/suitesparse` with `make -f contrib/refresh_checksums.mk -j libsuitesparse`. Note: this will also delete the files `deps/checksums/SuiteSparse-*.tar.gz/*`, but those refer to the stdlib which is the julia wrapper around the binary dependency, those files have to be restored manually, I don't know how to make the makefile behave nicely. You will also have to remove the lines `SuiteSparse-*.tar.gz/md5/*` added to the file `deps/checksums/suitesparse`, they are wrong for the same reason * update version numbers in `deps/libsuitesparse.version`. Judging by the changes in https://github.com/JuliaPackaging/Yggdrasil/pull/7596 we don't need to touch the manual build system. I have no idea whether SuiteSparse retains API/ABI compatibility within the same major version, I surely hope so because I won't have the strength to try and fix large compatibility errors. 06 January 2024, 14:12:24 UTC
ae6af52 Revert "Revert "Generalize `broadcast!(f, ::BitVector)` optimization to `BitArray`." (#52775)" This reverts commit 11bb62b079aa95eac59deed4184be539563e15df. 06 January 2024, 11:49:47 UTC
11bb62b Revert "Generalize `broadcast!(f, ::BitVector)` optimization to `BitArray`." (#52775) This broke many packages on PkgEval. 06 January 2024, 11:43:09 UTC
f18cc43 [doc] Fix format string of `printf` in `@ccall` example (#52770) The format string of the `@ccall` example for `printf` had a `%d` specifier but the argument passed was `"5"::Cstring`, which is also inconsistent with the corresponding `ccall` example. 06 January 2024, 11:07:40 UTC
b682592 [OpenBLAS] Ugrade to v0.3.26 (#52762) 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` In the [release notes of v0.3.26](https://github.com/OpenMathLib/OpenBLAS/releases/tag/v0.3.26) one of the more interesting point is perhaps > included support for Apple M1 and newer targets in DYNAMIC_ARCH builds Quoting from https://github.com/JuliaPackaging/Yggdrasil/pull/7911#issuecomment-1878884892 > Some quick benchmarks on M1: with OpenBLAS 0.3.25: > ```julia > julia> using LinearAlgebra, BenchmarkTools > > julia> peakflops() > 1.7049262964078418e11 > > julia> x = randn(1_000); y = randn(size(x)); > > julia> @btime dot($x, $y); > 402.705 ns (0 allocations: 0 bytes) > ``` > with OpenBLAS v0.3.26: > ```julia > julia> using LinearAlgebra, BenchmarkTools > > julia> peakflops() > 1.8042546290642157e11 > > julia> x = randn(1_000); y = randn(size(x)); > > julia> @btime dot($x, $y); > 143.777 ns (0 allocations: 0 bytes) > ``` > Up to OpenBLAS v0.3.25 you can get similar performance on Apple Silicon by exporting the environment variable > ```sh > OPENBLAS_CORETYPE=NEOVERSEN1 > ``` 06 January 2024, 08:41:27 UTC
9aaa8c7 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:09:43 UTC
ae5880a EscapeAnalysis.jl: Correct grammar in comment (#52764) 06 January 2024, 03:37:14 UTC
103e50a also enable gc_assert_parent_validity on GC_VERIFY (#52767) Keeping this functionality untested on CI increases the chance of it rotting. 06 January 2024, 01:37:37 UTC
c94b1a3 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 05 January 2024, 20:42:40 UTC
c9bc2ff 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. 05 January 2024, 15:45:09 UTC
f01898c Fix printing of `InexactError` for `Inf16` arg and similar (#52491) Resolves https://github.com/JuliaLang/julia/issues/51087 Closes https://github.com/JuliaLang/julia/pull/51163 Use `show` as pointed out in https://github.com/JuliaLang/julia/pull/51163#discussion_r1328682832. 05 January 2024, 13:02:33 UTC
f68d7f8 [Markdown] Docstring for html and latex functions (#52733) Part of #52725 05 January 2024, 12:58:06 UTC
67e6127 remove very old error hint from using `.data` field on a String (#52737) This field was removed 7 years ago. I think it is fine to not special case it any longer. 05 January 2024, 10:38:31 UTC
3a02053 Fix quotes in the docstring of `copytrito!` (#52718) 05 January 2024, 08:27:55 UTC
50788cd Generalize `broadcast!(f, ::BitVector)` optimization to `BitArray`. (#52736) Follows #32048. This PR fully avoids the allocation thus make nd logical broadcast better scaled for small inputs. --------- Co-authored-by: Matt Bauman <mbauman@gmail.com> 05 January 2024, 08:11:45 UTC
316cc4a remove outdated handling of `:static_parameter` (#52732) After #51970, `Expr(:static_parameter, i::Int)` is now consistently outlined during the lowering, so there's no longer a need for `abstract_eval_value_expr` to handle this expression. This update removes the outdated handling, clarifying where we need to handle the expression. 05 January 2024, 01:59:58 UTC
31a9f13 Properly rename EnterNode scope after code coverage insertion (#52720) Fixes #52672 and changes the emission path to move the error to the point of corruption instead of the point of first use. 05 January 2024, 01:59:49 UTC
38b8156 expand Docs.undocumented_names to include all public symbols (#52743) Expands the semantics of `Docs.undocumented_names` to include all public symbols, as described in https://github.com/JuliaLang/julia/pull/52413#issuecomment-1876266678 cc @jariji, @LilithHafner --------- Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> 04 January 2024, 21:44:38 UTC
6934379 remove method file names with `--strip-metadata` (#52722) These should not appear in binaries when this option is specified. 04 January 2024, 21:03:29 UTC
back to top