https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
7c78b02 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 update Val and uplo deprecations for cholfact[!], bkfact[!], lufact[!], qrfact[!] 23 May 2018, 11:18:55 UTC
116d672 deprecate chol!(A) to cholesky!(A).U 23 May 2018, 11:11:15 UTC
82a019c 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 deprecate chol(A) to cholesky(A).U 23 May 2018, 11:00:05 UTC
2ecd19f Expand pull request numbers for some news items. 23 May 2018, 05:08:40 UTC
0eda705 Deprecate decomposition getindex methods in favor of property accessors. 23 May 2018, 05:05:53 UTC
51b1e3b Deprecate eig to eigen and destructuring via iteration. 23 May 2018, 04:44:36 UTC
6e5d700 Deprecate cholfact! to cholesky!. 23 May 2018, 04:25:59 UTC
8f2b195 Deprecate cholfact to cholesky. 23 May 2018, 04:25:59 UTC
ee57c76 Deprecate eigfact! to eigen!. 23 May 2018, 04:25:58 UTC
0d3c2ea Deprecate eigfact to eigen. 23 May 2018, 03:19:56 UTC
ab672a6 Deprecate hessfact! to hessenberg!. 23 May 2018, 02:51:03 UTC
5797f88 Deprecate hessfact to hessenberg. 23 May 2018, 02:45:31 UTC
cf08aec Deprecate bkfact! to bunchkaufman!. 23 May 2018, 02:38:15 UTC
a729118 Deprecate bkfact to bunchkaufman. 23 May 2018, 02:25:49 UTC
0eda8e4 Deprecate svdfact to svd. 23 May 2018, 01:30:15 UTC
1084fb4 Deprecate svdfact! to svd!. 23 May 2018, 01:28:41 UTC
a659ee9 Deprecate ldltfact! to ldlt!. 23 May 2018, 01:26:47 UTC
23c8ff5 Deprecate qrfact! to qr!. 23 May 2018, 01:23:13 UTC
099bb32 Deprecate lqfact! to lq!. 23 May 2018, 01:21:36 UTC
c8b4ac9 Deprecate schurfact! to schur!. 23 May 2018, 01:20:42 UTC
62b1337 Deprecate lufact! to lu!. 23 May 2018, 01:19:21 UTC
528de42 Deprecate ldltfact to ldlt. 23 May 2018, 01:18:09 UTC
ac57d3e Deprecate qrfact to qr. 23 May 2018, 01:11:22 UTC
a9306ef Deprecate lqfact to lq. 23 May 2018, 01:06:00 UTC
8cc18fb Deprecate schurfact to schur. 23 May 2018, 01:04:58 UTC
6773f2d Deprecate lufact to lu. 23 May 2018, 00:59:47 UTC
33fd977 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 Add `NEWS.md` entry for `Sys.which()` 22 May 2018, 22:52:29 UTC
7ab8179 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 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 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 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 Deprecate `cat(dim, Xs...)` to `cat(Xs..., dim=dim)` (#27163) 22 May 2018, 18:41:48 UTC
0961ee3 Merge pull request #27194 from JuliaLang/kf/invokemt Fix method table lookup in inlining 22 May 2018, 17:11:46 UTC
5f3d78d 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 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 fix #27187, error in typeintersect of incompatible NamedTuples (#27191) 22 May 2018, 16:36:33 UTC
2f728b8 Merge pull request #27189 from JuliaLang/kf/regexucp Make UCP option the default for regex matching 22 May 2018, 16:13:20 UTC
5bc09d0 Convert endian converter docstrings to imperative form (#27199) 22 May 2018, 14:37:46 UTC
d71f5db 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 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 Fix method table lookup in inlining Fixes #27181 21 May 2018, 22:02:56 UTC
dc30e38 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 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 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 Use binary gcd for Int8, UInt8, Int16, UInt16, Int32 and UInt32. (#27185) 21 May 2018, 19:05:07 UTC
1463cd4 fix #15229, error for declared local that conflicts with an argument (#27183) 21 May 2018, 17:53:20 UTC
0d99811 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 fix tab completion in reverse search (#27143) 21 May 2018, 14:42:01 UTC
363eacc freebsdci: enable ccache and add cleanup stage Required by: #27182 21 May 2018, 12:56:54 UTC
d8a1056 update Pkg3 precompile statements (#27156) 21 May 2018, 06:43:56 UTC
b7a636d FixedPeriod and period comparison to return false (#27165) As per issue #27076. 21 May 2018, 04:18:00 UTC
c0b5583 deprecate per-module definition of `eval(module, expr)` fixes #27093 20 May 2018, 23:09:56 UTC
9a0ff52 disallow `return` inside generators and comprehensions (#27172) 20 May 2018, 23:07:06 UTC
d247ca8 improve sizeof and repr documentation (#26926) 20 May 2018, 21:07:31 UTC
cf34b82 code loading docs: some fixes and clarifications [#26910] (#27113) [ci skip] 20 May 2018, 20:58:54 UTC
200404f fix printing of errors in bootstrap before `show` is defined 20 May 2018, 20:44:45 UTC
8cf8c5a Make `include` docs available at REPL again + be explicit about global scope (#27089) 20 May 2018, 20:44:24 UTC
ca9eca7 add bytes2hex(io, a) method (#27124) 20 May 2018, 20:09:00 UTC
a465d33 Merge pull request #27162 from JuliaLang/kf/isdefined Fix `@isdefined` with new optimizer 19 May 2018, 22:52:08 UTC
f4356d6 Merge pull request #27151 from JuliaLang/jb/propertyfuncs export `getproperty`, `setproperty!`, and `propertynames` 19 May 2018, 22:46:41 UTC
e9df7b6 update precompile statements after new iteration protocol (#27148) 19 May 2018, 07:53:03 UTC
43a3886 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 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 Make file operations return the path they created (#27071) 18 May 2018, 18:49:49 UTC
1a9ed6a update docs for JULIA_HISTORY env variable (#27135) 18 May 2018, 18:15:29 UTC
627173b 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 export `getproperty`, `setproperty!`, and `propertynames` fixes #27120 18 May 2018, 14:01:20 UTC
3369089 Test if we can iterate the full range of the largest bits integer type 18 May 2018, 08:29:44 UTC
91fb107 Iterate over AbstractUnitRange in just one number type without overflow thanks to the new iterator protocol 18 May 2018, 07:59:41 UTC
ecf2425 fix REPL completions of packages in project (#26246) 18 May 2018, 07:05:52 UTC
aa301aa Merge pull request #25261 from JuliaLang/kf/iterate Iteration protocol change 18 May 2018, 03:56:20 UTC
62fbad2 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 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 rm newline from end of Markdown text/plain output (#27128) fixes #27102 17 May 2018, 21:58:39 UTC
337ee84 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 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 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 Merge pull request #27126 from JuliaLang/kf/sroarebase Introduce improved SROA pass 17 May 2018, 00:38:16 UTC
9100329 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 Merge pull request #27115 from JuliaLang/kf/cfgsimpl Re-enable BB simplification pass 16 May 2018, 17:20:03 UTC
2460f9d 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 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 parsable SHA1 and UUID printing, tests (#27036) 16 May 2018, 13:00:51 UTC
6291d3e 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 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 Re-enable BB simplification pass 15 May 2018, 22:21:48 UTC
11c803c Merge pull request #27023 from JuliaLang/jb/comprlowering fix and generalize comprehension lowering 15 May 2018, 22:04:39 UTC
b189d0f fix `return`, `break`, and `continue` in special comprehension lowering 15 May 2018, 16:12:29 UTC
41310f6 fix and generalize comprehension lowering now correctly handles all n-d comprehensions with specified element type. 15 May 2018, 16:12:28 UTC
172781f 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 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 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 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 Merge pull request #27087 from JuliaLang/kf/enablenew Enable new optimizer by default 14 May 2018, 22:06:02 UTC
ca764ea 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 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 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
back to top