sort by:
Revision Author Date Message Commit Date
3601351 Link the llvmcall IR modules after codegen. 19 August 2020, 12:36:07 UTC
0fb7015 Make it possible to specify module bitcode as a byte array. 19 August 2020, 12:36:07 UTC
96d3673 Simplify llvmcall, only supporting literal function or module IR inputs. 19 August 2020, 12:36:07 UTC
0fd5833 Use Documenter 0.25.2 and reenable some doctests (#37110) 19 August 2020, 09:02:16 UTC
fa1d1c8 doc: Use specific method when including eps docstring (#37115) 19 August 2020, 09:01:39 UTC
72ffbf1 Mark array/string/svec size range (#37051) We require the length and size to both be signed integer so mark them as such for LLVM. This helps removing some unnecessary sign checks when calling C functions that expect a `size_t` 19 August 2020, 04:37:37 UTC
c15560e Optimize write barrier when the child is a perminately allocated object (#37043) Currently support `Int8`, `UInt8` and `Symbol`. Most useful for `Symbol` since box with known `Int8` or `UInt8` types are almost always allocated locally. 19 August 2020, 04:37:06 UTC
2db4167 Solve inference problems in IRShow (#37079) While not performance-sensitive, inference problems here make this code vulnerable to invalidation. (IRShow is in Base so is not subject to the protections of Core.Compiler.) 19 August 2020, 02:12:46 UTC
4c7026c Reduce reliance on promotion operations via container typing (#37088) While building Julia, we have a *lot* of calls to promote, often with abstract types. This short-circuits most of these by declaring the container type at the outset. This has one user-visible outcome, improved inference for `walkdir`. 19 August 2020, 02:10:50 UTC
0dab9e3 Improve inference for a few Distributed operations (#37089) 19 August 2020, 02:01:27 UTC
903542b workaround for #35800, inference issue in `mapreduce` (#37105) 18 August 2020, 22:37:45 UTC
bf8a8e8 Add `get-task-allow` entitlement to allow debuggers to attach to codesigned Julia (#37069) Without this entitlement, users that wish to attach a debugger to the codesign Julia executable they receive from `julialang.org` must strip the codesigning signature from the Julia executable (e.g. via `codesign --remove-signature Julia-1.5.app/Contents/Resources/bin/julia`). This has its disadvantages, of course, so much better to simply declare to the OS that it's alright for other processes to attach to this process. 18 August 2020, 16:25:30 UTC
b996484 faster digits(::BigInt) (#37075) 18 August 2020, 15:41:37 UTC
b514735 Update memory allocs for using views (#37096) Julia 1.5 wonderfully allocates views on the stack (as you know.) This PR updates the memory values reported to match 1.5. 18 August 2020, 13:17:09 UTC
1d950f4 Mark load from DataType as constant (#37044) 18 August 2020, 09:14:34 UTC
327b2e3 Fix type of allocated array when broadcasting type unstable function (#37028) We need to call similar on the `Broadcasted` object rather than on dest array. Otherwise the `BroadcastStyle` isn't taken into account when allocating new array due to function returning elements of different types. 17 August 2020, 20:09:56 UTC
613af3c A typo: `is exists` => `exists` (#37067) 17 August 2020, 14:01:31 UTC
66651f8 Simplify inttoptr generation a little bit in codegen (#37072) This get rid of >90% of inttoptr during codegen, slightly less than half become no-op. This should not have any effect on the final code after optimization. 17 August 2020, 13:56:39 UTC
58febaa Correct a line break (#37064) * Correct a line break * Update doc/src/manual/calling-c-and-fortran-code.md Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> 17 August 2020, 07:30:12 UTC
d47f7d0 doc: add compat entry for sincospi (#37055) 15 August 2020, 10:34:42 UTC
34c8d9e Fix path to distributing.md in Makefile (#37026) 15 August 2020, 10:31:47 UTC
782368a Fix link to packages in README.md (#37025) 15 August 2020, 10:30:58 UTC
e30e6e2 REPL: assure the compiler that line::String (#37018) 14 August 2020, 21:17:17 UTC
51be63c flatten recursive call to cat_shape (#36838) 14 August 2020, 21:10:47 UTC
1a47fce Head off invalidations in to_indices for NTuple{N,Int} (#37021) The most common argument type for `to_indices` is a tuple of `Int`, yet we rely on the `Integer` fallback. This makes it vulnerable to invalidation by methods like https://github.com/JuliaMath/Interpolations.jl/blob/bcd05a3f0843661104589c31da8d257fecdbe265/src/Interpolations.jl#L273 which would rather convert non-`Int` integers. This prevents approximately 80 MethodInstance invalidations. 14 August 2020, 20:18:05 UTC
7891704 [Distributed]: AbstractString -> String in field types (#37017) 14 August 2020, 20:17:21 UTC
4441e3a yield: reduce DEFAULT_THREAD_SLEEP_THRESHOLD timeout (#37016) This defines how much time we waste before letting another process run. Until we have performance measurements, this should probably be small. Closes #36952 14 August 2020, 20:15:48 UTC
805be2d mention __source__ and __module__ in macro docstring (#37008) 14 August 2020, 20:15:33 UTC
8b3cb2f win32: fix in_stackwalk mutex (#37002) This should make this previously non-atomic mutex threadsafe. Fixes #35117 14 August 2020, 20:14:48 UTC
8554a21 inference: rm unused `vtypes` arguments (#37042) These were left over from when our IR wasn't quite linear yet and it was possible to have to evaluate another slot deep in the nesting context. Since that's not true anymore, these arguments are all unused. 14 August 2020, 06:59:18 UTC
fb2e1ef Allow LLVM to optimize GC write barriers for new objects (#36992) Make alignment of tag more obvious for LLVM and add a few optimization passes after GC lowering to let LLVM delete some write barriers. This fixes a regression from LLVM < 5 where the pass ordering makes this happen automatically. 14 August 2020, 03:10:12 UTC
6de97d5 Make a few more GEP's inbounds (#37040) Also add a few missing llvm eltypes for load and GEPs. 14 August 2020, 02:21:40 UTC
03e1a89 Define `OrderStyle` for `Union{}` (#36810) Removes ambiguity: ``` julia> Base.OrderStyle(Union{}) ERROR: MethodError: Base.OrderStyle(::Type{Union{}}) is ambiguous. Candidates: ``` This error is relevant as with current `unique!` definition that relies on `OrderStyle` one can have a problem in corner cases. E.g.: ``` julia> [i for i in ["1"] if i isa Int] 0-element Array{Union{},1} ``` Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr> 13 August 2020, 14:37:29 UTC
fedde78 Avoid constructing an array only to splat it to make a tuple in tuple_tfunc (#36926) * Avoid constructing an array only to splat it to make a tuple in tuple_tfunc * use ntuple 12 August 2020, 23:55:48 UTC
06b7f0b fix #28188: filename lost in cmd interpolation (#37007) * fix 28188: filename lost in cmd interpolation * move test to test/misc.jl 12 August 2020, 23:54:17 UTC
5be3a54 Update Documenter to 0.25.1. (#36983) Co-authored-by: Ian <i.r.butterworth@gmail.com> Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> 12 August 2020, 20:59:48 UTC
7b9a941 [ci skip] fix typo in Windows installer (#37013) 12 August 2020, 17:08:16 UTC
54d73a8 This hoists some work-arounds for computation of eltypes for zero-size vectors out of the loops in order to get a speedup in some cases where type inference otherwise takes tuple types. (#36975) 12 August 2020, 16:20:00 UTC
b9e1fa7 Mentioned flag in nonstandard string literal docs (#36881) 12 August 2020, 16:12:36 UTC
737e2fe Add micro editor support (#36917) 12 August 2020, 16:08:52 UTC
d28b737 Fix docstring for `Val(c)` in order that `c` accepts a `Symbol` (#36908) 12 August 2020, 16:06:19 UTC
93f8a45 Add an option to force codegen in imaging mode (#36990) This allows much easier debugging of imaging mode codegen without hacks like specifying a dummy output and manually running module init functions. Also allows specializing codegen to give result more similar to code in actual sysimg in this debugging mode. Ref #36974. 12 August 2020, 00:25:04 UTC
c53cb15 Make sure global constants are recognized as such in our own pass (#36970) The metadata on the load may be striped by LLVM when moving code around 12 August 2020, 00:24:40 UTC
447cd05 Faster replace when pattern is not found (#36961) 11 August 2020, 21:31:51 UTC
ccb81e6 Slight inlining refactor (#36998) Move the code that inlines results from `@pure` function earlier. It doesn't depend on any of the method analysis, so doing that work was just wasted time. 11 August 2020, 18:32:46 UTC
102c9ac fix #36869, incorrect intersection with `Union` in supertype (#36996) 11 August 2020, 16:30:47 UTC
1fcd6e3 REPL completions: make \ith alias for \planck (#36993) 11 August 2020, 15:35:42 UTC
9be01af make Task `state` field more efficient (#36811) 11 August 2020, 14:54:34 UTC
894ee04 doc: provide a better example for `get!(f::Function, collection, key)` (#36964) 11 August 2020, 08:47:10 UTC
2d9a7c8 doc: update "```" to "```julia-repl" to correct highlighting (#36995) 11 August 2020, 08:38:19 UTC
d886cb2 doc: ref typo: [`at-spawnat`] => [`at-spawnat`](at-ref) (#36999) 11 August 2020, 08:37:44 UTC
bdaa578 doc: update "```" to "```julia" to correct highlighting (#36997) 11 August 2020, 08:36:56 UTC
d5429f8 Allow inspecting LLVM code during imaging mode (#36974) 11 August 2020, 04:38:46 UTC
cf82c19 Refactor OptimizationState lifetime (#36700) In #36508 we decided after some consideration not to add the `stmtinfo` to the `CodeInfo` object, since this info would never be used for codegen. However, this also means that external AbstractInterpreters that would like to cache pre-optimization results cannot simply cache the unoptimized `CodeInfo` and then later feed it into the optimizer. Instead they would need to cache the whole OptimizationState object, or maybe convert to IRCode before caching. However, at the moment we eagerly drop the `OptimizationState` wrapper as soon was we decide not to run the optimizer. This refactors things to keep the OptimizationState around for unoptimized methods, only dropping it right before caching, in a way that can be overriden by an external AbstractInterpreter. We run into the inverse problem during costant propagation where inference would like to peek at the results of optimization in order to decide whether constant propagation is likely to be profitable. Of course, if optimization hasn't actually run yet for this AbstractInterpreter, this doesn't work. Factor out this logic such that an external interpreter can override this heuristic. E.g. for my AD interpreter, I'm thinking just looking at the vanilla function and checking its complexity would be a good heuristic (since the AD'd version is supposed to give the same result as the vanilla function, modulo capturing some additional state for the reverse pass). 11 August 2020, 01:42:48 UTC
b2cee8a Workaround LLVM musttail bug (#36981) 11 August 2020, 01:38:13 UTC
ae5399d Optimize Int8 and UInt8 boxing. (#36991) 10 August 2020, 23:53:14 UTC
00f2133 Fix replace (#36953) (#36959) 10 August 2020, 13:38:07 UTC
53aca5d gf: fix method lookup for Kind objects (#36945) Fixes #36940 10 August 2020, 04:08:49 UTC
91d384c Fix #36955 (#36956) This is an LLVM bug. See upstream discussion at https://reviews.llvm.org/D85499. 08 August 2020, 23:34:03 UTC
be7407f Add docstrings for SHA module (#36777) 08 August 2020, 19:45:12 UTC
a652cd8 fix confusion between function name and local variable (#36914) 08 August 2020, 19:34:58 UTC
dffc889 filesystem: fix some error handling (#36856) walkdir: fix thrown error location and types and performance readdir: fix thrown error code on some OS seek: fix thrown error code on Windows 07 August 2020, 15:04:43 UTC
7c0cb30 Correct TSAN tasking integration (#36929) In order for tsan to work, any setjmp/longjmp must be executed while that task's tsan state is active. As a result, we cannot switch the tsan state until said setjmp is completed, but need to do it (as basically the only thing happening) between the setjmp and the subsequent longjmp. To facilitate this without too much disruption, move the tsan state into the jl_ucontext_t, which seems appropriate since it's additional state that needs to be restored on context switch. Also forbid using TSAN from Clang < 11, where the runtime library has bugs that cause us to exhaust the maximum number of allowed mappings. 07 August 2020, 05:02:14 UTC
de7442e Missing parentheses (#36947) 07 August 2020, 02:20:04 UTC
426dd8e fixes problematic abstract eval passes: (#36948) - `abstract_eval_value_expr` will no longer return `nothing` - fix problematic `isdefined` check within `abstract_eval_statement` 07 August 2020, 00:38:17 UTC
c1656e9 Update PkgTemplates syntax in workflow-tips.md (#36935) 06 August 2020, 20:26:35 UTC
dec8f72 Merge pull request #36920 from JuliaLang/yyc/codegen/track Some cleanup and comment for addrspace tracking in codegen 06 August 2020, 16:56:58 UTC
afe562c Miscellaneous task/thread related tweaks (#36927) - use ThreadSynchronizer type alias in ReentrantLock - tweak the `timedwait` documentation; in particular, rename the `testcb` argument to `callback` - clarify an "Special note for Threads.Condition" to not reference a variable `c` that was never defined 06 August 2020, 16:55:35 UTC
6d356db compiler: remove unnecessary `AbstractEvalConstant` alias (#36936) - it's been used as an alias to `Core.Const` and so there's been two ways to construct them, i.e. via `Const`'s constructor and `AbstractEvalCall` - I think this indirection is unnecessary, but rather just confusing so rename all the `AbstractEvalConstant` to `Const` 06 August 2020, 16:01:43 UTC
aaf57b1 Add missing checksums for libuv source (#36905) This was missed from #36756 and was deleted in #36776 . 06 August 2020, 15:27:40 UTC
e4bf608 Fix spurious warning about suitesparse-wrapper version mismatch. (#36904) Also make sure the warning print something more useful if the version file can't be found and don't print an error about file not found. 06 August 2020, 15:25:24 UTC
4c1e3c0 Alloc Opt pass clean up (#36922) 06 August 2020, 04:35:51 UTC
065efdd Add variable shadowing link to wikipedia (#36930) 06 August 2020, 04:35:05 UTC
48602c5 smaller `Task` object (#36802) - move locks array to thread-local state - move tid,prio to occupy existing alignment padding 05 August 2020, 20:55:00 UTC
30e9528 Minor clarification about data races (#36924) 05 August 2020, 18:30:44 UTC
a6de8b6 Fix invalidations from novel Integer conversions (#36459) Defining struct MyInt <: Integer x::Int end (::Type{T})(x::MyInt) where T<:Integer = T(x.x) triggers about 830 unique method invalidations. This fixes the majority of them, but it's a lot of type-annotation. 05 August 2020, 14:09:19 UTC
59a87ee Prevent invalidations from eltype(::Type{<:NamedTuple}) (#36921) This provides a fallback `eltype` method specialized for imprecise NamedType types. Formerly we were calling the generic eltype fallback `eltype(::Type) = Any`, but relying on the generic fallback makes code vulnerable to invalidation when new `eltype` methods are added. Since this affects any poorly-inferred keyword-arg function, it's best to isolate this by defining a specialization. 05 August 2020, 14:08:29 UTC
371bfa8 normalize parsing of `-->` (#36793) 05 August 2020, 00:49:23 UTC
d862442 add ThreadSanitizer support (#27167) - enables building with TSAN for the runtime library as well as Julia code - updates the handling of `SANITIZE=1` in Make.inc - moves sanitizer to late in the pipeline, copies what Clang does - cleans up `options.h`, and `julia_internal.h` w.r.t sanitizers - update devdocs for sanitizer - adds a patch for TSAN to deal with Julia's usage of address spaces - don't use COPY_STACKS with TSAN - don't use DEEPBIND by default if a sanitizer is enabled 05 August 2020, 00:03:16 UTC
c342ef8 Add `haskey(::RegexMatch, ::Symbol)` to test for named capture groups (#36717) 04 August 2020, 22:16:41 UTC
45ac810 Add `parse()` and `tryparse()` for `VersionNumber`s (#36900) 04 August 2020, 18:33:20 UTC
964fc9f Clean up for `maybe_decay_tracked` * Document returned LLVM type for a few functions * Require and assert `Vboxed` to be of type `T_prjlvalue` * Remove unused branch/specialization of `maybe_decay_tracked` * Add function to cast known-untracked value. 04 August 2020, 18:22:15 UTC
e3a4916 NFC: Remove implicit parameter 04 August 2020, 17:29:53 UTC
fc9a502 NFC: Introduce `V_rnull` to replace `maybe_decay_untracked(V_null)` 04 August 2020, 17:29:53 UTC
8a66560 Update index.md (#36912) `nnz` counts the number of elements stored in the `SparseMatrixCSC`. "Structural nonzeros" is a tautology. 04 August 2020, 16:02:02 UTC
c593e1f Fix the displaying of mod2pi(x) description (#36909) There was some extra space 04 August 2020, 16:00:30 UTC
b00a0c6 updated readme to reference most recent stable version released (#36915) Co-authored-by: tylebrow <tyler.brown@gartner.com> 04 August 2020, 14:44:44 UTC
4ea4825 Add LICM pass to hoist julia intrinsics. (#36809) Fix #36803 04 August 2020, 02:31:53 UTC
537664f test: fix textual output for precompile (#36858) We might print ANSI color codes around ERROR now, making this test unreliable. 04 August 2020, 01:24:54 UTC
193b21b update MPFR to v4.1.0 (#36776) Includes build fixes to ensure it is built thread-safe. Fixes #35796 regression. 04 August 2020, 01:23:26 UTC
5e82790 Streamline bail path in inlining (#36771) When inlining declines to inline something, it instead turns them into :invoke statements. These are then turned into direct (non-inlined) calls by codegen or otherwise receive a fast path at runtime. While inlining has evolved quite a bit, this code has stayed much the same since it was introduced four years ago and doesn't seem to make much sense as is. In particular: 1. For the non-`invoke()` case we were doing an extra method look that seems entirely superfluous, because we already had to do the very same method lookup just to reach this point. The only thing this path was doing at that point was creating a "compilable" specialization (which might use a slightly different signature). We might as well do that directly. 2. For the invoke case, we were pro-actively adding the specialization to the `->invokes` dispatch cache. However, this doesn't make much sense a priori either, because the bail path does not go through the runtime `invoke()` code that uses that cache (it did many years ago when this code was introduced, but hasn't in a long time). There does not seem to be a good reason to believe that this signature will be any more likely than any other to be invoked using the runtime mechanism. This cleans up that path by getting rid of both the superfluous method lookup and the superfluous addition to the `->invokes` cache. There should be a slight performance improvement as well from avoiding this superfluous work, but the bail path is less common than one might expect (the vast majority of call sites are inlined) and in measurements the effect seems to be in the noise. Nevertheless, it seems like a nice simplification and is conceptually clearer. 04 August 2020, 00:46:38 UTC
ea07765 doc: change outdated warn admonitions to warning (#36887) 03 August 2020, 23:32:32 UTC
374c8d4 Fix invalidations from novel Integer conversions Defining struct MyInt <: Integer x::Int end (::Type{T})(x::MyInt) where T<:Integer = T(x.x) triggers about 830 unique method invalidations. This fixes the majority of them, but it's a lot of type-annotation. 03 August 2020, 00:42:37 UTC
1888e31 Merge pull request #36851 from sostock/unique_for_ranges * Fix allunique(::StepRangeLen) * Add specialized unique(::AbstractRange) method 02 August 2020, 15:45:05 UTC
84ef118 Fix codegen compilation warnings. (#36847) * uninitialized field warning * LLVM 10 deprecation warning for CreateMemCpy 01 August 2020, 18:56:32 UTC
f2319b5 hypot scaling constant folding (#36365) The scaling constant in `hypot` wasn't being constant folded. Fixes #36353. 01 August 2020, 04:30:05 UTC
40e2d59 Add unsafe_string for Cwstring (#36040) Also adds some tests for Cwstring handling, fixes #28863. 01 August 2020, 04:29:11 UTC
984749b CITATION: http:// -> https:// (#36813) 01 August 2020, 01:10:40 UTC
fb152de Do not include commit-offset number in VERSION if we are building for a tag. (#36867) 31 July 2020, 19:05:57 UTC
af39538 Better deployment of rc docs #36859 31 July 2020, 15:09:31 UTC
back to top