swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40

sort by:
Revision Author Date Message Commit Date
506326e Add `@test_throws Union{} expr` to test that no exception is thrown See discussion in issue 18780. 26 February 2024, 16:56:07 UTC
3db7323 Simplify some tests with `@test ... {broken,skip}=...` (#53470) 26 February 2024, 14:07:32 UTC
3ebba8f use ScopedValues for MPFR precision and rounding (#51362) Should fix thread safety issues. Actually fixes #27139 26 February 2024, 14:06:32 UTC
b18824a Wrap `contrib/check-whitespace.jl` in a function (#53468) 26 February 2024, 08:18:52 UTC
4b47cc4 Remove stale explicit imports from many stdlibs (#53464) Found via my new https://github.com/ericphanson/ExplicitImports.jl ```julia using ExplicitImports ExplicitImports.inspect_session(; inner=print_stale_explicit_imports) ``` These are not being used in the modules they are being imported into (or in some cases they are being used, but only in a qualified way where the explicit import is unnecessary). It can happen that someone imports a name into a module in order to have it available in that namespace, to then access it from another module (e.g. `TOML.Internals` seems to work like this). I've tried to notice those situations and not remove the imports in cases where I suspect the import is playing such a role, but hopefully CI will figure out if I got it right in all cases. I only looked at stdlibs that happened to be loaded in my Julia session and whose code is in this repo, so there are probably more stale explicit imports out there. 26 February 2024, 07:36:47 UTC
34a5151 Use `@test ... skip=...` instead of `@test_skip` 26 February 2024, 01:57:48 UTC
849d551 Use `@test ... broken=...` instead of `@test_broken` 26 February 2024, 01:57:48 UTC
90d03b2 [LibGit2_jll] Update to v1.7.2 (#53467) Memo to self: * update version number in `stdlib/LibGit2_jll/Project.toml` * update test result in `stdlib/LibGit2_jll/test/runtests.jl` * update version number and commit sha in `deps/libgit2.version` * refresh checksums with `make -f contrib/refresh_checksums.mk -j libgit2` 26 February 2024, 00:37:13 UTC
669cbdc [MozillaCACerts_jll] Update to v2023-12-12 (#53466) Memo to self: * update the version in `stdlib/MozillaCACerts_jll/Project.toml` * update `MOZILLA_CACERT_VERSION` in `deps/libgit2.version` * generate new checksums with `make -f contrib/refresh_checksums.mk mozillacert` * manually delete old checksums in `deps/checksums/cacert-<OLD-VERSIONS>` 25 February 2024, 22:55:35 UTC
b8a0a39 Prevent tainting native code loading from propagating (#53457) When we use options like code coverage, we can't use the native code present in the cache file since it is not instrumented. PR #52123 introduced the capability of skipping the native code during loading, but created the issue that subsequent packages could have an explicit or implicit dependency on the native code. PR #53439 tainted the current process by setting `use_sysimage_native_code`, but this flag is propagated to subprocesses and lead to a regression in test time. Move this to a process local flag to avoid the regression. In the future we might be able to change the calling convention for cross-image calls to `invoke(ci::CodeInstance, args...)` instead of `ci.fptr(args...)` to handle native code not being present. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> 25 February 2024, 02:48:37 UTC
714c6d0 clarify keyword arg method error message (#53460) This is a nice explanatory message, so I think we should make the wording less obscure. 25 February 2024, 01:26:49 UTC
138aba7 improve `--heap-size-hint` arg handling (#48050) Previously, `--heap-size-hint` would silently ignore many flavors of "bad" input, parsing things like "3PB" as 3 bytes. This change makes it significantly less permissive, erroring unless it can parse a number (still relying on the C `sscanf` `%Lf` format specifier there) with an optional unit (case-insensitive, either with or without the trailing `b`). Also test it. 23 February 2024, 22:04:29 UTC
9839aa3 free more thread state in jl_delete_thread and GC (#52198) This prevents most memory growth in workloads that start many foreign threads. In the future, we could do even better by moving pages in the heap of an exited thread (and also maybe pooled stacks) elsewhere so they can be reused, and then also free the TLS object itself. 23 February 2024, 21:38:06 UTC
936c8a6 make debug messages for relocatable srcfiles into a separate group (#53446) These create a lot of noisy output that is typically not interesting. As an example of the output : ``` ┌ Debug: include() files from /Users/kristoffercarlsson/.julia/compiled/v1.12/Pkg/tUTdb_NNLzf.ji are not relocatable │ srcfiles = │ Set{String} with 27 elements: │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/BinaryPlatforms_compat.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/MiniProgressBars.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/registry_instance.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/Registry.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/maxsum.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Types.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/REPLMode/command_declarations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/versionweights.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Artifacts.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Operations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/API.jl" │ ⋮ └ @ Base loading.jl:3051 ┌ Debug: include() files from /Users/kristoffercarlsson/.julia/compiled/v1.12/Pkg/tUTdb_Qo7WJ.ji are not relocatable │ srcfiles = │ Set{String} with 27 elements: │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/BinaryPlatforms_compat.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/MiniProgressBars.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/registry_instance.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/Registry.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/maxsum.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Types.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/REPLMode/command_declarations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/versionweights.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Artifacts.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Operations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/API.jl" │ ⋮ └ @ Base loading.jl:3051 ┌ Debug: include() files from /Users/kristoffercarlsson/.julia/compiled/v1.12/Pkg/tUTdb_bHWms.ji are not relocatable │ srcfiles = │ Set{String} with 27 elements: │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/BinaryPlatforms_compat.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/MiniProgressBars.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/registry_instance.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/Registry.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/maxsum.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Types.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/REPLMode/command_declarations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/versionweights.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Artifacts.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Operations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/API.jl" │ ⋮ └ @ Base loading.jl:3051 ┌ Debug: include() files from /Users/kristoffercarlsson/.julia/compiled/v1.12/Pkg/tUTdb_ePY5e.ji are not relocatable │ srcfiles = │ Set{String} with 27 elements: │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/BinaryPlatforms_compat.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/MiniProgressBars.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/registry_instance.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/Registry.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/maxsum.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Types.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/REPLMode/command_declarations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/versionweights.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Artifacts.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Operations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/API.jl" │ ⋮ └ @ Base loading.jl:3051 ┌ Debug: include() files from /Users/kristoffercarlsson/.julia/compiled/v1.12/Pkg/tUTdb_s9CWW.ji are not relocatable │ srcfiles = │ Set{String} with 27 elements: │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/BinaryPlatforms_compat.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/MiniProgressBars.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/registry_instance.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Registry/Registry.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/maxsum.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Types.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/REPLMode/command_declarations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Resolve/versionweights.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Artifacts.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/Operations.jl" │ "/Users/kristoffercarlsson/JuliaPkgs/Pkg.jl/src/API.jl" │ ⋮ ``` 23 February 2024, 20:04:41 UTC
ea1a0d2 when loading code for internal purposes, load stdlib files directly(#53326) This bypasses DEPOT_PATH, LOAD_PATH, and stale checks when loading known stdlib code for known purposes from known locations, specifically to avoid the problem that I cannot fix my tools because I have used my tools to break my tools. This helps avoid the situation that the user can break important Pkg, REPL, Socket or similar features simply because they chose to remove `@stdlib` from their environment. For example, if you make an edit to REPL, then this will trigger recompilation and load the edited version: ``` $ ./julia -e 'using REPL' -iq ┌ Info: Precompiling REPL [3fa0cd96-eef1-5676-8a61-b3b8758bbffb] (cache misses: include_dependency fsize change (2), invalid header (10), mismatched flags (1)) └ @ Base loading.jl:2643 julia> ``` But this will load the version that shipped with Julia, regardless of the state of the cache or the source code (unless you delete the cache files): ``` $ ./julia -iq julia> ``` Fixes #53365 23 February 2024, 19:59:20 UTC
2ebb896 Audit sequential consistent atomic usage in the codebase (#53440) 23 February 2024, 19:40:57 UTC
6cbed31 staticdata: fix assert from partially disabled native code (#53439) This should fix the assertion failure that has been plaguing the Pkg tests, as discussed in https://github.com/JuliaLang/julia/pull/52123#issuecomment-1959965395 23 February 2024, 16:16:17 UTC
923fe2d Add update mechanism for Terminfo, and common user-alias data (#53285) Now that we take care of terminfo parsing ourselves, having a clear origin and processing method for arriving at our reference terminfo data seems somewhat important. The original form was acquired by re-purposing some pre-processed terminfo data from NCurses (I forget the exact source). I considered adding a separate ingestion/processing script, but it occurred to me that it would make sense to have the method for updating the data file be _in_ the data file, by turning it into a quine. This seems to work rather well, and so long as the NCurses source file format stays the same, updating the terminfo data is now dead simple. While working on the terminfo files, some minor refactors popped up as "probably nice to have". One of which makes the reported number of flags/numbers/strings actually accurate. Lastly, to support the ergonomic use of capability variable names instead of the short (read: uninformative) capname, we now also import the NCurses-recognised extended capabilities, and generate/specify some nice aliases for them. ----- If we separate out the terminfo parser/data into a small stdlib, the state here will be the initial state of the repo. 23 February 2024, 08:19:02 UTC
6e1d062 Add annotate! method for AnnotatedIOBuffer (#53284) The annotate! function provides a convenient way of adding annotations to an AnnotatedString/AnnotatedChar without accessing any of the implementation details of the Annotated* types. When AnnotatedIOBuffer was introduced, an appropriate annotations method was added, but annotate! was missed. To correct that, we refactor the current annotate! method for AnnotatedString to a more general helper function _annotate! that operates on the annotation vector itself, and use this new helper method to easily provide an annotate! method for AnnotatedIOBuffer. 23 February 2024, 08:16:42 UTC
fee198b Add debug variant of loader_trampolines.o (#53437) This prevents a race condition when building 'julia-cli-debug julia-cli-release' simultaneously (as we do for libjulia_jll, and also generally seems appropriate given what is done for all other source files. Motivated by https://github.com/JuliaPackaging/Yggdrasil/pull/8151 so I'll first see if it works there. Closes #45002. 23 February 2024, 07:46:36 UTC
bf965f3 Fix typos in docstrings for `in` and `∉` (#53443) 23 February 2024, 03:31:51 UTC
37c48e8 Subtype: skip slow-path in `local_∀_∃_subtype` if inputs contain no ∃ typevar. (#53429) This should be safe as ∀ vars' bounds are frozen in env. If there's no ∃ var, then the current env won't change after `local_∀_∃_subtype`. Thus, the slow path should be equivalent to the fast path if the latter returns 1. Close #53371. 22 February 2024, 23:06:06 UTC
a125bc2 free even more state for exited threads 22 February 2024, 21:01:10 UTC
848ae2c free more thread state in jl_delete_thread and GC 22 February 2024, 20:53:22 UTC
a96726b Fix synchronization issue on the GC scheduler (#53355) This aims to slightly simplify the synchronization by making `n_threads_marking` the sole memory location of relevance for it, it also removes the fast path, because being protected by the lock is quite important so that the observed gc state arrays are valid. Fixes: #53350 Fixes: #52757 Maybe fixes: #53026 Co-authored-by: Jameson Nash <vtjnash@gmail.com> 22 February 2024, 17:24:54 UTC
ccba6c9 make `code_lowered` type stable (#53416) 22 February 2024, 11:41:07 UTC
a1db8da protect against PkgId and UUID being imported and losing Base prefix in create_expr_cache (#53387) Fixes https://github.com/JuliaLang/julia/issues/53381 22 February 2024, 09:30:07 UTC
8425b0e Fix documentation: thread pool of main thread (#53388) See https://github.com/JuliaLang/julia/issues/53217#issuecomment-1930891907 21 February 2024, 20:33:54 UTC
962d833 undo breaking change of removing `parent` field from CodeInfo (#53393) This drops the unnecessary breaking change from https://github.com/JuliaLang/julia/pull/53219 by re-adding the optional `parent` field to CodeInfo. A few months ago, I had actually already put together a branch that also fixed Keno's complaints about how it was not set reliably, so I copied that code here also, so that it should get set more reliably whenever a CodeInfo is associated with a MethodInstance (either because it called `retrieve_code_info` to get IR from the Method or `uncompress_ir` to get it from the inference cache). This does not entirely fix Cthulhu's test errors, since I don't see any particular reason to re-introduce the other fields (min_world, max_world, inferred, edges, method_for_inference_limit_heuristics) that got removed or are now set incorrectly, and most errors appear to be instead related to the `Expr(:boundscheck, true/false)` change. However, they could be trivially re-added back as placeholders, if someone encounters a broken package that still needs them. 21 February 2024, 20:18:43 UTC
65f24da doc: expand the `<:` doc string (#53001) Clear up some things, state some expected properties and limitations, add cross-references, add more examples. Co-authored-by: Jameson Nash <vtjnash@gmail.com> 21 February 2024, 14:54:33 UTC
ef8fab0 update libwhich to latest commit (#53398) It supports more platforms. it is part of on-going work to port julia to OpenBSD. 21 February 2024, 14:44:57 UTC
2126b67 [Serialization] fix format bug for pre_13 code pre_13 would fail to read the max_world field, resulting in the stream getting desynchronized and corrupted. Add some type-asserts to help detect that error earlier. 21 February 2024, 14:07:00 UTC
7057763 fix cases where metadata was not being set correctly 21 February 2024, 14:07:00 UTC
f2c6334 undo breaking change of removing parent from CodeInfo The loss provided no value, as it is easy to provide this info, and has downstream users as well as being documented for use. 21 February 2024, 14:07:00 UTC
4e72944 posix compatibility: avoid grep GNU extension (#53400) the `.\+` meta-character is a GNU extension. prefer to use the POSIX equivalent `..*` to work with `grep` on wider platforms. it is part of on-going work to port julia to OpenBSD. 21 February 2024, 08:49:58 UTC
9d896dc Throw OverflowError on `copysign(typemin(Int)//1, 1)` (#53395) The default `copysign(x::Real, y::Real)` in `number.jl` works, so the incorrect method in `rational.jl` isn't needed. Here is a benchmark of the new version. ```julia using BenchmarkTools function foo!(c,a,b) c .= copysign.(a, b) nothing end N = 1000 @btime foo!(c,a,b) setup=(c=zeros(Rational{Int},N); a=rand(Int,N).//rand(Int,N); b=fill(-1,N)) ``` On master: 406.215 ns (0 allocations: 0 bytes) On this PR: 869.327 ns (0 allocations: 0 bytes) 21 February 2024, 04:07:45 UTC
3742d33 fix sysimage-native-code=yes option (#53407) Follow up to #53373, it seems this assert was broken for empty packages, causing CI issues. It is not necessary. Observed in CI here: https://github.com/JuliaLang/julia/pull/53395 https://buildkite.com/julialang/julia-master/builds/33860#018dc4dc-a603-4ad1-90cf-574540a41720 21 February 2024, 04:07:24 UTC
61fc907 fix code coverage bug in tail position and `else` (#53354) This was due to lowering keeping the same location info for the inserted `return` or `goto` statement, even though the last seen location might not have executed. Also fixes inliner handling of the sentinel `0` value for code locations. 20 February 2024, 21:42:30 UTC
d12a620 Fix NEWS.md (#53411) Closes #53409 Closes #53410 20 February 2024, 21:00:02 UTC
3351e57 jlchecksum: use sha512 if present (#53397) Add the BSD `sha512` binary for checking sha512 checksum (note that this is completely unrelated to the debian binary of the same name from `hashalot`). While here, silence `which` error message about unavailable binaries. 20 February 2024, 18:32:36 UTC
fbc766a More consistent return value for annotations, take 2 (#53333) Relands #53281 with some fixes noticed, though not the original causes of the failure. 20 February 2024, 17:21:58 UTC
5c14d33 posix compatibility: avoid using ln -v (#53396) the PR removes `-v` argument from `ln` invocation. it permits to stick to POSIX `ln` version without using extension. it is part of on-going work to port julia to OpenBSD. 20 February 2024, 17:06:23 UTC
1a90409 Add `_unsetindex!` methods for `SubArray`s and `CartesianIndex`es (#53383) With this, the following (and equivalent calls) work: ```julia julia> copyto!(view(zeros(BigInt, 2), 1:2), Vector{BigInt}(undef,2)) 2-element view(::Vector{BigInt}, 1:2) with eltype BigInt: #undef #undef julia> copyto!(view(zeros(BigInt, 2), 1:2), view(Vector{BigInt}(undef,2), 1:2)) 2-element view(::Vector{BigInt}, 1:2) with eltype BigInt: #undef #undef ``` Close https://github.com/JuliaLang/julia/issues/53098. With this, all the `_unsetindex!` branches in `copyto_unaliased!` work for `Array`-views, and this makes certain indexing operations vectorize and speed-up: ```julia julia> using BenchmarkTools julia> a = view(rand(100,100), 1:100, 1:100); b = view(similar(a), axes(a)...); julia> @btime copyto!($b, $a); 16.427 μs (0 allocations: 0 bytes) # master 2.308 μs (0 allocations: 0 bytes) # PR ``` Improves (but doesn't resolve) https://github.com/JuliaLang/julia/issues/40962 and https://github.com/JuliaLang/julia/issues/53158 ```julia julia> a = rand(40,40); b = rand(40,40); julia> @btime $a[1:end,1:end] .= $b; 5.383 μs (0 allocations: 0 bytes) # v"1.12.0-DEV.16" 3.194 μs (0 allocations: 0 bytes) # PR ``` ƒ Co-authored-by: Jameson Nash <vtjnash@gmail.com> 20 February 2024, 17:05:02 UTC
ea2b255 Add `Sys.isreadable, Sys.iswriteable`, update `ispath` (#53320) As discussed here: https://github.com/JuliaLang/julia/pull/53286#discussion_r1487039190 Readds the methods that were removed in https://github.com/JuliaLang/julia/pull/12819. 20 February 2024, 16:59:29 UTC
e9aa43d NEWS maintenance for 1.12 (#53359) 20 February 2024, 16:14:25 UTC
262dc3b move the 1.11 NEWS to HISTORY 20 February 2024, 16:12:58 UTC
1ef3693 update links in NEWS 20 February 2024, 16:11:39 UTC
c31f1ee add note on windows ACL problems 20 February 2024, 10:46:22 UTC
4f20a42 skip some tests on windows 20 February 2024, 10:46:18 UTC
02699bb fix sysimage-native-code=no option with pkgimages (#53373) Loading pkgimages would try to access the sysimage native code, which will fail. Ensure that no code tries to load if the sysimage native code is not available, as it may try to link against it. Fixes #53147 19 February 2024, 12:52:29 UTC
9c0f1dc add being able to pass a `CacheFlags()` to `isprecompiled` to verify a precompile file against a set of custom flags (#53332) 19 February 2024, 12:11:08 UTC
59102aa 🤖 [master] Bump the Pkg stdlib from 6dd0e7c9e to 76070d295 (#53357) Stdlib: Pkg URL: https://github.com/JuliaLang/Pkg.jl.git Stdlib branch: master Julia branch: master Old commit: 6dd0e7c9e New commit: 76070d295 Julia version: 1.12.0-DEV Pkg version: 1.11.0(Does not match) Bump invoked by: @IanButterworth Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/Pkg.jl/compare/6dd0e7c9e99d578aa5477e2c78c91a161ce4c357...76070d295fc4a1f27f852e05400bbc956962e084 ``` $ git log --oneline 6dd0e7c9e..76070d295 76070d295 Prevent repl crash on invalid command (#3800) d267986c2 RFC: stop testing non-ARM on mac on CI (#3794) 2571be6d1 CI: Add Apple Silicon (macOS aarch64) to the CI matrix (#3793) 3075fb78c Simplify Pkg.Registry APIs. (#3785) e6f1e0902 Explain about Manifest.toml per julia version (#3791) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 19 February 2024, 02:07:49 UTC
1c25d93 Refactor CodeInfo/CodeInstance separation and interfaces (#53219) The `CodeInfo` type is one of the oldest types in the system and has grown a bit of cruft. In particular, the `rettype`, `inferred`, `parent`, `edges`, `min_world`, `max_world` fields are not used for the original purpose of representing code, but for one or more of (in decreasing order of badness): 1. Smuggling extra results from inference into the compiler 2. Sumggling extra arguments into OpaqueClosure constructors 3. Passing extra information from generated functions to inference The first of these points in particular causes a fair bit of mixup between caching concerns and compiler concerns and results in external abstract interpreters maintainging their own dummy CodeInfos, just to comply with the interface. Originally, I just wanted to clean up that bit, but it didn't really make sense as a standalone piece, so this PR is more comprehensive. In particular, this PR: 1. Removes the `parent`, `inferred` and `rettype` fields of `CodeInfo`. They are largely vestigal and code accessing these is probably doing the wrong thing. They should instead be looking at either the CodeInstance or remembering the query that was asked of the cache in the first place. 2. Makes `edges`, `min_world` and `max_world` used for generated functions only. All other uses were replaced by appropriate queries on the CodeInstance. In particular, inference no longer sets these. In the future we may want to consider removing these also and having generated functions return some other object, but that is a topic to revisit once the broader compiler plugins landscape is more clear. 3. Makes the external type inference interface return `CodeInstance` rather than `CodeInfo`. This results in a lot of cleanup, because many functions had multiple code paths, some for CodeInstance and others for fallback to inference/CodeInfo. This is all cleaned up now. If you don't have a CodeInstance, you can ask inference for one. This CodeInstance may or may not be in the cache, but you can look at its types, compile it, etc. 4. Moves the main inference entrypoint out of the codegen library. There is still a little bit of entangelement, but this makes codegen much more of an independent system that you give a CodeInstance and it just fills in the invoke pointer for. With these changes, only the third use of the above mentioned fields remains. The overall theme here is decoupling. Over time, various parties have wanted to use the julia compiler with custom IR datastructure, backend code generators, caches, etc. This doesn't quite get us all the way there, but makes inference and codegen much more independent with a clear IR-format-independent interface (CodeInstance). --------- Co-authored-by: Valentin Churavy <v.churavy@gmail.com> 19 February 2024, 01:35:56 UTC
c0a93f8 fixed typo in performance-tips.md (#53379) I have ESL, but I'm quite certain in should be "repeatedly accessing it" and not "repeated access it" 18 February 2024, 16:01:59 UTC
4505855 fix typos in docs (#53378) fix typos in docs 18 February 2024, 15:44:13 UTC
2a9c95a Implement `circshift(::Tuple, ::Integer)` (#52438) 18 February 2024, 13:10:42 UTC
16871e7 Orthogonalize re-indexing for FastSubArrays (#53369) By separating out the re-indexing step for `FastSubArray`s and specializing this for `FastContiguousSubArray`s, we don't need to define specialized `getindex`, `setindex!` and `isassigned` for `FastContiguousSubArray`s anymore. The fallback method for `FastSubArray`s will correctly handle the special case. 18 February 2024, 08:40:51 UTC
b5221e1 Silence warnings in `test/file.jl` (#53372) Warnings were introduced in #33593. 17 February 2024, 21:09:32 UTC
2ca3753 Add `Base.wrap` to docs (#53342) I thought that's reasonable in the light that `view` was not implemented: https://github.com/JuliaLang/julia/pull/52049#issuecomment-1848711619 17 February 2024, 20:17:29 UTC
1998518 Allow AnnotatedStrings in log messages (#51802) Permitting annotated strings allows for styling information to be preserved through to log printing. 17 February 2024, 19:01:55 UTC
4990429 silence warnings in tests introduced in #33593 17 February 2024, 18:01:54 UTC
ac978cc fixup ccall signature Co-authored-by: Jameson Nash <vtjnash@gmail.com> 17 February 2024, 17:50:01 UTC
7d03316 fixup ispath edge cases 17 February 2024, 17:50:01 UTC
d3b4773 update doc strings 17 February 2024, 17:49:57 UTC
93876c9 allow external absint to hold custom data in `codeinst.inferred` (#53300) It has been possible for external abstract interpreters to keep custom data in `codeinst.inferred` (together /w overloading `inlining_policy`). After JuliaLang/julia#52233, when such external absint uses `InternalCodeCache`, this data is passed to `jl_ir_flag_inferred`, leading to segfaults in assertion builds. This commit resolves the issue by omitting `jl_ir_flag_inferred` checks when the `cache_owner` is external. Nonetheless, a better resolution might be necessary. It suggests that the current design of `code_owner` and `InternalCodeCache` for the external cache system is somewhat flawed. A conceivable approach could involve: - Adding a layer similar to `inlining_policy` in `CC.get(::WorldView{InternalCodeCache})` to enable safe redirection of custom data to the native interpreter's implementation. - Prohibiting custom data in the `inferred` field and directing such data to be kept in `analysis_results`. 17 February 2024, 17:41:58 UTC
88587ab Fix some typos in docstrings and comments (#53368) 17 February 2024, 16:10:59 UTC
b53d69a update test 16 February 2024, 21:14:24 UTC
32cccef update docs 16 February 2024, 21:14:24 UTC
6491148 Sys.exists becomes ispath 16 February 2024, 21:14:24 UTC
d856dc0 update comments Co-authored-by: Jameson Nash <vtjnash@gmail.com> 16 February 2024, 21:14:24 UTC
790a5f9 add tests 16 February 2024, 21:14:24 UTC
17ee3ec add to docs 16 February 2024, 21:14:24 UTC
fc53171 implement Sys.isreadable, Sys.iswriteable, Sys.exists 16 February 2024, 21:14:24 UTC
ddd7afb 🤖 [master] Bump the SparseArrays stdlib from c9f7293 to cb602d7 (#53361) Stdlib: SparseArrays URL: https://github.com/JuliaSparse/SparseArrays.jl.git Stdlib branch: main Julia branch: master Old commit: c9f7293 New commit: cb602d7 Julia version: 1.12.0-DEV SparseArrays version: 1.11.0(Does not match) Bump invoked by: @dkarrasch Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaSparse/SparseArrays.jl/compare/c9f7293c10e6bea775feceabd4554ab55c34e3a8...cb602d7b7cf46057ddc87d23cda2bdd168a548ac ``` $ git log --oneline c9f7293..cb602d7 cb602d7 Add generic matmatmul for inplace sparse x sparse (#486) 95575c0 Speedup for `findmin()/findmax()` on sparse arrays (#510) (#511) 4cc31f2 Fix error message in getcommon() in cholmod (#509) 1748989 Move `fkeep!` docstring to the right function (#503) 1aa6431 Update ci.yml timeout (#507) 1f88ae1 Update ci.yml - add codecov token (#504) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 16 February 2024, 16:36:53 UTC
3ed2b49 Add a lazy `logrange` function and `LogRange` type (#39071) 16 February 2024, 14:00:02 UTC
b4266e8 use a separate depot for `--pkgimages` loading test (#53344) Otherwise this will write compile files to your home directory (and you get confused in the debug output next time you run the tests due to old precompile files being there) 16 February 2024, 09:09:10 UTC
7053e4c set VERSION to 1.12.0-DEV (#53346) 16 February 2024, 08:58:28 UTC
aecd8fd Propagate inbounds in isassigned with CartesianIndex indices (#53305) Close #53302 --------- Co-authored-by: Matt Bauman <mbauman@juliahub.com> 16 February 2024, 02:40:57 UTC
4118db8 update `--pkgimages=existing` option in CLI section of manual (#53343) 16 February 2024, 02:40:26 UTC
e460d35 Support `signbit(::Dates.Period)` (#51073) 15 February 2024, 15:55:51 UTC
1b25d1e Add CartesianIndex to getindex docstring (#51567) Co-authored-by: Matt Bauman <mbauman@gmail.com> Co-authored-by: Denis Barucic <barucic.d@gmail.com> Co-authored-by: Jishnu Bhattacharya <jishnub.github@gmail.com> Co-authored-by: Max Horn <max@quendi.de> 15 February 2024, 15:25:31 UTC
c7eb766 minor refactoring on the `CustomAbstractInterpreterCaching` test case (#53329) By using `@newinterp`. Also ensures `cache_owner` for external abstract interpreter defined by `@newinterp` is unique always. 15 February 2024, 14:06:58 UTC
61c3521 More cautious legacy_color conversion in Logging (#53280) Can be seen as a follow-on from #51829, also wants https://github.com/JuliaLang/StyledStrings.jl/pull/37 to behave as expected. 15 February 2024, 10:26:34 UTC
2197b5c add Base.wrap to docs 15 February 2024, 09:04:28 UTC
7fcf9c8 Random: make statistical uniform tests fail less often (#52165) We have a very basic test to check that a distribution might be uniform: all the sampled elements should be unique, under certain conditions. But these conditions allowed the tests to fail too often. So allow one collision if the probability of such an event is too high. Fix #52156. --------- Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 15 February 2024, 02:38:27 UTC
2c0098e Cleanups for tagged code instance (#53336) Two small cleanups to #52233 - Don't use foreign code-instances for native code caching decision making - don't return a non-native codeinst for jl_method_compiled --------- Co-authored-by: Keno Fischer <keno@juliahub.com> 15 February 2024, 02:22:21 UTC
4c2633c Fix results.json generation after chunk-splitting (#53335) Should fix the problem raised in https://github.com/JuliaLang/julia/pull/53323#issuecomment-1943007134. 15 February 2024, 02:16:43 UTC
254f234 Merge duplicate entries in results.json (#53334) Should resolve #53198 🙂 15 February 2024, 02:16:03 UTC
c23be9a Update style-guide with invalid constructor example (#53328) 15 February 2024, 01:53:14 UTC
3e6ff3d add ability to specify heap size hint as a percent (#52979) also fix overflowed subtraction with size hints < 250mb --- we should pick some minimum soft heap limit; I chose 1mb here but it could be anything. 14 February 2024, 19:24:25 UTC
8eaf83c doc: clean up some example regex expressions (#26931) Remove some unnecessary parts of regex expressions used as examples in the docs. 14 February 2024, 18:14:07 UTC
a19fbac make dependencies of extensions be found in implicit environments (#53314) Alternative to https://github.com/JuliaLang/julia/pull/53293 This does kind of the same thing but it does not rely on `EXT_PRIMED` to identify extensions which I think is a better idea since we don't really want code lookup to depend on the state of Julia itself imo. Fixes https://github.com/JuliaLang/julia/issues/53264 ----------------------- Co-authored by: Mark Kittisopikul <`markkitti@fosstodon.org`> 14 February 2024, 12:47:41 UTC
52006ae Move isassigned within inbounds in copyto_unaliased (#53311) This matches the other branches where the `isassigned` and ` _unsetindex!` are within `@inbounds` blocks, and this might help with performance after https://github.com/JuliaLang/julia/pull/53305 14 February 2024, 12:13:56 UTC
09a27b3 AbsInt: add interfaces to customize cases when cached results are used (#53318) For external abstract interpreters like JET, which propagate custom data interprocedurally, it is essential to inject custom behaviors into where cached regular/constant inference results are used. Previously, this was accomplished by overloading both `abstract_call_method` and `get(::WorldView{CustomView}, ...)` (and `const_prop_call` and `cached_lookup`), that method was admittedly hacky and should probably better to be avoided. Moreover, after #52233, doing so has become infeasible when the external abstract interpreter uses `InternalCodeCache`. To address this issue, this commit provides an interface named `return_cached_result`. This allows external abstract interpreters to inject custom interprocedural data propagation during abstract interpretation even when they use `InternalCodeCache`. 14 February 2024, 10:17:39 UTC
4a13e9e Clarify the difference between collect and bracket notation for generators (#50619) As a follow-up to my question on the forum [Unclear documentation of `collect`? (similarity and difference with brackets)](https://discourse.julialang.org/t/unclear-documentation-of-collect-similarity-and-difference-with-brackets/), here is a tentative expansion of the docstring of `Base.collect` to clarify both the similarities and differences with the bracket notation for generators. I'm pretty sure it needs so edits, but here are the motivating factors behind the changes, by decreasing order of importance: 1. avoid the presence of bracket notation in the example without explanation (in the present docstring, I find it highly *implicit*) 2. simplification of examples to focus on the topic (and not on range syntax or filtering in comprehensions) 3. avoid wasting vertical space by using longer than needed iterators/generators Feedback on my formulation is welcome! --------- Co-authored-by: Max Horn <max@quendi.de> Co-authored-by: Jishnu Bhattacharya <jishnub.github@gmail.com> 14 February 2024, 10:11:53 UTC
aaed1cc allow passing command line flags to `compilecache`. (#53316) Pkg right now has to start a separate process to run precompilation for the test environment which is annoying for multiple reasons Corresponding Pkg PR: https://github.com/JuliaLang/Pkg.jl/pull/3792 14 February 2024, 06:43:02 UTC
90afb7c split results.json into 5000 result partitions (#53323) Re. https://github.com/JuliaCI/julia-buildkite/pull/338#issuecomment-1942542712 14 February 2024, 00:14:44 UTC
288912a Add Juliaup docs (#50477) 13 February 2024, 23:16:48 UTC
ba34d89 Add `conj!` for arrays of arrays (#53303) Apparently, `broadcast!(conj!, A, A)` is not allocation-free, so I spelled it out, but perhaps there's a more elegant solution. 13 February 2024, 15:33:06 UTC
d7b9ac8 change IOBuffer to use Memory internally (#53192) An Array is often still allocated on output, but this gives the compiler a chance to potentially elide that in certain cases. For measurement, it seems about 10% faster as a string builder: ``` julia> @btime repr("hello\nworld"^10); 1.096 μs (10 allocations: 640 bytes) # master 973.000 ns (9 allocations: 608 bytes) # PR 994.000 ns (8 allocations: 576 bytes) # also PR, after Revise-ing Base.wrap ``` 13 February 2024, 15:32:15 UTC
back to top