Skip to content

Commit

Permalink
Merge branch 'master' into jq/enum
Browse files Browse the repository at this point in the history
Conflicts:
	base/exports.jl
	test/runtests.jl
  • Loading branch information
quinnj committed Feb 20, 2015
2 parents 9533436 + 232ac9b commit fb8894a
Show file tree
Hide file tree
Showing 138 changed files with 3,205 additions and 1,855 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
[submodule "deps/openspecfun"]
path = deps/openspecfun
url = git://github.com/JuliaLang/openspecfun.git
[submodule "deps/Rmath"]
path = deps/Rmath
url = git://github.com/JuliaLang/Rmath.git
[submodule "deps/libmojibake"]
path = deps/libmojibake
url = git://github.com/JuliaLang/libmojibake.git
2 changes: 0 additions & 2 deletions ARM.inc
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
BFORCE_ARMV7=1

override LLVM_ASSERTIONS=1
LLVM_FLAGS+="--with-cpu=cortex-a9 --with-float=hard --with-abi=aapcs-vfp --with-fpu=neon --enable-targets=arm --enable-optimized --enable-assertions"

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Add new code to Julia's base libraries as follows:

3. Add any necessary export symbols in `exports.jl`.

4. Include your tests in `test/Makefile` and `test/runtests.jl`.
4. Include your tests in `test/Makefile` and `test/choosetests.jl`.

