https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
8bc794d [NewOptimizer] Fix codegen test With the new optimizer enabled, we compile a signature for eval(::Module, ::Any), which throws off the codegen test. I'm not entirely sure why this is different, from the old optimizer, but presumably the old optimizer compiled this singature beforehand. To fix this, simply add another call to `eval` that forces this signature to be compiled. 12 May 2018, 19:40:28 UTC
a224143 Make LibGit2 GitRepo API robust against closed repos Fixes #21638 12 May 2018, 02:39:05 UTC
ff99c03 Merge pull request #27074 from JuliaLang/kf/pinodeinsertion Extract PiNode insertion code from #26969 12 May 2018, 01:44:34 UTC
1d53232 fix fieldtype vararg and union handling (#27059) * fix fieldtype vararg and union handling * add tests 11 May 2018, 20:37:37 UTC
a65d8b4 Extract PiNode insertion code from #26969 This is just the pinode insertion code from #26969, which together with #27068, should hopefully cover the same benchmarks in a more acceptable way. 11 May 2018, 18:22:57 UTC
b9b4da5 Support zero-dimensional reshapes (#27061) Final point that can close #17194. 11 May 2018, 18:15:52 UTC
3b5e180 One more bugfix from #26969 11 May 2018, 18:03:29 UTC
c43d3b0 Add test to ensure rand! is allocation-free (#27060) Adds a test to close #14006. 11 May 2018, 16:09:46 UTC
749afcb Merge pull request #27046 from JuliaLang/kc/bump_pkg3_8 Bump Pkg3 11 May 2018, 15:56:00 UTC
f90c599 Avoid out of bounds read in mul! for SymTridiagonal (#27008) * Avoid out of bounds read in mul! for SymTridiagonal Fixes #26994 * Also handle 0x0 case 11 May 2018, 06:29:57 UTC
1b73dfc Merge pull request #27064 from JuliaLang/kf/newoptbugfixes Extract bug fixes from #26969 11 May 2018, 02:58:00 UTC
34d04a4 fix showing shared arrays (#27047) 11 May 2018, 00:25:41 UTC
0ed32a3 Fix method overwrite warning (#27056) Fix method overwrite warning in `round` Fixes #27053 11 May 2018, 00:24:41 UTC
f1b2328 fix a method cache matching issue with Type{T} (#26984) respect type-equality, keep track separately of what Kind it needs to match revert dfd8fc1f9067a4ec78dfdab0b36089842a10bab9 fix #11840 (except for generated functions) 10 May 2018, 22:10:21 UTC
6fb4569 don't show `Environment:` in `versioninfo` output when env is empty (#27050) 10 May 2018, 21:21:44 UTC
78cf3cc [NewOptimizer] Minor bugfixes 10 May 2018, 20:52:27 UTC
ac1f2bf [NewOptimizer] Fix bug in unionsplit 10 May 2018, 20:51:23 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
980be60 fix spelling of instantiate 09 May 2018, 11:08:46 UTC
978d2e8 use smaller granularity in progressbar when testing 09 May 2018, 11:08:46 UTC
4ec7bb2 Download archives by tree hash instead of tag (#281) * Download archives by tree hash instead of tag Since we don't do any validation of the archives, downloading based on tag presents a potential security hole whereby a compromised repository retags a version. This should fix that by downloading the archive for the tree directly. Note that the documentation (https://developer.github.com/v3/repos/contents/#get-archive-link) says that it should be a valid git reference, but using hashes seems to work as well. * add note to method 09 May 2018, 11:08:46 UTC
6bd42a4 implement instantiate (#278) can be used to instantiate a manifest without going through the resolver also, show warning in status output about non downloaded packages 09 May 2018, 11:08:46 UTC
e0d5ea6 no longer collect dependencies from the registry for fixed packages (#273) 09 May 2018, 11:08:46 UTC
76a6362 fix some printing inconsistencies (#272) * fix some printing inconsistencies 09 May 2018, 11:08:46 UTC
24376f8 fix pin on repo added packages (#268) * fix pin on repo added packages * more pin free fixes 09 May 2018, 09:56:10 UTC
a221e91 fix that adding julia as a packag was possible (#267) 09 May 2018, 09:56:03 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
back to top