https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
8e675e9 load: Avoid compiler-generated memset This file is built standalone, so no memset definition is available. The only thing we need is that the path is originally zero-terminated. While we're at it, also rename the function to `strlcat`, since that's the semantics our version implements (`strncat` takes the source size, not the dest size). 01 September 2023, 05:21:28 UTC
95af5a0 Refine effects based on optimizer-derived information (#50805) The optimizer may be able to derive information that is not available to inference. For example, it may SROA a mutable value to derive additional constant information. Additionally, some effects, like :consistent are path-dependent and should ideally be scanned once all optimizations are done. Now, there is a bit of a complication that we have generally so far taken the position that the optimizer may do non-IPO-safe optimizations, although in practice we never actually implemented any. This was a sensible choice, because we weren't really doing anything with the post-optimized IR other than feeding it into codegen anyway. However, with irinterp and this change, there's now two consumers of IPO-safely optimized IR. I do still think we may at some point want to run passes that allow IPO-unsafe optimizations, but we can always add them at the end of the pipeline. With these changes, the effect analysis is a lot more precise. For example, we can now derive :consistent for these functions: ``` function f1(b) if Base.inferencebarrier(b) error() end return b end function f3(x) @fastmath sqrt(x) return x end ``` and we can derive `:nothrow` for this function: ``` function f2() if Ref(false)[] error() end return true end ``` 31 August 2023, 03:12:40 UTC
81b5a9e allow `code_[llvm|native]` to take custom `params::CodegenParams` (#51109) 31 August 2023, 02:19:40 UTC
c659011 Workaround upstream FreeBSD issue #272992 (#51114) ELF doesn't handle WEAK symbols dynamically the way it handles them statically. Looking up overloaded WEAK symbols via a library-specific handle will often give you the empty stub (in `libc.so.7` in this case) instead of the strong implementation elsewhere (`ld-elf.so.1` here). Even after the [upstream fix](https://cgit.freebsd.org/src/commit/?id=21a52f99440c9bec7679f3b0c5c9d888901c3694), `dlsym`, `dladdr` and a ton of other symbols still have stubs with no trampoline in FreeBSD's libc: https://cgit.freebsd.org/src/tree/lib/libc/gen/dlfcn.c?id=21a52f99440c9bec7679f3b0c5c9d888901c3694 Thankfully `dl_iterate_phdr` appears to be the only function that we directly `ccall` from Julia's Libdl so we can leave this fix incomplete for now. Resolves #50846. 31 August 2023, 01:58:57 UTC
743ed16 Make threadcall a bit more threadsafe (#51040) Threadcall currently assumes that the IO loop gets run in the same thread that spawned it. While I wish to supercede threadcall by something that uses tasks + adopt_thread. For now lets make it a better. ```julia julia> function foo() Threads.@threads for i = 1:8 ptr = @threadcall(:jl_malloc, Ptr{Cint}, (Csize_t,), sizeof(Cint)) @test ptr != C_NULL unsafe_store!(ptr, 3) @test unsafe_load(ptr) == 3 ptr = @threadcall(:jl_realloc, Ptr{Cint}, (Ptr{Cint}, Csize_t,), ptr, 2 * sizeof(Cint)) @test ptr != C_NULL unsafe_store!(ptr, 4, 2) @test unsafe_load(ptr, 1) == 3 @test unsafe_load(ptr, 2) == 4 @threadcall(:jl_free, Cvoid, (Ptr{Cint},), ptr) end end foo (generic function with 1 method) julia> foo() ``` This crashes julia currently. 31 August 2023, 00:40:44 UTC
e3e1f1e Swap Base.Event to use a ThreadSynchronizer (#51093) and make some of its other fields const. 31 August 2023, 00:31:02 UTC
6f026e3 Refactor scalar range getindex (#50467) 30 August 2023, 22:06:58 UTC
fb76136 Fix edge cases where inexact conversions to UInt don't throw (#51095) 30 August 2023, 19:38:21 UTC
8a5a872 Remove spurious iostream in codegen (#51104) 30 August 2023, 18:34:01 UTC
476572f makefile option to generate better code (#51105) Disables an "optimization" for -O2 and higher. We already set this for JIT code (NO TOUCHIE!), and we should probably set this for all other code too. It is common otherwise for stacktraces to have the wrong line number for errors. 30 August 2023, 18:32:23 UTC
197180d Add GC write barrier in jl_reserve_excstack (#51096) `jl_push_excstack` and `jl_reserve_excstack` take an address to the field `excstack` in `jl_task_t`, and may update the field. In such a case, a GC write barrier is needed. This PR adds the missing write barrier. Note: I am not sure if this affects the correctness of Julia GC or not. This could be special cased in the GC code, as the task is always rooted. However, generally if the task is in the old generation, it does not have to be scanned even if it is a root. A write barrier is needed to make sure the GC is aware of the update. 30 August 2023, 14:03:28 UTC
f9792b4 docs: simplify array creation in `sortslices` docstring (#51101) Using concatenation instead of `permutedims(reshape(...))` makes the construction easier to read and understand. 30 August 2023, 13:56:13 UTC
374563e Speed up `logdet` for diagonal and triangular matrices (#50950) 30 August 2023, 07:57:06 UTC
a271349 Simplify the docstring for Diagonal (#51097) 30 August 2023, 07:41:51 UTC
4e1c965 Remove size(::StructuredMatrix, d) specializations (#51083) 30 August 2023, 07:38:15 UTC
a84882e effects: taint overlay-ed method's `:nonoverlayed` effect bit (#51078) 29 August 2023, 08:11:57 UTC
8ace9c5 reflection: fix up handling of `Core.Compile.findall` (#51081) `Core.Compiler.findall(sig, ::MethodTableView)` may return `nothing` but never returns `missing`. Also fixes up the docstring of `Core.Compiler.findsup`. 29 August 2023, 00:49:40 UTC
0b29986 Always rewrite GotoIfNot with unreachable branches (#51062) This resolves a regression introduced in https://github.com/JuliaLang/julia/pull/50943#issuecomment-1694198019 That PR requires the Goto/GotoIfNot statements of the IR to correspond 1-1 (in terms of reachability) to the information we get from inference. To make that happen, we have to unconditionally re-write control flow to match the branches that inference ended up actually exploring. The problem is that we were choosing not to do this if the GotoIfNot condition seemed to be maybe-non-Boolean. Thankfully, it turns out that check is unnecessary because Inference when unwrapping conditionals does not consider "true or non-Bool" etc. If it did, we'd instead have to re-write these branches as a `typeassert; goto` to encode the reachability 28 August 2023, 21:15:45 UTC
8dc69aa Fix typo in `postdominates` docstring (#51089) 28 August 2023, 20:36:56 UTC
1d56cdf minor tweaks on `Base.[@constprop|@assume_effects]` docs (#51079) 28 August 2023, 19:19:27 UTC
4d3de1a Always rewrite GotoIfNot with unreachable branches This resolves a regression introduced in https://github.com/JuliaLang/julia/pull/50943#issuecomment-1694198019 The problem was that we now expect the explicit CFG of the IR to correspond 1-1 in terms of reachability to the information we get from inference. That means that we have to unconditionally re-write control flow to match the branches that inference ended up actually exploring. This change also modifies Inference to update the ssaflags on GotoIfNot and GotoNode statements, so that we can be sure these `@assert`s will trip if Inference is ever made smart enough to fold Union{Const(true), Float64}-style conditions. 28 August 2023, 17:26:09 UTC
b4052a5 Forward `axes` to the parent for a `Diagonal` (#50514) Given that [quite a few](https://juliahub.com/ui/Search?q=axes%5Ba-zA-Z%5C%28%5C%29%3A%5D%2BDiagonal&type=code&r=true) packages define `axes(d::Diagonal{T, CustomVector{T}})` as `ax = parent(d); (ax,ax)`, perhaps it makes sense to have this defined in `LinearAlgebra`. After this, ```julia julia> using StaticArrays, StructArrays, LinearAlgebra julia> D = Diagonal(StructArray{Complex{Int}}((SA[1,2], SA[1,2]))) 2×2 Diagonal{Complex{Int64}, StructVector{Complex{Int64}, @NamedTuple{re::SVector{2, Int64}, im::SVector{2, Int64}}, Int64}} with indices SOneTo(2)×SOneTo(2): 1+1im ⋅ ⋅ 2+2im julia> axes(D) (SOneTo(2), SOneTo(2)) ``` The static sizes are preserved. --------- Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 28 August 2023, 15:33:19 UTC
4768d7a Also print the signature of some called functions in the IR (#51024) 28 August 2023, 12:54:26 UTC
8197882 Fix comment in `load_path_expand()` (#50934) When the meaning of `"@"` in `LOAD_PATH` was changed and `"@."` introduced as the new name for the previous meaning of `"@"` in 9a4ecaa4e4, a comment in `load_path_expand()` wasn’t updated to reflect this change. This left the comment being incorrect, leading to potential confusion. I hope I’m not creating more hassle than it’s worth with this super-tiny PR, but since it’s caused some confusion (e. g. https://github.com/JuliaLang/Pkg.jl/pull/3547#issuecomment-16795025350), I thought it might be worthwhile to fix it. 28 August 2023, 09:29:38 UTC
f24a93a inference: fix return_type_tfunc modeling of concrete functions (#51042) The `aft` parameter is a value already, so we should be checking it in the value domain, not the type domain like `tt`. That check happens to already be done (somewhat unnecessarily) earlier in the function. Fixes #40606 --------- Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 27 August 2023, 05:08:19 UTC
ca1a54a Update stable version in README.md to 1.9.3 (#51065) 27 August 2023, 03:35:07 UTC
c8ad552 🤖 [master] Bump the SparseArrays stdlib from 99c99b4 to 54f4b39 (#51060) Stdlib: SparseArrays URL: https://github.com/JuliaSparse/SparseArrays.jl.git Stdlib branch: main Julia branch: master Old commit: 99c99b4 New commit: 54f4b39 Julia version: 1.11.0-DEV SparseArrays version: 1.11.0 Bump invoked by: @ViralBShah Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaSparse/SparseArrays.jl/compare/99c99b4521eb19a7973643d1aa4d7b1e4d50a6db...54f4b39d1cd34a908ff4fdfcd052a38fe23f6555 ``` $ git log --oneline 99c99b4..54f4b39 54f4b39 Fix docs conflict when building as part of full Julia docs (#430) a64ef4f Cleanup reloaded (#426) 4e2d1e4 Respect `IOContext` while displaying a `SparseMatrixCSC` (#423) 3d1eda9 Test suite: activate a temp project if we need to install Aqua.jl during the test suite (#425) 18b7fce Merge pull request #422 from JuliaSparse/jn/cat e2c78b8 test: restore ambiguous test 68afc6e fix inference of SparseVector cat c402d09 cat: ensure vararg is more inferrable 2c4f870 Fix some broken links (#421) 36a5308 bump version (#418) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 26 August 2023, 20:38:15 UTC
dd0ce50 Fix typo in command-line-interface.md (#51055) 26 August 2023, 20:05:07 UTC
5bc558c 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. 26 August 2023, 17:03:21 UTC
6097140 add missing invoke edge for nospecialize targets (#51036) We need 2 edges: one for the lookup (which uses the call signature) and one for the invoke (which uses the invoke signature). It is hard to make a small example for this, but the test case demonstrated this issue, particularly if inspected by `SnoopCompile.@snoopr`. Additionally, we can do some easy optimizations on the invoke invalidation, since in most cases we know from subtyping transativity that it is only invalid if the method callee target is actually deleted, and otherwise it cannot ever be partially replaced. Fixes: #50091 Likely introduced by #49404, so marking for v1.10 backport only 26 August 2023, 17:00:49 UTC
699a04a allow `@overlay` for methods with return type declaration (#51054) 26 August 2023, 05:06:02 UTC
7cadc6d 🤖 [master] Bump the SHA stdlib from 2d1f84e to aaf2df6 (#51049) Stdlib: SHA URL: https://github.com/JuliaCrypto/SHA.jl.git Stdlib branch: master Julia branch: master Old commit: 2d1f84e New commit: aaf2df6 Julia version: 1.11.0-DEV SHA version: 0.7.0 (Does not match) Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaCrypto/SHA.jl/compare/2d1f84e6f8417a1a368de48318640d948b023e7a...aaf2df61ff8c3898196587a375d3cf213bd40b41 ``` $ git log --oneline 2d1f84e..aaf2df6 aaf2df6 [test] fix typo 0f70e8b [test] test `AbstractString` input 335322a [test] test branch in `digest!` 5992826 [test] Testing branch within the `HMAC_CTX` constructor 5e3a676 Protect against re-using digested context ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 26 August 2023, 04:15:54 UTC
38520e1 Docs: add examples to `istril`/`istriu` docstrings (#49853) Also, simplify some of the examples to focus on the structure of the matrices 25 August 2023, 19:45:43 UTC
451de66 add @lock doc (#50491) https://github.com/JuliaLang/julia/issues/36441 25 August 2023, 19:40:22 UTC
dcb4060 docs: manual: point to `MutableArithmetics` in the Performance tips (#50987) Updates #31342 Updates #41792 Updates #50942 25 August 2023, 19:35:43 UTC
6751bbd Update reference to distributing.md in Makefile (#51038) 25 August 2023, 19:33:18 UTC
defe187 Revert "Optimize findall(f, ::AbstractArray{Bool}) (#42202)" (#51039) This reverts commit 4c4c94f4781da4f4109086368205db8a2f7ec7c4. (Except keeps the tests and adds a new one) fixes #46425 25 August 2023, 10:18:22 UTC
be65c65 🤖 [master] Bump the Tar stdlib from ff55460 to 81888a3 (#51052) Stdlib: Tar URL: https://github.com/JuliaIO/Tar.jl.git Stdlib branch: master Julia branch: master Old commit: ff55460 New commit: 81888a3 Julia version: 1.11.0-DEV Tar version: 1.10.0 (Does not match) Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaIO/Tar.jl/compare/ff55460f4d329949661a33e6c8168ce6d890676c...81888a33704b233a2ad6f82f84456a1dd82c87f0 ``` $ git log --oneline ff55460..81888a3 81888a3 Correct some typos (#159) a82ddde Fix some issues found by JET (#162) 6c51ea7 Give hint about possible insufficient storage on error message (#161) 84e6571 minimize impact of invalidations due to uninferred `ctx` (#158) b0b8ec7 Merge pull request #157 from JuliaIO/dependabot/github_actions/actions/checkout-3 24bb56d Merge pull request #156 from JuliaIO/dependabot/github_actions/codecov/codecov-action-3 9f7d944 Merge pull request #155 from JuliaIO/dependabot/github_actions/actions/cache-3 d14feb4 Bump actions/checkout from 2 to 3 f149f85 Bump codecov/codecov-action from 1 to 3 ea228f2 Bump actions/cache from 1 to 3 4b54b0c Merge pull request #153 from ranocha/hr/dependabot c70adcb enable dependabot for GitHub actions cf089ab fix some sources of invalidations (#152) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 25 August 2023, 08:36:51 UTC
ba90988 🤖 [master] Bump the Pkg stdlib from 08e1eb6ed to 047734e4c (#51048) Stdlib: Pkg URL: https://github.com/JuliaLang/Pkg.jl.git Stdlib branch: master Julia branch: master Old commit: 08e1eb6ed New commit: 047734e4c Julia version: 1.11.0-DEV Pkg version: 1.11.0 Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/Pkg.jl/compare/08e1eb6ed2354102e22181bad5cfe04c701656c0...047734e4c7e2b5e99622b4803ec4ad0d49f1d1d3 ``` $ git log --oneline 08e1eb6ed..047734e4c 047734e4c Test suite: activate a temp project if we need to install HistoricalStdlibVersions during the test suite (#3602) ff833e9d4 Throw an error if the current Julia version (`Base.VERSION`) is incompatible with the `[compat]` entry for `julia` in the `Project.toml` file (#3526) 2c37a5907 Fix lacking `subdir` information when altering packages (#3597) 051ab5bdd Don't mutate project.deps during project write (#3591) f4d64d2c7 Update manifest entry of project for non-local manifests (#3579) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 25 August 2023, 08:35:23 UTC
25776ab 🤖 [master] Bump the NetworkOptions stdlib from f7bbeb6 to 976e51a (#51047) Stdlib: NetworkOptions URL: https://github.com/JuliaLang/NetworkOptions.jl.git Stdlib branch: master Julia branch: master Old commit: f7bbeb6 New commit: 976e51a Julia version: 1.11.0-DEV NetworkOptions version: 1.2.0 (Does not match) Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/NetworkOptions.jl/compare/f7bbeb66f05fc651adb12758b650e8630a998fbd...976e51a48abb4e09356f1979c3cde8fbc0852e2e ``` $ git log --oneline f7bbeb6..976e51a 976e51a Use human-readable title in the docs (#30) 895aee9 Update ssh-rsa key for github.com (#29) db83efd fix an issue found by JET (#28) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 25 August 2023, 08:34:47 UTC
5f9c7a6 🤖 [master] Bump the ArgTools stdlib from 08b11b2 to 4eccde4 (#51045) Stdlib: ArgTools URL: https://github.com/JuliaIO/ArgTools.jl.git Stdlib branch: master Julia branch: master Old commit: 08b11b2 New commit: 4eccde4 Julia version: 1.11.0-DEV ArgTools version: 1.1.1 (Does not match) Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaIO/ArgTools.jl/compare/08b11b2707593d4d7f92e5f1b9dba7668285ff82...4eccde45ddc27e4f7fc9094b2861c684e062adb2 ``` $ git log --oneline 08b11b2..4eccde4 4eccde4 build(deps): bump actions/checkout from 2 to 3 (#30) 6a4049d build(deps): bump codecov/codecov-action from 1 to 3 (#32) f94a0d3 build(deps): bump actions/cache from 1 to 3 (#31) cb66300 enable dependabot for GitHub actions (#29) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 25 August 2023, 08:34:33 UTC
5e5416a slot2ssa: remove `TypedSlot` (#50943) Dependent on https://github.com/JuliaLang/julia/pull/50924 . This removes the last remaining usage of `TypedSlot`. As a bonus, this evicts all of the "tmerge" type-iteration that was being done in slot2ssa. --------- Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> 25 August 2023, 07:53:19 UTC
4ac6b05 Print the stacktrace for wrong error when testing `@test_throws` (#50886) Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 24 August 2023, 20:06:36 UTC
9125889 improve docs for headless tracy usage (#51022) Based on seeing some confusion in slack about this. 24 August 2023, 16:18:41 UTC
8da6221 optimizer: fold `ifelse` call with constant condition (#51015) We have had the optimization to fold `Core.ifelse` with constant condition with `early_inline_special_case`, but it can be too early as the inlining pass may produce `Core.ifelse` with constant condition. This commit adds a similar optimization within the SROA pass, which already has a bunch of other non-pure-SROA optimizations. Now we can fully optimize this kind of case: ```julia fully_eliminated(; retval=Core.Argument(2)) do x::Float64 return Core.ifelse(true, x, exp(x)) # optimized already end fully_eliminated(; retval=Core.Argument(2)) do x::Float64 return ifelse(true, x, exp(x)) # the optimization should be applied to post-inlining IR too end fully_eliminated(; retval=Core.Argument(2)) do x::Float64 return ifelse(isa(x, Float64), x, exp(x)) end ``` 24 August 2023, 13:42:38 UTC
777b784 fix a case of potentially use of undefined variable when handling error in distributed message processing (#51019) There is a use of `oldstate` on line 244 which has the possibility of being undefined. This bug seems to have been introduced in https://github.com/JuliaLang/julia/commit/40c622b7e66a88c05d8892222126f1d13851bc62#diff-39fa44ff86c5b38bd6b9e7f60733b25724a9efd9221ca38f776ed3f3ab01dec2. I don't have a repro for this but this PR reverts back to the situation where `oldstate` is defined at the topmost level of the catch block as it was before the offending commit. 24 August 2023, 12:33:32 UTC
ce8acdd Implement realloc accounting correctly (#51027) This was potentially making us getting wrong results. 24 August 2023, 00:59:06 UTC
231ca24 define specialized `[in|all|any](x, ::Tuple)` methods with better effects (#51002) So that it can be concrete-evaluated. There are certain code patterns like: ```julia if flag::Const(::Char) in ('S', 'T', 'U') # do something else # do something else end ``` and it would be beneficial if we can cut off a dead branch by folding the call to `in`. This commit adds similar improvements for `all` and `any` as well. 24 August 2023, 00:49:00 UTC
f21c635 Add names to write barrier lowering (#51000) 23 August 2023, 19:59:25 UTC
6d9c708 Fix codegen for oc arg mismatch (#51017) Fixes #51016, plus a driveby fix for `julia-debug` with external AbstractInterpreter. 23 August 2023, 17:16:48 UTC
eafa7ec Remove iskind checks in convert_julia_type (#50998) 23 August 2023, 13:26:52 UTC
8d32d58 improve docs for headless tracy usage 23 August 2023, 13:24:12 UTC
525d127 codegen: Bail out early if OC has wrong argtypes Once we know something is guaranteed to throw, we just need to bail out as soon as possible, as it is generrally a bad idea to try to keep looking at the dead code. Fixes 51016. 23 August 2023, 05:22:31 UTC
6ea2200 Run verify_ir with proper lattice 23 August 2023, 05:21:02 UTC
f12d2e3 Add ORIGIN to SuiteSparse rpath on Linux/FreeBSD (#51010) Fixes #50701 by adding ORIGIN to Cmake RPATH on Linux and FreeBSD 23 August 2023, 03:36:20 UTC
89a7c95 add ORIGIN to rpath on Linux/FreeBSD 22 August 2023, 21:49:53 UTC
3c18223 Make iterator interface docs clearer (#50994) A few beginner and intermediate Julia programmers shown both versions thought this one was clearer. Follows on from #50069 Two other minor changes: - includes `Base.isdone` in documenter output so that it can be linked from the table (this probably should have been done when we originally included it in the table). - update the warning on `isempty` about stateful iterators to be a little less strident, because `isempty` shouldn't cause any bugs for stateful iterators that correctly implement the documented interface (and I think I fixed all the stateful iterators in Base quite a while ago now). Before: ![image](https://user-images.githubusercontent.com/6000761/243437416-65a0e54e-0dcd-4c79-88e2-087166766eb7.png) After: ![image](https://github.com/JuliaLang/julia/assets/6000761/fab836ee-4e24-4a3e-a5ca-6ba582e4ccab) I don't think it matters much, but the lengths of the columns are mostly determined by the longest `code` span within them, because the code spans are not wrapped. We can allow the browser to perform word wrapping within the spans by including `<wbr />` elements or unicode zero-width-space characters, but I can't get the cross references (links) to work. This is what I tried: ```md before [`Base.IteratorEltype(IterType)`](@ref) after (encouraging browsers to break the line at the dot): [<code>Base.<wbr />IteratorEltype(IterType)</code>](@ref Base.IteratorEltype) Which gives the following error: ┌ Error: reference for 'Base.IteratorEltype' could not be found in src/manual/interfaces.md. └ @ Documenter.CrossReferences ~/src/julia/doc/deps/packages/Documenter/yf96B/src/Utilities/Utilities.jl:32 ``` 22 August 2023, 17:23:06 UTC
a4309ca Switch from truncation to rounding in sub-millisecond DateTime arithmetic (#50816) 22 August 2023, 09:53:07 UTC
e18ffec Add examples of simple use to `Ref` docs (#50995) The docs didn't document the simple getting and setting behaviour of `Ref`s. 21 August 2023, 19:21:30 UTC
9a820e6 Hide message about changed ENV when test is ignored (#50883) PR #47148 added the ability to ignore changes to the environment in a testsuite (using the `JULIA_TEST_CHECK_MUTATED_ENV` environment variable), but didn't hide the printing of the error message. This hides the actual error message so that the terminal isn't cluttered with them when they should be ignored. This is needed because in the MKL.jl testsuite, the error is hit for basically every linear algebra test (https://github.com/JuliaLinearAlgebra/MKL.jl/issues/130), and so even when we have already disabled the error, printing the error message causes lots of noise on the terminal that can possibly hide other problems. Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 August 2023, 16:51:16 UTC
ead627e 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> 21 August 2023, 16:46:19 UTC
78d5bfe deps/libsuitesparse: fix empty var in manifest (#50997) `UNINSTALL_libsuitesparse` is an empty variable (used in https://github.com/JuliaLang/julia/blob/74ce6cf070a2a04e836c3e5a2211228a3ac978ef/deps/libsuitesparse.mk#L66): this leads to an empty `usr/manifest/libsuitesparse` file. Maybe `Makefile`s should check for empty manifests and error properly, making the build system more robust ? 21 August 2023, 16:12:31 UTC
430a74e jit: check if dlfind failed when emitting a ccall (#50961) Fixes https://github.com/JuliaLang/julia/pull/50899#issuecomment-1682628441 21 August 2023, 16:07:35 UTC
1182003 recursive types: fix implementation of references_name (#50963) To do the old version correctly, we would need to carefully track whether we end up using that parameter as a parameter of any apply_type call in the fieldtype computation of any of the fields, recursively. Since any of those might cause recursion in the constructor graph, resulting in trying to layout some concrete type before we have finished computing the rest of the fieldtypes. That seems unnecessarily difficult to do well, so instead we go back to just doing the trivial cases. 21 August 2023, 15:30:12 UTC
6fd82d7 lattice: fix correctness bug in tmerge limiting (#50939) In 162ee48e1c3, the added code causes us to violate the tmerge_fast_path requirements on the lattice. This was causing the fall-though from the earlier tmerge_fast_path to not return correct answers to inference anymore. Adding back another tmerge_fast_path, on the types, allows us to recover correctness without regressing accuracy to before #47992. Also added a test case for an example in which tmerge_fast_path does not return a correctly limited answer, since it does not model UnionAll complexity growth. 21 August 2023, 15:29:20 UTC
74ce6cf minor NFC in GC codebase (#50991) - Use `GC_PAGE_ALLOCATED`instead of hardcoded constant - Remove stale eytzinger tree comment from `gc_mark_outrefs` - Add some comments to explain why push_lf_page_metadata_back/pop_lf_page_metadata_back can only use a CAS and not be vulnerable to ABA 21 August 2023, 13:09:16 UTC
8be469e Separate foreign threads into a :foreign threadpool (#50912) Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 August 2023, 13:06:00 UTC
ac607dc exact `BigFloat` to IEEE FP conversion in pure Julia (#50691) There's lots of code, but most of it seems like it will be useful in general. For example, I think I'll use the changes in float.jl and rounding.jl to improve the #49749 PR. The changes in float.jl could also be used to refactor float.jl to remove many magic constants. Benchmarking script: ```julia using BenchmarkTools f(::Type{T} = BigFloat, n::Int = 2000) where {T} = rand(T, n) g!(u, v) = map!(eltype(u), u, v) @btime g!(u, v) setup=(u = f(Float16); v = f();) @btime g!(u, v) setup=(u = f(Float32); v = f();) @btime g!(u, v) setup=(u = f(Float64); v = f();) ``` On master (dc064683087d017927381e): ``` 46.116 μs (0 allocations: 0 bytes) 38.842 μs (0 allocations: 0 bytes) 37.039 μs (0 allocations: 0 bytes) ``` With both this commit and #50674 applied: ``` 42.310 μs (0 allocations: 0 bytes) 42.661 μs (0 allocations: 0 bytes) 41.608 μs (0 allocations: 0 bytes) ``` So, with this benchmark at least, on an AMD Zen 2 laptop, conversion to `Float16` is faster, but there's a slowdown for `Float32` and `Float64`. Fixes #50642 (exact conversion to `Float16`) Co-authored-by: Oscar Smith <oscardssmith@gmail.com> 21 August 2023, 04:06:58 UTC
61ebaf6 fix incorrect results in `expm1(::Union{Float16, Float32})` (#50989) `unsafe_trunc(UInt, -1.0)` is unspecified behavior but worked fine on apple and AMD so we didn't notice??? This has been very broken since 1.7. 21 August 2023, 03:29:14 UTC
96e5b62 docs: warn against `@big_str` not obeying rounding mode or precision (#50800) One of the big pitfalls when using `BigFloat`. 20 August 2023, 13:05:35 UTC
ce3f97c Use rr-safe `nopl; rdtsc` sequence (#50975) When running under `rr`, it needs to patch out `rdtsc` to record the values returned. If this is not possible, `rr` falls back to an expensive signal-based emulation. As of rr master, a specific `nopl; rdtsc` sequence may be used to guarantee that `rdtsc` patching is always possible. Use this sequence for uses of rdtsc in our runtime. 20 August 2023, 01:36:52 UTC
2690ca8 Terminfo parser (#50797) This was part of #49586, but it has been spun out so it an be discussed separately and once merged simplify #49586 a bit. This introduces a pure-Julia terminfo parser, which means that: - We can no longer depend on calling `tput` - We can start thinking about fancier terminal-adaptive functionality (see #49586) I am hoping this can be considered and (hopefully) merged in the near future :slightly_smiling_face:. Oh, and I think it's fun to note that it looks like this may well be the most concise standards-compliant Terminfo parsers in existence. 19 August 2023, 19:40:38 UTC
0d544cc effects: separate `:noub` effect bit from `:consistent` (#50808) The current `:consistent` effect bit carries dual meanings: 1. "the return value is always consistent" 2. "this method does not cause any undefined behavior". This design makes the effect bit unclear and hard to manage. Specifically, the current design prevents a post-inference analysis (as discussed in JuliaLang/julia#50805) from safely refining "consistent"-cy using post-optimization state IR. This is because it is impossible to tell whether the `:consistent`-cy has been tainted by the first or second meaning. To address this, this commit splits them into two distinct effect bits: `:consistent` for consistent return values and `:noub` for no undefined behavior. This commit also introduces an override mechanism for `:noub` as it is necessary for `@assume_effects` to concrete-evaluate the annotated methods. While this might sound risky and not in line with the existing designs of `:nonoverlayed` and `:noinbounds`, where their overrides are prohibited, but we already have an override mechanism in place for `:consistent`, which implicitly overrides `:noub`. Given this precedent, the override for `:noub` should probably be justified. @nanosoldier `runbenchmarks("inference", vs=":master")` 19 August 2023, 15:47:04 UTC
44518a9 Add globalDCE and possibly globalsAA to the pipeline (#50908) This removes the unnecessary globals from the module making the IR cleaner and smaller 19 August 2023, 10:22:47 UTC
ec07825 Allow `--project=@scriptdir` for easier co-packaging of scripts and p… (#50864) …rojects I have a directory with a number of runnable scripts and a Project.toml that applies to all of them. I was hoping to have a simple shebang line for these, but there didn't really seem to be a good way to set the `--project` without forcing the script to be invoked with a specific cwd or playing complicated shebang games. With this PR, you can simply write: ``` #!/usr/bin/env -S julia --project=@scriptdir/.. ``` and everything will work out of the box. Perhaps we already have a good mechanism for this, but if so, I was unable to find it, so in that case, consider this a documentation issue instead ;). 18 August 2023, 21:49:12 UTC
49e6ff8 Optimizer: Re-use CFG from type inference (#50924) This change will allow us to re-use Inference-collected information at the basic block level, such as the `bb_vartables`. There were a couple of spots where the `unreachable` insertion pass at IRCode conversion (i.e. optimizer entry) was ignoring statically divergent code that inference had discovered: - `%x = SlotNumber(3)` can throw and cause the following statements to be statically unreachable - `goto #b if not %cond` can be statically throwing if %cond is known to never be Bool (or to always throw during its own evaluation) CFG re-computation was hiding these bugs by flowing through the "Core.Const(...)"-wrapped statements that would follow, inserting unnecessary but harmless extra branches in the CFG. 18 August 2023, 21:39:18 UTC
c239e99 types: fix hash values of Vararg (#50932) Fixes #50455 18 August 2023, 16:09:43 UTC
762801c fix missing methods in ml_matches results (#50962) This was resulting in it being too aggressive at filtering out "duplicate" results, resulting in possible inference mistakes or missing guardsig entries. Fixes: https://github.com/JuliaLang/julia/pull/50722#issuecomment-1658995284 18 August 2023, 16:09:16 UTC
315ff53 Update libssh2 patches (#50959) We're now using libssh2 v1.11.0 which includes the two patches we were carrying. The patches need to be dropped in order to build with `USE_BINARYBUILDER=0`. (This was my bad, I should have made this change as part of #50826, which updated libssh2 to v1.11.0.) 18 August 2023, 16:06:44 UTC
fdd16bf Make tuple indexing nice in the IR (#50877) 18 August 2023, 14:04:45 UTC
a7eca00 Make Broadcast.result_style work on styles with fields. (#50938) Fixes #50937. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> 18 August 2023, 12:03:47 UTC
90e3901 synchronize HISTORY.md with release-1.10 NEWS (#50917) 18 August 2023, 09:24:40 UTC
43164cf Bump JuliaSyntax to 0.4.6 (#50928) This is just a minor update fixing several small but annoying bugs people have noticed since JuliaSyntax was integrated. 18 August 2023, 08:51:38 UTC
ce6b332 test: allow `nothing; return` in `IRUtils.fully_eliminated` For some reason the recent CFG change caused us to generate: ``` 1-element Vector{Any}: CodeInfo( 1 ─ nothing::Nothing └── return true ) => Bool ``` instead of ``` 1-element Vector{Any}: CodeInfo( 1 ─ return true ) => Bool ``` but I believe this difference is harmless. 17 August 2023, 22:12:58 UTC
75974ad IRVerify: Check IR stmt + metadata vector ranges These checks are important to make sure that `verify_ir` does not end up triggering out-of-bounds errors as it checks IR. It also fills out some of the verification: - Confirms that cfg.index is correct - Confirms that cfg.blocks[i].stmts cover the complete IR 17 August 2023, 22:07:15 UTC
bf34995 Don't re-compute CFG on Optimizer entry This change will allow us to re-use Inference-collected information at the basic block level, such as the `bb_vartables`. There were a couple of spots where the `unreachable` insertion pass at IRCode conversion (i.e. optimizer entry) was ignoring statically divergent code that inference had discovered: - `%x = SlotNumber(3)` can throw and cause the following statements to be statically unreachable - `goto #b if not %cond` can be statically throwing if %cond is known to never be Bool (or to always throw during its own evaluation) CFG re-computation was hiding these bugs by flowing through the "Core.Const(...)"-wrapped statements that would follow, inserting unnecessary but harmless extra branches in the CFG. 17 August 2023, 22:07:09 UTC
6e2e6d0 when widening tuple types in tmerge, only widen the complex parts (#50929) This is the part of https://github.com/JuliaLang/julia/pull/50927 required to fix https://github.com/JuliaLang/julia/issues/49249. Specifically, before this change `tmerge(Tuple{Any, Int}, Nothing)` would be `Union{Nothing, Tuple{Any, Int}}` but `tmerge(Tuple{BIG_UNION, Int}, Nothing)` would be `Union{Nothing, Tuple{Any, Any}}`. This feels bad intuitively because giving the compiler more type information led it to forget type information that it already knew about, and is especially damaging because it led to unnecessary type instability when iterating tuples with complex element types (because the iterator state should be inferrable as an `Int` even if you have no idea what the tuple type is). This is tagged for backport to 1.10 since it is a relatively unobtrusive change and it fixes the string regression in a more proper way. 17 August 2023, 18:21:09 UTC
30a73de 🤖 [master] Bump the Pkg stdlib from b044bf6a2 to 08e1eb6ed (#50944) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 17 August 2023, 02:32:24 UTC
5466d3d Add note the `Task` about sticky bit (#50915) Update the docs for `Task` to mention the fact that they default to sticky. Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> 16 August 2023, 19:27:18 UTC
1c536dd Make cong safe in the presence of 0 (#50910) Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com> 16 August 2023, 15:57:17 UTC
cea3d16 timing: Check `jl_current_task` is ready before emitting timing events (#50926) We sometimes spawn imaging-dedicated threads for running LLVM that do not have `jl_current_task` setup. Since we rely on the thread-local storage stack for our built-in profiling, we will segfault if we try to emit any events on these threads. A better long-term fix is probably to setup `jl_current_task` et al on these threads so that we can track them as usual, but this avoids crashes for now. 16 August 2023, 15:03:09 UTC
90b4eed Limit type-printing in MethodError (#50809) This applies the same `...` depth-based parametric truncation to the signature in `MethodError` that we use in printing stacktraces. Fixes #50803 16 August 2023, 10:36:38 UTC
883c19b Change heap-size-hint in test processes to total memory (#50922) It seems this is causing macos to hang because the shown free memory is generally very small. xref: JuliaLang/julia#50673 16 August 2023, 01:53:22 UTC
0b190b3 Skip libraries consisting of the empty string (#50899) Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 15 August 2023, 15:07:47 UTC
fd38d50 Remove unnecessary `Symbol` call [NFC] (#50916) 15 August 2023, 03:31:18 UTC
02dba6d timing: Check `jl_current_task` is ready before emitting timing events We sometimes spawn imaging-dedicated threads for running LLVM that do not have `jl_current_task` setup. Since we rely on the thread-local storage stack for our built-in profiling, we will segfault if we try to emit any events on these threads. A better long-term fix is probably to setup `jl_current_task` et al on these threads so that we can track them as usual, but this avoids crashes for now. 15 August 2023, 03:21:42 UTC
750df9f inference: permit non-direct recursion reducers (#50696) Fix #45759 Fix #46557 Fix #31485 Depends on #50694 due to a failing broadcast test without it (related to #50695) 14 August 2023, 19:47:20 UTC
90494c2 Fix Expr(:loopinfo) codegen (#50663) We used a loop-marker intrinsic because the LoopID used to be dropped by optimization passes (this seems no longer true). #50660 is an example of a miscompilation where a loop of length 1 got optimized by simplifycfg to the point where the loop-marker is now attached to the wrong back-edge. This PR drops the loop-marker and uses the LoopID metadata node directly. 14 August 2023, 15:59:20 UTC
91093fe Make ranges more robust with unsigned indexes. (#50823) Fixes #44895 14 August 2023, 14:06:51 UTC
09e8109 Remove duplicate lines in `print_stackframe` (#49751) These lines were apparently refactored into `print_module_path_file` but not removed from `print_stackframe`. Also moved the `fixup_stdlib_path` call because `file` isn't even used in the parent function. 14 August 2023, 13:25:19 UTC
back to top