https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
65ce611 fix test 13 May 2022, 07:06:40 UTC
f146480 update subtype errors to be more descriptive 12 May 2022, 14:50:06 UTC
c65e56f Change PDF cover font to DejaVu Sans (#45290) 12 May 2022, 13:50:59 UTC
6f4ce97 REPL: allow editing current input in editor (via Meta-e) (#33759) 12 May 2022, 11:50:52 UTC
3653d3d fix keyword values being shown in `MethodError` (#45255) 12 May 2022, 05:58:41 UTC
cd51a39 Test for MethodError for gcd/lcm/gcdx (#45250) 12 May 2022, 05:57:03 UTC
b605679 Document and export `contractuser` (#45279) Co-authored-by: Elias Kuthe <elias.kuthe@tu-dortmund.de> 12 May 2022, 05:56:09 UTC
c78cd66 Restrict Regex signatures from SubString to SubString{String} (#45281) By itself, SubString is agnostic about the layout of its underlying string. Julia's Regex library assumes a UTF-8 encoded, heap-allocated string type, a criterion fulfilled by SubString{String}, but not SubString. 12 May 2022, 05:55:17 UTC
89f16e5 Allow constructing WorkerPool from AbstractRange{Int} (#44376) Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 12 May 2022, 05:47:57 UTC
c889fbc allow CartesianIndex in `isassigned` (#43394) Co-authored-by: Jeff Bezanson <jeff.bezanson@gmail.com> Co-authored-by: N5N3 <2642243996@qq.com> Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 12 May 2022, 05:47:21 UTC
bc623e5 LibGit2: expose trace_set (#43439) Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 12 May 2022, 05:46:41 UTC
180ff26 minimal fix of 41221 (#43723) Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 12 May 2022, 05:46:06 UTC
6611385 Minor English fixes/improvements (#29371) Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 12 May 2022, 05:45:42 UTC
93ac4a3 Hoist object allocation before inner field initialization (#45153) * Hoist object allocation before inner field initialization Consider the following pattern for building up nested objects ``` %obj = Expr(:new, obj, ...) %obj_wrapper = Expr(:new, obj_wrapper, ..., %obj) %obj_wrapper2 = Expr(:new, obj_wrapper2, ..., %obj_wrapper) %outer = Expr(:new, outer, %obj_wrapper2) ``` Asssuming everything except `struct outer` is struct-inlineable, the LLVM IR we emit looks something like the following: ``` %obj = alloca %obj_wrapper = alloca %obj_wrapper_wrapper = alloca %obj = alloca init(%obj, <obj>) init(%obj_wrapper, <obj_wrapper>); memcpy(%obj_wrapper, %obj) init(%obj_wrapper2, <obj_wrapper2>); memcpy(%obj_wrapper2, %obj_wrapper) init(%outer, <outer>); memcpy(%outer, %obj_wrapper2) %outer_boxed = julia.gc_alloc memcpy(%outer_boxed, %outer) ``` While LLVM is capable of removing all the allocas and memcpys, it's taking an unreasonable amount of time to do so. This PR introduces a small optimization into the frontend lowering for `:new`: If all the :new calls are in the same LLVM basic block, then we delete the alloca, and hoist the allocation of the object to the earliest point before the initialization of the fields. This gives essentially the same result as LLVM would have given us post-optimization, but is much cheaper to do because we don't have to perform any analysis to tell us that it is a legal optimization. In the above example, we would end up with something like: ``` %outer_boxed = julia.gc_alloc init(%outer_boxed, <obj>) init(%outer_boxed, <obj_wrapper>); init(%outer_boxed, <obj_wrapper2>); init(%outer_boxed, <outer>); ``` Of course this does extend the liftime of the outer object, but I don't think that's a particular problem as long as we're careful not to hoist any boxings out of error paths. In the current implementation, I only allow this optimization to occur in the same LLVM basic block, but I think it should be fine to extend it to allow the same julia basic block or more generally, any allocation that post-dominates the relevant promotion points. * fix codegen bug Co-authored-by: Keno Fischer <keno@juliacomputing.com> 12 May 2022, 00:15:36 UTC
bf2c2e8 Make dump_llvm_ir C-api compatible (#45252) 11 May 2022, 19:32:01 UTC
9a0e797 docs: Improve discoverability of `atreplinit` (mention it in Manual>"Command-line Interface">"Startup file") (#44103) 11 May 2022, 18:03:04 UTC
c81c25a Docstring for `outer` keyword (#45231) 11 May 2022, 17:52:15 UTC
72b80e2 codegen: add handling for undefined phinode values (#45155) The optimization pass often uses values for phi values (and thus by extension, also for pi, phic and upsilon values) that are invalid. We make sure that these have a null pointer, so that we can detect that case at runtime (at the cost of slightly worse code generation for them), but it means we need to be very careful to check for that. This is identical to #39747, which added the equivalent code to the other side of the conditional there, but missed some additional relevant, but rare, cases that are observed to be possible. The `emit_isa_and_defined` is derived from the LLVM name for this operation: `isa_and_nonnull<T>`. Secondly, we also optimize `emit_unionmove` to change a bad IR case to a better IR form. Fix #44501 11 May 2022, 15:23:59 UTC
13ae079 Fast paths for `allunique` (#43375) 11 May 2022, 13:58:10 UTC
7074184 Revert "add a test to ensure conj! is not called on uninitialized memory in matmul (#40491)" (#45278) This reverts commit 5e83ff52be92b602e1b89119b224e5373fbdd182. 11 May 2022, 13:47:37 UTC
fbf83ef Speed up vect by delegating to getindex (#41696) 11 May 2022, 13:47:18 UTC
4adf56b add test for trying to create BitArray from infinite iter (#42067) 11 May 2022, 13:43:10 UTC
b04d116 Add section on additional spurious warnings to the Valgrind devdocs (#43559) 11 May 2022, 13:33:12 UTC
1ce1fb0 Add alder lake to processor list (#44696) 11 May 2022, 13:23:46 UTC
bc0fae2 make `length(StepRange())` type stable (#45236) 11 May 2022, 13:22:35 UTC
5bc1d85 Remove an unnecessary space and added clarifying information for the `rand(T, dims...)` function. 11 May 2022, 13:04:26 UTC
8563e73 Add compat information in docstring of AbstractPattern. (#45264) Cf #38108. 11 May 2022, 13:04:02 UTC
e770f3c doctest for overloading show for Day(1) printing as "1 day" (#44830) 11 May 2022, 13:03:18 UTC
88052c9 rewrite the C/Fortran calling manual to use `@ccall` as the "first class" way of calling (#45206) 11 May 2022, 13:02:20 UTC
91ef7f8 use firstindex, lastindex, and eachindex (#45224) 11 May 2022, 12:57:05 UTC
14232f4 Bump Documenter to 0.27.17 (#45269) 11 May 2022, 12:04:09 UTC
a734ae4 Test for setting/getting rounding for F32 and F64 (#45248) 11 May 2022, 08:48:34 UTC
72794c7 docs: `isfile`: direct write instead of IO (#45261) 11 May 2022, 08:48:09 UTC
b612159 style & typo in comments (#44938) 11 May 2022, 08:47:40 UTC
c7e7a5d Stop using permute!! and invpermute!! (#44941) 11 May 2022, 07:58:25 UTC
9f7aa7d handle colors in Dict limit printing (#37568) 11 May 2022, 07:57:53 UTC
192e388 fix same content being shown successively in REPL (#45240) 11 May 2022, 07:55:41 UTC
94ddc17 Improve docstring for `Core.Symbol` (#45267) 11 May 2022, 03:16:52 UTC
5e08c20 add bswap(x::Bool)=x (#45265) * missing bswap for Bool * add a test 10 May 2022, 23:28:19 UTC
6d7bc40 add documentation about using `@cfunction` to call Julia functions when embedding (#45208) 10 May 2022, 19:03:04 UTC
678e0d2 Revert "make simd loop over ranges perform better (#28166)" (#45230) 10 May 2022, 15:54:27 UTC
eb938da Move bounds checks on `copyto!(dst, n, src)` (#43517) 10 May 2022, 15:45:15 UTC
c69a202 add special case for findlast on tuples of length >= 32, fixes #45117 (#45254) 10 May 2022, 14:39:46 UTC
0ba4e71 Faster iterator for (almost) empty Dict (#44411) 10 May 2022, 11:15:15 UTC
748e320 remove dead code in jitlayers (#44599) 10 May 2022, 11:14:06 UTC
1fae9fa add a `.git-blame-ignore-revs` file and populate it with a few commits (#45243) GitHub supports hiding commits from showing up in the diff view (https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file\#ignore-commits-in-the-blame-view). This is useful to hide commits that made (automatic) style/whitespace changes that would otherwise clutter up the blame view. 10 May 2022, 10:47:56 UTC
9cf0c9c clarify doc for Iterators.reverse (#43522) 10 May 2022, 06:04:15 UTC
20683ba move slow searchsorted testset to end of file (#45234) Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> 10 May 2022, 06:00:52 UTC
3d702bc Make file test robust for other OS languages (#45241) 10 May 2022, 05:59:26 UTC
59d1d54 make libgit2 tests robust against line endings (#45242) 10 May 2022, 05:58:02 UTC
bca0e7a Fix missing codeblock in `donotdelete` docs (#45247) 10 May 2022, 05:56:19 UTC
e7209e1 add more test for inferrability improved by #44063 (#45239) 10 May 2022, 00:05:22 UTC
5c557b2 syntax: keyword sorter location should just be definition line (#45199) fix #45171 09 May 2022, 16:06:47 UTC
ef10e52 Add export for `Splat(f)`, replacing `Base.splat` (#42717) * Deprecate `Base.splat(x)` in favor of `Splat(x)` (now exported) * Add pretty printing of `Splat(f)` 09 May 2022, 15:47:17 UTC
3023693 Add some missing docstrings in manual (#44642) 09 May 2022, 15:44:21 UTC
177bf28 [devdocs] update AST.md#CodeInfo descriptions (#43382) Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 09 May 2022, 15:36:22 UTC
acea75b Add Module docstring for Base.Checked (#43258) 09 May 2022, 15:32:24 UTC
e315231 document local methods, warn about branches (#41013) 09 May 2022, 15:30:34 UTC
1f2e269 [Distributed] add some unit tests for managers.jl (#34963) It finds a bug. 09 May 2022, 15:29:52 UTC
97c7009 [REPL] try macroexpand alone before lowering (#44994) Calling macroexpand alone might lead to something simple that we can handle, while lowering makes it more complicated and usually requires inference to interpret it. 09 May 2022, 15:02:55 UTC
b6b0874 Consider additional default ssh keys for LibGit2. (#44767) 09 May 2022, 14:55:56 UTC
c62ea26 fix #45162, function arg not specialized if only called with keywords (#45198) 09 May 2022, 14:55:08 UTC
ff45fdc make `randstring` 25% faster for ASCII (#44264) This uses `_string_n` instead of `StringVector` in order to allocate less, e.g.: ``` julia> @btime randstring() # master 71.499 ns (2 allocations: 96 bytes) "DZk2V5Bm" julia> @btime randstring() # PR 57.832 ns (1 allocation: 32 bytes) "Hj5PINXU" ``` 09 May 2022, 14:54:03 UTC
a86c687 Doc some string parsing macros (#28085) 09 May 2022, 12:56:41 UTC
6ce2800 make the `.line` and `inlined_at` fields in `LineInfoNode` `Int32` (#44548) 09 May 2022, 12:41:03 UTC
d3fdde9 basic handling of stale file handles for REPL history (#44999) 09 May 2022, 11:38:24 UTC
5e83ff5 add a test to ensure conj! is not called on uninitialized memory in matmul (#40491) 09 May 2022, 11:33:31 UTC
47380fb Add tests for Unicode, char.jl and string/basic.jl (#38069) 09 May 2022, 11:14:51 UTC
c3cff17 Add test for AbstractString ends/startswith (#45227) 09 May 2022, 11:13:55 UTC
78c53b0 Missing test for uuid (#45235) 09 May 2022, 11:05:16 UTC
b4dd24a Fix some tuple tests to catch Any32 (#45237) 09 May 2022, 11:04:37 UTC
ea56781 some refactoring on `convert_to_ircode` (#45205) 09 May 2022, 10:56:43 UTC
6446d66 State why `extrema` is needed here (#45225) 09 May 2022, 10:42:37 UTC
fed7c3f Revamp and expand let docs (#40410) Try to more clearly communicate the fact that `let` is "just" a scope block with a little special assignment syntax on that first line. I remember `let` blocks seeming opaque and magical initially, hopefully I am not too far removed to explain it to my former self. 09 May 2022, 10:41:43 UTC
99455c9 initialize with zero(basetype), no need to update lo (#29453) 09 May 2022, 08:35:13 UTC
d5b95c7 Specialise `any` and `all` for tuples (#44063) Fall back to original for-loop implementation if the tuple either: - is a homogeneous tuple (all elements have the same type); - has length > 32. 09 May 2022, 08:34:48 UTC
a593f31 Added tests for Iterators to cover a few edge cases. (#35916) 09 May 2022, 08:33:08 UTC
044450e Added edge case tests for set module in unique, unique!, and allunique (#39576) 09 May 2022, 08:32:45 UTC
f9bd142 Restore `setindex!(::IRCode, ::SSAValue, ::SSAValue)` (#45216) This particular method got removed in f67371dc, but it's common in RAUW-like patterns in external code. I think it is a sensible method to have, because the metadata on such an instruction will get deleted on the next compact anyway, so there's not much reason to attempt to force the API user to pass complete metadata around. It also enables useful patterns like: ``` ir[idx] = insert_node!(idx-2, NewInstruction(...)) ``` 08 May 2022, 22:42:50 UTC
d4acead Avoid race condition in cleaning up cache files (#45214) If multiple processes attempt to clean up cache files at the same time, a race condition can result, e.g. https://buildkite.com/clima/climaatmos-ci/builds/812#6a961e99-e2a1-488b-a116-2a45dee26d38/102-104 08 May 2022, 05:02:20 UTC
436b383 Fixed a typo (#45228) Co-authored-by: Jason Ji <jshji252@gmail.com> 08 May 2022, 04:34:17 UTC
6e06132 Revert "Clarify that `modifyproperty!` does not call `convert` (#45178)" (#45209) This reverts commit 350376b2baef2e60baa78efa42d4a590ac8a47da. 07 May 2022, 08:12:31 UTC
58ab4c7 Fix different .cachepath initialization points for precompile load (#45149) For quite some time I've been observing Revise randomly not pick up changes to my packages. Usually I just write that off to Revise getting into a bad state and restarting Julia fixes it. Today, I got very annoyed by this again and decided to finally track it down. What turns out to happen here is the packages in question are those which: A. Are being precompiled on load B. Use Requires C. Have an `@require`'d-dependency already loaded D. The change to be revised is made in a file not loaded via Requires.jl. In this case the `__init__` of the package triggers Requires, which in turn calls back to Revise, which tries to start watching the package. However, on the `compilecache` path (but not on the path where we just find a pre-existing cache file), we used to not set the .cachepath property of `pkgorigins` until after the `__init__` callbacks run, causing Revise not to be able to see those files. Infuriatingly, restarting julia fixes this because it just loads the .ji file that was just compiled. Fix this by unifying the point at which the .cachepath is set, always setting it just prior to the module initialization callback. 07 May 2022, 02:18:40 UTC
3e9cecd make sure `basic_block_index` is sorted (#45180) Found `block_for_inst(index::Vector{Int}, ::Int)` expects `index` to be sorted, but we didn't sort it explicitly previously. 07 May 2022, 00:48:51 UTC
e6fc03d improve Base.summarysize for BigInt (#45193) * specialize Base.summarysize for BigInt * test that larger BigInts report larger sizes 06 May 2022, 14:33:17 UTC
34688de Add test for empty tuple ctor in dict.jl (#32230) Covering for https://github.com/JuliaLang/julia/blob/master/base/dict.jl#L118 06 May 2022, 12:39:44 UTC
04d6ec1 Update noteworthy-differences.md (#42913) 06 May 2022, 12:27:29 UTC
206698c fix trailing whitespace (#45207) 06 May 2022, 12:26:59 UTC
5bbdaa3 Add underscore to punctuation.md (#44552) 06 May 2022, 12:03:46 UTC
350376b Clarify that `modifyproperty!` does not call `convert` (#45178) 06 May 2022, 11:59:33 UTC
f1ac0cf Fix a typo in `modifyproperty!` docstring (#45177) 06 May 2022, 10:50:13 UTC
b06c9df document that promote_type can input more than two types (#44711) 06 May 2022, 09:47:40 UTC
917b11e doc: mention JULIA_DEPOT_PATH doesn't work in startup.jl (#44952) 06 May 2022, 09:47:12 UTC
0e3adde Amend Logging docs with environment variable help (#45033) Ref. https://discourse.julialang.org/t/julia-debug-environment-variable/73278/4?u=sukera 06 May 2022, 09:46:21 UTC
5561508 type stronger `ir.meta::Vector{Expr}` (#45204) 06 May 2022, 09:43:10 UTC
3ee4bb1 Explain what Base64 encoding is (#44498) 06 May 2022, 09:31:20 UTC
902a5c1 make the docs for `gensym` slightly more precise (#45182) fixes https://github.com/JuliaLang/julia/issues/44903 05 May 2022, 15:00:54 UTC
670f713 Fix roundoff bugs in `prevpow`/`nextpow` (#45067) * fix roundoff bugs in `nextpow`/`prevpow` 05 May 2022, 13:33:39 UTC
862018b [deps] Remove Python workaround in LLVM build, no longer necessary (#45176) 04 May 2022, 15:57:19 UTC
1fb28ad fix logging macros to use the updated stdlib path (#45150) 04 May 2022, 07:42:22 UTC
back to top