sort by:
Revision Author Date Message Commit Date
c5758a6 [test] Drop `running_under_rr()` check Since we're now explicitly checking that we have the ability to set affinity, we shouldn't need this check for `rr`, we can more directly avoid the problematic tests due to `rr` setting us to single-core affinity already. 28 April 2022, 23:47:39 UTC
2049baa add entry point to construct an OpaqueClosure from pre-optimized IRCode (#44197) * add entry point to construct an OpaqueClosure from pre-optimized IRCode * update `jl_new_codeinst` signature * fixes to OpaqueClosure argument count handling and MethodError display * more test coverage Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> 28 April 2022, 22:26:07 UTC
9320fba Add compilation & recompilation time to time_imports macro (#45064) 28 April 2022, 13:48:42 UTC
ce5909c doc: use `isa` instead of :: in the docstring for Union (#45104) 27 April 2022, 18:51:38 UTC
78aa083 Merge pull request #45107 from kpamnany/kp/threadpool-news Add NEWS entry for threadpools 27 April 2022, 18:47:19 UTC
1c5648d Add new GC STATS (max memory used, and max pause time) (#44955) * Add max_memory and max_pause_time to gc_num data structure. 27 April 2022, 14:58:05 UTC
81e5b01 Add NEWS entry for threadpools 27 April 2022, 14:44:59 UTC
f4a5fad time macro: show <1% rather than rounded down 0% recompilation (#45063) 27 April 2022, 11:03:56 UTC
23a5193 Mention the possibility to ahead-of-time compile Julia in the introduction (#45092) 27 April 2022, 02:23:34 UTC
7ad0e3d lower `new()` to reference the called object instead of re-creating it with apply_type (#44664) addresses #36384 26 April 2022, 22:25:40 UTC
f410c62 Merge pull request #42302 from jpsamaroo/jps/moar-threads Add threadpool support to runtime 26 April 2022, 20:47:52 UTC
ab78165 Merge branch 'master' into jps/moar-threads 26 April 2022, 16:44:07 UTC
3423639 Header compat for LLVM15 (#45089) 26 April 2022, 02:49:30 UTC
9d2bc0a Clean up duplicated calls to the same target in LLVM output (#45091) Currently, every not-previously-emitted reference to a julia function gets a unique new name when we generate LLVM ir and we resolve all those names later when we actually emit the referenced function. This causes confusion in LLVM IR output (e.g. in #44998, where we had tens of thousands of unique names for the exact same function). It doesn't so much matter for the JIT, since the references get merged before the JIT runs, but for output to IR, this change will make the result much nicer. 26 April 2022, 02:48:53 UTC
c7ea709 Add threadpool support to runtime Adds support for Julia to be started with `--threads=auto|N[,M]` where `N` specifies the number of threads in the default threadpool and `M`, if provided, specifies the number of threads in the new interactive threadpool. Adds an optional first parameter to `Threads.@spawn`: `[:default|:interactive]`. If `:interactive` is specified, the task will be run by thread(s) in the interactive threadpool only (if there is one). Co-authored-by: K Pamnany <kpamnany@users.noreply.github.com> 25 April 2022, 18:48:24 UTC
9d14cb1 Add LinearAlgebra.normalize fallback for scalars (#44835) (#44925) Co-authored-by: Steven G. Johnson <stevenj@mit.edu> 25 April 2022, 16:24:42 UTC
65b9be4 improve `cat` inferrability (#45028) Make `cat` inferrable even if its arguments are not fully constant: ```julia julia> r = rand(Float32, 56, 56, 64, 1); julia> f(r) = cat(r, r, dims=(3,)) f (generic function with 1 method) julia> @inferred f(r); julia> last(@code_typed f(r)) Array{Float32, 4} ``` After descending into its call graph, I found that constant propagation is prohibited at `cat_t(::Type{T}, X...; dims)` due to the method instance heuristic, i.e. its body is considered to be too complex for successful inlining although it's explicitly annotated as `@inline`. But for this case, the constant propagation is greatly helpful both for abstract interpretation and optimization since it can improve the return type inference. Since it is not an easy task to improve the method instance heuristic, which is our primary logic for constant propagation, this commit does a quick fix by helping inference with the `@constprop` annotation. There is another issue that currently there is no good way to properly apply `@constprop`/`@inline` effects to a keyword function (as a note, this is a general issue of macro annotations on a method definition). So this commit also changes some internal helper functions of `cat` so that now they are not keyword ones: the changes are also necessary for the `@inline` annotation on `cat_t` to be effective to trick the method instance heuristic. 25 April 2022, 02:50:53 UTC
45abec4 Correct typo in devdocs gc-sa (#45072) 24 April 2022, 01:46:34 UTC
d8346cc correct man-custom-indices ref in devdocs (#45071) 23 April 2022, 22:26:29 UTC
8a3b4ab [doc] Add a Cover page to PDF doc (#45034) * Add cover page * use tikz logo * Add "Release Notes" to devdocs Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> 23 April 2022, 22:15:37 UTC
3cff21e NFC: tidy up `InferenceState` definition (#45049) This commit sorts its fields in order of their purpose, and refactor the main constructor accordingly. Also removed the `nargs::Int` field as it can be easily recovered and not used so often. Now it's defined as: ```julia mutable struct InferenceState #= information about this method instance =# linfo::MethodInstance world::UInt mod::Module sptypes::Vector{Any} slottypes::Vector{Any} src::CodeInfo #= intermediate states for local abstract interpretation =# currpc::Int ip::BitSetBoundedMinPrioritySet handler_at::Vector{Int} ssavalue_uses::Vector{BitSet} stmt_types::Vector{Union{Nothing, VarTable}} stmt_edges::Vector{Union{Nothing, Vector{Any}}} stmt_info::Vector{Any} #= interprocedural intermediate states for abstract interpretation =# pclimitations::IdSet{InferenceState} limitations::IdSet{InferenceState} cycle_backedges::Vector{Tuple{InferenceState, Int}} callers_in_cycle::Vector{InferenceState} dont_work_on_me::Bool parent::Union{Nothing, InferenceState} inferred::Bool #= results =# result::InferenceResult valid_worlds::WorldRange bestguess ipo_effects::Effects #= flags =# params::InferenceParams restrict_abstract_call_sites::Bool cached::Bool interp::AbstractInterpreter ... end ``` 22 April 2022, 01:46:49 UTC
5b5715a 🤖 Bump the Pkg stdlib from 76764311 to 54d5c9e5 (#45054) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 April 2022, 22:45:07 UTC
4dfef57 `Distributed` test suite: wrap another thread-unsafe test in `poll_while` (#45037) 21 April 2022, 19:14:04 UTC
4340d23 🤖 Bump the Downloads stdlib from 26f009d to 9f738d3 (#45046) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 April 2022, 08:06:49 UTC
6ae5039 Change context pooling to use a queue instead of a stack (#44926) 21 April 2022, 04:59:54 UTC
28e1cd9 CI (`Create Buildbot Statuses`): remove `tester_linux32` from the list (#45047) 21 April 2022, 04:59:43 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
back to top