Build as usual, and do `make clean testall` to test your contribution. If your contribution includes changes to Makefiles or external dependencies, make sure you can build Julia from a clean tree using `git clean -fdx` or equivalent (be careful – this command will delete any files lying around that aren't checked into git).

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ of the compiler (the contents of src/), most of the standard library (base/),
and some utilities (most of the rest of the files in this repository). See below
for exceptions.

> Copyright (c) 2009-2014: Jeff Bezanson, Stefan Karpinski, Viral B. Shah,
> Copyright (c) 2009-2015: Jeff Bezanson, Stefan Karpinski, Viral B. Shah,
> and other contributors:
>
> https://github.com/JuliaLang/julia/contributors
Expand Down
60 changes: 36 additions & 24 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ ifeq ($(JULIA_DIST_TARNAME),)
JULIA_DIST_TARNAME = julia-$(JULIA_COMMIT)-$(OS)-$(ARCH)
endif

all: default
ifeq ($(JULIA_DEBUG), 1)
default: debug
else
default: release
endif
all: debug release

# sort is used to remove potential duplicates
DIRS = $(sort $(build_bindir) $(build_libdir) $(build_private_libdir) $(build_libexecdir) $(build_sysconfdir)/julia $(build_datarootdir)/julia $(build_man1dir))
Expand All @@ -46,10 +46,38 @@ else
$(warn "Submodules could not be updated because git is unavailable")
endif

debug release: | $(DIRS) $(build_datarootdir)/julia/base $(build_datarootdir)/julia/test $(build_docdir) $(build_sysconfdir)/julia/juliarc.jl $(build_man1dir)/julia.1
@$(MAKE) $(QUIET_MAKE) julia-$@
@export private_libdir=$(private_libdir) && \
$(MAKE) $(QUIET_MAKE) LD_LIBRARY_PATH=$(build_libdir):$(LD_LIBRARY_PATH) JULIA_EXECUTABLE="$(JULIA_EXECUTABLE_$@)" $(build_private_libdir)/sys.$(SHLIB_EXT)
julia-symlink-debug: julia-ui-debug
ifneq ($(OS),WINNT)
ifndef JULIA_VAGRANT_BUILD
@ln -sf "$(build_bindir)/julia-debug" julia
endif
endif

julia-symlink-release: julia-ui-release
ifneq ($(OS),WINNT)
ifndef JULIA_VAGRANT_BUILD
@ln -sf "$(build_bindir)/julia" julia
endif
endif

julia-deps: git-submodules | $(DIRS) $(build_datarootdir)/julia/base $(build_datarootdir)/julia/test $(build_docdir) $(build_sysconfdir)/julia/juliarc.jl $(build_man1dir)/julia.1
@$(MAKE) $(QUIET_MAKE) -C deps

julia-base: julia-deps
@$(MAKE) $(QUIET_MAKE) -C base

julia-src-%: julia-deps
@$(MAKE) $(QUIET_MAKE) -C src libjulia-$*

julia-ui-%: julia-src-%
@$(MAKE) $(QUIET_MAKE) -C ui julia-$*

julia-sysimg-% : julia-ui-% julia-base
@$(MAKE) $(QUIET_MAKE) LD_LIBRARY_PATH=$(build_libdir):$(LD_LIBRARY_PATH) JULIA_EXECUTABLE="$(JULIA_EXECUTABLE_$*)" $(build_private_libdir)/sys.$(SHLIB_EXT)

julia-debug julia-release : julia-% : julia-sysimg-% julia-symlink-%

debug release : % : julia-%

check-whitespace:
ifneq ($(NO_GIT), 1)
Expand Down Expand Up @@ -100,23 +128,6 @@ release-candidate: release test
@echo 9. Change master to release-0.X in base/version.jl and base/version_git.sh as in 4cb1e20
@echo

julia-debug-symlink:
@ln -sf $(build_bindir)/julia-debug julia

julia-release-symlink:
@ln -sf $(build_bindir)/julia julia

julia-debug julia-release: git-submodules
@$(MAKE) $(QUIET_MAKE) -C deps
@$(MAKE) $(QUIET_MAKE) -C src lib$@
@$(MAKE) $(QUIET_MAKE) -C base
@$(MAKE) $(QUIET_MAKE) -C ui $@
ifneq ($(OS),WINNT)
ifndef JULIA_VAGRANT_BUILD
@$(MAKE) $(QUIET_MAKE) $@-symlink
endif
endif

$(build_docdir)/helpdb.jl: doc/helpdb.jl | $(build_docdir)
@cp $< $@

Expand Down Expand Up @@ -147,7 +158,7 @@ else
@true
endif

$(build_private_libdir)/sys0.o:
$(build_private_libdir)/sys0.o: | $(build_private_libdir)
@$(call PRINT_JULIA, cd base && \
$(call spawn,$(JULIA_EXECUTABLE)) -C $(JULIA_CPU_TARGET) --build $(call cygpath_w,$(build_private_libdir)/sys0) sysimg.jl)

Expand Down Expand Up @@ -216,7 +227,7 @@ endif

ifeq ($(OS),WINNT)
define std_dll
debug release: | $$(build_bindir)/lib$(1).dll
julia-deps: | $$(build_bindir)/lib$(1).dll
$$(build_bindir)/lib$(1).dll: | $$(build_bindir)
ifeq ($$(BUILD_OS),$$(OS))
cp $$(call pathsearch,lib$(1).dll,$$(PATH)) $$(build_bindir) ;
Expand Down Expand Up @@ -448,6 +459,7 @@ distcleanall: cleanall

.PHONY: default debug release check-whitespace release-candidate \
julia-debug julia-release \
julia-deps julia-ui-* julia-src-* julia-symlink-* julia-base julia-sysimg-* \
test testall testall1 test-* clean distcleanall cleanall \
run-julia run-julia-debug run-julia-release run \
install dist source-dist git-submodules
Expand Down
114 changes: 71 additions & 43 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ New language features
and macros in packages and user code ([#8791]). Type `?@doc` at the repl
to see the current syntax and more information.

* New multidimensional iterators and index types for efficient
iteration over general AbstractArrays

Language changes
----------------

Expand All @@ -44,6 +41,8 @@ Language changes

* `Nothing` (the type of `nothing`) is renamed to `Void` ([#8423]).

* Arrays can be constructed with the syntax `Array{T}(m,n)` ([#3214], [#10075])

* `Dict` literal syntax `[a=>b,c=>d]` is replaced with `Dict(a=>b,c=>d)`.
`{a=>b}` is replaced with `Dict{Any,Any}(a=>b)`.
`(K=>V)[...]` is replaced with `Dict{K,V}(...)`.
Expand All @@ -63,6 +62,10 @@ Language changes
* `round` rounds to the nearest integer using the default rounding mode,
which is ties to even by default ([#8750]).

* A custom triple-quoted string like `x"""..."""` no longer invokes an `x_mstr`
macro. Instead, the string is first unindented and then `x_str` is invoked,
as if the string had been single-quoted ([#10228]).

Compiler improvements
---------------------

Expand All @@ -79,72 +82,85 @@ Compiler improvements
Library improvements
--------------------

* The `LinAlg` module is now exported.
* New multidimensional iterators and index types for efficient
iteration over general AbstractArrays

* `sparse(A)` now takes any `AbstractMatrix` A as an argument. ([#10031])
* `LinAlg` improvements

* Factorization api is now type-stable, functions dispatch on `Val{false}` or `Val{true}` instead of a boolean value ([#9575]).
* The `LinAlg` module is now exported.

* `convert` now checks for overflow when truncating integers or converting between
signed and unsigned ([#5413]).
* `sparse(A)` now takes any `AbstractMatrix` A as an argument. ([#10031])

* Arithmetic is type-preserving for more types; e.g. `(x::Int8) + (y::Int8)` now
yields an `Int8` ([#3759]).
* Factorization api is now type-stable, functions dispatch on `Val{false}` or `Val{true}` instead of a boolean value ([#9575]).

* Reductions (e.g. `reduce`, `sum`) widen small types (integers smaller than `Int`, and `Float16`).
* Added generic Cholesky factorization, and the Cholesky factorization is now parametrized on the matrix type ([#7236]).

* New `Dates` module for calendar dates and other time-interval calculations ([#7654]).
* Add `svds` for sparse truncated SVD. ([#9425])

* New implementation of SubArrays with substantial performance and functionality improvements ([#8501]).
* Symmetric and Hermitian immutables are now parametrized on matrix type ([#7992]).

* Added generic Cholesky factorization, and the Cholesky factorization is now parametrized on the matrix type ([#7236]).
* New `ordschur` and `ordschur!` functions for sorting a schur factorization by the eigenvalues. ([#8467],[#9701])

* Add `svds` for sparse truncated SVD. ([#9425])
* Givens type doesn't have a size anymore and is no longer a subtype of AbstractMatrix ([#8660])

* Symmetric and Hermitian immutables are now parametrized on matrix type ([#7992]).
* Large speedup in sparse ``\`` and splitting of Cholesky and LDLt factorizations into ``cholfact`` and ``ldltfact`` ([#10117])

* New `ordschur` and `ordschur!` functions for sorting a schur factorization by the eigenvalues. ([#8467],[#9701])
* Add sparse least squares to ``\`` by adding ``qrfact`` for sparse matrices based on the SPQR library. ([#10180])

* Givens type doesn't have a size anymore and is no longer a subtype of AbstractMatrix ([#8660])
* Other improvements

* OpenBLAS 64-bit (ILP64) interface is now compiled with a `64_` suffix ([#8734]) to avoid conflicts with external libraries using a 32-bit BLAS ([#4923]).
* `assert`, `@assert` now throws an `AssertionError` exception type ([#9734]).

* New `sortperm!` function for pre-allocated index arrays ([#8792]).
* `convert` now checks for overflow when truncating integers or converting between
signed and unsigned ([#5413]).

* Arithmetic is type-preserving for more types; e.g. `(x::Int8) + (y::Int8)` now
yields an `Int8` ([#3759]).

* Reductions (e.g. `reduce`, `sum`) widen small types (integers smaller than `Int`, and `Float16`).

* New `Dates` module for calendar dates and other time-interval calculations ([#7654]).

* Switch from `O(N)` to `O(logN)` algorithm for `dequeue!(pq, key)`
* New implementation of SubArrays with substantial performance and functionality improvements ([#8501]).

* OpenBLAS 64-bit (ILP64) interface is now compiled with a `64_` suffix ([#8734]) to avoid conflicts with external libraries using a 32-bit BLAS ([#4923]).

* New `sortperm!` function for pre-allocated index arrays ([#8792]).

* Switch from `O(N)` to `O(logN)` algorithm for `dequeue!(pq, key)`
with `PriorityQueue`. This provides major speedups for large
queues ([#8011]).

* `PriorityQueue` now includes the order type among its parameters,
* `PriorityQueue` now includes the order type among its parameters,
`PriorityQueue{KeyType,ValueType,OrderType}`. An empty queue can
be constructed as `pq = PriorityQueue(KeyType,ValueType)`, if you
intend to use the default `Forward` order, or
`pq = PriorityQueue(KeyType, ValueType, OrderType)` otherwise ([#8011]).

* Efficient `mean` and `median` for ranges ([#8089]).
* Efficient `mean` and `median` for ranges ([#8089]).

* `graphemes(s)` returns an iterator over grapheme substrings of `s` ([#9261]).
* `graphemes(s)` returns an iterator over grapheme substrings of `s` ([#9261]).

* Character predicates such as `islower()`, `isspace()`, etc. use utf8proc/libmojibake
* Character predicates such as `islower()`, `isspace()`, etc. use utf8proc/libmojibake
to provide uniform cross-platform behavior and up-to-date, locale-independent support
for Unicode standards ([#5939]).

* `reverseind` function to convert indices in reversed strings (e.g. from
* `reverseind` function to convert indices in reversed strings (e.g. from
reversed regex searches) to indices in the original string ([#9249]).

* New `Nullable` type for missing data ([#8152]).
* New `Nullable` type for missing data ([#8152]).

* `deepcopy` recurses through immutable types and makes copies of their mutable fields ([#8560]).
* `deepcopy` recurses through immutable types and makes copies of their mutable fields ([#8560]).

* `@simd` now rejects invalid control flow (`@goto` / break / continue) in the inner loop body at compile time ([#8624]).
* `@simd` now rejects invalid control flow (`@goto` / break / continue) in the inner loop body at compile time ([#8624]).

* The `machinefile` now supports a host count ([#7616]).
* The `machinefile` now supports a host count ([#7616]).

* Added optional rounding argument to floating-point constructors ([#8845]).
* Added optional rounding argument to floating-point constructors ([#8845]).

* `code_native` now outputs branch labels ([#8897]).
* `code_native` now outputs branch labels ([#8897]).

* Streamlined random number generation APIs [#8246].
* Streamlined random number generation APIs [#8246].
The default `rand` no longer uses global state in the underlying C library,
dSFMT, making it closer to being thread-safe ([#8399], [#8832]).
All APIs can now take an `AbstractRNG` argument ([#8854], [#9065]).
Expand All @@ -153,26 +169,26 @@ Library improvements
Passing a range of `BigInt` to `rand` or `rand!` is now supported ([#9122]).
There are speed improvements across the board ([#8808], [#8941], [#8958], [#9083]).

* Significantly faster `randn` ([#9126], [#9132]).
* Significantly faster `randn` ([#9126], [#9132]).

* The `randexp` and `randexp!` functions are exported ([#9144])
* The `randexp` and `randexp!` functions are exported ([#9144])

* A new `Val{T}` type allows one to dispatch on bits-type values ([#9452])
* A new `Val{T}` type allows one to dispatch on bits-type values ([#9452])

* Added `recvfrom` to get source address of UDP packets ([#9418])
* Added `recvfrom` to get source address of UDP packets ([#9418])

* copy(DArray) will now make a copy of the DArray ([#9745])
* copy(DArray) will now make a copy of the DArray ([#9745])

* Split `Triangular` type into `UpperTriangular`, `LowerTriangular`, `UnitUpperTriagular` and `UnitLowerTriangular` ([#9779])
* Split `Triangular` type into `UpperTriangular`, `LowerTriangular`, `UnitUpperTriagular` and `UnitLowerTriangular` ([#9779])

* ClusterManager - Performance improvements([#9309]) and support for changing transports([#9434])
* ClusterManager - Performance improvements([#9309]) and support for changing transports([#9434])

* Equality (`==`) and inequality (`<`/`<=`) comparisons are now correct
* Equality (`==`) and inequality (`<`/`<=`) comparisons are now correct
across all numeric types ([#9133], [#9198]).

* Rational arithmetic throws errors on overflow ([#8672]).
* Rational arithmetic throws errors on overflow ([#8672]).

* Added Base.get_process_title / Base.set_process_title. ([#9957])
* Added Base.get_process_title / Base.set_process_title. ([#9957])

Deprecated or removed
---------------------
Expand Down Expand Up @@ -204,6 +220,9 @@ Deprecated or removed

* `null` is renamed to `nullspace`.

* The operators `|>`, `.>`, `>>`, and `.>>` as used for process I/O redirection
are replaced with the `pipe` function ([#5349]).

Julia v0.3.0 Release Notes
==========================

Expand Down Expand Up @@ -974,6 +993,7 @@ Too numerous to mention.
[#3141]: https://github.com/JuliaLang/julia/issues/3141
[#3148]: https://github.com/JuliaLang/julia/issues/3148
[#3149]: https://github.com/JuliaLang/julia/issues/3149
[#3214]: https://github.com/JuliaLang/julia/issues/3214
[#3233]: https://github.com/JuliaLang/julia/issues/3233
[#3272]: https://github.com/JuliaLang/julia/issues/3272
[#3344]: https://github.com/JuliaLang/julia/issues/3344
Expand Down Expand Up @@ -1049,6 +1069,7 @@ Too numerous to mention.
[#5275]: https://github.com/JuliaLang/julia/issues/5275
[#5277]: https://github.com/JuliaLang/julia/issues/5277
[#5330]: https://github.com/JuliaLang/julia/issues/5330
[#5349]: https://github.com/JuliaLang/julia/issues/5349
[#5358]: https://github.com/JuliaLang/julia/issues/5358
[#5380]: https://github.com/JuliaLang/julia/issues/5380
[#5381]: https://github.com/JuliaLang/julia/issues/5381
Expand Down Expand Up @@ -1145,6 +1166,7 @@ Too numerous to mention.
[#8297]: https://github.com/JuliaLang/julia/issues/8297
[#8399]: https://github.com/JuliaLang/julia/issues/8399
[#8423]: https://github.com/JuliaLang/julia/issues/8423
[#8467]: https://github.com/JuliaLang/julia/issues/8467
[#8501]: https://github.com/JuliaLang/julia/issues/8501
[#8560]: https://github.com/JuliaLang/julia/issues/8560
[#8578]: https://github.com/JuliaLang/julia/issues/8578
Expand Down Expand Up @@ -1194,8 +1216,14 @@ Too numerous to mention.
[#9575]: https://github.com/JuliaLang/julia/issues/9575
[#9578]: https://github.com/JuliaLang/julia/issues/9578
[#9690]: https://github.com/JuliaLang/julia/issues/9690
[#9701]: https://github.com/JuliaLang/julia/issues/9701
[#9734]: https://github.com/JuliaLang/julia/issues/9734
[#9745]: https://github.com/JuliaLang/julia/issues/9745
[#9779]: https://github.com/JuliaLang/julia/issues/9779
[#9957]: https://github.com/JuliaLang/julia/issues/9957
[#10024]: https://github.com/JuliaLang/julia/issues/10024
[#10031]: https://github.com/JuliaLang/julia/issues/10031
[#10075]: https://github.com/JuliaLang/julia/issues/10075
[#10117]: https://github.com/JuliaLang/julia/issues/10117
[#10180]: https://github.com/JuliaLang/julia/issues/10180
[#10228]: https://github.com/JuliaLang/julia/issues/10228
7 changes: 5 additions & 2 deletions README.arm.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ progress - several tests are known to fail, and backtraces are not
available.

In addition to the standard `build-essentials` toolchain the following
libraries must be installed to build on ARM:
libraries must be installed to build on ARM. On Debian/Ubuntu, use the
following command:

- libblas3gf, liblapack3gf, libfftw3-dev, libgmp3-dev, libmpfr-dev, libblas-dev, liblapack-dev
````
sudo apt-get install libblas3gf liblapack3gf libfftw3-dev libgmp3-dev libmpfr-dev libblas-dev liblapack-dev cmake gcc-4.7 g++-4.7 gfortran libgfortran3
````

Please start from the standard [build
instructions](README.md#source-download-and-compilation), in
Expand Down
Loading

0 comments on commit fb8894a

Please sign in to comment.