https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
0658b89 tmp 11 May 2018, 18:10:42 UTC
2de0bdd fix signedness issues 10 May 2018, 21:33:04 UTC
39017cb utilize CodeInfo min_world/max_world fields in Julia code 10 May 2018, 21:06:06 UTC
a7e212a add min_world and max_world fields to CodeInfo 10 May 2018, 21:02:41 UTC
ee4b18f dump: handle recursion better (#27051) where better means at least as well as `show_default` 10 May 2018, 16:16:43 UTC
5fb465f fix a transitivity issue in specificity, from #26915 (#27042) 10 May 2018, 15:46:44 UTC
fb1c21c function cache: fix memory leak (#26982) some lookup functions (most notably, jl_get_specialization1) were bypassing the initial cache lookup, resulting in repeatedly trying to re-cache them, and wasting a small amount memory also remove some fast-path code for threading race conditions: the benefit is too negligible to be worth the extra code maintenance 10 May 2018, 14:29:12 UTC
365d389 Merge pull request #27049 from JuliaLang/sk/revert-slp Revert "enable the SLP Vectorizer optimization pass by default" 10 May 2018, 11:15:28 UTC
b5815c8 fix element type returned by `Set()` on general iterators (#27052) 10 May 2018, 03:02:57 UTC
d54c30e Merge pull request #27022 from JuliaLang/kf/vacodegen WIP: Relax restrictions on specsig for vararg 10 May 2018, 02:54:32 UTC
e4fa75d Simplify SparseMatrix setindex! (#27026) * Simplify SparseMatrix setindex! Fix #27013, and add a whole slew of tests. `methods(setindex!, Tuple{SparseMatrixCSC, Vararg{Any}})` goes from a hodgepodge of 26 methods that were tough to reason about to just 6 methods: scalar, logical linear indexing, linear indexing with a vector, linear indexing with a matrix, generic nonscalar indexing, and a disambiguation method. This is much easier to reason about, and fixes a handful of bugs. * : -> j 09 May 2018, 22:15:58 UTC
a0b1e98 fix #27005, list div operator in docs (#27006) 09 May 2018, 18:25:56 UTC
0db674d Make Broadcasted iterable and more indexable (#26987) Defines iteration and some related traits as well as a few functions to make indexing a bit friendlier. 09 May 2018, 17:58:06 UTC
04fe0f4 make -O1 a bit more useful by disabling more optimization passes (#27028) 09 May 2018, 17:52:14 UTC
b19337b Revert "enable the SLP Vectorizer optimization pass by default" This reverts commit 32bcf5d8e547ca57e02536aca4354316364db8bb. Temporary fix for #27032, a real fix is still needed 09 May 2018, 15:01:02 UTC
b81b118 remove duplicate LinearIndices docs (#27037) * remove duplicate LinearIndices docs * extend Base.LinearIndices * fix another module local function, preserve (Linear|Cartesian)Indices(::UnitRange{<:Integer}) 09 May 2018, 13:42:51 UTC
bbda1ab try to create T(NaN)//one(T) instead of zero(T)//zero(T) (#26823) (#26875) 09 May 2018, 12:54:59 UTC
4c665b7 Deprecate linearindices in favor of LinearIndices (#26775) * Deprecate linearindices in favor of LinearIndices LinearIndices is strictly more powerful than linearindices: these two functions return arrays holding the same elements, but the former also preserves the shape and indices of the original array. Also improve docstrings. * Add efficient LinearIndices iteration * Work around invalidation and minor LinearIndices simplifications * Alternative fix using eachindex + adjust failing test * Fix accumulate/cumsum performance regression by adding getindex(::LinearIndices, ::AbstractRange) Plus two small fixes. 08 May 2018, 22:43:15 UTC
b19ba88 fix isvatuple to properly handle UnionAlls (#27018) * fix isvatuple to properly handle UnionAlls * add tests for #27018 08 May 2018, 15:17:50 UTC
024bfdb Improve docstrings for vec and reshape (#27027) * Improve docstrings for vec and reshape Document mutability behavior, add examples with ranges and fix a few issues. * "in which case" 08 May 2018, 14:00:55 UTC
12af2d3 Re-enable strict=true for doc generation (#26993) * fix the last remaining doc problems * re-enable strict=true for doc build, fix #25895 08 May 2018, 10:18:03 UTC
6a23130 Separate LibGit2.(count|map) from Base.(count|map) (#26973) * separate LibGit2.count from Base.count * separate LibGit2.map from Base.map 08 May 2018, 06:05:31 UTC
1feb505 Move scalar broadcast setindex_shape_check method to deprecated (#26967) * Remove unnecessary setindex_shape_check method * Ensure deprecation still works and fixup tests 07 May 2018, 21:45:56 UTC
49fc060 WIP: Relax restrictions on specsig for vararg 07 May 2018, 19:55:24 UTC
0c28685 ensure BINDIR is inferrable in __init__ (#26959) 07 May 2018, 19:00:12 UTC
9de318a Merge pull request #27016 from JuliaLang/vc/libxml2 explicitly disable xml2 in LLVM 07 May 2018, 18:03:35 UTC
8eb3dcc Merge pull request #26990 from JuliaLang/kf/yyc/codegen/alloc2 WIP: Rebase #24478 07 May 2018, 17:01:11 UTC
71f6bfe Merge pull request #26985 from JuliaLang/kf/simdloop [NewOptimizer] Make simdloop marker more robust 07 May 2018, 17:00:21 UTC
03b9505 explicitly disable xml2 in LLVM 07 May 2018, 13:04:07 UTC
989de79 Add examples for range() (#27012) * Add examples for range() In case I'm not the only one confused by the changes to `range()`, I'm trying to add a few examples here. 07 May 2018, 12:20:05 UTC
74af878 [NewOptimizer] Port #26826 to new optimizer (#26981) * fix InferenceResult cache lookup for new optimizer * utilize cached vararg type info in new inlining pass * fix test to work with new optimizer * fix predicate for exploiting cached varargs type info * atypes no longer needs to be modified to match cached types * don't require varargs to be in last position to exploit cached type info * restore missing isva boolean 06 May 2018, 22:14:08 UTC
56d7ebe Make simdloop marker more robust Previously the simdloop marker was metadata on a random add instruction in the loop. This is problematic if that add instruction gets moved around or folded by an earlier optimization pass. Switching to using an explicit marker instruction. Eventually we should do something different here to address #26976. This just makes it more robust to make sure it keeps working with the new optimizer. 06 May 2018, 21:59:44 UTC
243c233 Add LLVM patch to fix getLoopID Turns out getLoopID doesn't always get what setLoopID set. I submitted a patch upstream to fix that. This carries that patch. 06 May 2018, 21:46:18 UTC
b3942e4 [NewOptimizer] Don't drop simdloop metadata 06 May 2018, 21:45:48 UTC
3113017 Fix use after free 06 May 2018, 21:43:25 UTC
5b2a859 Do SROA and DSE in alloc-opt This allow us to handle certain object allocations with object reference fields. DSE is particularly useful on LLVM 5.0+ where we can take advantage of llvm store to load forwarding to delete objects that's only used as local buffer. This is also a prototype for the next gen optimization in type inference and to guide the new IR format necessary for it. Fix #16190 06 May 2018, 21:43:24 UTC
38b6001 Cleanup and reorganize llvm-alloc-opt * Remove some tag handling code that's not needed anymore * Put all the states in a struct There are already too many of them to pass around and there will likely be even more in the future 06 May 2018, 21:43:24 UTC
bf29b40 Merge pull request #26594 from JuliaLang/kc/SLP_llvm06 enable the SLP Vectorizer optimization pass by default 06 May 2018, 19:25:45 UTC
dde401e Search the julia subfolder first in RPATH (#26972) Fixes #26830 06 May 2018, 18:37:18 UTC
32bcf5d enable the SLP Vectorizer optimization pass by default 06 May 2018, 07:48:44 UTC
bfb1c1b Merge pull request #26925 from JuliaLang/vc/llvmbb Upgrade to LLVM 6 and use BinaryBuilder for LLVM on CI 06 May 2018, 00:40:29 UTC
10749b9 Merge pull request #26989 from JuliaLang/kf/gcunionphi [GCLowering] Fix phis of unions 06 May 2018, 00:09:52 UTC
4339f74 Merge pull request #26986 from JuliaLang/jb/fix26979 fix #26979, incorrect typeassert in deserialize 05 May 2018, 21:39:51 UTC
d45c700 Merge pull request #26998 from JuliaLang/sf/fix_docs_typo Fix typo in docs, `ayncmap` -> `asyncmap` 05 May 2018, 21:26:20 UTC
03ed69b Fix typo in docs, `ayncmap` -> `asyncmap` [ci skip] 05 May 2018, 21:25:11 UTC
b72a570 [GCLowering] Fix phis of unions This fixes gc lowering for phis of the form: ``` %phi = phi {%jl_value_t addrspace(10)*, i8} [%aunion, %a], [%bunion, %b] ``` This kind of struct (used by the tagged union representation) has special support in GC lowering. After optimization, these structs often survive quite far as a struct (i.e. the destructuring of them is often elided). We simply need to extend this support to the cases that handle phi and select nodes. Fixes crashes with the new optimizer enabled noted in #26925 05 May 2018, 20:21:33 UTC
4c5e1ae [GCLowering] Don't consider the ptls getter a safepoint The fact that this was absent was masking a bug (fixed in a previous commit). Now, we don't currently allow any safepoints or allocations before the call to the ptls getter, but in the future we may want to do things like callee-rooted arguments, which would have to be rooted across the ptls getter if it were a safepoint. With the bug fixed, we can proactively add this to the list of known non-safepoints. 05 May 2018, 20:20:36 UTC
16757f8 [GCLowering] Remove Unrooted* Dataflow variables We stopped using these a while ago when we switched to using LiveSet diffs for computing where to root values. 05 May 2018, 20:17:02 UTC
4b13cec [GCLowering] Make sure to consider values dead at function entry 05 May 2018, 20:17:00 UTC
ff07076 [GCLowering] Some cleanup 05 May 2018, 20:15:38 UTC
2cab814 Fix computation of sparse BroadcastStyle dimensionality (#26978) when falling back to a DefaultArrayStyle for array types that are not included in the support for PromoteToSparse. Fixes #26977 05 May 2018, 14:43:09 UTC
901b240 fix #26979, incorrect typeassert in deserialize 04 May 2018, 22:02:36 UTC
ee2211c fix #26916, anon fn syntax with 1 kw and 1 optional arg (#26970) 04 May 2018, 21:10:15 UTC
6f50774 Merge pull request #26876 from JuliaLang/jb/iterfixes several iterator trait fixes 04 May 2018, 21:09:08 UTC
55a47e8 Merge pull request #26980 from JuliaLang/mb/deprecate-set-map Deprecate map(f, ::AbstractSet) 04 May 2018, 21:08:42 UTC
a6c4691 Deprecate map(f, ::AbstractSet) `map` on sets previously returned a `Set`, possibly changing the order or number of elements. This behavior is deprecated and in the future `map` will preserve order and number of elements. Fixes #26359. 04 May 2018, 17:41:47 UTC
702d0d5 switches Julia to LLVM 6.0.0 and uses BinaryBuilder for CI - changes the support LLVM version to 6.0.0 - adds support for using a pre-built LLVM binary from `staticfloat/LLVMBuilder` taking advantage of the BinaryBuilder infrastructure. - adds two Makefile flags: - `BINARYBUILDER_TRIPLET` the BinaryBuilder triplet you are building for. An example would be `x86_64-linux-gnu`. - `USE_BINARYBUILDER_LLVM = 0` set this to 1 if you want to use the pre-built binaries for LLVM. - uses the pre-built binaries on OSX Travis instead of the bottle. - uses the pre-built binaries on Appveyor instead of a custom cache. 04 May 2018, 15:48:59 UTC
7f47f42 fix LLVM >5 on Win32 04 May 2018, 15:48:59 UTC
429a885 enable/improve constant propagation through varargs methods (#26826) - Store varargs type information in the InferenceResult object, such that the info can be used during inference/optimization - Hack in a more precise return type for getfield of a vararg tuple. Ideally, we would handle this by teaching inference to track the types of the individual fields of a Tuple, which would make this unnecessary, but until then, this hack is helpful. - Spoof parents as well as children during recursion limiting, so that higher degree cycles are appropriately spoofed - A broadcast test marked as broken is now no longer broken, presumably due to the optimizations in this commit - Fix relationship between depth/mindepth in limit_type_size/is_derived_type. The relationship should have been inverse over the domain in which they overlap, but was not maintained consistently. An example of problematic case was: t = Tuple{X,X} where X<:Tuple{Tuple{Int64,Vararg{Int64,N} where N},Tuple{Int64,Vararg{Int64,N} where N}} c = Tuple{X,X} where X<:Tuple{Int64,Vararg{Int64,N} where N} because is_derived_type was computing the depth of usage rather than the depth of definition. This change thus makes the depth/mindepth calculations more consistent, and causes the limiting heuristic to return strictly wider types than it did before. - Move the optimizer's "varargs types to tuple type" rewrite to after cache lookup.Inference is populating the InferenceResult cache using the varargs form, so the optimizer needs to do the lookup before writing the atypes in order to avoid cache misses. Co-authored-by: Jameson Nash <vtjnash@users.noreply.github.com> Co-authored-by: Keno Fischer <keno@alumni.harvard.edu> 04 May 2018, 14:50:08 UTC
598ebff run LibGit2/libgit2 tests again (#26971) 04 May 2018, 14:34:01 UTC
64bceb5 Fix documentation warnings (#26974) * fix various doc-linking problems * spaces > tabs the tabs in NEWS.md tripped up the markdown parser and interpreted those lines as an inline code snippet 04 May 2018, 13:09:38 UTC
fa0704b specify eltype for Random.UniformBits (internal type) (#26940) 03 May 2018, 21:58:03 UTC
fdf1682 Fix Vector'Diagonal (ans Transpose as well) to avoid infinite recursion. (#26924) Also add optimized methods for x'D*y to avoid allocating temporary vector 03 May 2018, 21:56:12 UTC
fcbfc5d Implement isopen for RemoteChannel (#26890) 03 May 2018, 21:50:43 UTC
dc3aa5a Merge pull request #26968 from JuliaLang/mb/restorenonscalarsetindextobootstrap Restore nonscalar `setindex!(::Array,...)` for bootstrap 03 May 2018, 21:26:47 UTC
fe99c4a Merge pull request #26961 from JuliaLang/mb/randomerrandom Make random test less likely to fail 03 May 2018, 19:51:12 UTC
fa9b575 Merge pull request #26960 from Liozou/outlining Update stacktraces docs 03 May 2018, 19:50:31 UTC
b9f412b Set seed in SparseArrays test for dropzeros to avoid occasional test (#26965) failure Fixes #26909 03 May 2018, 18:23:50 UTC
bda1d1d Restore nonscalar `setindex!(::Array,...)` for bootstrap This reverts a very tiny tiny portion of commit 7e2ce0e5433af4fcaee9f7893f90d80c21316044. 03 May 2018, 15:16:44 UTC
b4798b9 More exact computation of allocations in Sparse broadcast (#26950) * More exact computation of allocations in Sparse broadcast This uses `@allocated` to actually compute how expensive it is to convert a transposed sparse matrix to a CSC structure instead of just guessing. 03 May 2018, 15:03:08 UTC
61350d6 Merge pull request #26964 from JuliaLang/kf/misc [NewOptimizer] Fix complaints by legacy validator on new IR 03 May 2018, 14:04:38 UTC
f851ff7 Merge pull request #26963 from JuliaLang/kf/phinoderefactor [NewOptimizer] Refactor phinode codegen 03 May 2018, 14:04:24 UTC
8e8ddd4 [NewOptimizer] Fix complaints by legacy validator on new IR Once things settle we should integrate the validator with the new IR verifier, but for now just make sure it doesn't complain on new style IR. 03 May 2018, 02:40:03 UTC
a5c119f [NewOptimizer] Refactor phinode codegen Turns out the old approach we used didn't work, because it was possible for the processing of one phi node to clobber the operands of another (e.g. in a loop where one phi node depends on another). Fix this by using two buffers. This isn't great, but hopefully LLVM should do ok at it. If not, we can fix LLVM or try to be smarter. 03 May 2018, 02:38:23 UTC
7e2ce0e RFC: Deprecate implicit scalar broadcasting in setindex! (#26347) The current `setindex!` function (the `A[i] = b` syntax) does three very different operations: * Given an index `i` that refers to only one location (scalar indexing), `A[i] = b` modifies `A` in that location to hold `b`. * Given an index `I` that refers to more than one location (non-scalar indexing), `A[I] = b` can mean one of two things: * If `b` is an AbstractArray (multi-value), assign the values it contains to those locations `I` in `A`. That is, essentially, `[A[i] = bᵢ for (i, bᵢ) in zip(I, b)]`. * If `b` is not an AbstractArray (scalar-value), then broadcast its value to every location selected by `I` in `A`. These two different behaviors in the non-scalar indexing case basically make using this function in a generic way impossible. If you want to _always_ set the value `b` to many indices of `A`, you _cannot_ use this syntax because `b` might happen to be an array in some cases, radically changing the meaning of the expression. You need to manually iterate over the indices, using scalar setindex methods. But we now also have the new `broadcast!` syntax, `A[I] .= B`, which uses the usual broadcasting semantics to determine how `B` should fill into the values of `A`. This PR deprecates the implicit broadcasting of scalar values in non-scalar indexing in favor of an explicit `.=` broadcast syntax, leaving multi-value non-scalar indexing intact. This is the _exact opposite_ of PR #24368. 02 May 2018, 20:11:34 UTC
5a062fa Merge pull request #26958 from JuliaLang/kf/placateverifier [NewOptimizer] Placate LLVM IR verifier 02 May 2018, 19:12:11 UTC
cdb5893 Make random test less likely to fail Previously, one of Random's tests was checking `rand(s) != rand(s)`, where `s` was a 11001-length range. This is expected to have a one-in-11001 chance of failure, and indeed it has caused at least one CI failure. This changes it to something much less likely to spuriously fail -- if I have my probabilities right here I think it'd be on the order of 10^-20. 02 May 2018, 18:30:08 UTC
64040ce bump utf8proc to 2.1.1 (#26917) * bump utf8proc to 2.1.1 This contains a bug fix for a normalization error (JuliaLang/utf8proc#128), so I would recommend backporting. * added test for JuliaLang/utf8proc#128 * update checksums 02 May 2018, 18:22:32 UTC
804c246 add examples for at-test macros, fix #26018 (#26955) * add examples for at-test macros, fix #26018 * fix show for Test.Broken 02 May 2018, 18:01:57 UTC
093bb0f Update stacktraces docs 02 May 2018, 18:00:45 UTC
76f7d0b Broadcast.AbstractArrayStyle constructor fixups (#26944) All subtypes of AbstractArrayStyle should implement a constructor that takes a `Val(ndims)` argument. This fixes up a number of the builtin styles and adds some tests. 02 May 2018, 17:42:34 UTC
b199a69 [NewOptimizer] Placate LLVM IR verifier 02 May 2018, 16:10:07 UTC
12fea2d better deprecation message for (+|-)(::Array, ::Number) deprecation (#26954) 02 May 2018, 15:12:38 UTC
743887c Broadcast performance: fix type stability (#26942) Remove a needless construction of a covariant typevar within a tuple. Tuples already are covariant. Before: ```julia julia> xset= 10:15 10:15 julia> yset= 12:14 12:14 julia> f(x,y) = sqrt( x^2 + y^2 ) f (generic function with 1 method) julia> function loop3(xset, yset) m = Matrix{Float64}(undef, 3, length(xset)*length(yset)) i = 1 @inbounds for x in xset, y in yset m[:,i] .= (Float64(x), Float64(y), f(x,y)) i += 1 end m end loop3 (generic function with 1 method) julia> using BenchmarkTools julia> @benchmark loop3($xset, $yset) BenchmarkTools.Trial: memory estimate: 5.59 KiB allocs estimate: 109 -------------- minimum time: 9.634 μs (0.00% GC) median time: 10.504 μs (0.00% GC) mean time: 16.472 μs (32.25% GC) maximum time: 43.241 ms (99.95% GC) -------------- samples: 10000 evals/sample: 1 ``` After: ```julia julia> @benchmark loop3($xset, $yset) BenchmarkTools.Trial: memory estimate: 544 bytes allocs estimate: 1 -------------- minimum time: 186.732 ns (0.00% GC) median time: 193.974 ns (0.00% GC) mean time: 217.001 ns (6.63% GC) maximum time: 69.051 μs (99.42% GC) -------------- samples: 10000 evals/sample: 616 ``` 02 May 2018, 14:41:45 UTC
60031ad Merge pull request #26948 from JuliaLang/kf/effectfree [NewOptimizer] Make stmt_effect_free less aggressive 02 May 2018, 10:34:58 UTC
7d48ecb Merge pull request #26900 from JuliaLang/kf/unionsplit [NewOptimizer] Union Split during Inlining 02 May 2018, 00:43:23 UTC
575b9e3 Merge pull request #26951 from JuliaLang/kf/misctests [NewOptimizer] Fix misc compiler tests for new IR 02 May 2018, 00:42:24 UTC
9ef2af9 Merge pull request #26943 from JuliaLang/kf/nestedtrycatch [NewOptimizer] Fix PhiC type lifting for nested try/catch 01 May 2018, 21:43:03 UTC
c42b5eb Merge pull request #26945 from JuliaLang/kf/phicodegencorner [NewOptimizer] Fix phi node codegen corner case 01 May 2018, 21:39:37 UTC
fa02d34 [NewOptimizer] Make stmt_effect_free less aggressive Previously, the new optimizer used the pre-existing `effect_free` function to determine whether it is safe to remove an unreferenced statement. However, this function ignores many builtin's error cases, causing them to be removed when that is not legal to do (because that would potentially remove an exception that would otherwise be thrown). Start fixing this, by introducing a version of the function that is correct for a subset of intresting functions. We will likely need to expand this when we look at the benchmarks, but this should be correct for now. 01 May 2018, 21:37:26 UTC
8f4ff91 Correct comment 01 May 2018, 21:19:56 UTC
3305ef2 Widen element type for processed array 01 May 2018, 21:19:55 UTC
ce70402 [NewOptimizer] Union Split during Inlining This adds union splitting optimizations to the inliner. This works a bit differently from the old optimizer, which did union splitting on the bail out path. Instead, we try to run the full inliner on any union split case that's a dispatch tuple (and record what to do in that case). Doing that allows an effective resolution of #23338, though this PR doesn't quite do that yet, since some further (minor) fixes are needed. 01 May 2018, 21:19:55 UTC
9732218 [NewOptimizer] Fix misc compiler tests for new IR A couple of tests need adjustments for the new IR. With this and all the currently pending PR, I see all tests passing locally with the new optimizer enabled. 01 May 2018, 21:15:48 UTC
f528323 [NewOptimizer] Fix phi node codegen corner case Just a silly corner case where we forgot to check whether val.typ == Union{}, causing a crash in the cmdlineargs test. 01 May 2018, 17:26:01 UTC
67018fb [NewOptimizer] Fix PhiC type lifiting for nested try/catch Fixes two closely related bugs: - PhiC nodes were not participating in type refinement during SSA construction, leading to PhiC nodes that were part of a phi cycle to have too narrow a type. - PhiC nodes part of a Phi cycle did not get an appropriate upsilon node inserted during type lifting. 01 May 2018, 15:19:59 UTC
23388ae Merge pull request #26918 from JuliaLang/kf/reverseaffinity [NewOptimizer] Backport reverse affinity changes from #26778 01 May 2018, 15:19:08 UTC
132a9f4 inference: first try to tmerge tuples to a single Vararg type (#22120) 01 May 2018, 03:19:27 UTC
8770821 Remove indirect dependency on system ZLIB (#26888) * Remove indirect dependency on system ZLIB - build LLVM without ZLIB support - use the bundled ZLIB for libgit * backport bundled zlib patch 30 April 2018, 21:25:44 UTC
509d6a1 Travis: download moreutils from the release tarball (#26902) * Update moreutils git repo location in .travis.yml The old `kitenet.net` domain is down. Checking on wayback, its pages had been throwing 302 redirects to this new domain. * Try downloading tarball from http.debian.net [av skip] 27 April 2018, 21:12:42 UTC
back to top