7c78b02 | Fredrik Ekre | 23 May 2018, 11:26:04 UTC | RFC: check the info code on getproperty now that we have replaced e.g. chol(A) with cholesky(A).U we don't check for positive definiteness anymore. This adds a check for that. | 23 May 2018, 11:26:04 UTC |
3d60bfa | Fredrik Ekre | 23 May 2018, 11:18:55 UTC | update Val and uplo deprecations for cholfact[!], bkfact[!], lufact[!], qrfact[!] | 23 May 2018, 11:18:55 UTC |
116d672 | Fredrik Ekre | 23 May 2018, 11:09:53 UTC | deprecate chol!(A) to cholesky!(A).U | 23 May 2018, 11:11:15 UTC |
82a019c | Fredrik Ekre | 23 May 2018, 11:00:45 UTC | deprecate chol: - chol(A::AbstractMatrix) -> cholesky(A).U - chol(A::Number) -> sqrt(A) - chol(A::UniformScaling) -> UniformScaling(sqrt(J.λ))) | 23 May 2018, 11:11:15 UTC |
62e0b7e | Fredrik Ekre | 23 May 2018, 11:00:05 UTC | deprecate chol(A) to cholesky(A).U | 23 May 2018, 11:00:05 UTC |
2ecd19f | Sacha Verweij | 23 May 2018, 05:08:40 UTC | Expand pull request numbers for some news items. | 23 May 2018, 05:08:40 UTC |
0eda705 | Sacha Verweij | 23 May 2018, 05:05:53 UTC | Deprecate decomposition getindex methods in favor of property accessors. | 23 May 2018, 05:05:53 UTC |
51b1e3b | Sacha Verweij | 23 May 2018, 04:44:36 UTC | Deprecate eig to eigen and destructuring via iteration. | 23 May 2018, 04:44:36 UTC |
6e5d700 | Sacha Verweij | 23 May 2018, 04:13:01 UTC | Deprecate cholfact! to cholesky!. | 23 May 2018, 04:25:59 UTC |
8f2b195 | Sacha Verweij | 23 May 2018, 03:56:40 UTC | Deprecate cholfact to cholesky. | 23 May 2018, 04:25:59 UTC |
ee57c76 | Sacha Verweij | 23 May 2018, 03:27:22 UTC | Deprecate eigfact! to eigen!. | 23 May 2018, 04:25:58 UTC |
0d3c2ea | Sacha Verweij | 23 May 2018, 03:12:07 UTC | Deprecate eigfact to eigen. | 23 May 2018, 03:19:56 UTC |
ab672a6 | Sacha Verweij | 23 May 2018, 02:51:03 UTC | Deprecate hessfact! to hessenberg!. | 23 May 2018, 02:51:03 UTC |
5797f88 | Sacha Verweij | 23 May 2018, 02:45:31 UTC | Deprecate hessfact to hessenberg. | 23 May 2018, 02:45:31 UTC |
cf08aec | Sacha Verweij | 23 May 2018, 02:38:15 UTC | Deprecate bkfact! to bunchkaufman!. | 23 May 2018, 02:38:15 UTC |
a729118 | Sacha Verweij | 23 May 2018, 02:25:49 UTC | Deprecate bkfact to bunchkaufman. | 23 May 2018, 02:25:49 UTC |
0eda8e4 | Sacha Verweij | 21 May 2018, 17:51:46 UTC | Deprecate svdfact to svd. | 23 May 2018, 01:30:15 UTC |
1084fb4 | Sacha Verweij | 21 May 2018, 00:51:10 UTC | Deprecate svdfact! to svd!. | 23 May 2018, 01:28:41 UTC |
a659ee9 | Sacha Verweij | 21 May 2018, 00:31:12 UTC | Deprecate ldltfact! to ldlt!. | 23 May 2018, 01:26:47 UTC |
23c8ff5 | Sacha Verweij | 20 May 2018, 23:57:55 UTC | Deprecate qrfact! to qr!. | 23 May 2018, 01:23:13 UTC |
099bb32 | Sacha Verweij | 20 May 2018, 23:48:49 UTC | Deprecate lqfact! to lq!. | 23 May 2018, 01:21:36 UTC |
c8b4ac9 | Sacha Verweij | 20 May 2018, 23:43:31 UTC | Deprecate schurfact! to schur!. | 23 May 2018, 01:20:42 UTC |
62b1337 | Sacha Verweij | 20 May 2018, 23:27:25 UTC | Deprecate lufact! to lu!. | 23 May 2018, 01:19:21 UTC |
528de42 | Sacha Verweij | 20 May 2018, 20:58:21 UTC | Deprecate ldltfact to ldlt. | 23 May 2018, 01:18:09 UTC |
ac57d3e | Sacha Verweij | 19 May 2018, 19:03:47 UTC | Deprecate qrfact to qr. | 23 May 2018, 01:11:22 UTC |
a9306ef | Sacha Verweij | 19 May 2018, 17:41:22 UTC | Deprecate lqfact to lq. | 23 May 2018, 01:06:00 UTC |
8cc18fb | Sacha Verweij | 19 May 2018, 03:58:31 UTC | Deprecate schurfact to schur. | 23 May 2018, 01:04:58 UTC |
6773f2d | Sacha Verweij | 18 May 2018, 18:31:07 UTC | Deprecate lufact to lu. | 23 May 2018, 00:59:47 UTC |
33fd977 | staticfloat@gmail.com | 18 May 2018, 22:17:09 UTC | Fix wording of `Sys.windows_version()` to be in the imperative https://github.com/JuliaLang/julia/pull/26559#discussion_r187183056 | 22 May 2018, 22:52:29 UTC |
6945f24 | staticfloat@gmail.com | 09 May 2018, 02:42:15 UTC | Add `NEWS.md` entry for `Sys.which()` | 22 May 2018, 22:52:29 UTC |
7ab8179 | Elliot Saba | 21 March 2018, 17:29:38 UTC | Don't use `which curl`, use `Sys.which("curl")` This fixes issues on systems that don't have `which` available | 22 May 2018, 22:52:29 UTC |
a348496 | staticfloat@gmail.com | 21 March 2018, 19:34:05 UTC | Add `Sys.which(program_name::AbstractString)` This acts as a julia-native version of the `which` command found on most *nix systems; it searches the path for an executable of the given name, returning the absolute path if it exists, and throwing an `ArgumentError()` if it does not. | 22 May 2018, 22:52:29 UTC |
74bd9c8 | Elliot Saba | 22 May 2018, 21:16:50 UTC | Allow $(HOSTCC) to be set through environment variables (#27208) In general, we should set hardcoded Makefile variables with `?=` so that the environment can override them without having to do silly things like `make HOSTCC=$HOSTCC` | 22 May 2018, 21:16:50 UTC |
3d80255 | Robin Deits | 22 May 2018, 18:44:26 UTC | Move the definitions of eltype() and length() in the iteration demo (#27154) Moves the definitions of eltype() and length() in the basic iteration demo closer to their occurrence in the text. Currently, the methods are defined in code a few paragraphs before they're mentioned in the text, which makes the example a bit harder to follow. This also helps reinforce the story that iterate() is the *only* required method for iteration, while eltype() and length() are optional improvements. | 22 May 2018, 18:44:26 UTC |
a916cbc | Matt Bauman | 22 May 2018, 18:41:48 UTC | Deprecate `cat(dim, Xs...)` to `cat(Xs..., dim=dim)` (#27163) | 22 May 2018, 18:41:48 UTC |
0961ee3 | Keno Fischer | 22 May 2018, 17:11:46 UTC | Merge pull request #27194 from JuliaLang/kf/invokemt Fix method table lookup in inlining | 22 May 2018, 17:11:46 UTC |
5f3d78d | Keno Fischer | 22 May 2018, 17:09:55 UTC | Restore cfunction special case in inlining (#27193) As far as I'm concerned this entire mechanism (storing raw DataTypes in the AST) is a hack and we should come up with something better at some point, but until then, but back the hack and add a test for the feature. Fixes #27178. | 22 May 2018, 17:09:55 UTC |
c9583e7 | Andreas Noack | 22 May 2018, 16:48:20 UTC | Fix initialization of accumulators in _generic_matmatmul! (#27123) Remove some redundant methods related to multiplication of Adjoint/Transpose Expand multi-line functions to multiple lines instead of using one-line syntax with ;s | 22 May 2018, 16:48:20 UTC |
e655148 | Jeff Bezanson | 22 May 2018, 16:36:33 UTC | fix #27187, error in typeintersect of incompatible NamedTuples (#27191) | 22 May 2018, 16:36:33 UTC |
2f728b8 | Jeff Bezanson | 22 May 2018, 16:13:20 UTC | Merge pull request #27189 from JuliaLang/kf/regexucp Make UCP option the default for regex matching | 22 May 2018, 16:13:20 UTC |
5bc09d0 | Oliver Blanthorn | 22 May 2018, 14:37:46 UTC | Convert endian converter docstrings to imperative form (#27199) | 22 May 2018, 14:37:46 UTC |
d71f5db | Fredrik Ekre | 22 May 2018, 13:43:00 UTC | Upgrade Documenter to v0.18 (#27195) * upgrade Documenter to v0.18 * add output = false to some doctests | 22 May 2018, 13:43:00 UTC |
47edaef | Valentin Churavy | 22 May 2018, 02:22:02 UTC | Merge pull request #27186 from iblis17/ib/fbsd-ci-ccache freebsdci: enable ccache and add cleanup stage | 22 May 2018, 02:22:02 UTC |
af15a98 | Keno Fischer | 21 May 2018, 21:52:45 UTC | Fix method table lookup in inlining Fixes #27181 | 21 May 2018, 22:02:56 UTC |
dc30e38 | Fredrik Ekre | 21 May 2018, 21:19:39 UTC | doc: remove sitename from navbar, move introduction to first page (#27146) * hide the sitename in the navigation bar the logo is enough, and logo+sitename takes up quite much vertical space * move introduction to first page - this is a much better landing page compared to the (incomplete) dump of page links | 21 May 2018, 21:19:39 UTC |
0eecc46 | Keno Fischer | 21 May 2018, 02:15:19 UTC | Make UCP option the default for regex matching Fixes #27084. Regexes now match based on unicode character properties, rather than just ASCII character properties, e.g. `match(r"\w+", "café")` will now match the entire word (and not just `caf`). This behavior can be disabled with the `a` flag to the regex string macro (e.g. `r"\w+"a`). | 21 May 2018, 19:37:16 UTC |
7fa763a | Keno Fischer | 21 May 2018, 19:29:42 UTC | Fix Windows path regex \w matches numbers as well (which are not valid drive letters) and will match unicode characters once we turn on UCP. | 21 May 2018, 19:34:18 UTC |
74314e4 | Koki Fushimi | 21 May 2018, 19:05:07 UTC | Use binary gcd for Int8, UInt8, Int16, UInt16, Int32 and UInt32. (#27185) | 21 May 2018, 19:05:07 UTC |
1463cd4 | Jeff Bezanson | 21 May 2018, 17:53:20 UTC | fix #15229, error for declared local that conflicts with an argument (#27183) | 21 May 2018, 17:53:20 UTC |
0d99811 | Jeff Bezanson | 21 May 2018, 16:01:47 UTC | Merge pull request #27098 from JuliaLang/jb/evalmodule RFC: deprecate per-module definition of `eval(module, expr)` | 21 May 2018, 16:01:47 UTC |
95591e0 | SundaraRaman | 21 May 2018, 14:42:01 UTC | fix tab completion in reverse search (#27143) | 21 May 2018, 14:42:01 UTC |
363eacc | Iblis Lin | 21 May 2018, 12:55:40 UTC | freebsdci: enable ccache and add cleanup stage Required by: #27182 | 21 May 2018, 12:56:54 UTC |
d8a1056 | Kristoffer Carlsson | 21 May 2018, 06:43:56 UTC | update Pkg3 precompile statements (#27156) | 21 May 2018, 06:43:56 UTC |
b7a636d | Pontus Stenetorp | 21 May 2018, 04:18:00 UTC | FixedPeriod and period comparison to return false (#27165) As per issue #27076. | 21 May 2018, 04:18:00 UTC |
c0b5583 | Jeff Bezanson | 14 May 2018, 19:32:14 UTC | deprecate per-module definition of `eval(module, expr)` fixes #27093 | 20 May 2018, 23:09:56 UTC |
9a0ff52 | Jeff Bezanson | 20 May 2018, 23:07:06 UTC | disallow `return` inside generators and comprehensions (#27172) | 20 May 2018, 23:07:06 UTC |
d247ca8 | Bogumił Kamiński | 20 May 2018, 21:07:31 UTC | improve sizeof and repr documentation (#26926) | 20 May 2018, 21:07:31 UTC |
cf34b82 | Stefan Karpinski | 20 May 2018, 20:58:54 UTC | code loading docs: some fixes and clarifications [#26910] (#27113) [ci skip] | 20 May 2018, 20:58:54 UTC |
200404f | Jeff Bezanson | 14 May 2018, 19:31:38 UTC | fix printing of errors in bootstrap before `show` is defined | 20 May 2018, 20:44:45 UTC |
8cf8c5a | Mauro | 20 May 2018, 20:44:24 UTC | Make `include` docs available at REPL again + be explicit about global scope (#27089) | 20 May 2018, 20:44:24 UTC |
ca9eca7 | Steven G. Johnson | 20 May 2018, 20:09:00 UTC | add bytes2hex(io, a) method (#27124) | 20 May 2018, 20:09:00 UTC |
a465d33 | Keno Fischer | 19 May 2018, 22:52:08 UTC | Merge pull request #27162 from JuliaLang/kf/isdefined Fix `@isdefined` with new optimizer | 19 May 2018, 22:52:08 UTC |
f4356d6 | Keno Fischer | 19 May 2018, 22:46:41 UTC | Merge pull request #27151 from JuliaLang/jb/propertyfuncs export `getproperty`, `setproperty!`, and `propertynames` | 19 May 2018, 22:46:41 UTC |
e9df7b6 | Kristoffer Carlsson | 19 May 2018, 07:53:03 UTC | update precompile statements after new iteration protocol (#27148) | 19 May 2018, 07:53:03 UTC |
43a3886 | Keno Fischer | 19 May 2018, 01:06:31 UTC | Merge pull request #27147 from haampie/fix-unitrange-iterator Get rid of the tricks to avoid overflow in the AbstractUnitRange iterator | 19 May 2018, 01:06:31 UTC |
c3d27d9 | Keno Fischer | 18 May 2018, 21:04:13 UTC | Fix `@isdefined` with new optimizer The only values that are special for an `:isdefined` expression are SSAValues (which are tracked through to phi nodes to see if they are defined), global variables and static parameters (both of which have support in the interpreter and codegen). Fixes #27103. | 18 May 2018, 21:22:54 UTC |
b5c0cb0 | Lyndon White | 18 May 2018, 18:49:49 UTC | Make file operations return the path they created (#27071) | 18 May 2018, 18:49:49 UTC |
1a9ed6a | Kristoffer Carlsson | 18 May 2018, 18:15:29 UTC | update docs for JULIA_HISTORY env variable (#27135) | 18 May 2018, 18:15:29 UTC |
627173b | Milan Bouchet-Valat | 18 May 2018, 14:03:29 UTC | Enable PCRE UTF-8 validity string checks (#26731) Strings are no guaranteed to contain valid UTF-8, and PCRE documentation says that the behavior is undefined in that case. | 18 May 2018, 14:03:29 UTC |
e36a24e | Jeff Bezanson | 18 May 2018, 14:01:20 UTC | export `getproperty`, `setproperty!`, and `propertynames` fixes #27120 | 18 May 2018, 14:01:20 UTC |
3369089 | Harmen Stoppels | 18 May 2018, 08:29:44 UTC | Test if we can iterate the full range of the largest bits integer type | 18 May 2018, 08:29:44 UTC |
91fb107 | Harmen Stoppels | 18 May 2018, 07:59:41 UTC | Iterate over AbstractUnitRange in just one number type without overflow thanks to the new iterator protocol | 18 May 2018, 07:59:41 UTC |
ecf2425 | Kristoffer Carlsson | 18 May 2018, 07:05:52 UTC | fix REPL completions of packages in project (#26246) | 18 May 2018, 07:05:52 UTC |
aa301aa | Keno Fischer | 18 May 2018, 03:56:20 UTC | Merge pull request #25261 from JuliaLang/kf/iterate Iteration protocol change | 18 May 2018, 03:56:20 UTC |
62fbad2 | Keno Fischer | 17 May 2018, 21:14:11 UTC | Use loop inverted loop lowering The primary idea of the new iteration protocol is that for a function like: ``` function iterate(itr) done(itr) ? nothing : next(itr) end ``` we can fuse the `done` comparison into the loop condition and recover the same loop structure we had before (while retaining the flexibility of not requiring the done function to be separate), i.e. for ``` y = iterate(itr) y === nothing && break ``` we want to have after inlining and early optimization: ``` done(itr) && break y = next(itr) ``` LLVM performs this optimization in jump threading. However, we run into a problem. At the top of the loop we have: ``` y = iterate top: %cond = y === nothing br i1 %cond, %exit, %loop .... ``` We'd want to thread over the `top` block (this makes sense, since by the discussion above, we need to merge our condition into the loop exit condition). However, LLVM (quite sensibly) refuses to thread over loop headers and since `top` is both a loop header and a loop exit, we fail to perform the appropriate transformation. However, there's a simple fix. Instead of emitting a foor loop as ``` y = iterate(itr) while y !== nothing x, state = y ... y = iterate(itr, state) end ``` we can emit it as ``` y = iterate(itr) if y !== nothing while true x, state = y ... y = iterate(itr, state) y === nothing && break end end ``` This transformation is known as `loop inversion` (or a special case of `loop rotation`. In our case the primary benefit is that we can fuse the condition contained in the initial `iterate` call into the bypass if, which then lets LLVM understand our loop structure. Co-authored-by: Jeff Bezanson <jeff@juliacomputing.com> | 18 May 2018, 01:11:36 UTC |
1a1d6b6 | Keno Fischer | 22 December 2017, 12:37:18 UTC | Change iteration protocol This changes the iteration protocol from `start`/`next`/`done` to `iterate`. The new lowering of a for loop is as follows: ``` for x in itr ... end ``` becomes ``` next = iterate(itr) while next !== nothing x, state = next::Tuple{Any, Any} ... next = iterate(itr, state) end ``` The semantics are as apparent from the above lowering. `iterate` returns either `nothing` or a tuple of value and state. The state is passed to any subsequent operation. The first iteration is indicated, by not passing the second, state argument to the `iterate` method. Adaptors in both directions are provided to keep the legacy iteration protocol working for now. However, performance of the legacy iteration protocol will be severely pessimized. As an optional add-on for mutable iterators, a new `isdone` function is provided. This function is intended as an O(1) approximate query for iterator completion, where such a calculation is possible without mutation and/or is significantly faster than attempting to obtain the element itself. The function makes use of 3-value logic. `missing` is always an acceptable answer, in which case the caller should go ahead and attempt the iteration to obtain a definite result. If the result is not `missing`, it must be exact (i.e. if true, the next call to iterate must return `nothing`, if false it must not return nothing). | 18 May 2018, 01:11:36 UTC |
c2030ed | Steven G. Johnson | 17 May 2018, 21:58:39 UTC | rm newline from end of Markdown text/plain output (#27128) fixes #27102 | 17 May 2018, 21:58:39 UTC |
337ee84 | Matt Bauman | 17 May 2018, 19:31:16 UTC | Replace broadcast_similar with plain old similar (#27110) Now that we have a first-class object that represents a lazy broadcast, we can just use `similar` itself to ask it what kind of container it should allocate. | 17 May 2018, 19:31:16 UTC |
406615f | Fredrik Ekre | 17 May 2018, 09:51:04 UTC | fix remaining doctest failures and enable doctests on CI (#27000) * fix all remaining doctest failures * run doctest on Travis Linux x86_64, fix #19528 * temporarily disable at-isdefined doctest (JuliaLang/julia/#27103) | 17 May 2018, 09:51:04 UTC |
cc68c6e | Steven G. Johnson | 17 May 2018, 06:35:22 UTC | document join(io, ...) (#27127) I noticed that the `io` argument was in the docstring but wasn't explained | 17 May 2018, 06:35:22 UTC |
d44944d | Keno Fischer | 17 May 2018, 00:38:16 UTC | Merge pull request #27126 from JuliaLang/kf/sroarebase Introduce improved SROA pass | 17 May 2018, 00:38:16 UTC |
9100329 | Keno Fischer | 11 April 2018, 00:07:28 UTC | Introduce improved SROA pass This is a rebased and fixed version of the improved SROA pass from #26778. There's a decent piece of new infrastructure wrapped up in this: The ability to insert new nodes during compaction. This is a bit tricky because it requires tracking which version of the statements buffer a given SSAValue belongs to. At the moment this is done mostly manually, but I'm hoping to clean that up in the future. The idea of the new SROA pass is fairly straightforward: Given a use of an interesting value, it traces through all phi nodes, finding all leaves, applies whatever transformation to those leaves and then re-inserts a phi nest corresponding to the phi nest of the original value. | 16 May 2018, 19:11:04 UTC |
254ab94 | Keno Fischer | 16 May 2018, 17:20:03 UTC | Merge pull request #27115 from JuliaLang/kf/cfgsimpl Re-enable BB simplification pass | 16 May 2018, 17:20:03 UTC |
2460f9d | Keno Fischer | 16 May 2018, 17:18:59 UTC | Merge pull request #27116 from JuliaLang/kf/typeassert_codegen Improve generated code for typeassert with abstract type | 16 May 2018, 17:18:59 UTC |
e43c843 | Jacob Quinn | 16 May 2018, 14:51:34 UTC | Fix for UndefVarError(var=:arg_T2) (#27117) * Fix for UndefVarError(var=:arg_T2) * Add test case ensuring >: doesn't throw error | 16 May 2018, 14:51:34 UTC |
d3be48c | Simon Byrne | 16 May 2018, 13:00:51 UTC | parsable SHA1 and UUID printing, tests (#27036) | 16 May 2018, 13:00:51 UTC |
6291d3e | Fredrik Ekre | 16 May 2018, 05:58:57 UTC | document some undocumented exports (#27107) ∋, ∉, ∌, VecOrMat{T}, @v_str, VersionNumber, Base, Base.Broadcast, Base.GC, Inf/Inf64, NaN/NaN64 AbstractVecOrMat{T}, issubset/⊆/⊇, ⊊/⊋, ⊈/⊉, issetequal | 16 May 2018, 05:58:57 UTC |
7790077 | Keno Fischer | 15 May 2018, 23:45:50 UTC | Improve generated code for typeassert with abstract type The motivation is something like the following: ``` @noinline r_typeassert(c) = c ? (1,1) : nothing function f_typeassert(c) r(c)::Tuple end ``` Here, we know that the return type from r_typeassert is either `Tuple{Int, Int}` or `Nothing`, so all the type assert has to do is assert that it's the former. We can compute this by narrowing the type to be asserted using type intersection. | 16 May 2018, 00:02:08 UTC |
3e189dc | Keno Fischer | 15 May 2018, 22:21:17 UTC | Re-enable BB simplification pass | 15 May 2018, 22:21:48 UTC |
11c803c | Jeff Bezanson | 15 May 2018, 22:04:39 UTC | Merge pull request #27023 from JuliaLang/jb/comprlowering fix and generalize comprehension lowering | 15 May 2018, 22:04:39 UTC |
b189d0f | Jeff Bezanson | 09 May 2018, 17:49:49 UTC | fix `return`, `break`, and `continue` in special comprehension lowering | 15 May 2018, 16:12:29 UTC |
41310f6 | Jeff Bezanson | 07 May 2018, 19:35:32 UTC | fix and generalize comprehension lowering now correctly handles all n-d comprehensions with specified element type. | 15 May 2018, 16:12:28 UTC |
172781f | Matt Bauman | 15 May 2018, 16:06:41 UTC | Flush out the pointer docs (#27063) * Flush out the pointer docs Fix #14604. * Add `GC.-at-preserve` to the manual, explicit ref to ref Ref | 15 May 2018, 16:06:41 UTC |
b5d3874 | Jameson Nash | 15 May 2018, 15:58:14 UTC | gf-cache: permit `@nospecialize` on Varargs (#27081) this ensures the Expr constructor is not over-specialized / compiled | 15 May 2018, 15:58:14 UTC |
eebeaa9 | Matt Bauman | 15 May 2018, 15:24:43 UTC | More robust iteration over Vectors (#27079) * More robust iteration over Vectors Currently, if a vector is resized in the midst of iteration, then `done` might "miss" the end of iteration. This trivially changes the definition to catch such a case. I am not sure what guarantees we make about mutating iterables during iteration, but this seems simple and easy to support. Note, though, that it is somewhat tricky: until #13866 we used `i > length(a)`, but that foils vectorization due to the `typemax` case. This definition seems to get the best of both worlds. For a definition like `f` below, this new definition just requires one extra `add i64` operation in the preamble (before the loop). Everything else is identical to master. ```julia function f(A) r = 0 @inbounds for x in A r += x end r end ``` | 15 May 2018, 15:24:43 UTC |
1b92f51 | Martin Holters | 15 May 2018, 06:26:05 UTC | Improve inference of `collect` with unstable eltype (#25861) Ensure that `promote_typejoin(::Any, ::Any)` is at worst inferred as `Type`, since inference of `similar(dest, ::Any)` is very vague as the second parameter could not only be the new element type, but also e.g. new size. Also ensure that `_array_for(::Type, itr, ::HasShape{N})` is inferable as an `Array{T,N}` with the correct `N`. | 15 May 2018, 06:26:05 UTC |
fcaa379 | Keno Fischer | 14 May 2018, 22:06:02 UTC | Merge pull request #27087 from JuliaLang/kf/enablenew Enable new optimizer by default | 14 May 2018, 22:06:02 UTC |
ca764ea | Matt Bauman | 14 May 2018, 21:11:04 UTC | Fix `join((), ", ")` (#27062) This is a simply hack to avoid working with an `Iterators.Stateful(())`, which has problems when trying to stably infer the return type of the error function `next((), _)`. Punts https://github.com/JuliaLang/julia/issues/26871 to just using `Stateful` itself. | 14 May 2018, 21:11:04 UTC |
098f40f | James Bradbury | 14 May 2018, 20:37:23 UTC | add dump method for Ptr (#26880) * add dump method for Ptr Currently `dump(x::Ptr)` will print the type of the pointer twice, e.g. ```Ptr{Nothing} Ptr{Nothing} @0x0000000120f1d2d0``` This adds an overload so that it only prints once. * add test * fix test * newline | 14 May 2018, 20:37:23 UTC |
66c7b7d | Matt Bauman | 14 May 2018, 18:29:58 UTC | Deprecate broadcast_(get|set)index in favor of broadcasted (get|set)index (#27075) * Deprecate broadcast_(get|set)index in favor of broadcasted (get|set)index The performance here is comparable in my few quick tests, and only two packages used either of these functions -- both in situations where they would have gained much more by participating in dot-fusion. | 14 May 2018, 18:29:58 UTC |