https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
3120989 set VERSION to 1.10.0 (#52584) 25 December 2023, 18:01:13 UTC
85d852d Backports for 1.10.0. (#52622) 24 December 2023, 19:29:48 UTC
3fd8bae update NEWS file 23 December 2023, 21:20:04 UTC
1f3c424 Lowering: Insert QuoteNode for captured boxed value (#52596) `Core.Box` is not self-quoting so it should be captured in a QuoteNode. This has been benign until the improved effect system, we handle `QuoteNode` of a mutable value as a global access, whereas a direct reference to a value is treated as inaccessible memory. Fixes #52531 --------- Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> (cherry picked from commit 1290b51a478602f4672e481ba6e5b1eed706843a) 23 December 2023, 13:45:44 UTC
24b525d inference: fix `istuple` check in `apply_type_tfunc` (#52585) close #51927 (cherry picked from commit 58fac69cfa1277c6f9db9a5cb475d08ce267f725) 23 December 2023, 13:45:03 UTC
e38f117 Fix ?(#TAB method search name exploration (#52555) Fix #52551. This PR ensures that a `SomeModule.?(...#TAB` completion can only suggests method `foo` such that `SomeModule.foo` exists (by checking `isdefined(SomeModule, :foo)`). This is equivalent, I believe, to the initial implementation of https://github.com/JuliaLang/julia/pull/38791, less the bug. Now that we have #51345, we may want to relax the above condition somewhat to include public names present in modules loaded into `SomeModule`, so that, for instance, a direct completion of `?(` would include `@assume_effects`. This could be good for method exploration because even though typing `@assume_effects` with no qualification in `Main` will error, the error now includes the helpful message ``` Hint: a global variable of this name also exists in Base. ``` But that can wait for a later PR anyway, this one is just the bugfix. The bug mentioned at https://github.com/JuliaLang/julia/issues/52551#issuecomment-1858543413 dates from the initial #38791 so this could be backported as far back as v1.8. --------- Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> (cherry picked from commit a987f56bf35da093c6b93e98eea8e09dd06dcc20) 23 December 2023, 13:44:05 UTC
5bf09bb fix isequal_normalized for combining-char reordering (#52447) Fixes #52408. (Note that this function was added in Julia 1.8, in #42493.) In the future it would be good to further optimize this function by adding a fast path for the common case of strings that are mostly ASCII characters. Perhaps simply skip ahead to the first byte that doesn't match before we begin doing decomposition etcetera. (cherry picked from commit 3b250c73dc686cb3857067582f47be336ac788ef) 23 December 2023, 13:43:46 UTC
a7dbaad Document environment variable JULIA_PKG_PRESERVE_TIERED_INSTALLED (#52362) This is based on ```julia julia> using Pkg help?> Pkg.add ... │ Note │ │ To change the default strategy to PRESERVE_TIERED_INSTALLED set the env var │ JULIA_PKG_PRESERVE_TIERED_INSTALLED to true. ... ``` I suggest to backport this so that it becomes available in the release docs of Julia v1.9 and newer. (cherry picked from commit 2c2ea3aa649fcea7a7b889c80e211b84cf6f2510) 23 December 2023, 13:43:37 UTC
d487a8d Fix `show` for `MethodList` when methods are from another module (#52354) When a type is defined in one module but its methods are defined elsewhere, `show_method_table` errors due to an incorrect lookup of the defining module used to determine colors for printing. In particular, the code had been assuming that the type is defined in the module in which its constructor's first method (in the sense of `first(methods())`) is defined, which isn't always true. The color used for printing the module name needs to be determined on a per-method basis and can't be correctly done based on the method table's module. For each method, we attempt to derive the module for the method table to which the method was added, then determine whether it's the same as the defining module for the method. Fixes #49382 Fixes #49403 Fixes #52043 Co-Authored-By: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 40bc64c2c213f0e3bf6c91f9b5868221ec4b0c05) 23 December 2023, 13:43:28 UTC
b6dd527 [release 1.10] backport GC developer docs to 1.10 (#52616) The current GC developer docs are fairly out-of-date with the actual implementation. This PR should be strictly a NFC. 22 December 2023, 17:56:37 UTC
ed79752 set VERSION to 1.10.0-rc3 (#52568) 18 December 2023, 09:57:58 UTC
e27685f Backports release 1.10 (#52503) Backported PRs: - [x] #51234 <!-- Fix getfield codegen for tuple inputs and unknown symbol fields. --> - [x] #52170 <!-- fix invalidations related to `ismutable` --> - [x] #52342 <!-- Add single-term multiplication for `AbstractQ` on v1.10 and above --> - [x] #52333 <!-- bugfix for dot of Hermitian{noncommutative} --> - [x] #52407 <!-- channels: fix memory ordering violation in iterate --> - [x] #52405 <!-- Bump LLVM to 15.0.7+10 to fix GC issue --> - [x] #52441 <!-- Remove `Pkg` dependency from `SuiteSparse_jll` --> - [x] #52367 <!-- docs: add notes about scratchspaces in depot --> - [x] #52456 <!-- Make `jl_write_coverage_data` dllexported again --> - [x] #52294 <!-- GC scheduler refinements --> - [x] #52359 <!-- make custom log macros work --> - [x] #52548 17 December 2023, 19:50:45 UTC
5a0bda4 fix #52531, fix the effects modeling of `QuoteNode` (#52548) What observed in #52531 is that `QuoteNode` can embed global variables that users can modify. Therefore, when dealing with `QuoteNode`, it's necessary to taint its `:inaccessiblememonly` just like we do for `GlobalRef`. - fixes #52531 - replaces #52536 16 December 2023, 05:03:35 UTC
c61b27f make custom log macros work (#52359) (cherry picked from commit 641f717a15cf89964db446c1bb32d0d672763786) 12 December 2023, 12:28:24 UTC
4241d4c GC scheduler refinements (#52294) Supersedes https://github.com/JuliaLang/julia/pull/51061 and https://github.com/JuliaLang/julia/pull/51414. Still needs more perf analysis. (cherry picked from commit e26c257b28ec6285c8687aef466b64f9ce23c3c7) 12 December 2023, 12:20:40 UTC
6627b91 Make `jl_write_coverage_data` dllexported again (#52456) Closes #52452 (cherry picked from commit 8cf7598ebd0c120f50db2f5d6bbd091855a4836c) 12 December 2023, 12:13:24 UTC
1dd88d1 docs: add notes about scratchspaces in depot (#52367) Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> (cherry picked from commit bf6c31ceb5c4da5839026463bc29d00458d80a75) 12 December 2023, 12:13:23 UTC
af11859 Remove `Pkg` dependency from `SuiteSparse_jll` (#52441) This dependency seems to be superfluous, and `Pkg` brings lots of dependencies into the project (Downloads, LibGit2, etc.) which makes it hard to create leaner binary packages via `PackageCompiler` for projects that depend on `SuiteSparse_jll`. (cherry picked from commit 3b9c39ac1cbb46688d7b3597e70b9ae591e3b0ec) 12 December 2023, 12:13:22 UTC
1e66ce2 Bump LLVM to 15.0.7+10 to fix GC issue (#52405) (cherry picked from commit e5046b4579cf571931714abbe14a3a049ca6383b) 12 December 2023, 12:13:22 UTC
4f09b54 channels: fix memory ordering violation in iterate (#52407) Channel `iterate` calls might miss trailing items without this patch. I have not seen proof of this reaching a failure, but we do appear to be missing this ordering specification in visual review. Should not make a difference to generated code on x86, which already has TSO guaranteed, but may alter optimizations and other CPUs with weaker memory orderings. (cherry picked from commit 856e1120a8f255e4907a05f0146a2026a6665dd4) 12 December 2023, 12:13:22 UTC
e94785f bugfix for dot of Hermitian{noncommutative} (#52333) Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> (cherry picked from commit 53f1eb82b8a4265def61ab677746b63a583ef865) 12 December 2023, 12:13:21 UTC
ea88b8c Add single-term multiplication for `AbstractQ` on v1.10 and above (#52342) (cherry picked from commit 150c1adfd6f1a54e6a74393c7bb73af8f772fa30) 12 December 2023, 12:13:20 UTC
14677ae fix invalidations related to `ismutable` (#52170) Related to #52134. It would be nice if the underlying inference issue was fixed but this seems to be a hotfix for now. I have seen this inference problem occurring in Julia v1.9, v1.10, and current `master`. For example, on Julia v1.9.3, I get ```julia julia> code_warntype(ismutable, (Function,)) MethodInstance for ismutable(::Function) from ismutable(x) @ Base reflection.jl:521 Arguments #self#::Core.Const(ismutable) x::Function Body::Any 1 ─ nothing │ nothing │ %3 = Base.typeof(x)::Type{<:Function} │ %4 = Base.getproperty(%3, :name)::Any │ %5 = Base.getproperty(%4, :flags)::Any │ %6 = (%5 & 0x02)::Any │ %7 = (%6 == 0x02)::Any └── return %7 ``` This causes some invalidations when `using OrdinaryDiffEq`. (cherry picked from commit df40bab2dadf6ad46b822e5ea3e71ac3ee238628) 12 December 2023, 12:13:18 UTC
dbb9c46 Update VERSION to 1.10.0-rc2 (#52375) 03 December 2023, 15:25:58 UTC
d9da975 Backports for 1.10.0-rc2 (#52045) Backported PRs: - [x] #51213 <!-- Wait for other threads to finish compiling before exiting --> - [x] #51520 <!-- Make allocopt respect the GC verifier rules with non usual address spaces --> - [x] #51598 <!-- Use a simple error when reporting sysimg load failures. --> - [x] #51757 <!-- fix parallel peakflop usage --> - [x] #51781 <!-- Don't make pkgimages global editable --> - [x] #51848 <!-- allow finalizers to take any locks and yield during exit --> - [x] #51847 <!-- add missing wait during Timer and AsyncCondition close --> - [x] #50824 <!-- Add some aliasing warnings to docstrings for mutating functions in Base --> - [x] #51885 <!-- remove chmodding the pkgimages --> - [x] #50207 <!-- [devdocs] Improve documentation about building external forks of LLVM --> - [x] #51967 <!-- further fix to the new promoting method for AbstractDateTime subtraction --> - [x] #51980 <!-- macroexpand: handle const/atomic struct fields correctly --> - [x] #51995 <!-- [Artifacts] Pass artifacts dictionary to `ensure_artifact_installed` dispatch --> - [x] #52098 <!-- Fix errors in `sort` docstring --> - [x] #52136 <!-- Bump JuliaSyntax to 0.4.7 --> - [x] #52140 <!-- Make c func `abspath` consistent on Windows. Fix tracking path conversion. --> - [x] #52009 <!-- fix completion that resulted in startpos of 0 for `\\ --> - [x] #52192 <!-- cap the number of GC threads to number of cpu cores --> - [x] #52206 <!-- Make have_fma consistent between interpreter and compiled --> - [x] #52027 <!-- fix Unicode.julia_chartransform for Julia 1.10 --> - [x] #52217 <!-- More helpful error message for empty `cpu_target` in `Base.julia_cmd` --> - [x] #51371 <!-- Memoize `cwstring` when used for env lookup / modification on Windows --> - [x] #52214 <!-- Turn Method Overwritten Error into a PrecompileError -- turning off caching --> - [x] #51895 <!-- Devdocs on fixing precompile hangs, take 2 --> - [x] #51596 <!-- Reland "Don't mark nonlocal symbols as hidden"" --> - [x] #51834 <!-- [REPLCompletions] allow symbol completions within incomplete macrocall expression --> - [x] #52010 <!-- Revert "Support sorting iterators (#46104)" --> - [x] #51430 <!-- add support for async backtraces of Tasks on any thread --> - [x] #51471 <!-- Fix segfault if root task is NULL --> - [x] #52194 <!-- Fix multiversioning issues caused by the parallel llvm work --> - [x] #51035 <!-- refactor GC scanning code to reflect jl_binding_t are now first class --> - [x] #52030 <!-- Bump Statistics --> - [x] #52189 <!-- codegen: ensure i1 bool is widened to i8 before storing --> - [x] #52228 <!-- Widen diagonal var during `Type` unwrapping in `instanceof_tfunc` --> - [x] #52182 <!-- jitlayers: replace sharedbytes intern pool with one that respects alignment --> Contains multiple commits, manual intervention needed: - [ ] #51092 <!-- inference: fix bad effects for recursion --> Non-merged PRs with backport label: - [ ] #52196 <!-- Fix creating custom log level macros --> - [ ] #52170 <!-- fix invalidations related to `ismutable` --> - [ ] #51479 <!-- prevent code loading from lookin in the versioned environment when building Julia --> 02 December 2023, 19:15:37 UTC
b497f44 simplify call to promote_eltype with repeated elements (#51135) Helps to short-circuit calls to large splat calls, since those have all the same type elements. Fixes #51011 (cherry picked from commit 3527213ccb1bfe0c48feab5da64d30cadbd4c526) 28 November 2023, 16:12:22 UTC
465ff74 jitlayers: reduce excess alignment of #52182 (#52210) (cherry picked from commit 72cd63ce28c50c8c72e009df03dfec608802450e) 28 November 2023, 14:25:48 UTC
332d9f3 jitlayers: replace sharedbytes intern pool with one that respects alignment (#52182) The llvm optimizations may increase alignment beyond the initial MAX_ALIGN. This pool's alignment was previously only `sizeof(struct { atomic<int> RefCount; size_t Length; char Data[]; })` however, potentially resulting in segfaults at runtime. Fixes #52118. Should make CI much happier. (cherry picked from commit a65bc9a267837fcf9813bef2fc6eb79d02e25ea5) 28 November 2023, 14:25:48 UTC
0e96c9c Fix getfield codegen for tuple inputs and unknown symbol fields. (#51234) (cherry picked from commit eab8d6b96b05f7e84103f66a902e4ee7ad395b48) 28 November 2023, 12:24:14 UTC
46617e5 bump Pkg to latest v1.10 27 November 2023, 14:54:11 UTC
1e3842c bump SparseArrays to latest v1.10 27 November 2023, 14:52:54 UTC
e77afbf Fix multiversioning issues caused by the parallel llvm work (#52194) So after struggling with this for a long while it seems there were two different issues. The first one we lacked coverage over, but the other was a very subtle issue when we sorted the fptrs. ~I still need to add test that does multiversioning where we call between multiversioned functions~ Fixes https://github.com/JuliaLang/julia/issues/52079 (cherry picked from commit a386cd101ca8ff1775f38e2ec2fbeb7076a39c4f) 27 November 2023, 14:23:04 UTC
db56488 refactor GC scanning code to reflect jl_binding_t are now first class (#51035) Removes some redundant code. Credits to Eduardo for pointing this out in the GC meeting. (cherry picked from commit 5bc558c9cde5db6fa89b7b4d1d56bf3f8dbe8454) 27 November 2023, 14:23:04 UTC
e8673bd codegen: ensure i1 bool is widened to i8 before storing (#52189) Teach value_to_pointer to convert primitive types to their stored representation first, to avoid exposing undef bits later (via memcpy). Take this opportunity to also generalizes the support for zext Bool to anywhere inside any struct for changing any bitwidth to a multiple of 8 bytes. This would change a vector like <2 x i4> from occupying i8 to i16 (c.f. LLVM's LangRef), if such an operation were expressible in Julia today. And take this opportunity to do a bit of code cleanup, now that codegen is better and using helpers from LLVM. Fixes #52127 (cherry picked from commit 9aa7980358349ee7017fa614525f571ffa92c55d) 27 November 2023, 14:23:04 UTC
a16e4e1 Fix segfault if root task is NULL (#51471) In `jl_print_task_backtraces()`. Follow-on to https://github.com/JuliaLang/julia/pull/51430. (cherry picked from commit cde964f392659b301c6019e4ec02c07d43da2c92) 27 November 2023, 14:23:04 UTC
4f7feb1 add support for async backtraces of Tasks on any thread (#51430) (cherry picked from commit e5c6340e252986c0bba240a0924ee4b6885aeb65) 27 November 2023, 14:23:04 UTC
4aeef21 [REPLCompletions] allow symbol completions within incomplete macrocall expression (#51834) fix #51827 --------- Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> (cherry picked from commit 3b1ba62bd27e0dabbd2ec0a6c000edb8138c5915) 27 November 2023, 14:23:04 UTC
5c9602e Don't mark nonlocal symbols as hidden (#51596) Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com> (cherry picked from commit 341e9d067d0cbdce5fe85ff18d6ef5945cbadc28) 27 November 2023, 09:10:44 UTC
9f55128 Devdocs on fixing precompile hangs, take 2 (#51895) This is #50914, with only the documentation changes, plus an improvement to the warning message. --------- Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> (cherry picked from commit 6d5787a993ae7623df479217c9805767ceaa3556) 27 November 2023, 09:09:19 UTC
2030e7d Turn Method Overwritten Error into a PrecompileError -- turning off caching (#52214) Fixes #52213 Overwritting methods during cache creation is currently not something that the system can support and can lead to surprising, counter-intuitive and fatal errors. In 1.10 we turned it from a warning to a strong error, with this PR it remains a strong error, but the precompilation system recognizes it and essentially sets `__precompile__(false)` for this module and all modules that depend on it. Before: ``` julia> using OverwriteMethodError [ Info: Precompiling OverwriteMethodError [top-level] WARNING: Method definition +(Bool, Bool) in module Base at bool.jl:166 overwritten in module OverwriteMethodError at /home/vchuravy/src/julia2/OverwriteMethodError.jl:2. ERROR: LoadError: Method overwriting is not permitted during Module precompile. Stacktrace: [1] top-level scope @ ~/src/julia2/OverwriteMethodError.jl:2 [2] include @ Base ./Base.jl:489 [inlined] [3] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) @ Base ./loading.jl:2216 [4] top-level scope @ stdin:3 in expression starting at /home/vchuravy/src/julia2/OverwriteMethodError.jl:1 in expression starting at stdin:3 ERROR: Failed to precompile OverwriteMethodError [top-level] to "/home/vchuravy/.julia/compiled/v1.10/jl_guiuCQ". Stacktrace: [1] error(s::String) @ Base ./error.jl:35 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool) @ Base ./loading.jl:2462 [3] compilecache @ Base ./loading.jl:2334 [inlined] [4] (::Base.var"#968#969"{Base.PkgId})() @ Base ./loading.jl:1968 [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool}) @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.0-rc1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93 [6] #mkpidlock#6 @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.0-rc1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined] [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64}) @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.0-rc1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111 [8] #invokelatest#2 @ Base ./essentials.jl:889 [inlined] [9] invokelatest @ Base ./essentials.jl:884 [inlined] [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64) @ Base ./loading.jl:2977 [11] maybe_cachefile_lock @ Base ./loading.jl:2974 [inlined] [12] _require(pkg::Base.PkgId, env::String) @ Base ./loading.jl:1964 [13] __require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:1806 [14] #invoke_in_world#3 @ Base ./essentials.jl:921 [inlined] [15] invoke_in_world @ Base ./essentials.jl:918 [inlined] [16] _require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:1797 [17] macro expansion @ Base ./loading.jl:1784 [inlined] [18] macro expansion @ Base ./lock.jl:267 [inlined] [19] __require(into::Module, mod::Symbol) @ Base ./loading.jl:1747 [20] #invoke_in_world#3 @ Base ./essentials.jl:921 [inlined] [21] invoke_in_world @ Base ./essentials.jl:918 [inlined] [22] require(into::Module, mod::Symbol) @ Base ./loading.jl:1740 ``` After: ``` julia> using OverwriteMethodError ┌ Info: Precompiling OverwriteMethodError [top-level] └ @ Base loading.jl:2486 WARNING: Method definition +(Bool, Bool) in module Base at bool.jl:166 overwritten in module OverwriteMethodError at /home/vchuravy/src/julia2/OverwriteMethodError.jl:2. ERROR: Method overwriting is not permitted during Module precompile. ┌ Info: Skipping precompilation since __precompile__(false). Importing OverwriteMethodError [top-level]. └ @ Base loading.jl:2084 ``` --------- Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> (cherry picked from commit 9e8fe688c5e32bde3ab48bb71f9d4ab45ef272ee) 27 November 2023, 09:08:13 UTC
9c097b6 Revert "Support sorting iterators (#46104)" (#52010) Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> (cherry picked from commit 1cb85ad3fb1ba32e18be9be67775d1b36dc27079) 27 November 2023, 09:02:33 UTC
2638522 Memoize `cwstring` when used for env lookup / modification on Windows (#51371) ~This is just me proposing a suggestion from @KristofferC in https://discourse.julialang.org/t/debug-has-massive-performance-impact/103974/22, it's all his code / idea, not mine.~ This PR makes it so that on windows, we pre-allocate an `IdDict` and every time someone looks up environment variables (motivating example here is `@debug` statements), we store the result of `cwstring(::String)` in that `IdDict` so that it doesn't need to be re-computed for future uses. The idea behind this is that people have observed that [using `@debug` is significantly more costly on Windows than other platforms](https://discourse.julialang.org/t/debug-has-massive-performance-impact/103974), even though we have documented in that manual that it should be a really cheap operation. @KristofferC suggests this is due to the fact that [checking environment variables in Windows is more costly](https://discourse.julialang.org/t/debug-has-massive-performance-impact/103974/18). ~The idea here is that we preallocate a `Cwstring` on Windows that just holds the text `"JULIA_DEBUG"`, so that if `access_env(f, "JULIA_DEBUG")` gets called, we don't need to create a new `Cwstring` and then throw it away each time.~ --------- Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 9dcedaa8ec198b49387a8459e4daff1474b93ce2) 27 November 2023, 08:46:21 UTC
99d71c0 More helpful error message for empty `cpu_target` in `Base.julia_cmd` (#52217) Fix #52209. (cherry picked from commit 4a18886a16308dee8d475c942bc641d718e59e9f) 27 November 2023, 08:46:20 UTC
e9acaf5 fix Unicode.julia_chartransform for Julia 1.10 (#52027) #49559 by @JeffBezanson updated `src/flisp/julia_charmap.h` but missed [the comment](https://github.com/JuliaLang/julia/blob/164969f3d06919b073f3aa9ee608e40974ca82d9/src/flisp/julia_charmap.h#L5-L6) noting that `base/strings/unicode.jl` has to be updated accordingly. (cherry picked from commit 05f4b05384af9af364dcdf181db1a35020e07270) 27 November 2023, 08:46:16 UTC
f67439c Make have_fma consistent between interpreter and compiled (#52206) Currently the interpreter always returns false. Which isn't very good. Make it follow whatever the JIT will do. (cherry picked from commit a6c656e6c47ff2b1237c92e90ba73ac267fc1dc0) 27 November 2023, 08:46:15 UTC
0218599 cap the number of GC threads to number of cpu cores (#52192) (cherry picked from commit f26947b4f5aee73135581bb14290c1c00102b8e3) 27 November 2023, 08:46:12 UTC
dc2c4f1 [REPL] fix computation of startpos for path completions (#52009) Fixes https://github.com/JuliaLang/julia/issues/51985 Ensure that the REPL completions escape and unescape text correctly, using the correct functions, and accounting for exactly what the user has currently typed. The old broken method is left around for Pkg, since it has an over-reliance on it returning incorrect answers. Once Pkg is fixed, we can delete that code. Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 5edcdc5a234fa69a65f5e2b8d85ac51cfb37a653) 27 November 2023, 08:46:12 UTC
0a1e83e Make c func `abspath` consistent on Windows. Fix tracking path conversion. (#52140) Explanation for the `GetFullPathName` behavior https://developercommunity.visualstudio.com/t/GetFullPath-fails-if-given-empty-string/483359#T-N486167 (cherry picked from commit eaef647957ca5e085eea299cfa9f699c6afe6d8f) 27 November 2023, 08:46:11 UTC
99c4ae4 Make allocopt respect the GC verifier rules with non usual address spaces (#51520) On AMDGPU, this was generating a `addrspace(10)` pointer to an `alloca` which is illegal and lead to other issues. (cherry picked from commit af9a7af3b27c0ff22179a7dcd30bf6753d3d575f) 27 November 2023, 08:46:06 UTC
1ddd6da Bump JuliaSyntax to 0.4.7 (#52136) This fixes a whole bunch of small but annoying bugs, as described in the JuliaSyntax-0.4.7 release notes https://github.com/JuliaLang/JuliaSyntax.jl/releases/tag/v0.4.7 I've been careful about cutting the JuliaSyntax-0.4.7 release from nonbreaking changes, so we should be able to backport this to 1.10. --- Extended notes about compatibility * The public keyword in https://github.com/JuliaLang/JuliaSyntax.jl/pull/320 is released in JuliaSyntax-0.4.7 but JuliaSyntax is multi-version aware so this is disabled when used as the default parser in Julia 1.10, but is enabled in 1.11-DEV. So should be backportable. * We aim for parsing to `Expr` to always be stable in JuliaSyntax and independent of the host Julia `VERSION`, but we're not fully there yet for 1.11 / 1.10 due to https://github.com/JuliaLang/JuliaSyntax.jl/issues/377. Thus some careful management of the JuliaSyntax-0.4.x branch for now. (cherry picked from commit 85d7ccad2cc2154d9c3371283512eec33252cc40) 13 November 2023, 12:26:36 UTC
8b85bbf Fix errors in `sort` docstring (#52098) Two chagnes wrapped into one `Base.copymutable` => `Base.copymutable` & `collect` and `Base.copymutable` => `similar` & words. Followup for #52086 and #46104; also fixes #51932 (though we still may want to make `copymutable` public at some point) --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 42c088b8b3e678edd19e5cb9ea54503e43624d06) 13 November 2023, 12:23:34 UTC
3ffa3db fix sorting for iterables that define copymutable (#52086) (cherry picked from commit f99e6bfe19b7b8d73975f5f96e54052e9725f1c8) 13 November 2023, 12:23:33 UTC
f5adece [devdocs] Improve documentation about building external forks of LLVM (#50207) Suggested by @vchuravy. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 2adf54a951d70d6963af7f22950ca28c032000af) 13 November 2023, 12:23:32 UTC
405e1a4 Wait for other threads to finish compiling before exiting (#51213) This avoids a crashes where we run the destructors because C++ is fun and runs destructors before thread exit. (cherry picked from commit 3d88550124d30ac88fd68a851df2a67216a5854b) 13 November 2023, 12:23:28 UTC
6f864a7 Bump Statistics (#52030) This bumps Statistics to the latest commit of the release-1.10 branch in order to backport JuliaStats/Statistics.jl#153. See https://github.com/JuliaData/DataFrames.jl/issues/3383. Cc: @bkamins @George9000 09 November 2023, 10:13:18 UTC
3b6e9dd [Artifacts] Pass artifacts dictionary to `ensure_artifact_installed` dispatch (#51995) The artifacts dict is not lowered to ensure_artifact_installed which causes to load the ".toml" during runtime for lazy artifacts (cherry picked from commit 9bc6994fd6e61d98c12733f673aaa1a296465eb6) 06 November 2023, 12:30:00 UTC
2d6af7e macroexpand: handle const/atomic struct fields correctly (#51980) Fixes #51899 (cherry picked from commit 924aac92b977b7a492c8cba878ff14329a4ad4b0) 06 November 2023, 12:29:59 UTC
3a4b140 further fix to the new promoting method for AbstractDateTime subtraction (#51967) (cherry picked from commit 405ce111a86ea85a97734efed0ea995cfdc7f56c) 06 November 2023, 12:29:58 UTC
35264b7 Add aliasing warnings to docstrings for mutating functions in Base (#50824) (cherry picked from commit 58030da3bc4e6790d7bafe66d5f37b382dd6df3c) 06 November 2023, 12:29:58 UTC
db55742 add missing wait during Timer and AsyncCondition close (#51847) Can cause spurious warnings about not closing these properly and unexpected events to appear after `close` returns. (cherry picked from commit d0c42840f6ff509421a3f0d28ebe5bd80c625cc3) 06 November 2023, 12:29:57 UTC
feb75f8 allow finalizers to take any locks and yield during exit (#51848) This aligns their behavior with manual calls to `finalize(o)`, and prepares for a future time in which these functions are always run on a separate thread. This means that they can wait to acquire locks in this context, which otherwise would have been denied to them. (cherry picked from commit c54a3f2b83bfca5f79a1b482abaa9b8e7f0da9ce) 06 November 2023, 12:29:56 UTC
1aa5055 fix parallel peakflop usage (#51757) This is required now once Distributed is not in the sysimage. Fixes https://github.com/JuliaLang/julia/issues/51756 (cherry picked from commit 795d8d7a033cb711f5914b0da7587ab55edb0f39) 06 November 2023, 12:29:55 UTC
ba2a8a3 Use a simple error when reporting sysimg load failures. (#51598) `jl_errorexception_type` is undefined at the point we (fail to) load a sysimg. (cherry picked from commit 20a5fa751aa613b3244c9158581bcc85f049dc5c) 06 November 2023, 12:29:52 UTC
5aaa948 release-1.10: Update VERSION to 1.10-rc1 (#51997) 03 November 2023, 07:44:08 UTC
1391444 Backports release 1.10 (#51563) Backported PRs: - [x] #50932 <!-- types: fix hash values of Vararg --> - [x] #50975 <!-- Use rr-safe `nopl; rdtsc` sequence --> - [x] #50989 <!-- fix incorrect results in `expm1(::Union{Float16, Float32})` --> - [x] #51284 <!-- Avoid infinite loop when doing SIGTRAP in arm64-apple --> - [x] #51332 <!-- Add s4 field to Xoshiro --> - [x] #51397 <!-- call Pkg precompile hook in latest world --> - [x] #51405 <!-- Remove fallback that assigns a module to inlined frames. --> - [x] #51491 <!-- Throw clearer ArgumentError for strip with two string args --> - [x] #51531 <!-- fix `_tryonce_download_from_cache` (busybox.exe download error) --> - [x] #51541 <!-- Fix string index error in tab completion code --> - [x] #51530 <!-- Don't mark nonlocal symbols as hidden --> - [x] #51557 <!-- Fix last startup & shutdown precompiles --> - [x] #51512 <!-- avoid limiting Type{Any} to Type --> - [x] #51595 <!-- reset `maxprobe` on `empty!` --> - [x] #51582 <!-- Aggressive constprop in LinearAlgebra.wrap --> - [x] #51592 <!-- correctly track element pointer in heap snapshot --> - [x] #51326 <!-- complete false & true more generally as vals --> - [x] #51376 <!-- make `hash(::Xoshiro)` compatible with `==` --> - [x] #51557 <!-- Fix last startup & shutdown precompiles --> - [x] #51845 - [x] #51840 - [x] #50663 <!-- Fix Expr(:loopinfo) codegen --> - [x] #51863 <!-- LLVM 15.0.7-9 --> Contains multiple commits, manual intervention needed: - [ ] #51035 <!-- refactor GC scanning code to reflect jl_binding_t are now first class --> - [ ] #51092 <!-- inference: fix bad effects for recursion --> Non-merged PRs with backport label: - [ ] #51479 <!-- prevent code loading from lookin in the versioned environment when building Julia --> - [ ] #51414 <!-- improvements on GC scheduler shutdown --> - [ ] #51366 <!-- Handle infix operators in REPL completion --> - [ ] #50919 <!-- Code loading: do the "skipping mtime check for stdlib" check regardless of the value of `ispath(f)` --> - [ ] #50824 <!-- Add some aliasing warnings to docstrings for mutating functions in Base --> - [ ] #49805 <!-- Limit TimeType subtraction to AbstractDateTime --> 02 November 2023, 14:06:56 UTC
81d8c12 🤖 [backports-release-1.10] Bump the Pkg stdlib from 9261a54d3 to e63c601bd (#51964) 31 October 2023, 22:49:17 UTC
4770eea remove chmodding the pkgimages (#51885) This shouldn't be needed because `ldd` should do it itself. (cherry picked from commit 5b34cdfa705df21997a8b97f6642c18de3a6d0e1) 31 October 2023, 11:39:52 UTC
0edde83 fixup to #51743, timetype subtraction Restores the method whose removal was probably causing problems. (cherry picked from commit f6f1ee9e00b1b9cc1e7703cd4ce7712f7064fdd4) 30 October 2023, 09:21:20 UTC
cba88c1 Backport "Fix Expr(:loopinfo) codegen" (#51883) Backport #50663 to 1.10 28 October 2023, 15:52:34 UTC
1fe4e26 Backport LLVM 15.0.7-9 to 1.10 (#51882) Backport of #51863 27 October 2023, 12:59:58 UTC
1977e1f fixup to #51743, timetype subtraction Restores the method whose removal was probably causing problems. (cherry picked from commit 14d9c7c3765cefcadef8ed02348758702cc96cd8) 26 October 2023, 00:22:00 UTC
f3e683d LLVM: Activate typed pointers through the API instead of a global option. (#51840) This allows other users of LLVM to use opaque pointers with their contexts. Co-authored-by: Jameson Nash <vtjnash@gmail.com> 25 October 2023, 11:58:19 UTC
ac2593a inference: fix infinite recursion of nested Generators (#51845) It seems this case has already been fixed by other improvements, so we no longer need this hack, which is now causing problems. Fixes #51694 25 October 2023, 05:53:02 UTC
a599ed4 [release 1.10] trigger a full sweep if beyond max total memory (#51843) Otherwise `--heap-size-hint` will become a no-op. Likely a merge bug from https://github.com/JuliaLang/julia/pull/51661. 24 October 2023, 23:28:17 UTC
4e1759c fix eltype for partition iterators of substrings (#51773) Fixes https://github.com/JuliaLang/julia/issues/51771 The convert method that asserts in #51771 is arguably still faulty though. (cherry picked from commit cf00550f955abd408bf0f478882c57887522f67e) 24 October 2023, 08:44:21 UTC
7ae1535 Make local scope for `else` blocks in `try`/`catch`/`else` (#51785) [Docs](https://docs.julialang.org/en/v1/manual/control-flow/#else-Clauses) state: > The try, catch, else, and finally clauses each introduce their own > scope blocks. But it is currently not the case for `else` blocks ```julia julia> try catch else z = 1 end 1 julia> z 1 ``` This change actually makes `else` blocks have their own scope block: ```julia julia> try catch else z = 1 end 1 julia> z ERROR: UndefVarError: `z` not defined ``` (cherry picked from commit 17a36eeb06192b9c878cdaa8436ede23f61acfa0) 24 October 2023, 08:44:14 UTC
be97eb7 Fix typo in range display (#51832) Thanks ScottPJones for finding this. Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> (cherry picked from commit b197197a51cb1d4eea5c3e3fed0ae3419449a6d6) 24 October 2023, 08:44:08 UTC
5ded9ab bump SparseArrays to latest release-1.10 24 October 2023, 08:43:21 UTC
e862940 Revert "bump SparseArrays to latest release-1.10" This reverts commit f2c447d7c7f53b68b96234fc6b6281c0d7375138. 23 October 2023, 14:35:36 UTC
d2a66d8 Don't make pkgimages global editable (#51781) (cherry picked from commit 37611b407da73b13ec3b520e15fcc39f17293ba5) 23 October 2023, 10:37:59 UTC
bd99491 fix unicode indexing in parse(Complex, string) (#51758) This fixes a string-indexing bug introduced in #24713 (Julia 0.7). Sometimes, this would cause `parse(Complex{T}, string)` to throw a `StringIndexError` rather than an `ArgumentError`, e.g. for `parse(ComplexF64, "3 β+ 4im")` or `parse(ComplexF64, "3 + 4αm")`. (As far as I can tell, it can never cause parsing to fail for valid strings.) The source of the error is that if `i` is the index of an ASCII character in a string `s`, then `s[i+1]` is valid (even if the next character is non-ASCII) but `s[i-1]` is invalid if the previous character is non-ASCII. (cherry picked from commit f71228d939114a84c0c82f0740785f764a2c38ef) 23 October 2023, 10:37:59 UTC
c426095 limit TimeType subtraction (#51743) Disallow some type combinations that don't make sense. --------- Co-authored-by: Ben Baumgold <4933671+baumgold@users.noreply.github.com> (cherry picked from commit 8a889ffcd235ac75720205b0cd7446c9b66eb664) 23 October 2023, 10:37:58 UTC
8329725 codegen: fix gc rooting bug (#51744) ccall was not creating roots for the contents of struct values which contained roots on the stack, as expected to align with `GC.@preserve`, and causing many segfaults for #51319 (cherry picked from commit e36f65f0f66c1306574f7ec577479bf381fa088c) 23 October 2023, 10:37:58 UTC
516725d Lower Pidfile stale_age multiplier. Add pidfile to cache log message. (#51714) (cherry picked from commit 6ec149f3b19a0d1ba597ee20780856cd5ae31867) 23 October 2023, 10:37:56 UTC
5f8f33b Allow using `ReturnNode()` in `@generated` code (#51715) IRTools.jl currently tries to use `ReturnNode()` to model unreachable block terminators but it fails in `find_ssavalue_uses`. This PR adds a check to enable using `ReturnNode()` in untyped code. One other alternative for frontends is to use an instruction known to terminate (`Core.throw`) instead. See https://github.com/FluxML/IRTools.jl/pull/115 for more context. (cherry picked from commit ff03e5116d452d0e6e5970a50c187d468febf594) 23 October 2023, 10:37:55 UTC
78b7a21 Allow tab after key name in TOML.parse (#51622) Fixes https://github.com/JuliaLang/TOML.jl/issues/52 (cherry picked from commit 8180240a5e3cef039e575e425c46334d16c1bf94) 23 October 2023, 10:37:55 UTC
4d3022e Handle `AbstractQ` in concatenation (#51132) Handling `AbstractQ`s in concatenation got lost in the overhaul. This brings it back (though it seemed to not be used anywhere), and even better: pre-1.9 `Q`s where handled via `AbstractMatrix` fallbacks, so elementwise. Now, it first materializes the matrix, and then copies to the right place in the destination array. (cherry picked from commit 50146b2dd27e8f3bc54367427a70cd96f74ada45) 23 October 2023, 10:37:53 UTC
f2c447d bump SparseArrays to latest release-1.10 23 October 2023, 10:26:40 UTC
3b97715 Test for reverting back to 1.8 GC heuristics (#51661) The 1.10 GC heuristics introduced in https://github.com/JuliaLang/julia/pull/50144 have been a source of concerning issues such as https://github.com/JuliaLang/julia/issues/50705 and https://github.com/JuliaLang/julia/issues/51601. The PR also doesn't correctly implement the paper on which it's based, as discussed in https://github.com/JuliaLang/julia/issues/51498. Test whether the 1.8 GC heuristics are a viable option. 20 October 2023, 20:43:29 UTC
d4809e5 Upgrade SuiteSparse to 7.2.1 20 October 2023, 09:45:42 UTC
110e9ba Handle infix operators in REPL completion (#51366) Fix https://github.com/JuliaLang/julia/issues/51194 This PR fixes a regression introduced in https://github.com/JuliaLang/julia/pull/49294, so I believe it should be backported to v1.10. In the current code, completion of `qux(foo, bar.` is detected by parsing `foo(qux, bar` as an incomplete expression, and then looking for the sub-expression to complete (here, `bar.`). This approach fails however for infix calls, since completing `foo + bar.` starts by parsing `foo + bar`, which is a complete call expression, and so the code behaves as if completing `(foo + bar).` instead of `bar.`. This leads to the current problematic behaviour: ```julia julia> Complex(1, 3) + (4//5).#TAB im re ``` which would be correct for `(Complex(1, 3) + (4//5)).#TAB`, but here we expect ```julia julia> Complex(1, 3) + (4//5).#TAB den num ``` This PR fixes that by trying to detect infix calls. In the long term, all this ad-hoc and probably somewhat wrong string processing should be replaced by proper use of `JuliaSyntax` (as mentioned in https://github.com/JuliaLang/julia/pull/49294#issue-1659443492, https://github.com/JuliaLang/julia/issues/50817#issuecomment-1668773346 and probably other places), but for now at least this fixes the regression. (cherry picked from commit e949236f29347f3e57a1a3a7d5ec656872ad8347) 12 October 2023, 11:17:34 UTC
d117058 [LibCURL_jll] Upgrade to v8.4.0 (#51667) (cherry picked from commit abf5d9e8062dd338e55962f411d2e24652e20015) 11 October 2023, 12:41:51 UTC
b01e7e5 Merge branch 'release-1.10' into backports-release-1.10 11 October 2023, 01:11:53 UTC
45461be 🤖 [release-1.10] Bump the Pkg stdlib from 484bc3ec0 to 9261a54d3 (#51664) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> Fix Pkg.precompile ext races (#3645) 11 October 2023, 01:07:03 UTC
2523d15 fix annotations on `sym_in` (#51573) This seems to be the right combination of annotations to fix both #50562 and an inference regression in PropertyDicts.jl on the 1.10 release branch. When backported the `@noinline` should be restored for 1.10. (cherry picked from commit f7e8f924f524b102ce8bb50e6662ca9b16e02c30) 10 October 2023, 14:43:13 UTC
b3898c3 correctly track element pointer in heap snapshot (#51592) Fixes https://github.com/JuliaLang/julia/issues/51576 on a simple snapshot I collected on my machine. (cherry picked from commit 5bdc1b34cf29db9261a540faecea97ebd941885f) 09 October 2023, 13:19:12 UTC
8c387e3 Aggressive constprop in LinearAlgebra.wrap (#51582) This helps with type-stability, as the flag `tA` is usually known from the type of the matrix. On master, ```julia julia> f(A) = LinearAlgebra.wrap(A, 'N') f (generic function with 1 method) julia> @code_typed f([1;;]) CodeInfo( 1 ─ %1 = invoke LinearAlgebra.wrap(A::Matrix{Int64}, 'N'::Char)::Union{Adjoint{Int64, Matrix{Int64}}, Hermitian{Int64, Matrix{Int64}}, Symmetric{Int64, Matrix{Int64}}, Transpose{Int64, Matrix{Int64}}, Matrix{Int64}} └── return %1 ) => Union{Adjoint{Int64, Matrix{Int64}}, Hermitian{Int64, Matrix{Int64}}, Symmetric{Int64, Matrix{Int64}}, Transpose{Int64, Matrix{Int64}}, Matrix{Int64}} ``` This PR ```julia julia> @code_typed f([1;;]) CodeInfo( 1 ─ return A ) => Matrix{Int64} ``` (cherry picked from commit 0fd7f72109a8741720650f72ca41b10d95e9e39e) 09 October 2023, 13:19:11 UTC
1e95bf8 reset `maxprobe` on `empty!` (#51595) As pointed out in https://github.com/JuliaLang/julia/issues/51594#issuecomment-1747781744, this is necessary for the assertion added in https://github.com/JuliaLang/julia/pull/49447 to be valid. Fix #51594 (cherry picked from commit c18e48559ce471e30a14ffd96eafd3ee6600552e) 09 October 2023, 13:19:11 UTC
674f440 avoid limiting Type{Any} to Type (#51512) Fix #51510 (cherry picked from commit 25f510a34523922f45f9d676d156123959a29f47) 09 October 2023, 13:19:10 UTC
ddec9e4 Revert "Don't mark nonlocal symbols as hidden (#51530)" This reverts commit e1f1cc8f71eb64f25ff138eaa2cbf9d6604d60b4. 04 October 2023, 13:53:51 UTC
back to top