swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40

sort by:
Revision Author Date Message Commit Date
5ae3c64 Remove unnecessary check in Memory creation 07 November 2023, 17:30:04 UTC
e7345b8 Update `complex` docstring with `Missing` (#52052) The docstring of `complex(T::Type)` is a bit incorrect if `T` contains `Missing`. ```julia julia> T = Union{Int, Missing} Union{Missing, Int64} julia> complex(T) Union{Missing, Complex{Int64}} julia> typeof(complex(zero(T))) Complex{Int64} ``` 07 November 2023, 02:53:54 UTC
494da96 Add some spaces for code-readability (#52053) 07 November 2023, 02:53:35 UTC
32df25b bugfix: don't set pool_live_bytes to zero at the end of GC (#52051) 06 November 2023, 21:56:50 UTC
a3812e7 codegen: add attributes to box functions and more attrs to alloc ones (#51218) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 06 November 2023, 21:44:54 UTC
b1f954c update `//` docstring (#52050) The `//` operator supports non-real numbers, so updating the docstring would be helpful. 06 November 2023, 21:08:13 UTC
fae6b78 inlining: avoid source deserialization by using volatile inference result (#51934) Currently the inlining algorithm is allowed to use inferred source of const-prop'ed call that is always locally available (since const-prop' result isn't cached globally). For non const-prop'ed and globally cached calls, however, it undergoes a more expensive process, making a round-trip through serialized inferred source. We can improve efficiency by bypassing the serialization round-trip for newly-inferred and globally-cached frames. As these frames are never cached locally, they can be viewed as volatile. This means we can use their source destructively while inline-expanding them. The benchmark results show that this optimization achieves 2-4% allocation reduction and about 5% speed up in the real-world-ish compilation targets (`allinference`). Note that it would be more efficient to propagate `IRCode` object directly and skip inflation from `CodeInfo` to `IRCode` as experimented in #47137, but currently the round-trip through `CodeInfo`-representation is necessary because it often leads to better CFG simplification while `cfg_simplify!` being expensive (xref: #51960). 06 November 2023, 15:34:11 UTC
b723f41 interpreter: Fix stacktrace for global incorrectly assumed to be in phi block (#51990) We don't fully set up the interpreter state when evaluating the phi block, because we expect all statements to be valid in value-position (using the IR definition of value position). However, the interpreter was overapproximating the size of the phi-block, leading to the possibility that the evaluation may throw. Correct that by truncating the phi block to the actual last phi. Will be tested in existing tests after #51970. 06 November 2023, 14:38:31 UTC
d834a44 bugfix: load jl_n_threads in jl_gc_pool_live_bytes (#52034) Otherwise we may just observe `gc_n_threads = 0` (`jl_gc_collect` sets it to 0 in the very end of its body) and this function becomes a no-op. 06 November 2023, 10:56:20 UTC
6d4f409 Document that `lt` must return a `Bool` (#52031) A tiny change that does not significantly increase verbosity. We already do `::Bool` checks in sort.jl 06 November 2023, 05:53:43 UTC
d2dd076 optimize `cfg_simplify!` (#51958) > Before ```julia julia> @benchmark CC.cfg_simplify!(ir) setup=(ir = CC.copy(Main.ir)) BenchmarkTools.Trial: 10000 samples with 1 evaluation. Range (min … max): 196.333 μs … 22.691 ms ┊ GC (min … max): 0.00% … 98.80% Time (median): 208.792 μs ┊ GC (median): 0.00% Time (mean ± σ): 219.824 μs ± 390.126 μs ┊ GC (mean ± σ): 4.18% ± 2.40% ▄█▃ ▁▁▁▁▁▁▁▁▁▂▂▃▆███▄▄▅▇▇▅▄▄▄▅▄▄▄▄▃▃▃▃▃▂▂▂▂▂▂▂▂▂▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▂ 196 μs Histogram: frequency by time 235 μs < Memory estimate: 169.48 KiB, allocs estimate: 4005. ``` > After ```julia julia> @benchmark CC.cfg_simplify!(ir) setup=(ir = CC.copy(Main.ir)) BenchmarkTools.Trial: 10000 samples with 1 evaluation. Range (min … max): 49.541 μs … 31.882 ms ┊ GC (min … max): 0.00% … 99.66% Time (median): 54.042 μs ┊ GC (median): 0.00% Time (mean ± σ): 61.492 μs ± 392.747 μs ┊ GC (mean ± σ): 10.36% ± 1.72% ▄█▇▄▁ ▁▁▁▁▁▂▂▃▄▄▅██████▇▅▅▄▃▃▃▃▄▃▃▃▃▂▂▂▂▂▂▂▂▂▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▂ 49.5 μs Histogram: frequency by time 67.2 μs < Memory estimate: 72.19 KiB, allocs estimate: 808. ``` with ```julia julia> ir, = only(Base.code_ircode(sin, (Float64,)); ``` 06 November 2023, 01:44:01 UTC
65a0fd0 Properly guard UpsilonNode unboxed store (#51853) In https://github.com/JuliaLang/julia/issues/51852, we are coercing a boxed `Union{@NamedTuple{progress::String}, @NamedTuple{progress::Float64}}` to `@NamedTuple{progress::String}` via convert_julia_type. This results in a jl_cgval_t that has a Vboxed that points to a boxed `@NamedTuple{progress::Float64}` but with a `@NamedTuple{progress::String}` type tag that the up upsilonnode code then tries to unbox into the typed PhiC slot. This ends up treating the Float64 as a pointer and crashing in GC. Avoid this by adding a runtime check that the converted value is actually compatible (we already had this kind of check for the non-boxed cases) and then making the unboxing runtime-conditional on the type of the union matching the type of the phic. 05 November 2023, 17:01:11 UTC
9c42df6 carefully cache freshly-inferred edge for call-site inlining (#51975) Currently call-site inlining fails on freshly-inferred edge if its source isn't inlineable. This happens because such sources are exclusively cached globally. For successful call-site inlining, it's necessary to cache these locally also, ensuring the inliner can access them later. To this end, the type of the `cache_mode` field of `InferenceState` has been switched to `UInt8` from `Symbol`. This change allows it to encode multiple caching strategies. A new caching mode can be introduced, e.g. `VOLATILE_CACHE_MODE`, in the future. @nanosoldier `runbenchmarks("inference", vs=":master")` 05 November 2023, 12:56:50 UTC
816e31a 🤖 [master] Bump the Distributed stdlib from fdf56f4 to 41c0106 (#52018) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 05 November 2023, 02:06:11 UTC
bd917bd Fix indexing boolean ranges with empty ranges (#40764) Co-authored-by: jishnub <jishnub@users.noreply.github.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 05 November 2023, 01:18:39 UTC
9e75161 Simplify pivot selection in ScratchQuickSort (#51918) 04 November 2023, 17:53:11 UTC
a8a9ddf 🤖 [master] Bump the Pkg stdlib from 75960e509 to 2d59169bf (#52026) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 04 November 2023, 17:49:55 UTC
58c6b70 Fix bugs and some warnings triggered by clang-tidy (#52002) Most of the changes are NFC (unused variables/stores), but a couple (the change in codegen.cpp and in datatype.c) are potential bugs. It also complained that ios_readline might leak memory, and it looks like that is true While we do run clang-tidy on CI, using `bear` to make a `compile_commands.json` and running `run-clang-tidy-17.py` seems to have found some other things. (we disable dead stores in CI for some reason even though it seems to find some bugs) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 04 November 2023, 13:25:45 UTC
2896759 extend escape_raw_string to allow specifying the delimiter (#52001) Similar to how `escape_raw_string` enabled users to reverse the transform done by string literals, this enables users to reverse the transform done by cmd literals by specifying an argument of a '\`'. Refs #41041 Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com> 04 November 2023, 13:24:03 UTC
bc0d888 make pool_live_bytes metric more accurate (#52015) `pool_live_bytes` was previously lazily updated during the GC, meaning it was only accurate right after a GC. Make this metric accurate if gathered after a GC has happened. 04 November 2023, 13:23:15 UTC
c377e02 doc: AbstractChannel implementation example (#47610) fixes #47608 in the manual Co-authored-by: Jameson Nash <vtjnash@gmail.com> 04 November 2023, 13:22:29 UTC
f3ae44c changed broadcast! into bitarray algorithm (#32048) Cf https://discourse.julialang.org/t/broadcast-vs-slow-performance-allocations/24259/6 for some more discussion and https://github.com/JuliaLang/julia/issues/32047 for the question of validity in view of exceptions. Before: ``` julia> using BenchmarkTools, Random julia> y=1; xsmall=[1]; Random.seed!(42); xlarge=rand(1:4, 100_003); julia> @btime broadcast(==, $xsmall, $y); @btime broadcast(==, $xlarge, $y); @show hash(broadcast(==, xlarge, y).chunks); 860.500 ns (3 allocations: 4.31 KiB) 152.971 μs (3 allocations: 16.59 KiB) hash((broadcast(==, xlarge, y)).chunks) = 0xaa3b5a692968e128 ``` After: ``` julia> @btime broadcast(==, $xsmall, $y); @btime broadcast(==, $xlarge, $y); @show hash(broadcast(==, xlarge, y).chunks); 65.466 ns (2 allocations: 128 bytes) 42.927 μs (2 allocations: 12.41 KiB) hash((broadcast(==, xlarge, y)).chunks) = 0xaa3b5a692968e128 ``` Co-authored-by: Jameson Nash <vtjnash@gmail.com> 04 November 2023, 13:20:35 UTC
d75a00f Simplify, 16bit PDP-11 isn't going to be supported (#45763) PDP_ENDIAN isn't used. Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> 04 November 2023, 02:27:31 UTC
7df8781 Fix GC.gc docstring (#52008) GC.gc(true) will perform a full mark (note the use of [recollect in gc.c ](https://github.com/JuliaLang/julia/blob/5eaad532f961d4d1a1630b5c5b60499d2a7b9ae5/src/gc.c#L3338)if the previous sweep was not full). Fixes https://github.com/JuliaLang/julia/issues/51796. --------- Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> Co-authored-by: Kiran Pamnany <kpamnany@users.noreply.github.com> 04 November 2023, 01:54:03 UTC
4462257 lowering: Fix accidental clearing of never-undef flag in closure convert (#51991) This code dates back all the way to the original closure conversion code [1]. At the time, the 0x4 bit of the vinfo was used for tracking whether a variable is assigned in an inner function [2], which apparently needed to be cleared during closure conversion. However, shortly afterwards, the bit was removed [3] and subsequently re-used for never-undef [4]. However, the magic number in the closure conversion pass was never updated, causing the new never-undef flag to be accidentally cleared unconditionally. [1] https://github.com/JuliaLang/julia/commit/a1ee8676f00fc14bd67aaf7eb20ce46ff99f322e [2] https://github.com/JuliaLang/julia/blob/a1ee8676f00fc14bd67aaf7eb20ce46ff99f322e/src/ast.scm#L217-L218 [3] https://github.com/JuliaLang/julia/commit/7e7d74332953497cd0dba278aa243f3efc284cee [4] https://github.com/JuliaLang/julia/commit/3d8f8d14787e697fab4543e1bca1ce4519977281 Co-authored-by: Jeff Bezanson <jeff@juliahub.com> 03 November 2023, 19:09:39 UTC
3886803 Properly guard UpsilonNode unboxed store In #51852, we are coercing a boxed `Union{@NamedTuple{progress::String}, @NamedTuple{progress::Float64}}` to `@NamedTuple{progress::String}` via convert_julia_type. This results in a jl_cgval_t that has a Vboxed that points to a boxed `@NamedTuple{progress::Float64}` but with a `@NamedTuple{progress::String}` type tag that the up upsilonnode code then tries to unbox into the typed PhiC slot. This ends up treating the Float64 as a pointer and crashing in GC. Avoid this by adding a runtime check that the converted value is actually compatible (we already had this kind of check for the non-boxed cases) and then making the unboxing runtime-conditional on the type of the union matching the type of the phic. Fixes #51852 03 November 2023, 18:41:52 UTC
9c63250 doc: correct apparent inconsistency in describing redefining globals (#47083) The documentation stated that built-in constants and functions could both be redefined and _not_ be redefined, while it seemed to more nearly mean shadowed in the former case. Co-authored-by: Jameson Nash <vtjnash@gmail.com> 03 November 2023, 14:58:49 UTC
1a4a3a0 Fix task suspension in GC for JL_TIMING (#52005) The timing system does not currently support nesting task suspensions, so this `JL_TIMING_SUSPEND_TASK` added in #51489 is not permitted since it is called from within the GC suspension. This was causing Tracy to crash upon recording with "zone ended twice" 03 November 2023, 14:56:30 UTC
b3fe970 Fixup static analyzer warnings in staticdata.c (#51984) 03 November 2023, 14:55:26 UTC
09cbae8 Revise Windows implementation of splitdrive (#42204) This PR makes three improvements to the Windows `splitdrive` implementation: 1. The matched regex is split into pieces and annotated. 2. Forward and backward slashes are considered equivalent. This fixes #38492. 3. The patterns in the regex are reordered so that long UNC paths and long drive letters are once more recognized. This has been broken since #19695 (Julia 0.5). Co-authored-by: Jameson Nash <vtjnash@gmail.com> 03 November 2023, 14:53:33 UTC
746cfdf abstractdict: Create separate error type wrong-key insertions (#41778) Previously we were trying to do string formatting in Core.Compiler, where this functionality is unavailable. Create a separate type that can be thrown regardless of whether string processing is available. 03 November 2023, 14:46:22 UTC
e98aaba Mention export from InteractiveUtils in docs (#36971) I recently had a frustrating experience where seemingly valid code that worked in the REPL did not work in my own packages. Specifically, it is not mentioned in the documentation that `subtypes` was being automatically exported from `InteractiveUtils` when using the REPL. Thanks to @oheil for pointing this out (see exchange [here](https://discourse.julialang.org/t/error-with-base-generic-function-calls/44174)). Although in my case I figured out that `subtypes` wasn't exactly what I needed, I still feel the documentation should be explicit about what functions are in Base and what functions aren't to avoid the kind of off-putting experience I had. Co-authored-by: Dilum Aluthge <dilum@aluthge.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> 03 November 2023, 14:45:32 UTC
f2a5fb9 tweak outdated test cases (#51994) Now those concretized calls are DCE-ed even though they are inlineable. So we don't need to call e.g. `cfg_simplify!`. 03 November 2023, 04:01:17 UTC
5eaad53 Remove `ArgumentError()` in `parse_cache_header()` when `@depot` cannot be resolved (#51989) In the original implementation of relocatable package cache files, `parse_cache_header()` was made responsible for resolving `@depot/`-relative paths, and it threw an `ArgumentError()` if it could not find one. However, this could happen for a few reasons: 1. The `JULIA_DEPOT_PATH` could be set incorrectly, so the appropriate source text files could not be found in an appropriate `packages/` directory. 2. The package could have been upgraded, leaving a cache file for an older version on-disk, but no matching source files. For a concrete example of (2), see the following `bash` script: #!/bin/bash set -euo pipefail TEMP_PATH=$(mktemp -d) JULIA=${JULIA:-julia} echo JULIA: ${JULIA} export JULIA_DEPOT_PATH="${TEMP_PATH}" trap 'rm -rf ${TEMP_PATH}' EXIT # Create a `Foo.jl` that has an `internal.jl` within it FOO_DIR=${JULIA_DEPOT_PATH}/dev/Foo mkdir -p ${FOO_DIR}/src cat >${FOO_DIR}/Project.toml <<EOF name = "Foo" uuid = "00000000-0000-0000-0000-000000000001" version = "1.0.0" EOF cat >${FOO_DIR}/src/Foo.jl <<EOF module Foo include("internal.jl") end EOF cat >${FOO_DIR}/src/internal.jl <<EOF # Nothing to see here, folks EOF ${JULIA} -e "import Pkg; Pkg.develop(\"Foo\"); Pkg.precompile()" # Change `Foo` to no longer depend on `internal.jl`; this should invalidate its cache files cat >${FOO_DIR}/src/Foo.jl <<EOF module Foo end EOF rm -f ${FOO_DIR}/src/internal.jl # This should print `SUCCESS!`, not `FAILURE!` ${JULIA} -e 'using Foo; println("SUCCESS!")' || echo "FAILURE!" This pull request removes the `ArgumentError()`, as it seems reasonable to require `parse_cache_header()` to not throw errors in cases like these. We instead rely upon a higher level validation to reject a cachefile whose depot cannot be found, which should happen when `stale_cachefile()` later checks to ensure that all includes are found on-disk, (which will be false, as these paths start with `@depot/`, an unlikely path prefix to exist). 02 November 2023, 21:35:20 UTC
2a84214 Revert "add more methods and tests for reductions over empty arrays" (#52003) Reverts JuliaLang/julia#29919 CI was older than I realized on this, so this needed some updates to tests and docstrings 02 November 2023, 20:10:57 UTC
9bc6994 [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 02 November 2023, 20:07:01 UTC
09617ac add more defaults for reductions over empty arrays (#29919) From discussion in #28535 02 November 2023, 19:31:46 UTC
dabb93a Document the fields of `VersionNumber` (#50179) `VersionNumber`'s fields are currently not documented, and therefore, private by default. However, if people want to use `VersionNumber` for anything other than the documented comparison operations, users will have to access the fields. 02 November 2023, 14:06:48 UTC
55e5ee3 Clarify conversion-and-promotion.md example code for `convert` (#50274) Closes: https://github.com/JuliaLang/julia/issues/50273 Co-authored-by: Jameson Nash <vtjnash@gmail.com> 02 November 2023, 14:00:23 UTC
924aac9 macroexpand: handle const/atomic struct fields correctly (#51980) Fixes #51899 02 November 2023, 13:53:26 UTC
54996ca add function `Sys.username()` (#51897) The commit introduces a new function to Base which returns the current user's username retrieved from the password database. Resolves #48302 Closes #48928 Co-authored-by: Steven G. Johnson <stevenj@mit.edu> 02 November 2023, 13:48:16 UTC
ad86772 test: eachindex for arbitrary number of arguments (#51941) added test cases for `eachindex` to cover arbitrary number of arguments ![image](https://github.com/JuliaLang/julia/assets/49565677/fa39cb8c-2523-40c0-90f3-e3f90f54397e) 02 November 2023, 09:34:08 UTC
7c74274 fix `pointer` for `Memory` by deleting incorrect method (#51963) The fallback method for `AbstractArray` was correct and the custom one for `Memory` wasn't. 02 November 2023, 09:32:23 UTC
8b97aa1 Improve style in Base/experimental.jl [NFC] (#51965) Make the checks line up with the error messages. 02 November 2023, 08:47:14 UTC
2994463 Stop test printing LLVM IR to stdout (#51974) Fixes https://github.com/JuliaLang/julia/issues/51971 02 November 2023, 08:46:12 UTC
58a2a45 make NEWS.md link style more consistent (#51978) Minor PR to make the PR link punctuation a bit more consistent in the NEWS file, and adds a couple of missing PR links. 02 November 2023, 08:45:48 UTC
06de99e Make Scope immutable (#51976) Addresses keno review comment in https://github.com/JuliaLang/julia/pull/50958#discussion_r1378513975 02 November 2023, 08:44:49 UTC
013311c compiler: use `_uncompressed_ir` instead of direct `ccall` (#51972) 02 November 2023, 00:32:29 UTC
c019132 Update documentation for min and max with missing values (#48906) With respect to https://github.com/JuliaLang/julia/pull/25403 , `min` and `max` methods are supposed to return "missing" whenever we pass "missing" value as one of the arguments, this PR updates the inline documentation to reflect the same. 01 November 2023, 20:20:40 UTC
405ce11 further fix to the new promoting method for AbstractDateTime subtraction (#51967) 01 November 2023, 17:18:08 UTC
e2a6424 clean up identifiers defined in `Main` (#51878) A re-do of #51411 that should be non-breaking. - Loaded packages do not need explicit bindings - The name `MainInclude` does not need to be visible - Put Main's eval and include in the module like all other modules and hide them explicitly instead 01 November 2023, 17:16:12 UTC
5185487 When ASAN is enabled, disable DebugObjectManagerPlugin on JITLink+ELF (#51917) 01 November 2023, 16:16:33 UTC
5db9dbd docs: add some clarifications to methods.md (#51938) Closes #40650 Rebase of https://github.com/JuliaLang/julia/pull/40667 with edits, since upstream deleted their repo Co-authored-by: Patrick Toche <contact@patricktoche.com> 01 November 2023, 14:42:48 UTC
2adf54a [devdocs] Improve documentation about building external forks of LLVM (#50207) Suggested by @vchuravy. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> 01 November 2023, 14:28:55 UTC
a8a3f92 Clarify documentation of anonymous functions (#48119) The example used previously is a bit confusing: the do-block syntax is introduced only later on the page, and the anonymous function simply calls `time` so it's actually useless (`time` could be passed to `get` as-is). 01 November 2023, 14:19:58 UTC
0bde9a2 Implement copy for SecretBuffer (#27827) As noted in https://github.com/JuliaLang/julia/pull/27802#issuecomment-400386359 Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com> 01 November 2023, 14:15:04 UTC
3f8396c Docs: io-network: list `read(::String)` and `write(::String,::Any)` before `open` (#49837) Point 3 of https://github.com/JuliaLang/julia/issues/43428 Depends on https://github.com/JuliaLang/julia/pull/49835 and https://github.com/JuliaLang/julia/pull/49836 to be useful :) --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> 01 November 2023, 07:44:53 UTC
aaa092c Implement more missing BFloat16 intrinsics (#51935) Extends #51790; I forgot the conversion intrinsics defined in `APInt-C`. To differentiate between Float16/BFloat16, I converted a couple of intrinsics to take a `jl_datatype_t` argument instead an unsigned number of bits. 01 November 2023, 07:27:37 UTC
b093c2d `AbstractInterpreter`: define `add_invalidation_callback!` utility (#51769) It seems we're reaching a consensus on how the external `AbstractInterpreter` utilizes user invalidation callbacks. Let's establish a utility within `Core.Compiler` for this purpose, which cannibalizes the pattern, so that external packages can easily access and use it. Furthermore, with this commit, gf.c has been adjusted so that each invocation of `invalidate_method_instance` invokes user callbacks. This adjustment eliminates the need for user callbacks to traverse (unstable and internal) backedge lists by themselves. 01 November 2023, 07:19:37 UTC
b8f74db inlining: use `SemiConcreteResult` for `invoke` calls (#51933) 01 November 2023, 06:13:55 UTC
b6e178a `AbstractInterpreter`: stash inferred `CodeInfo` even when optimization doesn't happen (#51952) After #51888, `(result::InferenceResult).src` is set to `nothing` in two situations: 1. When the inference result is limited due to recursion. 2. When optimization is unnecessary as the result is already precise. This commit allows external `AbstractInterpreter` to differentiate between these two situations by retaining the inferred source code in `result.src` for the latter case. This is particularly crucial for the functionality of JET's analysis. 01 November 2023, 05:09:27 UTC
072896d Don't use 0x80 as a magic constant Introduce UNION_BOX_MARKER, to make it easier to grep for all the places where this is being looked at and distinguish them from other uses of 0x80 as a constant. 01 November 2023, 02:58:07 UTC
3a6c418 update doc references (#48162) 01 November 2023, 02:28:12 UTC
2f63cc9 Fix error when dump() a partial NamedTuple (#51947) 01 November 2023, 00:58:02 UTC
2b73a1d clarify assert doc entry (#45998) Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 31 October 2023, 20:27:20 UTC
301f262 Add a doctest for timedwait (#49686) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 31 October 2023, 20:26:14 UTC
f631597 minor cleanups to MemoryRef (#51937) 31 October 2023, 17:10:55 UTC
69a4ecb IO: fix API safety issue for Ptr (#51949) Align the API for Ref with the new definition for AbstractArray (#49769) and ensure this API does not accept raw Ptr as input. Refs #42593 31 October 2023, 17:09:38 UTC
5ae88f5 improve `Union` docs as discused in discourse (#45109) Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 31 October 2023, 13:02:17 UTC
2253cdf Some extended documentation for `Core.Compiler.return_type` usage as `promote_op` (#44340) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 31 October 2023, 13:01:28 UTC
0887a33 Docs: file: list `read` and `write` again (#49838) Point 5 of https://github.com/JuliaLang/julia/issues/43428 Motivation: I feel like the most fundamental *file* operations in Julia are `read(filename::String)` and `write(filename::String, content)`, so it makes sense to repeat their documentation in the **Filesystem** documentation. I also see these methods as fundamental to teach beginners. Like https://github.com/JuliaLang/julia/pull/49837, the goal is to only show short docstrings for these methods, not the whole `IOStream` functionality. So it depends on https://github.com/JuliaLang/julia/pull/49835 and https://github.com/JuliaLang/julia/pull/49836 to be useful :) 31 October 2023, 11:53:10 UTC
5b34cdf remove chmodding the pkgimages (#51885) This shouldn't be needed because `ldd` should do it itself. 31 October 2023, 11:19:12 UTC
9075731 fixup to #51743, timetype subtraction (#51881) Restores the method whose removal was probably causing problems. 31 October 2023, 11:18:35 UTC
6084a62 Adds information to redirect_std* inline docs (#49563) Partially addresses issue #35959 Adds examples for redirecting std to a file to the markdown file --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Steven G. Johnson <stevenj@mit.edu> 31 October 2023, 08:57:23 UTC
b9dcb94 doc: rename `sparam_syms` to `slot_syms` (#45876) `sparam_syms` was removed in https://github.com/JuliaLang/julia/pull/31015. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> 31 October 2023, 08:55:35 UTC
4ce1c81 relocation: a fix for `@depot` tag inserting and extra tests (#51920) #51892 caused depots to be skipped when inserting the `@depot` tags, because it assumed that `isdirpath(path) == false` means that `path` is not a directory. This is fixed here while preserving the path normalization introduced there. Furthermore, this adds tests as requested here https://github.com/JuliaLang/julia/pull/51892#issuecomment-1781754004 31 October 2023, 08:53:50 UTC
aeb4e7d Comment on `include` pattern in Julia vs. Python (#41227) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 31 October 2023, 03:26:40 UTC
3f77e1e delay instantiation of `const_results` (#51925) Makes `abstract_call_gf_by_type` more memory efficient. 31 October 2023, 01:32:28 UTC
a9509be updated Doc string in Base.Generator (#35261) 31 October 2023, 00:46:24 UTC
85ed34c Document the kind of indices returned by `findmin`/`findmax`/`argmin`/`argmax` (#46705) This is the sentence used for `find*` functions, introduced by #25577. Also change "the domain of `f`" to "`domain`" as the domain of `f` can be a superset of the passed `domain`. (Spotted at https://github.com/JuliaData/DataFrames.jl/issues/3139.) --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> 31 October 2023, 00:14:05 UTC
96147bb manual/workflow-tips: simplify the basic workflow (and explain the why) (#48319) I came upon this piece of documentation again after seeing this post: https://discourse.julialang.org/t/how-to-clear-variables-and-or-whole-work-space/10149/21?u=tfiers ("How to clear variables and/or whole work space?" → "Work in a module") This small addendum to the Worfklow Tips section of the manual answers "but why should I bother making that module"; basically putting the gist of that discourse thread in the documentation, where more people might see it. 30 October 2023, 18:40:24 UTC
55b0729 inference: don't put globally-cached results into inference local cache (#51888) Now, we fill the inference's local cache exclusively with locally-cached results. Given that sources of globally-cached results will be populated from the global cache when needed (for inlining), there's no need for them to waste memory in the local cache. @nanosoldier `runbenchmarks("inference", vs=":master")` 30 October 2023, 08:14:58 UTC
af0bd56 minor cosmetic refactor on base/compiler/optimize.jl (#51924) 30 October 2023, 08:14:20 UTC
ca5b4c5 Small fix to `randn`/`randexp` (#51890) The pattern `log(rand(rng))` has the consequence of permitting `log(0.0) == -Inf` to be computed, since the domain of `rand` is $[0,1)$. It looks like this mishap wouldn't actually escape `randn` (due to exit conditionals), but it appears that it can escape `randexp`, resulting in a return value of `+Inf`. While this is a literally admissible return value, it is grossly over-represented. On the current version, it occurs with probability roughly $10^{-18}$. For reference, values $>41$ should occur about that often. The correct return frequency for values that exceed `floatmax(Float64)` (i.e., `+Inf`) should be roughly $10^{-10^{308}}$. Replacing `log(rand(rng))` with `log1p(-rand(rng))` is "statistically identical" (modulo the effects of finite representations) except that it equivalently shifts the support of inputs to `log` from $[0,1)$ to the better-behaved $(0,1]$. This will change the stream of values produced by `randn`/`randexp`. Additionally, the largest value returned by `randexp` will change from $+\infty$ to roughly $44$. Somewhat larger values will be possible if we extend the dynamic range of `rand` as discussed [on Discourse](https://discourse.julialang.org/t/output-distribution-of-rand-float32-and-rand-float64-thread-2/105184). 30 October 2023, 02:56:35 UTC
855cd56 Clarify docstring for `exponent`, again (#47085) In #47035 we realised that `issubnormal` used the word "exponent" quite loosely, and this is also true of `exponent`'s docstring. So this tries to fix it... * Saying "this corresponds to the exponent of `x`." seems a bit circular, but I think it wants to say that in such cases it corresponds to the exponent bits? * Saying "normalized floating-point number" does not mean like `normalize(1.0)`... I think it means not-subnormal. Maybe it's better to say that? (Although I don't love this sentence.) * From "largest integer y such that `2^y ≤ abs(x)`" it sounds like `exponent(8+im)` should work, but it does not. So I marked it `::Real`. * I think it is nice to mention that 0, Inf, Nan give an error. As they must, for `2^y ≤ abs(x)`... but `0.0` is not subnormal, so the claim about reading the bit pattern isn't quite correct without excluding these cases. * Better examples, progressively adding detail, not too repetitive. * See also related functions. Recently edited in #46815. And I forgot, but "See also" and errors also overlap with this (approved) PR: https://github.com/JuliaLang/julia/pull/45221/files#diff-faa5f0835bd28c4a33e6603e208a9236034568a4abc7adec4995afb64550d0bdR940 . That should go first. 29 October 2023, 15:45:29 UTC
d5c30d8 Fix -1 for BigInt factorial - Update gmp.jl (#51497) Fixes #51488 --------- Co-authored-by: Rafael Fourquet <fourquet.rafael@gmail.com> 29 October 2023, 02:25:00 UTC
b5b05c8 remove jl_gc_wb_buf (#51919) Stale now that the Memory PR got merged. 29 October 2023, 00:59:04 UTC
81abb6d Adapt to LLVM 16 (#51591) Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com> Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 28 October 2023, 21:25:17 UTC
18f8070 add 1-arg methods for set comparisons (#50862) 28 October 2023, 21:14:32 UTC
ab1eec5 libjulia: add jl_unwrap_unionall to exported_funcs (#51916) This was recently refactored in #51319 and while trying to adapt `libcxxwrap-julia` to the new changes I got: ``` ld: CMakeFiles/test_module.dir/test_module.cpp.o: in function `jl_datatype_layout': test_module.cpp:(.text+0x2c2): undefined reference to `jl_unwrap_unionall' ``` The function `jl_datatype_layout` is `STATIC_INLINE` in `julia.h`: https://github.com/JuliaLang/julia/blob/98542d748540e2390d6222282749c7dd534544da/src/julia.h#L1304-L1312 `jl_unwrap_unionall` is marked `JL_DLLEXPORT` here but it doesn't appear in the exports of `libjulia`. 28 October 2023, 19:43:27 UTC
ba98467 [BLAS] Add the gemmt routine (#51701) We can finally add this routine, supported by the last version of OpenBLAS (3.24) and Intel MKL. 28 October 2023, 17:26:49 UTC
57c7c00 Redo #32205 - PosDef exception is too specific. (#51864) Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 28 October 2023, 17:25:05 UTC
f7b8e6b Move the banner function from versions.jl to REPL (#51867) 28 October 2023, 17:24:54 UTC
98542d7 Base.Cartesian: add `@ncallkw` and allow `else` branch inside `if` (#51501) 28 October 2023, 11:55:51 UTC
4975c02 Improve codegen, accuracy of inlining cost for unknown intrinsics (#44349) 28 October 2023, 11:54:39 UTC
f573c4a More detail on locks (#51844) 28 October 2023, 11:53:19 UTC
9c581cd mkpidlock: close update loop in error path (#51902) 28 October 2023, 11:49:59 UTC
0a0bd00 Fix pointer calculation for `SubArray` with none-dense parent. (#51900) And code clean for `first_index` and `compute_linindex`: 1. call `compute_linindex` directly in `first_index(::SlowSubArray)`. (There's no need to calculate stride/offset.) 2. remove the uneeded `compute_linindex` dispatch (`first(x::ScalarIndex) == x`) 28 October 2023, 01:13:06 UTC
f106bd9 Respect JULIA_CPU_TARGET set in Make.inc when building pkgimgs (#51886) Co-authored-by: Elliot Saba <staticfloat@gmail.com> 28 October 2023, 00:00:53 UTC
93dbe36 Comment out DebugObjectManagerPlugin (#51859) Prem said this might fix #51794. 27 October 2023, 20:58:28 UTC
back to top