729c2f9 | Keno Fischer | 17 April 2018, 21:32:54 UTC | [NewOptimizer] inlining: Refactor todo object | 17 April 2018, 21:32:54 UTC |
84298cb | Keno Fischer | 16 April 2018, 20:30:38 UTC | [NewOptimizer] Fix _apply elision The old optimizer had an extra loop outside the inlining pass that would turn _apply's in to regular calls. When I wrote the new inliner we discussed that this wasn't actually necessary because we could just keep track of this information in the inliner (as we do for invoke). However, that of course also means that if we can't turn something into an :invoke, we should still at least turn it into a regular call. Do that. | 17 April 2018, 20:50:04 UTC |
c0e6b5b | Nathan Daly | 16 April 2018, 19:19:56 UTC | Add support for Atomic{Bool} (Fix #26542). (#26597) Adds `Bool` to list of types supported by `Atomic{T}`. Defines all `atomic_*!` for `Bool`, except `atomic_add!` and `atomic_sub!` since `add(::Bool, ::Bool)` returns an `Int`. Also adds tests for those methods to `test/threads.jl`. | 16 April 2018, 19:19:56 UTC |
9660a30 | Jameson Nash | 16 April 2018, 16:39:20 UTC | Merge pull request #26784 from JuliaLang/jn/accelerate-iterate ensure more iterators stay type-stable | 16 April 2018, 16:39:20 UTC |
3180efa | Sheehan Olver | 16 April 2018, 16:23:52 UTC | Remove argument restriction on dims2string and inds2string (#26799) (#26817) | 16 April 2018, 16:23:52 UTC |
890239f | Jeff Bezanson | 15 April 2018, 17:04:27 UTC | remove some unnecessary `eltype` methods (#26791) | 15 April 2018, 17:04:27 UTC |
8e37e1b | Jameson Nash | 14 April 2018, 03:18:41 UTC | optimize: ensure merge_value_ssa doesn't drop PiNodes | 14 April 2018, 03:20:59 UTC |
55cee67 | Jameson Nash | 12 April 2018, 01:15:27 UTC | inference: improve tmerge for Conditional and Const | 14 April 2018, 03:20:59 UTC |
ee50eee | Jameson Nash | 11 April 2018, 20:21:42 UTC | ensure more iterators stay type-stable This is a frequent performance trap. Perhaps because Tuple/NamedTuple/Pair/default-constructor usage is so much easier than `@nospecialize`. Dunno what else to do but fix them manually. | 14 April 2018, 03:20:59 UTC |
b6d81e3 | Stefan Karpinski | 13 April 2018, 22:09:58 UTC | code loading docs (#26787) | 13 April 2018, 22:09:58 UTC |
2eb9048 | Jameson Nash | 13 April 2018, 19:14:01 UTC | Merge pull request #26785 from JuliaLang/jn/newir-performance [newir] fix major performance issues | 13 April 2018, 19:14:01 UTC |
85c341c | Milan Bouchet-Valat | 13 April 2018, 17:48:30 UTC | Rework replace and replace! (#26206) Introduce a new _replace!(new::Callable, res::T, A::T, count::Int) method which custom types can implement to support all replace and replace! methods automatically, instead of the current replace!(new::Callable, A::T, count::Int). This offers several advantages: - For arrays, instead of copying the input and then replace elements, we can do the copy and replace operations at the same time, which is quite faster for arrays when count=nothing. - For dicts and sets, copying up-front is still faster as long as most original elements are preserved, but for replace(), we can apply replacements directly instead of storing a them in a temporary vector. - When the LHS of a pair contains a singleton type, we can subtract it from the element type of the result, e.g. Union{T,Missing} becomes T. Also simplify the dispatch logic by introducing the replace_pairs! function. | 13 April 2018, 17:48:30 UTC |
cb49bef | Bogumił Kamiński | 13 April 2018, 16:59:22 UTC | Improve documentation of const (#26749) * Improve documentation of const Current description of `const` in the manual gave an impression that `const` ensures that variable binding may not change, e.g.: > A common use of variables is giving names to specific, unchanging values. Such variables are only assigned once. This intent can be conveyed to the compiler using the `const` keyword and > Note that `const` only affects the variable binding. The proposed change describes the actual current behavior of `const`. * additional example of const | 13 April 2018, 16:59:22 UTC |
c149d57 | Bogumił Kamiński | 13 April 2018, 16:58:28 UTC | Fix optional argument description (#26048) * Fix optional argument description The `parse` example used keyword argument not optional argument. * change base to Date | 13 April 2018, 16:58:28 UTC |
100666b | Jameson Nash | 12 April 2018, 16:01:57 UTC | [NewOptimizer] manually optimize UseRefIterator allocations eventually, we want stack-allocations to do this automatically | 13 April 2018, 16:17:55 UTC |
f09fb93 | Jameson Nash | 12 April 2018, 00:38:43 UTC | [NewOptimizer] backport improve inlining apply 49f70adf2022f007b93d90cbe7c0da31996a83bc to new inliner | 13 April 2018, 16:17:55 UTC |
af65e71 | Jameson Nash | 11 April 2018, 19:07:06 UTC | [NewOptimizer] avoid common performance traps and fix construct_domtree performance bugs | 13 April 2018, 16:17:55 UTC |
2233ec4 | Matt Bauman | 13 April 2018, 15:28:08 UTC | Deprecate similar(f, …) in favor of just dispatching directly on f(…) (#26733) Remove AbstractArray constructors; just use dispatch on functions Make compiler test use a local function that has the known properties that we want to test. The important thing is not necessarily zeros -- it is a relatively complex function. The `Base.zeros` method tree temporarily breaks this test due to its numerous deprecations, but this will be resolved in the future. | 13 April 2018, 15:28:08 UTC |
f82eb5b | Stefan Karpinski | 13 April 2018, 14:33:48 UTC | Merge pull request #26800 from bkamins/indexing_error Distinguish getindex/setindex! error message | 13 April 2018, 14:33:48 UTC |
8d8655d | Bogumił Kamiński | 13 April 2018, 10:06:12 UTC | Distinguish getindex/setindex! error message | 13 April 2018, 10:06:12 UTC |
d63b203 | Jeff Bezanson | 13 April 2018, 02:20:07 UTC | fix #26777, echo server example in manual (#26794) | 13 April 2018, 02:20:07 UTC |
c45bbde | jmkuhn | 12 April 2018, 23:46:22 UTC | Fix signif deprecation (#26780) | 12 April 2018, 23:46:22 UTC |
52f27a7 | Bogumił Kamiński | 12 April 2018, 23:44:41 UTC | add StringIndexError documentation (#26747) | 12 April 2018, 23:44:41 UTC |
a3bf547 | Bogumił Kamiński | 12 April 2018, 23:43:30 UTC | Fix sentence style in docs (#26746) | 12 April 2018, 23:43:30 UTC |
f995cea | Bogumił Kamiński | 12 April 2018, 23:42:49 UTC | Update Strings section of the documentation (#26736) Changes: * correct description of `b"..."` construct; * correct the fact that now Julia allows invalid string literals; * add reference to `ncodeunits` and `codeunit` function; | 12 April 2018, 23:42:49 UTC |
e3e5097 | RamitPahwa | 12 April 2018, 23:30:56 UTC | add keys for SimpleVector (#26711) | 12 April 2018, 23:30:56 UTC |
6fe64fe | Tanmay Mohapatra | 12 April 2018, 23:29:33 UTC | check process type while getting bind address (#26704) fixes #26699 | 12 April 2018, 23:29:33 UTC |
3666ffa | Simon Byrne | 12 April 2018, 19:02:43 UTC | A few more #26670 fixes (#26773) Fixes BigFloat digit rounding (https://github.com/JuliaIO/Formatting.jl/pull/56). I've also tweaked the definitions to make it easier to extend to new number formats. | 12 April 2018, 19:02:43 UTC |
d1ee03f | Jeff Bezanson | 12 April 2018, 18:39:31 UTC | Revert "deprecate using the value of `.=`. fixes #25954" (#26754) This reverts commit f4a2bc8753335c577bd23dc1dcc432ee5aef2439. | 12 April 2018, 18:39:31 UTC |
1508942 | Jeff Bezanson | 12 April 2018, 18:32:59 UTC | change dim arguments for `diff` and `unique` to keyword args (#26776) | 12 April 2018, 18:32:59 UTC |
4131580 | Michael Eastwood | 12 April 2018, 18:32:20 UTC | reorder pmap arguments to allow do-block syntax (#26783) | 12 April 2018, 18:32:20 UTC |
1e08aae | Bogumił Kamiński | 12 April 2018, 15:54:21 UTC | correct deprecated parametric method syntax (#26789) | 12 April 2018, 15:54:21 UTC |
b010e70 | Jameson Nash | 11 April 2018, 19:37:14 UTC | Merge pull request #26782 from JuliaLang/jn/newir-loc [new IR] line numbers | 11 April 2018, 19:37:14 UTC |
77b65d5 | Jameson Nash | 11 April 2018, 16:13:53 UTC | [NewOptimizer] handle new IR nodes correctly in binary format | 11 April 2018, 17:10:41 UTC |
a50ba6f | Jameson Nash | 10 April 2018, 05:18:28 UTC | [NewOptimizer] support line number emission from new IR format However, there seems to be a bug in the new-IR inliner, where it is failing to correctly unique the linetable contents, which wastes memory and may lead to mistakes here. | 11 April 2018, 17:03:21 UTC |
ae59892 | Jeff Bezanson | 11 April 2018, 15:42:23 UTC | fix #26453, require obviously-concrete lower bound for a var to be diagonal (#26567) | 11 April 2018, 15:42:23 UTC |
18ac6e6 | Keno Fischer | 10 April 2018, 22:31:41 UTC | Merge pull request #26755 from JuliaLang/kf/liftselect Also lift SelectInst addrspaces | 10 April 2018, 22:31:41 UTC |
bc219ed | Jeff Bezanson | 10 April 2018, 19:41:47 UTC | fix #26743, spurious `return` path in try-finally in tail position (#26753) | 10 April 2018, 19:41:47 UTC |
89d2397 | Alex Arslan | 10 April 2018, 15:47:52 UTC | Fix deprecation warning in base/loading (#26762) | 10 April 2018, 15:47:52 UTC |
4984321 | Simon Byrne | 10 April 2018, 15:17:43 UTC | Fix a few errors from #26670 (#26760) e.g. https://github.com/JuliaLang/julia/pull/26670#issuecomment-379766088 | 10 April 2018, 15:17:43 UTC |
c3730bb | Stefan Karpinski | 10 April 2018, 14:08:14 UTC | Merge pull request #26768 from JuliaLang/kc/bump_pkg3_5 Bump Pkg3 | 10 April 2018, 14:08:14 UTC |
0dd1750 | Kristoffer Carlsson | 10 April 2018, 13:26:38 UTC | fix a doctest type (no ending quotes) (#26769) | 10 April 2018, 13:26:38 UTC |
3e0eb23 | Kristoffer Carlsson | 10 April 2018, 12:38:35 UTC | bring back LibGit2 docs (#26766) | 10 April 2018, 12:38:35 UTC |
dbe17d1 | Kristoffer Carlsson | 10 April 2018, 12:38:03 UTC | Update SHA (#26758) * allow AbstractVector{UInt8}, make fewer copies * rm newline | 10 April 2018, 12:38:03 UTC |
fa8a367 | Kristoffer Carlsson | 09 April 2018, 14:10:20 UTC | small bugfix with version handling (#247) | 10 April 2018, 10:28:19 UTC |
1d8719e | Kristoffer Carlsson | 09 April 2018, 13:29:30 UTC | use Project to find dependencies for packages with projects (#246) | 10 April 2018, 10:28:15 UTC |
9afe0ba | Kristoffer Carlsson | 09 April 2018, 11:04:40 UTC | check Project file for dependencies in dependencies with a path entry (#245) | 10 April 2018, 10:28:10 UTC |
1cf5509 | Kristoffer Carlsson | 06 April 2018, 14:02:05 UTC | build new packages added from git | 10 April 2018, 10:28:06 UTC |
175bde2 | Carlo Baldassi | 06 April 2018, 18:05:28 UTC | Slightly relax GraphType.check_constraints (#242) cf. discussion in #228 | 10 April 2018, 10:28:01 UTC |
b461e67 | Carlo Baldassi | 06 April 2018, 18:05:04 UTC | Avoid overwriting user-defined settings in REPL (#243) | 10 April 2018, 10:27:57 UTC |
000f243 | Tim Besard | 10 April 2018, 06:39:40 UTC | Merge pull request #26697 from JuliaLang/tb/log_after_exit Enable logging after exit with atexit hook. | 10 April 2018, 06:39:40 UTC |
4653894 | Jameson Nash | 10 April 2018, 04:01:38 UTC | runtime-cfunction: allocate gc-permgen object correctly (#26732) | 10 April 2018, 04:01:38 UTC |
cfe4f09 | Keno Fischer | 09 April 2018, 20:52:15 UTC | Merge pull request #26738 from JuliaLang/kf/ssafixup [NewOptimizer] Various misc bugfixes | 09 April 2018, 20:52:15 UTC |
75fcbd0 | Matt Bauman | 09 April 2018, 19:51:23 UTC | Teach at-dot about chained comparisons (#26721) * Teach at-dot about chained comparisons Fixes #23622. `@. 1 < A < 2` now works as expected. * Prevent double-dotting and add test * Also ensure that the comparison ops are symbols * Also check isoperator(arg) | 09 April 2018, 19:51:23 UTC |
14e9c42 | Keno Fischer | 09 April 2018, 18:03:09 UTC | Also lift SelectInst addrspaces This is a followup to #26668, and performs the same operation, but for `select` instructions rather than for phi nodes. Came up when looking at IR generated by the new optimizer for kf/iterate. | 09 April 2018, 18:06:00 UTC |
3f62433 | Jeff Bezanson | 09 April 2018, 17:25:48 UTC | fix call to `isoperator` in show of unary call expressions (#26734) introduced by #26723 | 09 April 2018, 17:25:48 UTC |
b08c262 | Tim Besard | 09 April 2018, 13:13:15 UTC | Merge pull request #26005 from JuliaLang/cjf/logging-docs Documentation for the Logging stdlib | 09 April 2018, 13:13:15 UTC |
40c230c | Tim Besard | 09 April 2018, 13:11:12 UTC | Clarify handling of message argument. [ci skip] | 09 April 2018, 13:11:12 UTC |
f659d5d | Rafael Fourquet | 09 April 2018, 08:06:11 UTC | REPL: add option to disable auto-indent feature (#26605) | 09 April 2018, 08:06:11 UTC |
4d18139 | Tim Besard | 09 April 2018, 07:31:21 UTC | Add a test. | 09 April 2018, 07:31:21 UTC |
3a818e3 | Tim Besard | 04 April 2018, 13:48:08 UTC | Enable logging after exit with atexit hook. Fixes #26687 | 09 April 2018, 07:19:34 UTC |
94a1d78 | Tim Besard | 09 April 2018, 07:08:24 UTC | Add docs on #26265. | 09 April 2018, 07:08:24 UTC |
22d570b | Chris Foster | 14 February 2018, 14:10:17 UTC | Grammar tweaks and other small fixes Remove default implementations for shouldlog and min_enabled_level as these seem more likely to cause confusion than be useful. | 09 April 2018, 06:55:06 UTC |
8f7d69d | Chris Foster | 10 February 2018, 03:36:50 UTC | Documentation for the Logging stdlib | 09 April 2018, 06:55:06 UTC |
bde5344 | Tim Besard | 09 April 2018, 06:50:29 UTC | Merge pull request #26265 from JuliaLang/jn/logging-by-env Logging: enable configuration via ENV | 09 April 2018, 06:50:29 UTC |
12da57f | Keno Fischer | 09 April 2018, 03:05:08 UTC | Merge pull request #26751 from JuliaLang/kf/select_valuefix Fix specialized select_value codegen | 09 April 2018, 03:05:08 UTC |
8fc98ea | Keno Fischer | 09 April 2018, 01:02:17 UTC | Extend undef code to all cases There's more cases where we need to have the value behave as if it was an SSA undef. Simply extend the code we have here to all such cases. | 09 April 2018, 01:02:17 UTC |
a3f3646 | Keno Fischer | 08 April 2018, 23:16:52 UTC | Add missing nospecialize | 08 April 2018, 23:17:20 UTC |
32965bc | Keno Fischer | 08 April 2018, 22:56:52 UTC | Fix specialized select_value codegen When inference sees something like: ``` select_value(true, 1::Int, 1.0::Float64) ``` it knows that the condition is constant and can thus conclude that the result is of `Int` type. Generally, we would fold this away in inlining. However, if inlining is disabled for whatever reason. We can end up with ``` select_value(true, 1::Int, 1.0::Float64)::Int ``` in codegen. After the recent enhancements to select_value and without this patch, this would cause an unconditional trap to be generated as it tried to convert 1.0 to `Int`. This patch instead makes sure that the branches of the select have non-empty intersection with the annotated result type before attempting the conversion, thus preventing this case from crashing. | 08 April 2018, 23:01:58 UTC |
7c24609 | Valentin Churavy | 08 April 2018, 17:02:41 UTC | Merge pull request #26698 from vchuravy/vc/convinience Making working with LLVM a bit more convenient | 08 April 2018, 17:02:41 UTC |
a2f805e | Valentin Churavy | 08 April 2018, 17:01:59 UTC | Merge pull request #26674 from JuliaLang/vc/llvm6-patches2 update patch list for LLVM 6 | 08 April 2018, 17:01:59 UTC |
280539d | Keno Fischer | 07 April 2018, 22:14:58 UTC | Fix some try/catch issues | 07 April 2018, 22:14:58 UTC |
a96d847 | Keno Fischer | 07 April 2018, 21:52:21 UTC | Merge pull request #26742 from JuliaLang/kf/fixdotfastpath Fix dot-evaluation fast path | 07 April 2018, 21:52:21 UTC |
c582c34 | Keno Fischer | 07 April 2018, 20:56:36 UTC | Merge pull request #26735 from JuliaLang/kf/ssawip [NewOptimizer] Correctly handle new-style IR in interpreter | 07 April 2018, 20:56:36 UTC |
8316172 | Keno Fischer | 06 April 2018, 23:49:18 UTC | Fix partially specified phinodes of bits types | 07 April 2018, 20:28:04 UTC |
e2823ee | Keno Fischer | 07 April 2018, 18:52:24 UTC | Fix dot-evaluation fast path Broadcast calls like `sin.(x)` are parsed to Expr(:(.), :sin, Expr(:tuple, :x)) before lowering. As a result, they got caught in the top-level interpreters fast path for lowering calls like that to getfield/getproperty, causing #26739. Fixes 26739 | 07 April 2018, 18:52:24 UTC |
ca0de70 | Keno Fischer | 05 April 2018, 23:56:33 UTC | Correctly handle new-style IR in optimizer | 06 April 2018, 20:48:19 UTC |
a8c6376 | Keno Fischer | 06 April 2018, 20:12:56 UTC | [NewOptimizer] A couple of fixes that got accidentally dropped | 06 April 2018, 20:12:56 UTC |
98b1206 | Bogumił Kamiński | 06 April 2018, 19:49:49 UTC | Improve documentation of parsing of triple quotes (#25594) | 06 April 2018, 19:49:49 UTC |
c2c83e6 | Bogumił Kamiński | 06 April 2018, 19:49:11 UTC | Clarification of repeated keyword argument rule (#26051) | 06 April 2018, 19:49:11 UTC |
59eae7d | Simon Byrne | 06 April 2018, 18:20:40 UTC | Combine `signif` into round, use keyword args for digits/sigdigits (#26670) | 06 April 2018, 18:20:40 UTC |
ff7b645 | Jeff Bezanson | 06 April 2018, 17:16:25 UTC | fix variable bounds consistency checks in subtyping (#26718) fixes #26129, fixes #24748 | 06 April 2018, 17:16:25 UTC |
c19fc91 | Keno Fischer | 06 April 2018, 16:28:43 UTC | Merge pull request #26719 from JuliaLang/sb/windownload check for powershell version in download | 06 April 2018, 16:28:43 UTC |
11e4535 | Keno Fischer | 06 April 2018, 16:27:35 UTC | Merge pull request #26723 from JuliaLang/jb/fix26717 fix #26717, deparse of `:(:)` | 06 April 2018, 16:27:35 UTC |
9a0864e | Jameson Nash | 28 February 2018, 20:57:50 UTC | Logging: enable configuration via ENV This restores the functionality we had previously to set JULIA_DEBUG_LOADING=1 to activate logging; now the equivalent would be to set JULIA_DEBUG=loading. But with the new infrastructure, this is also generalized to allow filtering on any key (module, root-module, or filename), or "all". This sits between the global disable (which still provides a fast-path to skip everything), and the default min-level for a logger (which will be overridden by the environment variable). This also tries to move a bit more work into non-inlined helper functions, rather than inlining that code directly, to slightly reduce the size of the emitted code. As a possible future improvement, we could allow specifying specific levels (such as `loading=MaxLevel` or `all=Debug`), to provide even more fine-grained control. fix #25549 | 06 April 2018, 16:22:36 UTC |
b89e012 | Jameson Nash | 06 April 2018, 16:21:43 UTC | Merge pull request #26628 from JuliaLang/jn/typelimits inference: remove MAX_TYPE_DEPTH limit, rewrite tmerge | 06 April 2018, 16:21:43 UTC |
c960f18 | Keno Fischer | 06 April 2018, 16:20:44 UTC | Merge pull request #26668 from JuliaLang/kf/addrspacephi Handle PHI nodes in address space propagation | 06 April 2018, 16:20:44 UTC |
59bffa5 | Keno Fischer | 06 April 2018, 16:18:56 UTC | Merge pull request #26726 from JuliaLang/kf/ssaexc [NewOptimizer] Handle exceptions in new IR | 06 April 2018, 16:18:56 UTC |
16e4f85 | Kristoffer Carlsson | 06 April 2018, 14:41:07 UTC | make skipping stdlib tests work (#26700) * make skipping stdlib tests work * also allow filtering of test groups in stdlibs * make ambiguous run first * Symbol -> String in errorshow | 06 April 2018, 14:41:07 UTC |
209a8f5 | Kristoffer Carlsson | 06 April 2018, 14:15:01 UTC | add test for #18109: findlast with unicode (#26710) * add test for #18109: findlast with unicode | 06 April 2018, 14:15:01 UTC |
6569fd0 | Ian Fiske | 06 April 2018, 09:13:39 UTC | Update index.md: typo that negates logic (#26727) | 06 April 2018, 09:13:38 UTC |
de26816 | Kristoffer Carlsson | 06 April 2018, 06:54:16 UTC | Merge pull request #26696 from JuliaLang/kc/bump_pkg3_4 Bump Pkg3 | 06 April 2018, 06:54:16 UTC |
15acf6f | Valentin Churavy | 06 April 2018, 03:26:50 UTC | remove remains of old LLVM buildsystem | 06 April 2018, 03:26:50 UTC |
f59a833 | Valentin Churavy | 06 April 2018, 03:12:04 UTC | Merge pull request #26720 from JuliaLang/vc/clang_patch add clang part of D28476 | 06 April 2018, 03:12:04 UTC |
7ddc02d | Keno Fischer | 05 April 2018, 23:32:20 UTC | Add some docs on the new nodes | 05 April 2018, 23:32:20 UTC |
4577c0f | Keno Fischer | 30 March 2018, 23:07:52 UTC | Handle PHI nodes in address space propagation Until now the IR we emitted did not have any PhiNodes of addrspaced pointers. However, the new optimizer will introduce these. Not being able to propagate address spaces across them was causing significant poblems for LLVM's SROA pass. Teach the pass to handle them. | 05 April 2018, 22:51:56 UTC |
4ef8360 | Keno Fischer | 05 April 2018, 21:39:32 UTC | Move new node exports Core -> Core.IR | 05 April 2018, 21:39:32 UTC |
2394213 | Jameson Nash | 30 March 2018, 16:24:11 UTC | ssair: another bug ``` julia> iterate(t::Tuple, i=1) = (i > length(t) ? nothing : (t[i], i+1)) julia> function any_iterate(f, y) st = iterate(y) while !(st === nothing) f(st[1]) && return true st = iterate(y, st[2]) end return false end julia> code_typed(any_iterate, typeof((x -> :c == x, (:a, :b)))) ``` | 05 April 2018, 21:24:25 UTC |
10776d9 | Jameson Nash | 30 March 2018, 15:13:08 UTC | ssair: fix misc bugs, improve printer | 05 April 2018, 21:24:25 UTC |
5bb3290 | Keno Fischer | 28 March 2018, 00:26:10 UTC | Add reverse affinity flag for compaction | 05 April 2018, 21:23:00 UTC |