https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
e6a9aa2 WIP: Eager heap promotion where possible 21 April 2022, 02:03:07 UTC
68adc00 Enable opaque pointers for LLVM master (#45012) Essentially a rebase of #44334 to current master. I would like to work on some IR canonicalization improvements, but it doesn't make much sense to that without opaque pointers, since canonical forms will change. This bootstraps fine on LLVM master, though there are test failures both with and without this change. I think we'll just have to address those as part of the regular upgrade cycle as usual (though we should probably do LLVM 14 first to catch any 13->14 regressions). 21 April 2022, 02:02:49 UTC
ebbf76e Update basedocs.jl (#45040) 21 April 2022, 01:16:01 UTC
ab26191 Typo in doc of `hypot()` (#45042) Should be stylized as arXiv. 21 April 2022, 00:38:13 UTC
ac51add gc-ext: only sweep unmarked objects (#45035) This prior conditional was a fixed constant branch, so this seems more like the intent. 20 April 2022, 15:51:32 UTC
c874cdb [FileWatching.Pidfile] on Windows, we should rename a file before we delete it (#44984) Convert several occurrences of `rm` to `tryrmopenfile` 20 April 2022, 14:19:37 UTC
d90316e example: fix call to `jl_apply_array_type` in multidimensional array example for embedding (#44801) Without an explicit cast I get an error: ``` fast_cholesky.cpp:9:50: error: cannot convert ‘jl_datatype_t*’ {aka ‘_jl_datatype_t*’} to ‘jl_value_t*’ {aka ‘_jl_value_t*’} 9 | jl_value_t *array_type = jl_apply_array_type(jl_float64_type, 2); | ^~~~~~~~~~~~~~~ | | | jl_datatype_t* {aka _jl_datatype_t*} In file included from fast_cholesky.cpp:1: /usr/include/julia/julia.h:1533:58: note: initializing argument 1 of ‘jl_value_t* jl_apply_array_type(jl_value_t*, size_t)’ 1533 | JL_DLLEXPORT jl_value_t *jl_apply_array_type(jl_value_t *type, size_t dim); | ~~~~~~~~~~~~^~~~ ``` 20 April 2022, 14:12:40 UTC
7074f04 Report any recompilation in time macro (#45015) `@time` now shows if any of the compilation time was spent recompiling invalidated methods. The new percentage is % of the compilation time, not the total execution time. 20 April 2022, 13:01:53 UTC
406c526 inference: relax backedge optimization condition (#45030) Follows up #45017. We can relax the condition in `add_call_backedges!` for backedge optimization by ignoring the `nonoverlayed` property when the `AbstractInterpreter` doesn't use overlayed method table at all, since the property will never be tainted anyway even if we add a new method later. 20 April 2022, 05:22:47 UTC
ab11173 Protect shared JIT variables from being modified unsafely (#44914) 19 April 2022, 22:32:50 UTC
b5871eb Bump Documenter to get the new pdf improvements for the manual. (#44840) 19 April 2022, 13:27:14 UTC
d29d2d6 Update Example header in admonition to render PDF better, see #44866. (#45026) 19 April 2022, 08:40:13 UTC
3fc6eac Fix use-after-free bugs in debuginfo (#45016) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 19 April 2022, 07:02:41 UTC
f555729 remove some redundant `show` methods (#45022) 19 April 2022, 03:04:01 UTC
2636722 inference: rename refactoring for constant analysis (#44888) The naming `ConstResult` is a bit ambiguous, given that we have several different concepts of "constant" inference: - constant prop': `InferenceResult` - concrete evaluation: `ConstResult` - WIP: semi-concrete evaluation: `SemiConcreteResult` - (and more in the future...?) (better to be `ConcreteResult` instead) Now I'd like to rename `ConstResult` to `ConcreteResult` and also setup a specific data type `ConstPropResult` representing const-prop'ed result: - constant prop': `ConstPropResult` - concrete evaluation: `ConcreteResult` - WIP: semi-concrete evaluation: `SemiConcreteResult` - (and more in the future...?) And now `ConstResult` is a general type alias that is equivalent to `Union{ConstPropResult,ConcreteResult,...}`. 19 April 2022, 02:22:54 UTC
4c72343 inference: don't forget to add backedge for effect-free frame (#45017) Now our abstract interpretation system caches two separate lattice properties return type and call effects, and the previous optimization to avoid adding backedge for a frame whose return type is `Any` turns out to be insufficient -- now we also need to make sure that the inferred effects don't provide any useful IPO information. Example: ```julia julia> const CONST_DICT = let d = Dict() for c in 'A':'z' push!(d, c => Int(c)) end d end; julia> Base.@assume_effects :total_may_throw getcharid(c) = CONST_DICT[c]; julia> @noinline callf(f, args...) = f(args...); julia> function entry_to_be_invalidated(c) return callf(getcharid, c) end; julia> @test Base.infer_effects((Char,)) do x entry_to_be_invalidated(x) end |> Core.Compiler.is_concrete_eval_eligible Test Passed julia> @test fully_eliminated(; retval=97) do entry_to_be_invalidated('a') end Test Passed julia> getcharid(c) = CONST_DICT[c]; # now this is not eligible for concrete evaluation julia> @test Base.infer_effects((Char,)) do x entry_to_be_invalidated(x) end |> !Core.Compiler.is_concrete_eval_eligible Test Failed at REPL[10]:1 Expression: Base.infer_effects((Char,)) do x entry_to_be_invalidated(x) end |> !(Core.Compiler.is_concrete_eval_eligible) ERROR: There was an error during testing julia> @test !fully_eliminated() do entry_to_be_invalidated('a') end Test Failed at REPL[11]:1 Expression: !(fully_eliminated() do entry_to_be_invalidated('a') end) ERROR: There was an error during testing ``` 19 April 2022, 01:54:36 UTC
b15dab9 eliminate uninferrable `typeof(x) === T` conditions (#45018) Most of these conditions were introduced in #25828 and #30480 for some performance reasons atm, but now they seem just unnecessary or even harmful in terms of inferrability. There doesn't seem to be any performance difference in the benchmark used at #25828: ```julia using BenchmarkTools x = rand(Int, 100_000); y = convert(Vector{Union{Int,Missing}}, x); z = copy(y); z[2] = missing; ``` > master: ```julia julia> @btime map(identity, x); 57.814 μs (3 allocations: 781.31 KiB) julia> @btime map(identity, y); 94.040 μs (3 allocations: 781.31 KiB) julia> @btime map(identity, z); 127.554 μs (5 allocations: 1.62 MiB) julia> @btime broadcast(x->x, x); 59.248 μs (2 allocations: 781.30 KiB) julia> @btime broadcast(x->x, y); 74.693 μs (2 allocations: 781.30 KiB) julia> @btime broadcast(x->x, z); 126.262 μs (4 allocations: 1.62 MiB) ``` > this commit: ```julia julia> @btime map(identity, x); 58.668 μs (3 allocations: 781.31 KiB) julia> @btime map(identity, y); 94.013 μs (3 allocations: 781.31 KiB) julia> @btime map(identity, z); 126.600 μs (5 allocations: 1.62 MiB) julia> @btime broadcast(x->x, x); 57.531 μs (2 allocations: 781.30 KiB) julia> @btime broadcast(x->x, y); 69.561 μs (2 allocations: 781.30 KiB) julia> @btime broadcast(x->x, z); 125.578 μs (4 allocations: 1.62 MiB) ``` 19 April 2022, 01:49:21 UTC
6f8662b compatibility fix for ORC JIT in llvm 14 (#45007) 18 April 2022, 15:08:42 UTC
1600cb9 export `LazyString` documentation in the manual (#44988) 18 April 2022, 02:59:46 UTC
ce7c858 Fix attributes for `donotdelete` intrinsic (#45010) The change in #44793 changed the signature of the donotdelete intrinsic, but didn't change the corresponding attributes, leaving a `nonnull` attribute on a `void` return, which fails the verifier. 17 April 2022, 22:18:40 UTC
6106e6c Move DEBUG_TYPE below LLVM headers (#44997) Some LLVM headers set DEBUG_TYPE internally (and undef it later), causing build failures with the newly added STATISTICs. Fix that by moving DEBUG_TYPE below the headers. [1] https://github.com/llvm/llvm-project/blob/09c2b7c35af8c4bad39f03e9f60df8bd07323028/llvm/include/llvm/Support/GenericDomTreeConstruction.h#L49 16 April 2022, 06:31:40 UTC
d28a0dd test cleanup for #44444 (#44993) This warning was un-ironically introduced by "Fix or suppress some noisy tests". ``` ┌ Error: mktemp cleanup │ exception = │ IOError: unlink("C:\\Windows\\TEMP\\jl_A49B.tmp"): resource busy or locked (EBUSY) │ Stacktrace: │ [1] uv_error │ @ .\libuv.jl:100 [inlined] │ [2] unlink(p::String) │ @ Base.Filesystem .\file.jl:968 │ [3] rm(path::String; force::Bool, recursive::Bool) │ @ Base.Filesystem .\file.jl:283 │ [4] rm │ @ .\file.jl:274 [inlined] │ [5] mktemp(fn::Main.Test49Main_misc.var"#110#113", parent::String) │ @ Base.Filesystem .\file.jl:736 │ [6] mktemp(fn::Function) │ @ Base.Filesystem .\file.jl:730 │ [7] macro expansion │ @ C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\test\misc.jl:1065 [inlined] │ [8] macro expansion │ @ C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\stdlib\v1.9\Test\src\Test.jl:1360 [inlined] │ [9] top-level scope │ @ C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\test\misc.jl:1060 │ [10] include │ @ .\Base.jl:427 [inlined] │ [11] macro expansion │ @ C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\test\testdefs.jl:24 [inlined] │ [12] macro expansion │ @ C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\stdlib\v1.9\Test\src\Test.jl:1360 [inlined] │ [13] macro expansion │ @ C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\test\testdefs.jl:23 [inlined] │ [14] macro expansion │ @ .\timing.jl:440 [inlined] │ [15] runtests(name::String, path::String, isolate::Bool; seed::UInt128) │ @ Main C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\test\testdefs.jl:21 │ [16] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, UInt128, Tuple{Symbol}, NamedTuple{(:seed,), Tuple{UInt128}}}) │ @ Base .\essentials.jl:798 │ [17] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})() │ @ Distributed C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\stdlib\v1.9\Distributed\src\process_messages.jl:285 │ [18] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool) │ @ Distributed C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\stdlib\v1.9\Distributed\src\process_messages.jl:70 │ [19] macro expansion │ @ C:\buildbot\worker-tabularasa\tester_win64\build\share\julia\stdlib\v1.9\Distributed\src\process_messages.jl:285 [inlined] │ [20] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})() │ @ Distributed .\task.jl:490 └ @ Base.Filesystem file.jl:738 ``` 16 April 2022, 06:27:50 UTC
874aebf improve timedwait implementation (#44957) This implementation was pointlessly convoluted. Deconvolute it. 15 April 2022, 21:22:14 UTC
7529dbd syntax: expressions used in value position had the wrong line number (#44982) For example, the `%2 = f()` should have been shifted up a line in this output example, in the same block as `x`: ``` julia> Meta.lower(Main, Expr(:block, Expr(:line, 1, :a), Expr(:block, Expr(:line, 2, :b), Expr(:call, :g, Expr(:block, Expr(:line, 3, :c), :x, Expr(:call, :f)), ), ))) :($(Expr(:thunk, CodeInfo( @ a:1 within `top-level scope` ┌ @ b:2 within `macro expansion` @ c:3 1 ─│ x │ │ @ b:2 within `macro expansion` │ │ %2 = f() │ │ %3 = g(%2) │ └ └── return %3 )))) ``` 15 April 2022, 16:18:49 UTC
401d578 more friendly/useful error for stack overflow in type inference (#44971) fixes #44852 15 April 2022, 15:43:52 UTC
487d0e6 🤖 Bump the Downloads stdlib from a7a0346 to 26f009d (#44986) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 15 April 2022, 12:11:00 UTC
20620cc 🤖 Bump the Tar stdlib from 0f8a73d to 5606269 (#44815) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 15 April 2022, 12:10:21 UTC
054633c 🤖 Bump the NetworkOptions stdlib from 01e6ec1 to 4d3df64 (#44813) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 15 April 2022, 05:59:10 UTC
4f72254 🤖 Bump the Pkg stdlib from b5d23482 to 76764311 (#44985) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 15 April 2022, 05:47:34 UTC
c589e0d Fix embedding with MSVC (#44976) 14 April 2022, 22:47:21 UTC
641be31 Make math-mode=fast no op, it's too dangerous (#41638) * Make math-mode=fast no op, it's too dangerous Co-authored-by: Oscar Smith <oscardssmith@gmail.com> 14 April 2022, 20:39:34 UTC
72cd1c4 Reland "IO: tie lifetime of handle field to container (#43218)" (#44883) Reverts a400a24a5d9e6609740814e4092538feb499ce60 (#43924). Fix lifetime issues with the original attempt. We do not need to prevent it from being GC-finalized: only to make sure it does not conflict with a concurrent uv_close callback. 14 April 2022, 20:33:14 UTC
57b74ba fix lowering of closure supertypes (#44974) The supertype should be set earlier, to avoid assigning a global to a type object that's not fully initialized. 14 April 2022, 20:31:43 UTC
858fa05 add tuple type printing with `Vararg`, and port to static_show (#44970) 14 April 2022, 20:30:30 UTC
30e5355 Remove `ptls` load inside JIT (#44967) 14 April 2022, 20:30:07 UTC
f25dfac Revert "Makefile wildcard globs only work at end (#34879)" (#44959) This reverts commit 70406c99561f22c008c3b3d624cade965b39e1e2. Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 14 April 2022, 20:29:35 UTC
c0c7194 flatmap docstring fixes, NEWS (#44905) 14 April 2022, 20:29:12 UTC
6319b3a Merge pull request #44966 from JuliaLang/avi/44965 inference: properly compare vararg-tuple `PartialStruct`s 14 April 2022, 20:07:32 UTC
02b6d99 make inplace `Rational{BigInt}` arithmetic from gmplib available (#44566) Co-authored-by: Lionel Zoubritzky <Liozou@users.noreply.github.com> 14 April 2022, 19:42:23 UTC
fbec395 [REPL] Fix a REPL test failure by removing an erroneous space in test (#44972) * [REPL] remove erroneous space in test Introduced by https://github.com/JuliaLang/julia/pull/33805 (74f2de13727373b44da76a65ceb5297889d3e482). * Revert "Temporarily move the `REPL` test suite to node 1, to buy us time until we fix the underlying bugs (#44961)" This reverts commit 322fd706a1739daf4776fd050df756e6670ba958. 14 April 2022, 08:19:56 UTC
190565c Some minimal LLVM15 compat (#44870) just a drive-by as I was trying out some commits on master 14 April 2022, 04:53:14 UTC
5808648 cache `Type{wrapper}` for faster lookups (#44704) mostly fixes #44402 Co-authored-by: Jameson Nash <vtjnash@gmail.com> 13 April 2022, 21:58:56 UTC
8cc00ff asyncevents: fix missing GC root and race (#44956) The event might have triggered on another thread before we observed it here, or it might have gotten finalized before it got triggered. Either outcome can result in a lost event. (I observed the later situation occurring locally during the Dates test once). 13 April 2022, 20:26:36 UTC
a4a0b04 make `exp(::Float32)` and friends vectorize (#44865) * make `exp(::Float32)` and friends vectorize 13 April 2022, 16:34:55 UTC
5ce65ab fix typo, add more tests for `@inline`-declaration (#44964) 13 April 2022, 12:38:12 UTC
2372541 inference: more `Vararg` handling Just found this case from code review, but this `Vararg` should be widened. 13 April 2022, 07:22:32 UTC
ee49312 inference: properly compare vararg-tuple `PartialStruct`s fix #44965 13 April 2022, 07:20:55 UTC
322fd70 Temporarily move the `REPL` test suite to node 1, to buy us time until we fix the underlying bugs (#44961) 13 April 2022, 04:54:00 UTC
b6a6875 More "thread-safe" LazyString (#44936) * More "thread-safe" LazyString * Serialize rendered string * Move some array methods to essentials.jl Co-authored-by: Jameson Nash <vtjnash@gmail.com> 13 April 2022, 02:29:37 UTC
88fcf44 elaborate the `@nospecialize` docstring a bit (#44933) Adapted from #41931. 12 April 2022, 17:05:52 UTC
255e18c Fix formatting issue in print statement in gc-debug.c (#44944) 12 April 2022, 16:58:32 UTC
770b45d Add space after comma in range printing (#44937) 12 April 2022, 16:49:17 UTC
f10ba9c re-enable static analysis and fix issues (#44900) 12 April 2022, 16:44:36 UTC
7f121e6 Make gcd/lcm effect-free by using LazyString (#44935) 12 April 2022, 12:59:32 UTC
c2da085 Round from zero support for non-BigFloats (#41246) Co-authored-by: Steven G. Johnson <stevenj@alum.mit.edu> Co-authored-by: Steven G. Johnson <stevenj@mit.edu> Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 12 April 2022, 05:40:47 UTC
8020549 [src] Fix compilation of `crc32.c` on aarch64 with Clang (#44915) Compilation of this file on aarch64 Linux with Clang currently fails with ```console $ make crc32c.o CC=clang CC src/crc32c.o In file included from /home/mose/repo/julia/src/crc32c.c:45: In file included from ./julia_internal.h:1021: In file included from /home/mose/repo/julia/usr/include/libunwind.h:7: /home/mose/repo/julia/usr/include/libunwind-aarch64.h:60:9: warning: empty struct has size 0 in C, size 1 in C++ [-Wc++-compat] typedef struct ^ /home/mose/repo/julia/usr/include/libunwind-aarch64.h:169:9: warning: empty struct has size 0 in C, size 1 in C++ [-Wc++-compat] typedef struct unw_tdep_save_loc ^ /home/mose/repo/julia/src/crc32c.c:339:22: warning: unused function 'crc32c_dispatch' [-Wunused-function] static crc32c_func_t crc32c_dispatch(unsigned long hwcap) ^ '++crc' is not a recognized feature for this target (ignoring feature) '++crc' is not a recognized feature for this target (ignoring feature) /home/mose/repo/julia/src/crc32c.c:212:9: error: instruction requires: crc asm("crc32cx %w0, %w1, %2" : "=r"(res) : "r"(crc), "r"(val)); ^ <inline asm>:1:2: note: instantiated into assembly here crc32cx w0, w0, x1 ^ /home/mose/repo/julia/src/crc32c.c:218:9: error: instruction requires: crc asm("crc32cw %w0, %w1, %w2" : "=r"(res) : "r"(crc), "r"(val)); ^ <inline asm>:1:2: note: instantiated into assembly here crc32cw w0, w0, w1 ^ /home/mose/repo/julia/src/crc32c.c:224:9: error: instruction requires: crc asm("crc32ch %w0, %w1, %w2" : "=r"(res) : "r"(crc), "r"(val)); ^ <inline asm>:1:2: note: instantiated into assembly here crc32ch w0, w0, w1 ^ /home/mose/repo/julia/src/crc32c.c:230:9: error: instruction requires: crc asm("crc32cb %w0, %w1, %w2" : "=r"(res) : "r"(crc), "r"(val)); ^ <inline asm>:1:2: note: instantiated into assembly here crc32cb w0, w0, w1 ^ 3 warnings and 4 errors generated. make: *** [Makefile:217: crc32c.o] Error 1 ``` Compilation on aarch64 macOS with Apple Clang is successful, but there is still the message about the unrecognized feature: ```console % rm -f crc32c.o; make crc32c.o CC src/crc32c.o '++crc' is not a recognized feature for this target (ignoring feature) '++crc' is not a recognized feature for this target (ignoring feature) ``` It appears GCC and Clang disagrees on how the target attribute should be specified: GCC wants `"+crc"`, while Clang wants `"crc"`. Also Android's zlib uses `"crc"` only when building for Clang: <https://android.googlesource.com/platform/external/zlib/+/refs/tags/android-platform-12.1.0_r2/crc32_simd.c#187>. With this change, compilation of Julia on aarch64 Linux with Clang is now successful. Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 12 April 2022, 05:25:49 UTC
d9e6eaf Remove a few unobjectionable codegen lock calls (#44924) 12 April 2022, 05:17:33 UTC
2ae677d [Distributed] Set stdin to devnull before closing it (#44881) * [Distributed] Set stdin to devnull before closing it Distributed closes and destroys stdin, but some tests attempted to explicitly use it, leading to test problems. We previously interpreted this as passing devnull, but this is better to be explicit. * Revert "Testsystem: for now, move the REPL tests to node 1 (#44880)" This reverts commit 7401e92a930ab51ff74e67a27152df5c2acd459b. 12 April 2022, 05:11:29 UTC
b5bbb9f distributed docs (#44940) 12 April 2022, 02:06:42 UTC
d4e26c8 predicate function negation with ComposedFunction (#44752) Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> 12 April 2022, 02:02:17 UTC
c0c60e8 Pool more JIT resources to reduce memory usage/contention (#44912) 12 April 2022, 01:59:07 UTC
4c858f8 Fix 44921 by properly setting Vboxed field (#44942) 12 April 2022, 01:54:13 UTC
990c21a Updated 32 bit heuristics (#44805) Co-authored-by: Christine H. Flood <christineflood@juliacomputing.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 12 April 2022, 01:44:58 UTC
0c2722e Use context lock instead of codegen lock (#44923) 11 April 2022, 20:44:58 UTC
1fe7cfa add `@nospecialize` for `identity` (#44929) 11 April 2022, 16:10:32 UTC
dfe0e34 replace `@pure` annotations in Base with effect settings (#44776) This commit replaces `@pure`/`@_pure_meta` annotations used in `Base` with corresponding effect settings (`:total` or `:total_or_throw`). The concrete evaluation mechanism based on the effect system (#43852) has the following benefits over the `@pure`-based optimization: - it can fold cases when consistent exception is thrown - it can handle constant union-split situation as well - effects can be propagated inter-procedurally While revisiting the existing annotations, I removed some unnecessary ones and also added some more hopefully new annotations (mostly for reflection utilities). In theory this should give us some performance benefits, e.g. now we can concrete-evaluate union-spit `typeintersect`: ```julia @test Base.return_types((Union{Int,Nothing},)) do x typeintersect(String, typeof(x)) end |> only === Type{Union{}} ``` Though this commit ends up bigger than I expected -- we should carefully check a benchmark result so that it doesn't come with any regressions. 11 April 2022, 14:34:37 UTC
0deb326 inference: don't widen `DataType`/`UninAll` to `Type` within `tuple_tfunc` (#44896) Follows up #44725. 11 April 2022, 02:41:35 UTC
bb91e62 Fix "anonymous types declared in an anonymous union" warnings (#44807) They look like this: ``` CC src/processor.o In file included from /Users/mhorn/Projekte/Julia/julia.master/src/processor.cpp:10: In file included from ./processor.h:5: ./julia.h:395:9: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types] struct { ^ ./julia.h:405:9: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types] struct { ^ 2 warnings generated. ``` and come from code that was introduced by @keno in PR #43852. But it turns out that the union is not used at all! So I'm simply removing the offending union. Perhaps it is needed for some future work, but it should be trivial to add it back if needed. If that happens, I suggest a comment is added that explain why this looks similar to but has different layout compared to the `typedef _jl_purity_overrides_t` also in `julia.h`. 10 April 2022, 23:28:41 UTC
992b261 Move to a pool of threadsafecontexts (#44605) * Use pooled contexts * Allow move construction of the resource pool 10 April 2022, 18:47:02 UTC
3d87815 CI (`Create Buildbot Statuses`): remove `tester_macos64` from the list (#44918) 09 April 2022, 23:50:31 UTC
73c9863 Add `skip(::BufferStream, n)` (#44917) The lack of this method means that we can't use `Tar` with a `BufferStream` which seems a shame. A minimal example: ``` julia> using Tar mktempdir() do dir touch("$(dir)/foo") touch("$(dir)/bar") mkdir("$(dir)/baz") open("$(dir)/baz/qux", write=true) do io println(io, rand(UInt8, 1000)) end bs = Base.BufferStream() tar_stream = open(`tar c $(dir)`; read=true).out @async begin write(bs, read(tar_stream)) close(bs) end Tar.list(bs) end ``` Results in: ``` ERROR: MethodError: no method matching skip(::Base.BufferStream, ::Int64) Closest candidates are: skip(::Base.GenericIOBuffer, ::Integer) at iobuffer.jl:243 skip(::IOStream, ::Integer) at iostream.jl:184 skip(::Base.Filesystem.File, ::Integer) at filesystem.jl:251 ``` Whereas adding the definition in this PR instead yields: ``` tar: Removing leading `/' from member names 5-element Vector{Tar.Header}: Tar.Header("tmp/jl_7b01pO/", :directory, 0o700, 0, "") Tar.Header("tmp/jl_7b01pO/foo", :file, 0o664, 0, "") Tar.Header("tmp/jl_7b01pO/bar", :file, 0o664, 0, "") Tar.Header("tmp/jl_7b01pO/baz/", :directory, 0o775, 0, "") Tar.Header("tmp/jl_7b01pO/baz/qux", :file, 0o664, 6006, "") ``` 09 April 2022, 15:06:38 UTC
74314a0 ASAN: Minimal system image to reduce CI time. (#44908) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 09 April 2022, 00:55:53 UTC
385762b allow slurping in any position (#42902) This extends the current slurping syntax by allowing the slurping to not only occur at the end, but anywhere on the lhs. This allows syntax like `a, b..., c = x` to work as expected. The feature is implemented using a new function called `split_rest` (definitely open to better names), which takes as arguments the iterator, the number of trailing variables at the end as a `Val` and possibly a previous iteration state. It then spits out a vector containing all slurped arguments and a tuple with the n values that get assigned to the rest of the variables. The plan would be to customize this for different finite collection, so that the first argument won't always be a vector, but that has not been implemented yet. `split_rest` differs from `rest` of course in that it always needs to be eager, since the trailing values need to be known immediately. This is why the slurped part has to be a vector for most iterables, instead of a lazy iterator as is the case for `rest`. 08 April 2022, 21:50:53 UTC
8890aea Use EmittedUndefVarErrors Statistic (#44901) 08 April 2022, 11:47:33 UTC
6d78404 remove `isvarargtype` assertions from `subtype` and `intersect` (#44761) fix #44735 08 April 2022, 01:42:38 UTC
244ada3 fallback randn/randexp for AbstractFloat (#44714) * fallback randn/randexp for AbstractFloat 07 April 2022, 23:30:59 UTC
f536b81 Make some islocked methods better annotated for DRF (#44874) This implements the `islocked`-`trylock` API documented in #44820 for `ReentrantLock` and `SpinLock`. 07 April 2022, 18:40:09 UTC
315a5dd [REPL] replace \sqspne with \sqsupsetneq (#44899) 07 April 2022, 18:39:04 UTC
d055d96 codegen: remove the imaging mode global (#44600) 07 April 2022, 17:53:08 UTC
a1e93a3 Merge pull request #44578 from JuliaLang/pc/float-stat Add statistics and verification to our floating point passes 07 April 2022, 17:52:23 UTC
d127b5e mach: use 64-bit error handlers (#44837) While the legacy (32-bit) handlers still will work, we should switch to the modern handlers. 07 April 2022, 17:49:39 UTC
5f2abf6 fix missing field type initialization vars (#44797) We were accidentally passing the start of the list instead of the end of the list, resulting in some values passing through uninitialized. Fix #42297 regression 07 April 2022, 17:48:04 UTC
b4bed71 fix Libc.rand and seed problems (#44432) Continuation from #43606 - Replaces thread-unsafe function `rand` with `jl_rand`. - Fixes `_ad_hoc_entropy_source` fallback in Random. - Uses uv_random for more direct access to quality-randomness (usually a syscall rather than a file.) - Ensures Array{Bool} are valid when created from RandomDevice. 07 April 2022, 17:47:50 UTC
badad9d Implements flatmap (#44792) flatmap is the composition of map and flatten. It is important for functional programming patterns. Some tasks that can be easily attained with list-comprehensions, including the composition of filter and mapping, or flattening a list of computed lists, can only be attained with do-syntax style if a flatmap functor is available. (Or appending a `|> flatten`, etc.) Filtering can be implemented by outputing empty lists or singleton lists for the values to be removed or kept. 07 April 2022, 07:39:46 UTC
ad047d0 [src] Use `JL_CFLAGS` and `JL_CXXFLAGS` variables to build Julia (#44867) * [src] Use `JCFLAGS_add` and `JCXXFLAGS_add` variables to build Julia These variables are always used, they don't mess up with `JCFLAGS` and `JCXXFLAGS` and are specific to building Julia's source code only (not the dependencies). * [src] Rename `JC*FLAGS_add` to `JL_C*FLAGS` 07 April 2022, 06:22:32 UTC
7401e92 Testsystem: for now, move the REPL tests to node 1 (#44880) 06 April 2022, 21:54:09 UTC
2944ee9 fix trailing whitespace from #44849 (#44884) 06 April 2022, 21:32:12 UTC
559244b Add \neq tab completion to ≠ (#44849) 06 April 2022, 16:01:37 UTC
7014681 Small doc clearifications on embedding and the GC, plus information on threading restrictions (#43966) * Small clarifications on embedding and the GC, plus more information on restrictions when embedding in a multi-thread environment * Fix wide code blocks, add syntax highlight, small tweaks to text * Trim trailing whitespace Co-authored-by: Paul Melis <paul.melis@surfsara.nl> 06 April 2022, 12:36:50 UTC
f41eed8 Instrument various parts of codegen (#44595) * Instrument cgutils with statistics * Instrument ccall.cpp * Instrument intrinsics * Instrument codegen 06 April 2022, 12:17:39 UTC
2c8c0a4 Simplify InsertionSort (#44862) 06 April 2022, 00:38:18 UTC
0a7d5d1 Show `dlerror()` only if it's actually non-NULL (#44856) This prevents a segmentation fault when showing an error message when libjulia can't be loaded. 05 April 2022, 20:11:31 UTC
0ba4c07 Remove unused variable and invalidate less frequently in muladd 05 April 2022, 16:52:51 UTC
1a004d1 Instrument simdloop and multiversioning 05 April 2022, 16:50:24 UTC
14bedc1 Refactor and instrument muladd 05 April 2022, 16:50:24 UTC
568a6b7 Instrument DemoteFloat16 05 April 2022, 16:50:24 UTC
3fb132f Update Pkg, and move tests to node 1 (#44828) * 🤖 Bump the Pkg stdlib from 53cefb5c to b5d23482 * Move `Pkg` to node 1 Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 05 April 2022, 16:02:02 UTC
6774185 Check if `_POSIX_C_SOURCE` is defined before using its value (#44850) 05 April 2022, 15:51:36 UTC
dacf9d6 Remove disturbing `@show` output in tests (#44860) 05 April 2022, 09:04:45 UTC
aa497b5 Add statistics/verification to cpufeatures and julia-licm (#44592) 05 April 2022, 08:01:35 UTC
back to top