https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
27b9cb9 Tweak launch config 28 August 2023, 01:22:32 UTC
7fb40b1 Add minimum memory requirement to dev container 28 August 2023, 00:47:11 UTC
421cea5 Fix debugging in dev container 28 August 2023, 00:42:17 UTC
ddb9a06 Add lldb launch configuration 28 August 2023, 00:17:47 UTC
76846d3 Tweak dev container 28 August 2023, 00:17:18 UTC
50f4b23 Add debuggers to dev container 27 August 2023, 23:58:06 UTC
4d73649 Add more extensions to dev container 27 August 2023, 23:26:12 UTC
c1bb196 Update the dev container file 27 August 2023, 23:21:06 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
7157029 Correct info about Alt+e on 1.9 HISTORY.md (#49685) The code is not executed when existing the editor: https://github.com/JuliaLang/julia/pull/46153 14 August 2023, 12:53:11 UTC
022924c small typo in code example in the llvm.md documentation (#49943) The code in the documentation returns an error: ``` ERROR: MethodError: no method matching _dump_function(::typeof(+), ::Type{Tuple{Int64, Int64}}, ::Bool, ::Bool, ::Bool, ::Bool, ::Symbol, ::Bool, ::Symbol) ``` apparently, one boolean variable was missing from the call to `InteractiveUtils._dump_function`. Adding one `false` at the end of the call should fix that. 14 August 2023, 12:52:06 UTC
b763728 Remove weird Rational dispatch and add pi functions to list (#50850) Should fix https://github.com/JuliaLang/julia/issues/48735 14 August 2023, 12:50:02 UTC
fd695a7 Add Base prefix to list_deletefirst! (#50852) I noticed this when debugging a bizarre issue, probably caused by some earlier undefined behaviour, and I haven't been able to come up with simple reproduction steps. It seems like `current_task().queue` is basically never set after `wait()`. Based on https://github.com/JuliaLang/julia/issues/32903 it seems like raising SIGINT at the right time might trigger this. In any case, if you manage to trigger it, `list_deletefirst!` will fail because it is out of scope. I double-checked this using `@eval Sockets list_deletefirst!` with Julia 1.9.2 (and there's only been one change to `Sockets` since then). 14 August 2023, 12:45:23 UTC
513336a Set -march/mcpu to native when building the runtime if no targets are set (#50031) vchuravy noted that we don't set these flags even when building locally, even though we set the sysimg to `native`. This probably doesn't make too much of a difference but it might save a couple % on from source builds. Also add the option to set `mtune` which is what GCC wants 14 August 2023, 12:43:41 UTC
95c9ddd Wait for git credential helper task (#49980) This is just something I noticed when reading the code (doesn't fix any user-facing bug that I'm aware of). It seems that [1] changed wait(t) to wait(p), which might be a typo? Without wait(t), any error thrown by t will be ignored. I've folded wait(p) into the do expression, although the helper should already be dead by the time read! returns (unless it closes stdout early for some reason). [1] https://github.com/JuliaLang/julia/commit/7577ec2f4b1674878263039982d63f854627b383 14 August 2023, 12:10:32 UTC
59604ef Changed stacktrace error message to avoid ambiguity (#50133) Made changes required by #50112 by changing "last" to "above" and fixed my previous PR #50131 not passing the tests. 14 August 2023, 12:08:17 UTC
a9116ef Update REPL.fuzzyscore to use string distance (#50412) The old heuristics were not particularly helpful. These new heuristics should be easier to reason about, since the score is between 0 and 1, and also yield much more intuitive results. Closes #49466 See #49562 Co-authored-by: TEC <git@tecosaur.net> Co-authored-by: matthieugomez <gomez.matthieu@gmail.com> 14 August 2023, 12:04:16 UTC
49a6bfe duck-type some string internals to make StringViews easier (#50426) This PR just removes the type qualifiers from some undocumented internal functions to make it a bit easier to hook in with StringViews. 14 August 2023, 12:03:37 UTC
b388d26 Base.MPFR: don't `ccall` for special value predicates (#50674) MPFR determines special values according to sentinel values of the exponent field. Although these constants are not documented (they're defined in MPFR's `src/mpfr-impl.h`), they're already used in `Base.MPFR` in the `BigFloat` inner constructor and for converting IEEE 754 FP types to `BigFloat`, so I guess it makes sense to avoid the `ccall` overhead for predicates like `iszero` and `isnan`, too. The context here is that I'm working on generic IEEE 754-`BigFloat` conversion implementations that would work without using MPFR and improve correctness (#50642) and performance, so this PR seems like the obvious prerequisite for being able to use the Julian predicates like `iszero` without calling libmpfr unnecessarily. 14 August 2023, 11:43:34 UTC
5f03a18 Fix integer overflow in `isapprox` (#50730) Ensure that `isapprox` gives correct results when comparing an integer with another integer or with a float. For comparison between integers, the fix only works when keeping default values for `rtol` and `norm`, and with `atol < 1`. It is not possible to handle the (atypical) case where `norm !== abs`, but that's OK since the user is responsible for providing a safe function. It would be possible to handle the case where `rtol > 0` or `atol >= 1`, but with complex code which would check for overflow and handle all possible corner cases; it would work only for types defined in Base and would not be extensible by packages. So I'm not sure that's worth it. At least with PR fixes the most common case. Fixes https://github.com/JuliaLang/julia/issues/50380. 14 August 2023, 11:37:10 UTC
ad0712f various minor changes to the documentation (#50879) A small contribution to an improved documentation. I've bundled a few tiny, unrelated changes together instead of submitting many PRs. Let me know if you prefer it differently or if you want any other change. Some comments: `llvmcall`: The file `test/llvmcall.jl` was mentioned. I've added a link to GitHub. However, it works only for tagged version. Improvements welcome. `@sync`: I would like to add links to `Distributed.@spawnat` and `Distributed.@distributed`, but I don't know how to do it from one package (Base) to another. I once asked about it on [Discourse](https://discourse.julialang.org/t/documentation-how-to-add-cross-references-to-functions-in-other-modules/88504), but didn't get an answer. `hasfastin`: now mentioned in the documentation 14 August 2023, 11:29:54 UTC
15b590b Docs formatting (#50049) 12 August 2023, 03:47:17 UTC
0eb13d7 Add default method for setmodifiers! (#50822) Fixes #50690 11 August 2023, 19:20:48 UTC
3838dab Fix big(1)^big(-1) (#50821) This PR gives BigInt exponentiation the same edge-case behavior as other integer exponentiation. The normal integer exponentiation checks if `x` is `1` or `-1` before erroring if the power is negative. https://github.com/JuliaLang/julia/blob/9f9e989f241fad1ae03c3920c20a93d8017a5b8f/base/intfuncs.jl#L283-L287 With this PR `big(1)^big(-1) == 1`, `big(-1)^big(-1) == -1` and `big(-1)^big(-2) == 1` --------- Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com> 11 August 2023, 19:19:16 UTC
eb4416b Restrict COFF to a single thread when symbol count is high (#50874) 11 August 2023, 14:15:23 UTC
back to top