https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
a2ae96a Prototype a pretty printer 05 June 2022, 22:30:15 UTC
0062c26 Update libuv to latest commit (#45413) 25 May 2022, 14:20:35 UTC
08a9c12 fix #45440, improve the robustness of concrete-evaled callsite inlining (#45451) 25 May 2022, 14:19:27 UTC
991190f support malformed chars in char literal syntax (#44989) Make the syntax for character literals the same as what is allowed in single-character string literals. Alternative to #44765 fixes #25072 25 May 2022, 14:19:06 UTC
ba4a4b2 limit the constructor signatures of `PartialStruct` and `Conditional` (#45436) 24 May 2022, 23:21:36 UTC
8bb973a Add notaskstate effect (#45422) Split out from #45272. This effect models the legality of moving code between tasks. It is somewhat related to effect-free/consistent, but only with respect to task-local state. As an example consider something like: ``` global glob function bar() @async (global glob = 1; some_other_code()) end ``` The newly created task is not effect-free, but it would be legal to inline the assignment of `glob` into `bar` (as long it is inlined before the creation of the task of `some_other_code` does not access `glob`). For comparison, the following is neither `notls`, nor `effect_free`: ``` function bar() @async (task_local_storage()[:var] = 1; some_other_code()) end ``` The same implies to implicit task-local state such as the RNG state. Implementation wise, there isn't a lot here, because the implicit tainting by ccall is the correct conservative default. In the future, we may want to annotate various ccalls as being permissible for notls, but let's worry about that when we have a case that needs it. 24 May 2022, 19:26:26 UTC
8512dd2 Make finalizer a built-in (#45423) * Make finalizer a built-in Split out from #45272. This is prepratory work towards adding optimization passes that recognize this builtin. This PR adds `Core.finalizer` with essentially the same interface as `Base.finalizer`, but without the error checking or raw-C-pointer feature. In future commits, the Core.finalizer interface will likely expand slightly, but Base.finalizer will remain unchanged and is the supported interface for this functionality. * Update base/docs/basedocs.jl Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Ian Atol <ian.atol@juliacomputing.com> Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Co-authored-by: Ian Atol <ian.atol@juliacomputing.com> 24 May 2022, 19:26:02 UTC
86f5501 Update p7zip to 17.04 (#45435) Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com> 24 May 2022, 16:24:30 UTC
fc52b3f Disallow reinterpreting a non-singleton array into a singleton type (#45370) 24 May 2022, 07:09:30 UTC
40bfa7b Add nothrow modeling for global assignment (#45421) Currently global assignment conservatively taints nothrow. We can do better by looking at whether the global exists, isconst, its type, etc. and determine whether there is any possibility that the assignment will throw and taint the effect accordingly. 23 May 2022, 23:41:16 UTC
5412bc6 remove the ref to non-exported `Base.@irrational` from Irrational docstring (#45427) 23 May 2022, 14:09:55 UTC
66f0d8b Make SplitIterator eltype more precise (#45429) split depends on SplitIterator{T} returning SubString{T}, unless T is a SubString{T2}, in which case it returns SubString{T2}. Since this is assumed for the correctness of split, we might as well add it to eltype. 23 May 2022, 14:05:37 UTC
335a9d8 SSAIR: improve inlining performance with in-place IR-inflation (#45404) This commit improves the performance of a huge hot-spot within `inflate_ir` by using the in-place version of it (`inflate_ir!`) and avoiding some unnecessary allocations. For `NativeInterpreter`, `CodeInfo`-IR passed to `inflate_ir` can come from two ways: 1. from global cache: uncompressed from compressed format 2. from local cache: inferred `CodeInfo` as-is managed by `InferenceResult` And in the case of 1, an uncompressed `CodeInfo` is an newly-allocated object already and thus we can use the in-place version safely. And it turns out that this helps us avoid many unnecessary allocations. The original non-destructive `inflate_ir` remains there for testing or interactive purpose. 23 May 2022, 13:55:19 UTC
1e17a16 Minor fixes to Random.seed! docstring (#45382) 23 May 2022, 09:20:48 UTC
9dd993e Don't error when transposing a single character (#45420) This fixes an issue where an error would be thrown in the REPL if you tried to transpose an input that was a single character while your cursor was to the right of that character (e.g., "A|"). To fix this, let's move left once before we check for if we're at the start of a line. This does change behavior slightly in that the cursor can move left once without actually transposing anything, but this seems to match what Emacs does with M-x transpose-chars in an equivalent situation. 23 May 2022, 07:31:50 UTC
e0d8ba7 Add docstring for fallback `fetch(::Any)` method (#45008) We cannot just include `Base.fetch` in the `@docs` block as some methods should keep being documented in the Distributed stdlib rather than in Base. 23 May 2022, 05:28:36 UTC
5e1c5cf Add `code_ircode` (#45306) To match `typeinf_ircode` with how typeinf lock is used ATM (i.e., optimizer is run inside the lock), we can manually lock it because the lock is re-entrant. Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> 23 May 2022, 02:41:42 UTC
5554676 Fix codegen error path for imported non-owned bindings (#45351) The code assumed that a null return from `global_binding_pointer` was impossible. However, it happens in the error path, causing a bad memory reference later when the lhs is treated as a slot. Fixes #45350 22 May 2022, 21:44:51 UTC
a37dd16 Make `isdispatchtuple` consistent for `typeof(Union{})` (#45348) We have `typeof(Union{}) == Type{Union{}}`, but were treating them differently in the calculation of `isdispatchtuple`. The compiler expects `isdispatchtuple` to commute with type equality in various places, so try to make this consistent. Fixes #45347 22 May 2022, 19:00:20 UTC
390503e set default blas num threads to Sys.CPU_THREADS / 2 (#45412) Set default blas num threads to Sys.CPU_THREADS / 2 in absence of OPENBLAS_NUM_THREADS Co-authored-by: SamuraiAku <61489439+SamuraiAku@users.noreply.github.com> 22 May 2022, 13:33:43 UTC
a5438f9 Do not set MCPU on Apple Silicon (#45409) 21 May 2022, 21:20:21 UTC
3d6731b Update PCRE2 to 10.40 (#45398) 21 May 2022, 18:58:12 UTC
b74971f Update SPDX for new external stdlib DelimitedFiles + other tweaks (#45405) * DelimitedFiles moved to an external stdlib. Update processed with package SPDX.jl so a few other fields got moved around * Add Relationship for DelimitedFiles. Added a missing Relationship for SparseArrays * update copyright year 21 May 2022, 18:54:38 UTC
69f10f8 Update nghttp2 to 1.47.0 (#45408) 21 May 2022, 18:04:59 UTC
434d340 OpenBLAS: Find objconv in its proper path (#45391) 21 May 2022, 15:27:39 UTC
1c10a9e Zlib: update version number (#45407) 21 May 2022, 13:51:10 UTC
9b106ad Use root module when determining UUID in @artifact_str (#45392) Otherwise, overrides do not trigger when using `artifact"..."` inside a submodule. 21 May 2022, 03:09:47 UTC
88def1a Test: Add fail-fast mechanism (#45317) 20 May 2022, 23:30:58 UTC
dea9805 Apply patch for GMP CVE-2021-43618 (#45375) * Apply patch for GMP CVE-2021-43618 * Update checksums 20 May 2022, 16:00:29 UTC
1eaa372 Trim whitespaces leading to build failures (#45390) 20 May 2022, 11:33:20 UTC
b81a20c optimize `compute_basic_blocks` a bit (#45364) By scalar-folding `basic_blocks_starts(stmts)::BitSet` 20 May 2022, 01:43:07 UTC
7b421f0 Clarify Revise and testing workflow (#35604) * Clarify Revise and testing workflow Co-authored-by: Stefan Karpinski <stefan@karpinski.org> 19 May 2022, 23:27:37 UTC
0f2ed77 Fix error in validating complex row-first hvncat (#45365) 19 May 2022, 19:56:49 UTC
b77b54e added new command line option heap_size_hint for greedy GC (#45369) * added new command line option heap_size_hint for greedy GC 19 May 2022, 19:48:54 UTC
51ebd5e Update distributed doc (#45368) * point out Julia versions should be the same Using addprocs to add workers on remote machines can fail when Julia versions differ because serialization is not guaranteed to be backward compatible. This points this out explicitly in the manual. * updated docstrings for `exename` flag in addprocs Another location where a warning about the necessity of matching Julia versions across worker processes might be helpful. * fixed reference in manual Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> 19 May 2022, 19:16:23 UTC
45aaca5 Merge pull request #45357 from JuliaLang/pc/fixup-newpm Fix a few pre-NewPM nits 19 May 2022, 12:22:38 UTC
fb672da implement a hash function for Enums (#30500) This avoids having to make a runtime call to `objectid`. 19 May 2022, 06:41:26 UTC
2159bfb Use externally hosted DelimitedFiles and move it out of the sysimage (#45121) * use the externally hosted DelimitedFiles.jl * remove tests in Base relying on DelimitedFiles * move DelimitedFiles out of the sysimage * update version 18 May 2022, 18:02:43 UTC
87e0ef8 Fix a few pre-NewPM nits 18 May 2022, 17:19:44 UTC
18bfd7e IO docstrings: Use `write(filename, contents)` when available (#45343) 18 May 2022, 15:43:34 UTC
138c8e6 🤖 Bump the Downloads stdlib from 9f738d3 to 78255d4 (#45345) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 18 May 2022, 14:23:48 UTC
f2c627e codegen: explicitly handle Float16 intrinsics (#45249) Fixes #44829, until llvm fixes the support for these intrinsics itself Also need to handle vectors, since the vectorizer may have introduced them. Also change our runtime emulation versions to f32 for consistency. 18 May 2022, 08:01:54 UTC
2d40898 fix #45024, lost `expected assignment after const` error (#45344) 18 May 2022, 08:01:28 UTC
7f84d46 [deps] Use newer `config.sub` when building nghttp2 (#45346) 18 May 2022, 02:50:34 UTC
f18324c Resurrect libunwind patches (#45189) Fixes #44499 17 May 2022, 21:48:34 UTC
ab4d060 make floating point pow tests better (#45325) * make floating point pow tests better 17 May 2022, 21:39:10 UTC
1476e58 preserve -- in ARGS when it follows a non-option argument (#45335) Co-authored-by: Kirill Simonov <xi@resolvent.net> 17 May 2022, 18:41:29 UTC
7bff5cd Minor improvements of _tablesz implementation (#39126) Probably this does not affect any Julia Base code, but in general the original code was not type stable and safe: Before the PR: ``` julia> Base._tablesz(true) # now it will be an error 16 julia> Base._tablesz(Int32(20)) # now it will be Int32(32) 0 ``` Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 17 May 2022, 16:35:53 UTC
4605704 `@testset for`: avoid calling finish twice when it errors (#41715) Here is a MWE: ```julia julia> using Test @testset "a" for i=1:2 @test i != 1 end a: Test Failed at REPL[3]:3 Expression: i != 1 Evaluated: 1 != 1 Stacktrace: [...] Test Summary: | Fail Total a | 1 1 Test Summary: | Fail Total a | 1 1 ERROR: Some tests did not pass: 0 passed, 1 failed, 0 errored, 0 broken. caused by: Some tests did not pass: 0 passed, 1 failed, 0 errored, 0 broken. ``` The `finish` function is called twice, and for a toplevel testset, this means throwing an error. This manifests in the above example by printing twice the result of the testset (with "Test Summary"), and by having "Error: ... caused by: ..." with the same message. Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 17 May 2022, 16:35:34 UTC
8a0a719 document require_one_based_indexing (#43263) 17 May 2022, 12:46:13 UTC
b039610 Narrow type signature of internal function to AbstractVector (#45328) 17 May 2022, 12:43:38 UTC
990b1f3 Remove type-unlimited unary `+` and `*` (#45320) 17 May 2022, 11:56:53 UTC
f2a2664 Merge pull request #33760 from JuliaLang/rf/edit_choose_column edit(): allow specifying the column for some editors 17 May 2022, 11:32:35 UTC
bd85247 (rebased and squashed commits) Update supported data types in TOML.print docstring (#41226) Co-authored-by: Jonathan Doucette <jdoucette@physics.ubc.ca> 17 May 2022, 11:00:53 UTC
eed2dba Typo fix. (#45333) 17 May 2022, 10:54:03 UTC
bad3e39 optimizer: use count checking framework (#44794) 17 May 2022, 10:43:26 UTC
eb4c757 build: include sysimage output in timing report (#45132) * add output time to sysimage build report via new postoutput hook 17 May 2022, 10:42:37 UTC
4d5f589 Add particular warning about `1:length(A)` pattern (#45322) Call out `1:length(A)` as a bad pattern to use when `@inbounds` is desired. 17 May 2022, 10:41:20 UTC
7178fb1 add Slices array type for eachslice/eachrow/eachcol (#32310) 17 May 2022, 08:47:13 UTC
7bd9ea2 doc: clarify edge cases when converting rational to float (#45220) We state that for any integral `a` and `b`, the expression `isequal(float(a//b), a/b)` is true unless `a` and `b` are zero. This is confusing because there are two such cases, which both require only one of `a` or `b` to be zero. The first case is the division by zero and the second case uses a negative divisor to make float division evaluate to -0.0 which has no equivalent rational number: julia> isequal(float(0//-1), 0/-1) false Clarify the conditions of the exceptional cases. 17 May 2022, 06:29:45 UTC
4f178a6 Mention use of `@sprintf` to generate a String (#45148) 17 May 2022, 06:28:37 UTC
7ee6e00 🤖 Bump the Pkg stdlib from dd7fbb2b to ab65c7c5 (#45331) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 17 May 2022, 04:24:31 UTC
6d9ae9d Add more file `open` flag constants (#45283) Make undefined constants equal to 0x0000 (ignored) for a stable API 16 May 2022, 16:15:48 UTC
eaafc21 make Tuple(x) inferable for number type (#45313) 16 May 2022, 12:46:10 UTC
ea55928 document identify_package and locate_package (#45287) 16 May 2022, 12:08:21 UTC
a91be39 Use `CartesianIndices(Rsrc)` as the shared iterator. (#45289) There's no performance change, if the `indices`s of `Rdest` and `Rsrc` are all `NTuple{N,<:AbstractUnitRange}`. 16 May 2022, 12:07:03 UTC
6962c91 document unique(i -> a[i], eachindex(a)) trick (#45291) Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr> 16 May 2022, 12:06:12 UTC
7e37de4 improve type definition super type errors (#34510) Makes the error message more precise and descriptive for each error that could occur when defining a new subtype. Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com> 16 May 2022, 11:59:23 UTC
934b40c simplify index initialization (#45292) Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> 16 May 2022, 10:43:16 UTC
bda9eaa open editor at correct column for `edit_input` 16 May 2022, 09:47:45 UTC
b2d430d edit(): allow specifying the column for some editors 16 May 2022, 09:47:43 UTC
1ee1bbd Add section for properties to the interface section (#45293) Co-authored-by: Fernando Conde-Pumpido <9221284+nandoconde@users.noreply.github.com> Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de> 16 May 2022, 09:41:56 UTC
37dd084 Merge pull request #45299 from JuliaLang/kf/rt_effect_free Fix effects modeling for return_type 16 May 2022, 04:56:16 UTC
aad9ff6 Fix incorrect effect free modeling for return_type Inlining had a special case for return_type that was not taking into account whether or not return_type was being called correctly. Since we already have the correct modeling in inference, remove the special case from inlining and simply have inference forward its conclusions. 15 May 2022, 21:57:15 UTC
5456bcc Fix effect propagation for return_type In addition to the TODO placeholder that was taininting all effects for `return_type`, we were also accidentally picking up the effects of the function we were analyzing. This mostly didn't show up as an issue, because we were treating return_type as pure in optimization, but it could prevent deletion of unused functions by incorrectly tainting the effects. 15 May 2022, 21:57:15 UTC
f9aa28f Add RowNonZero pivoting strategy to `lu` (#44571) Co-authored-by: Steven G. Johnson <stevenj@alum.mit.edu> 13 May 2022, 18:51:45 UTC
cf1f717 Generalize or restrict a few basic operators (#44564) Co-authored-by: Martin Holters <martin.holters@hsu-hh.de> Co-authored-by: Jameson Nash <vtjnash@gmail.com> 13 May 2022, 12:02:35 UTC
35aaf68 inference: properly propagate `undef`-field for `Conditional` object (#45303) It usually doesn't matter as `type_annotate!` will mark the object as used-undef anyway on a usage of `isa(x, T)` expression, but this should be more conceptually correct. 13 May 2022, 09:54:54 UTC
2168230 Make sure that eltyp is actually used for LinearAlgebra test (#38498) 13 May 2022, 07:07:22 UTC
fb58435 Improved error messages for vcat/hcat on BitArray (#33636) 13 May 2022, 07:04:58 UTC
5563eba Audit some more @assert usage in base (#31944) 13 May 2022, 07:04:38 UTC
4dcf178 Clarify that `modifyproperty!` does not call `convert` currently (#45218) 13 May 2022, 01:58:02 UTC
2df661e Two missing tests for LazyString (#45296) 12 May 2022, 23:18:23 UTC
b56e8a4 inference: some NFC refactoring (#45273) 12 May 2022, 23:13:23 UTC
b33e64e Add tests for time macro compilation reporting (#45130) * add tests for time macro compilation reporting Co-authored-by: Jameson Nash <vtjnash@gmail.com> 12 May 2022, 21:58:13 UTC
a74ef57 🤖 Bump the Pkg stdlib from 54d5c9e5 to dd7fbb2b (#45288) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 12 May 2022, 15:14:40 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
back to top