Skip to content

[release-0.4, RFC] backports for 0.4.1 #13834

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 96 commits into from
Nov 8, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
0b47230
Update edit to better support spaces and args
omus Sep 9, 2015
192e140
better cmdline option err handling (fixes #12679)
nolta Sep 20, 2015
b792604
Bugfix in vcat.
GunnarFarneback Sep 25, 2015
8115bcd
Test case for issue 13315.
GunnarFarneback Sep 25, 2015
b5ea3e1
add trunc methods to BigInt, fixes #13367
simonbyrne Sep 30, 2015
600f647
fix ambiguity warnings trunc(BigInt,::Float16)
simonbyrne Oct 1, 2015
63de70a
Widen setindex_shape_check method signature
mbauman Sep 21, 2015
efdcbf5
Fix inlinedAt debug locations
ihnorton Oct 3, 2015
33e1179
Cleanup triangular multiplication and solves and remove redundant cop…
andreasnoack Oct 3, 2015
78d5701
Use eachindex in generic_scale!
timholy Oct 5, 2015
3b83b4b
Fix bugs & add tests for triangular matrices
kshyatt Oct 7, 2015
6e02d3c
use color in precompilation output if parent process is using color
stevengj Oct 8, 2015
a80e901
Fix Windows Git path issues
tkelman Oct 9, 2015
61bd763
Fix gitconfig modification with bundled git
tkelman Oct 10, 2015
f26ba6c
Add `Libdl.dlext` to documentation
jayschwa Aug 29, 2015
20edc62
Fix regression in `atrepl`
MichaelHatherly Oct 10, 2015
6b074d0
hvcat doc example fixed
mbeltagy Oct 12, 2015
925ca74
Added doctest for hvcat
mbeltagy Oct 12, 2015
6446a16
fixing whitespaces and generating arrary.rst doc
mbeltagy Oct 13, 2015
fbe97b1
Allow setindex! in zero part of Triangular matrices...
mbauman Oct 13, 2015
68bae30
Fix doc bootstrap method error.
MichaelHatherly Oct 14, 2015
930d63d
fix leak in RemoteRef
amitmurthy Oct 15, 2015
df0647e
adds some details to at-async and tweaks at-schedule doc
ssfrr Sep 18, 2015
083a4ca
Fix bug in findmin! and findmax!
sglyon Oct 15, 2015
144fc26
Un-exporting findmin! and findmax! for release-0.4
tkelman Oct 31, 2015
656f3b2
Bump MAX_TYPE_DEPTH again
timholy Oct 12, 2015
76379cb
Prefer the parent module when serializing functions (fixes #13452)
timholy Oct 5, 2015
085a985
Fix generic axpy! for vector element types without commutative multip…
andreasnoack Oct 16, 2015
57ab2f6
Define all other architectures as "not x86"
ginggs Oct 12, 2015
94f2a50
Export `jl_strtod_c`/`jl_strtof_c` from src/
quinnj Oct 16, 2015
6646397
:whale: Avoid unnecessary recompilation in Docker images
malmaud Oct 14, 2015
fb728f0
document llvmcall
ihnorton Oct 18, 2015
f51d239
fix #13597, obey --depwarn==no in codegen
JeffBezanson Oct 21, 2015
1083a96
Many missing doc update.
yuyichao Oct 20, 2015
3087de3
fix #13636, `jl_is_symbol(mn)` assertion failure in codegen
JeffBezanson Oct 21, 2015
86d67f8
Fix InexactError() on windows when trying to mmap large (>2GB) files.…
quinnj Oct 20, 2015
1f8a9ae
getindex(A::SparseMatrixCSC, I::AbstractVector, J::AbstractVector): m…
Sep 3, 2015
05a53d2
Disallow documenting string literals
MichaelHatherly Oct 21, 2015
6a02f0a
update url to point to github's token's page
jakebolewski Oct 16, 2015
d44e492
GitHub no longer stores OAuth tokens
slundberg Oct 1, 2015
fce7beb
Fix #13610, long compilation time for Date(::Day, ::Month, ::Year)
simonster Oct 14, 2015
66f2198
Fix error message interpolation in dates/types.jl
quinnj Oct 10, 2015
be94078
Fix error messages with incorrect ranges
Michael-Klassen Oct 15, 2015
5230690
Move fma from float.jl to floatfuncs.jl
tkelman Oct 20, 2015
5de699b
Do not use fma_llvm on i686
tkelman Oct 21, 2015
d91a6d3
eval build.jl files in a separate Julia process for Pkg.build (fixes …
stevengj Oct 9, 2015
b6b590d
make sure Pkg.build process uses same paths as parent process (see #1…
stevengj Oct 20, 2015
2b8a827
Do not show the type of intrisics when it's `Any`
yuyichao Oct 13, 2015
f8b8457
Clean up code_warntype tests, add test for not showing ::Any for intr…
yuyichao Oct 13, 2015
d5e154c
Loosen some signatures in lapack.jl form Matrix to StridedMatrix
andreasnoack Oct 23, 2015
4b5626d
fix #13605, update calling-c manual chapter for cconvert changes
JeffBezanson Oct 23, 2015
70018be
propagate errors on wait(::RemoteRef) and remotecall_wait
amitmurthy Oct 23, 2015
4bebc9c
fix #13547, fix #11327
JeffBezanson Oct 22, 2015
a3f7c1f
Bump openblas to v0.2.15
tkelman Oct 28, 2015
1fc2d8e
fix #13254, make several forms of hcat and vcat more compiler-friendly
JeffBezanson Oct 23, 2015
8962141
fix bug in pop!(::Set, v, deflt)
StefanKarpinski Oct 23, 2015
fc58467
add pop! test that actually exercises the previously fixed bug
StefanKarpinski Oct 23, 2015
cc07600
fix indentation of llvmcall docstring
StefanKarpinski Oct 23, 2015
ecd449d
Add llvmcall signature to doc
ihnorton Oct 24, 2015
dc30429
Added factorization tests
kshyatt Oct 25, 2015
a80edbd
remove some uses of `invoke` in Base
JeffBezanson Oct 25, 2015
c2838ec
serialize pointers as NULL. fixes #13122
JeffBezanson Oct 26, 2015
c86fd11
fix `read` and `write` methods for `Ptr`. fixes #13122
JeffBezanson Oct 26, 2015
c671ba3
Tests for conj, exp, and diagm
kshyatt Oct 25, 2015
f975d61
perf/micro/perf.c: allocate mandelbrot array and sum only as check
StefanKarpinski Oct 19, 2015
25ab144
Don't throw in sparse LU for singular matrices. Fixes #13781.
andreasnoack Oct 27, 2015
b067510
Reductions shouldn't overflow for LinearSlow arrays
timholy Oct 28, 2015
5b0385d
Fix promotion for eigs and svds
andreasnoack Oct 26, 2015
974bf15
Improve error messages from ARPACK. Fixes #13709
andreasnoack Oct 26, 2015
0e883ce
Fix `first` for LinearSlow arrays
timholy Oct 28, 2015
18a5a88
Document noteworthy difference in += and co.
lucasb-eyer Oct 18, 2015
bf64d50
Fix DateTime conversion issues with Int32
omus Oct 13, 2015
4550dd6
Implement 2d-indexing in mandelperf for matlab
grinsted Oct 23, 2015
e573436
Faster matlab parseintperf
grinsted Oct 23, 2015
6c2b4ef
Remove tests that do not pass without backporting #13166
tkelman Oct 31, 2015
116a6ce
Regen docs and update line numbers in doctest
tkelman Oct 31, 2015
8b243ec
Correct minor typo in doc install README
mpeteuil Oct 31, 2015
00db0ff
Fix broadcasting for empty sparse matrices
c42f Oct 30, 2015
6967712
Add tests for empty sparse matrix broadcasting
c42f Oct 30, 2015
30c5d8c
Add extra parentheses for clarity
c42f Oct 31, 2015
fa24a05
Partial backport of 3a050cf6e6854bc4d078cd358cd9ac70d34bec8c
tkelman Oct 31, 2015
db51f98
make e734f9e7ff2429c3c369f16107adadf71377b525 permanent
StefanKarpinski Oct 31, 2015
ded1380
fix serialization typo
vtjnash Nov 1, 2015
d52cf62
regen rst docs
tkelman Nov 2, 2015
4f9cbaa
Hide multiple spaces when rendering markdown.
hayd Oct 31, 2015
6fa0f6e
Use sparse triangular solvers for sparse triangular solves. Fixes #13…
andreasnoack Oct 27, 2015
04f3d15
fix parametric type definitions for RemoteRef and AbstractChannel
amitmurthy Nov 4, 2015
c57eb14
Vectorize `@ inbounds for x in A ...`
simonster Nov 3, 2015
d011975
Fix type-instability of eachindex(A, B, C...) (fixes #13870)
timholy Nov 4, 2015
61230f2
Fix next(::GraphemeIterator) to return SubString
nalimilan Nov 6, 2015
5f45e8c
Fix [ind,find][min,max] for LinearFast AbstractArrays (fixes #13888)
timholy Nov 7, 2015
cc07e6e
move sidebars to always be before a section header or end of doc
StefanKarpinski Oct 23, 2015
d651e46
fix more jacked up RST all over the place
StefanKarpinski Nov 6, 2015
dfc1904
fix another RST misformat that I missed
StefanKarpinski Nov 6, 2015
d9ff642
make RST formatting fix permanent
StefanKarpinski Nov 6, 2015
385ec5a
Return error from `at-doc` if `macroexpand` fails.
MichaelHatherly Nov 7, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ Julia's build process uses the following external tools:
Julia bundles the following external programs and libraries on some platforms:

- [7-Zip](http://www.7-zip.org/license.txt)
- [BUSYBOX](https://github.com/rmyorston/busybox-w32/blob/master/LICENSE)
- [GIT](http://git-scm.com/about/free-and-open-source)
- [ZLIB](http://zlib.net/zlib_license.html)
- [LIBEXPAT](http://expat.cvs.sourceforge.net/viewvc/expat/expat/README)
Expand Down
9 changes: 2 additions & 7 deletions Make.inc
Original file line number Diff line number Diff line change
Expand Up @@ -525,14 +525,9 @@ ISX86=1
else ifeq ($(ARCH),x86_64)
BINARY=64
ISX86=1
else ifneq (,$(findstring arm,$(ARCH)))
ISX86=0
else ifneq (,$(findstring powerpc,$(ARCH)))
ISX86=0
else ifneq (,$(findstring ppc,$(ARCH)))
ISX86=0
else
$(error "unknown word-size for arch: $(ARCH)")
# For all other architectures (ARM, PPC, AArch64, etc.)
ISX86=0
endif

# If we are running on ARM, set certain options automatically
Expand Down
16 changes: 9 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,12 @@ distclean dist-clean:
dist:
@echo \'dist\' target is deprecated: use \'binary-dist\' instead.

ifeq ($(ARCH),x86_64)
GITCONFIG := $(DESTDIR)$(prefix)/Git/mingw64/etc/gitconfig
else
GITCONFIG := $(DESTDIR)$(prefix)/Git/mingw32/etc/gitconfig
endif

binary-dist: distclean
ifeq ($(USE_SYSTEM_BLAS),0)
ifeq ($(ISX86),1)
Expand Down Expand Up @@ -429,10 +435,8 @@ ifeq ($(OS), WINNT)
cp 7z.exe 7z.dll libexpat-1.dll zlib1.dll libgfortran-3.dll libquadmath-0.dll libstdc++-6.dll libgcc_s_s*-1.dll libssp-0.dll $(bindir) && \
mkdir $(DESTDIR)$(prefix)/Git && \
7z x PortableGit.7z -o"$(DESTDIR)$(prefix)/Git" && \
echo "[core] eol = lf" >> "$(DESTDIR)$(prefix)/Git/etc/gitconfig" && \
sed -i "s/\bautocrlf = true$$/autocrlf = input/" "$(DESTDIR)$(prefix)/Git/etc/gitconfig" && \
cp busybox.exe $(DESTDIR)$(prefix)/Git/bin/echo.exe && \
cp busybox.exe $(DESTDIR)$(prefix)/Git/bin/printf.exe )
echo "[core] eol = lf" >> "$(GITCONFIG)" && \
sed -i "s/\bautocrlf = true$$/autocrlf = input/" "$(GITCONFIG)" )
cd $(DESTDIR)$(bindir) && rm -f llvm* llc.exe lli.exe opt.exe LTO.dll bugpoint.exe macho-dump.exe

# create file listing for uninstall. note: must have Windows path separators and line endings.
Expand Down Expand Up @@ -571,9 +575,7 @@ endif
cd dist-extras && \
$(JLDOWNLOAD) http://downloads.sourceforge.net/sevenzip/7z920_extra.7z && \
$(JLDOWNLOAD) https://unsis.googlecode.com/files/nsis-2.46.5-Unicode-setup.exe && \
$(JLDOWNLOAD) busybox.exe http://frippery.org/files/busybox/busybox-w32-FRP-1-g9eb16cb.exe && \
chmod a+x 7z.exe && \
chmod a+x 7z.dll && \
$(call spawn,./7z.exe) x -y -onsis nsis-2.46.5-Unicode-setup.exe && \
chmod a+x ./nsis/makensis.exe && \
chmod a+x busybox.exe
chmod a+x ./nsis/makensis.exe
56 changes: 35 additions & 21 deletions base/abstractarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ ndims{T,n}(::Type{AbstractArray{T,n}}) = n
ndims{T<:AbstractArray}(::Type{T}) = ndims(super(T))
length(t::AbstractArray) = prod(size(t))::Int
endof(a::AbstractArray) = length(a)
first(a::AbstractArray) = a[1]
first(a::AbstractArray) = a[first(eachindex(a))]

function first(itr)
state = start(itr)
Expand Down Expand Up @@ -409,10 +409,10 @@ next(A::AbstractArray,i) = (@_inline_meta(); (idx, s) = next(i[1], i[2]); (A[idx
done(A::AbstractArray,i) = done(i[1], i[2])

iterstate(i) = i
iterstate(i::Tuple{UnitRange{Int},Int}) = i[2]

# eachindex iterates over all indices. LinearSlow definitions are later.
eachindex(A::AbstractArray) = (@_inline_meta(); eachindex(linearindexing(A), A))
eachindex(::LinearFast, A::AbstractArray) = 1:length(A)

function eachindex(A::AbstractArray, B::AbstractArray)
@_inline_meta
Expand All @@ -422,8 +422,16 @@ function eachindex(A::AbstractArray, B::AbstractArray...)
@_inline_meta
eachindex(linearindexing(A,B...), A, B...)
end
eachindex(::LinearFast, A::AbstractArray, B::AbstractArray) = 1:max(length(A),length(B))
eachindex(::LinearFast, A::AbstractArray, B::AbstractArray...) = 1:max(length(A), map(length, B)...)
eachindex(::LinearFast, A::AbstractArray) = 1:length(A)
function eachindex(::LinearFast, A::AbstractArray, B::AbstractArray...)
@_inline_meta
1:_maxlength(A, B...)
end
_maxlength(A) = length(A)
function _maxlength(A, B, C...)
@_inline_meta
max(length(A), _maxlength(B, C...))
end

isempty(a::AbstractArray) = (length(a) == 0)

Expand Down Expand Up @@ -720,29 +728,29 @@ cat(catdim::Integer) = Array(Any, 0)

vcat() = Array(Any, 0)
hcat() = Array(Any, 0)
typed_vcat(T::Type) = Array(T, 0)
typed_hcat(T::Type) = Array(T, 0)

## cat: special cases
hcat{T}(X::T...) = T[ X[j] for i=1, j=1:length(X) ]
hcat{T<:Number}(X::T...) = T[ X[j] for i=1, j=1:length(X) ]
vcat{T}(X::T...) = T[ X[i] for i=1:length(X) ]
vcat{T<:Number}(X::T...) = T[ X[i] for i=1:length(X) ]
hcat{T}(X::T...) = T[ X[j] for i=1, j=1:length(X) ]
hcat{T<:Number}(X::T...) = T[ X[j] for i=1, j=1:length(X) ]

function vcat(X::Number...)
T = promote_typeof(X...)
hvcat_fill(Array(T,length(X)), X)
end
vcat(X::Number...) = hvcat_fill(Array(promote_typeof(X...),length(X)), X)
hcat(X::Number...) = hvcat_fill(Array(promote_typeof(X...),1,length(X)), X)
typed_vcat(T::Type, X::Number...) = hvcat_fill(Array(T,length(X)), X)
typed_hcat(T::Type, X::Number...) = hvcat_fill(Array(T,1,length(X)), X)

function hcat(X::Number...)
T = promote_typeof(X...)
hvcat_fill(Array(T,1,length(X)), X)
end
vcat(V::AbstractVector...) = typed_vcat(promote_eltype(V...), V...)
vcat{T}(V::AbstractVector{T}...) = typed_vcat(T, V...)

function vcat{T}(V::AbstractVector{T}...)
n = 0
function typed_vcat(T::Type, V::AbstractVector...)
n::Int = 0
for Vk in V
n += length(Vk)
end
a = similar(full(V[1]), n)
a = similar(full(V[1]), T, n)
pos = 1
for k=1:length(V)
Vk = V[k]
Expand All @@ -753,7 +761,10 @@ function vcat{T}(V::AbstractVector{T}...)
a
end

function hcat{T}(A::AbstractVecOrMat{T}...)
hcat(A::AbstractVecOrMat...) = typed_hcat(promote_eltype(A...), A...)
hcat{T}(A::AbstractVecOrMat{T}...) = typed_hcat(T, A...)

function typed_hcat(T::Type, A::AbstractVecOrMat...)
nargs = length(A)
nrows = size(A[1], 1)
ncols = 0
Expand All @@ -767,7 +778,7 @@ function hcat{T}(A::AbstractVecOrMat{T}...)
nd = ndims(Aj)
ncols += (nd==2 ? size(Aj,2) : 1)
end
B = similar(full(A[1]), nrows, ncols)
B = similar(full(A[1]), T, nrows, ncols)
pos = 1
if dense
for k=1:nargs
Expand All @@ -787,7 +798,10 @@ function hcat{T}(A::AbstractVecOrMat{T}...)
return B
end

function vcat{T}(A::AbstractMatrix{T}...)
vcat(A::AbstractMatrix...) = typed_vcat(promote_eltype(A...), A...)
vcat{T}(A::AbstractMatrix{T}...) = typed_vcat(T, A...)

function typed_vcat(T::Type, A::AbstractMatrix...)
nargs = length(A)
nrows = sum(a->size(a, 1), A)::Int
ncols = size(A[1], 2)
Expand All @@ -796,7 +810,7 @@ function vcat{T}(A::AbstractMatrix{T}...)
throw(ArgumentError("number of columns of each array must match (got $(map(x->size(x,2), A)))"))
end
end
B = similar(full(A[1]), nrows, ncols)
B = similar(full(A[1]), T, nrows, ncols)
pos = 1
for k=1:nargs
Ak = A[k]
Expand Down
2 changes: 1 addition & 1 deletion base/array.jl
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ collect(itr) = collect(eltype(itr), itr)
## Iteration ##
start(A::Array) = 1
next(a::Array,i) = (a[i],i+1)
done(a::Array,i) = (i > length(a))
done(a::Array,i) = i == length(a)+1

## Indexing: getindex ##

Expand Down
13 changes: 6 additions & 7 deletions base/bitarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1738,22 +1738,21 @@ function vcat(A::BitMatrix...)
return B
end

function cat(catdim::Integer, X::Integer...)
reshape([X...], (ones(Int,catdim-1)..., length(X)))
end

# general case, specialized for BitArrays and Integers
function cat(catdim::Integer, X::Union{BitArray, Integer}...)
nargs = length(X)
# using integers results in conversion to Array{Int}
# (except in the all-Bool case)
has_bitarray = false
has_integer = false
for a in X
if isa(a, BitArray)
has_bitarray = true
else
has_integer = true
if isa(a, Integer)
has_integer = true; break
end
end
# just integers and no BitArrays -> general case
has_bitarray || return invoke(cat, Tuple{Integer, Vararg{Any}}, catdim, X...)
dimsX = map((a->isa(a,BitArray) ? size(a) : (1,)), X)
ndimsX = map((a->isa(a,BitArray) ? ndims(a) : 1), X)
d_max = maximum(ndimsX)
Expand Down
4 changes: 2 additions & 2 deletions base/channels.jl
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is a part of Julia. License is MIT: http://julialang.org/license

abstract AbstractChannel{T}
abstract AbstractChannel

type Channel{T} <: AbstractChannel{T}
type Channel{T} <: AbstractChannel
cond_take::Condition # waiting for data to become available
cond_put::Condition # waiting for a writeable slot
state::Symbol
Expand Down
Loading