Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: JuliaLang/julia
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 971750ccdbca4020e6f6dff9ee0014d8e780f5aa
Choose a base ref
..
head repository: JuliaLang/julia
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 665c3a7fcc06454348cfa9e4ac8377e77e78388a
Choose a head ref
Showing with 14,800 additions and 11,894 deletions.
  1. +1 −1 .travis.yml
  2. +7 −20 Makefile
  3. +75 −20 NEWS.md
  4. +4 −4 base/Enums.jl
  5. +6 −5 base/REPLCompletions.jl
  6. +53 −81 base/abstractarray.jl
  7. +1 −4 base/abstractarraymath.jl
  8. +21 −8 base/array.jl
  9. +0 −127 base/arraymath.jl
  10. +3 −3 base/associative.jl
  11. +1 −1 base/asyncmap.jl
  12. +2 −2 base/base.jl
  13. +0 −88 base/bitarray.jl
  14. +4 −4 base/bool.jl
  15. +8 −23 base/boot.jl
  16. +2 −2 base/broadcast.jl
  17. +9 −6 base/c.jl
  18. +14 −19 base/channels.jl
  19. +1 −1 base/checked.jl
  20. +2 −2 base/client.jl
  21. +26 −0 base/ctypes.jl
  22. +18 −0 base/deepcopy.jl
  23. +141 −16 base/deprecated.jl
  24. +12 −13 base/dict.jl
  25. +7 −5 base/docs/Docs.jl
  26. +10 −0 base/docs/basedocs.jl
  27. +4 −54 base/docs/helpdb/Base.jl
  28. +1 −1 base/error.jl
  29. +40 −9 base/essentials.jl
  30. +3 −3 base/exports.jl
  31. +15 −23 base/fastmath.jl
  32. +0 −1 base/fft/FFTW.jl
  33. +89 −88 base/float.jl
  34. +21 −22 base/floatfuncs.jl
  35. +656 −417 base/inference.jl
  36. +140 −144 base/int.jl
  37. +25 −14 base/interactiveutil.jl
  38. +9 −2 base/io.jl
  39. +5 −0 base/iostream.jl
  40. +6 −6 base/libc.jl
  41. +32 −0 base/libgit2/blob.jl
  42. +6 −5 base/libgit2/config.jl
  43. +21 −18 base/libgit2/diff.jl
  44. +13 −24 base/libgit2/index.jl
  45. +42 −14 base/libgit2/libgit2.jl
  46. +20 −5 base/libgit2/reference.jl
  47. +27 −35 base/libgit2/remote.jl
  48. +81 −12 base/libgit2/repository.jl
  49. +9 −31 base/libgit2/strarray.jl
  50. +8 −6 base/libgit2/tag.jl
  51. +22 −0 base/libgit2/tree.jl
  52. +51 −14 base/libgit2/types.jl
  53. +12 −0 base/libgit2/utils.jl
  54. +5 −2 base/linalg/arnoldi.jl
  55. +0 −21 base/linalg/arpack.jl
  56. +9 −0 base/linalg/bidiag.jl
  57. +85 −0 base/linalg/bitarray.jl
  58. +1 −0 base/linalg/bunchkaufman.jl
  59. +3 −0 base/linalg/cholesky.jl
  60. +3 −2 base/linalg/dense.jl
  61. +15 −3 base/linalg/diagonal.jl
  62. +16 −4 base/linalg/generic.jl
  63. +1 −0 base/linalg/ldlt.jl
  64. +15 −6 base/linalg/linalg.jl
  65. +1 −0 base/linalg/lq.jl
  66. +1 −0 base/linalg/lu.jl
  67. +1 −4 base/linalg/matmul.jl
  68. +7 −0 base/linalg/qr.jl
  69. +232 −0 base/linalg/rowvector.jl
  70. +20 −12 base/linalg/schur.jl
  71. +153 −0 base/linalg/transpose.jl
  72. +45 −3 base/linalg/triangular.jl
  73. +5 −3 base/linalg/uniformscaling.jl
  74. +2 −1 base/markdown/Common/Common.jl
  75. +37 −0 base/markdown/Common/inline.jl
  76. +2 −1 base/markdown/GitHub/GitHub.jl
  77. +2 −1 base/markdown/Julia/Julia.jl
  78. +2 −5 base/markdown/Julia/interp.jl
  79. +1 −1 base/markdown/render/html.jl
  80. +178 −38 base/math.jl
  81. +24 −11 base/methodshow.jl
  82. +14 −1 base/mpfr.jl
  83. +225 −243 base/multidimensional.jl
  84. +42 −21 base/multimedia.jl
  85. +1 −0 base/nullable.jl
  86. +1 −5 base/number.jl
  87. +96 −12 base/operators.jl
  88. +1 −1 base/permuteddimsarray.jl
  89. +0 −1 base/pkg/cache.jl
  90. +1 −1 base/pkg/dir.jl
  91. +1 −1 base/pkg/query.jl
  92. +1 −2 base/pkg/resolve.jl
  93. +89 −68 base/pmap.jl
  94. +9 −7 base/pointer.jl
  95. +23 −22 base/promotion.jl
  96. +0 −3 base/range.jl
  97. +3 −0 base/rational.jl
  98. +2 −3 base/reducedim.jl
  99. +34 −14 base/reflection.jl
  100. +11 −8 base/replutil.jl
  101. +71 −2 base/reshapedarray.jl
  102. +44 −37 base/serialize.jl
  103. +64 −58 base/sharedarray.jl
  104. +64 −43 base/show.jl
  105. +1 −4 base/socket.jl
  106. +8 −6 base/sort.jl
  107. +5 −1 base/sparse/cholmod.jl
  108. +114 −68 base/sparse/higherorderfns.jl
  109. +2 −0 base/sparse/linalg.jl
  110. +3 −1 base/sparse/sparsematrix.jl
  111. +9 −15 base/sparse/sparsevector.jl
  112. +0 −1 base/special/bessel.jl
  113. +50 −85 base/subarray.jl
  114. +0 −7 base/sysimg.jl
  115. +1 −1 base/sysinfo.jl
  116. +57 −79 base/test.jl
  117. +4 −4 base/tuple.jl
  118. +1 −1 base/util.jl
  119. +3 −4 base/weakkeydict.jl
  120. +1 −1 contrib/windows/get_toolchain.sh
  121. +1 −1 contrib/windows/msys_build.sh
  122. +1 −0 deps/checksums/libuv-52d72a52cc7ccd570929990f010ed16e2ec604c8.tar.gz/md5
  123. +1 −0 deps/checksums/libuv-52d72a52cc7ccd570929990f010ed16e2ec604c8.tar.gz/sha512
  124. +0 −1 deps/checksums/libuv-8d5131b6c1595920dd30644cd1435b4f344b46c8.tar.gz/md5
  125. +0 −1 deps/checksums/libuv-8d5131b6c1595920dd30644cd1435b4f344b46c8.tar.gz/sha512
  126. +1 −1 deps/libuv.version
  127. +1 −1 deps/llvm.mk
  128. +19 −0 deps/patches/llvm-3.9.0_threads.patch
  129. +1 −1 doc/Makefile
  130. +1 −1 doc/src/devdocs/ast.md
  131. +1 −1 doc/src/devdocs/functions.md
  132. +155 −367 doc/src/devdocs/types.md
  133. +90 −84 doc/src/manual/arrays.md
  134. +158 −94 doc/src/manual/calling-c-and-fortran-code.md
  135. +71 −75 doc/src/manual/control-flow.md
  136. +7 −7 doc/src/manual/parallel-computing.md
  137. +90 −75 doc/src/manual/types.md
  138. +2 −0 doc/src/stdlib/arrays.md
  139. +1 −0 doc/src/stdlib/linalg.md
  140. +2 −2 doc/src/stdlib/math.md
  141. +1 −5 doc/src/stdlib/numbers.md
  142. +11 −0 doc/src/stdlib/test.md
  143. +9 −8 examples/{modint.jl → ModInts.jl}
  144. +61 −47 examples/juliatypes.jl
  145. +4 −4 src/Makefile
  146. +2 −2 src/abi_x86.cpp
  147. +0 −1,430 src/alloc.c
  148. +5 −0 src/anticodegen.c
  149. +3 −3 src/array.c
  150. +92 −1 src/ast.c
  151. +2 −0 src/ast.scm
  152. +140 −47 src/builtins.c
  153. +610 −473 src/ccall.cpp
  154. +5 −0 src/ccalltest.c
  155. +145 −103 src/cgutils.cpp
  156. +255 −227 src/codegen.cpp
  157. +1 −1 src/common_symbols1.inc
  158. +735 −0 src/datatype.c
  159. +20 −9 src/debuginfo.cpp
  160. +132 −95 src/dump.c
  161. +0 −1 src/flisp/builtins.c
  162. +2 −3 src/flisp/flisp.c
  163. +19 −2 src/flisp/flisp.h
  164. +0 −1 src/flisp/iostream.c
  165. +1 −1 src/flisp/julia_extensions.c
  166. +0 −1 src/flisp/string.c
  167. +0 −1 src/flisp/table.c
  168. +2 −2 src/gc-pages.c
  169. +4 −1 src/gc.c
  170. +148 −138 src/gf.c
  171. +14 −9 src/init.c
  172. +28 −29 src/interpreter.c
  173. +622 −803 src/intrinsics.cpp
  174. +16 −12 src/intrinsics.h
  175. +2 −4 src/jitlayers.cpp
  176. +8 −0 src/jlapi.c
  177. +1,151 −3,247 src/jltypes.c
  178. +50 −33 src/julia-parser.scm
  179. +239 −166 src/julia-syntax.scm
  180. +98 −77 src/julia.h
  181. +18 −30 src/julia_internal.h
  182. +2 −1 src/llvm-gcroot.cpp
  183. +3 −5 src/macroexpand.scm
  184. +692 −0 src/method.c
  185. +9 −8 src/runtime_intrinsics.c
  186. +10 −1 src/signals-unix.c
  187. +4 −8 src/stackwalk.c
  188. +2,256 −0 src/subtype.c
  189. +16 −60 src/support/utils.h
  190. +148 −0 src/symbol.c
  191. +0 −14 src/sys.c
  192. +27 −26 src/task.c
  193. +3 −0 src/timing.h
  194. +26 −293 src/toplevel.c
  195. +98 −110 src/typemap.c
  196. +7 −5 test/TestHelpers.jl
  197. +2 −3 test/abstractarray.jl
  198. +3 −2 test/ambiguous.jl
  199. +448 −445 test/arrayops.jl
  200. +1 −2 test/bigint.jl
  201. +4 −3 test/bitarray.jl
  202. +1 −1 test/broadcast.jl
  203. +116 −33 test/ccall.jl
  204. +4 −4 test/channels.jl
  205. +4 −4 test/choosetests.jl
  206. +5 −6 test/compile.jl
  207. +16 −42 test/complex.jl
  208. +21 −0 test/copy.jl
  209. +73 −336 test/core.jl
  210. +1 −2 test/dates/io.jl
  211. +20 −19 test/dict.jl
  212. +2 −2 test/docs.jl
  213. +1 −1 test/examples.jl
  214. +10 −0 test/floatapprox.jl
  215. +1 −5 test/functional.jl
  216. +27 −20 test/inference.jl
  217. +84 −0 test/intrinsics.jl
  218. +8 −22 test/iterators.jl
  219. +97 −32 test/libgit2.jl
  220. +9 −12 test/linalg/arnoldi.jl
  221. +1 −1 test/linalg/bidiag.jl
  222. +3 −4 test/linalg/bunchkaufman.jl
  223. +7 −7 test/linalg/dense.jl
  224. +11 −12 test/linalg/diagonal.jl
  225. +2 −2 test/linalg/eigen.jl
  226. +4 −4 test/linalg/generic.jl
  227. +0 −1 test/linalg/givens.jl
  228. +9 −9 test/linalg/lq.jl
  229. +17 −5 test/linalg/lu.jl
  230. +1 −1 test/linalg/matmul.jl
  231. +4 −4 test/linalg/pinv.jl
  232. +7 −7 test/linalg/qr.jl
  233. +242 −0 test/linalg/rowvector.jl
  234. +1 −2 test/linalg/special.jl
  235. +4 −4 test/linalg/triangular.jl
  236. +4 −4 test/linalg/tridiag.jl
  237. +2 −2 test/llvmcall.jl
  238. +36 −0 test/llvmcall2.jl
  239. +5 −13 test/markdown.jl
  240. +20 −20 test/math.jl
  241. +22 −24 test/mpfr.jl
  242. +1 −1 test/nullable.jl
  243. +48 −5 test/numbers.jl
  244. +5 −4 test/offsetarray.jl
  245. +8 −0 test/operators.jl
  246. +31 −45 test/parallel_exec.jl
  247. +27 −0 test/parse.jl
  248. +1 −1 test/perf/micro/perf.go
  249. +1 −2 test/pkg.jl
  250. +11 −13 test/reflection.jl
  251. +2 −3 test/repl.jl
  252. +19 −6 test/replutil.jl
  253. +12 −6 test/serialize.jl
  254. +28 −6 test/show.jl
  255. +0 −3 test/sparse/cholmod.jl
  256. +78 −8 test/sparse/higherorderfns.jl
  257. +8 −7 test/sparse/sparse.jl
  258. +2 −4 test/sparse/sparsevector.jl
  259. +3 −4 test/sparse/umfpack.jl
  260. +7 −7 test/spawn.jl
  261. +4 −7 test/stacktraces.jl
  262. +0 −5 test/statistics.jl
  263. +4 −4 test/subarray.jl
  264. +853 −0 test/subtype.jl
  265. +15 −15 test/test.jl
  266. +1 −1 test/workspace.jl
  267. +4 −4 test/worlds.jl
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -102,7 +102,7 @@ script:
# capture the log, but only print it if `make deps` fails
# try to show the end of the log first, because this log might be very long (> 4MB)
# and thus be truncated by travis
- moreutils/mispipe "make $BUILDOPTS NO_GIT=1 -C deps 2> deps-err.log" "$BAR" > deps.log ||
- moreutils/mispipe "make \$BUILDOPTS NO_GIT=1 -C deps 2> deps-err.log" "$BAR" > deps.log ||
{ echo "-- deps build log stderr tail 100 --------------------------------------";
tail -n 100 deps-err.log;
echo "-- deps build log stdout tail 100 --------------------------------------";
27 changes: 7 additions & 20 deletions Makefile
Original file line number Diff line number Diff line change
@@ -322,6 +322,7 @@ else
$(eval $(call std_dll,gcc_s_seh-1))
endif
$(eval $(call std_dll,ssp-0))
$(eval $(call std_dll,winpthread-1))
endif
define stringreplace
$(build_depsbindir)/stringreplace $$(strings -t x - $1 | grep '$2' | awk '{print $$1;}') '$3' 255 "$(call cygpath_w,$1)"
@@ -457,7 +458,7 @@ endif

ifeq ($(OS), WINNT)
[ ! -d $(JULIAHOME)/dist-extras ] || ( cd $(JULIAHOME)/dist-extras && \
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 $(BUILDROOT)/julia-$(JULIA_COMMIT)/bin )
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 libwinpthread-1.dll $(BUILDROOT)/julia-$(JULIA_COMMIT)/bin )
ifeq ($(USE_GPL_LIBS), 1)
[ ! -d $(JULIAHOME)/dist-extras ] || ( cd $(JULIAHOME)/dist-extras && \
cp busybox.exe $(BUILDROOT)/julia-$(JULIA_COMMIT)/bin )
@@ -581,31 +582,17 @@ ifneq (,$(filter $(ARCH), i386 i486 i586 i686))
cd $(JULIAHOME)/dist-extras && \
$(JLDOWNLOAD) http://downloads.sourceforge.net/sevenzip/7z920.exe && \
7z x -y 7z920.exe 7z.exe 7z.dll && \
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.2 \
"mingw32-libexpat1 mingw32-zlib1" && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw32-libgfortran3-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw32-libquadmath0-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw32-libstdc++6-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw32-libgcc_s_sjlj1-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw32-libssp0-5.3.0-1.1.noarch.rpm && \
for i in *.rpm; do 7z x -y $$i; done && \
for i in *.cpio; do 7z x -y $$i; done && \
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_42.2 \
"mingw32-libgfortran3 mingw32-libquadmath0 mingw32-libstdc++6 mingw32-libgcc_s_sjlj1 mingw32-libssp0 mingw32-libwinpthread1 mingw32-libexpat1 mingw32-zlib1" && \
cp usr/i686-w64-mingw32/sys-root/mingw/bin/*.dll .
else ifeq ($(ARCH),x86_64)
cd $(JULIAHOME)/dist-extras && \
$(JLDOWNLOAD) 7z920-x64.msi http://downloads.sourceforge.net/sevenzip/7z920-x64.msi && \
7z x -y 7z920-x64.msi _7z.exe _7z.dll && \
mv _7z.dll 7z.dll && \
mv _7z.exe 7z.exe && \
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.2 \
"mingw64-libexpat1 mingw64-zlib1" && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw64-libgfortran3-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw64-libquadmath0-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw64-libstdc++6-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw64-libgcc_s_seh1-5.3.0-1.1.noarch.rpm && \
$(JLDOWNLOAD) https://julialang.s3.amazonaws.com/bin/winnt/extras/mingw64-libssp0-5.3.0-1.1.noarch.rpm && \
for i in *.rpm; do 7z x -y $$i; done && \
for i in *.cpio; do 7z x -y $$i; done && \
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_42.2 \
"mingw64-libgfortran3 mingw64-libquadmath0 mingw64-libstdc++6 mingw64-libgcc_s_seh1 mingw64-libssp0 mingw64-libwinpthread1 mingw64-libexpat1 mingw64-zlib1" && \
cp usr/x86_64-w64-mingw32/sys-root/mingw/bin/*.dll .
else
$(error no win-extras target for ARCH=$(ARCH))
@@ -619,7 +606,7 @@ endif
chmod a+x ./nsis/makensis.exe
ifeq ($(USE_GPL_LIBS), 1)
cd $(JULIAHOME)/dist-extras && \
$(JLDOWNLOAD) busybox.exe http://frippery.org/files/busybox/busybox-w32-FRP-483-g31277ab.exe && \
$(JLDOWNLOAD) busybox.exe http://frippery.org/files/busybox/busybox-w32-FRP-875-gc6ec14a.exe && \
chmod a+x busybox.exe
endif

95 changes: 75 additions & 20 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -4,6 +4,19 @@ Julia v0.6.0 Release Notes
New language features
---------------------

* New type system capabilities ([#8974], [#18457])
* Type parameter constraints can refer to previous parameters, e.g.
`type Foo{R<:Real, A<:AbstractArray{R}}`. Can also be used in method definitions.
* New syntax `Array{T} where T<:Integer`, indicating a union of types over all
specified values of `T` (represented by a `UnionAll` type). This provides behavior
similar to parametric methods or `typealias`, but can be used anywhere a type is
accepted. This syntax can also be used in method definitions, e.g.
`function inv(M::Matrix{T}) where T<:AbstractFloat`.
Anonymous functions can have type parameters via the syntax
`((x::Array{T}) where T<:Real) -> 2x`.
* Much more accurate subtype and type intersection algorithms. Method sorting and
identification of equivalent and ambiguous methods are improved as a result.

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

@@ -95,14 +108,34 @@ This section lists changes that do not have deprecation warnings.
the corresponding Greek characters in identifiers. `\varepsilon`
now tab-completes to U+03B5 (greek small letter epsilon) ([#19464]).

* `retry` now inputs the keyword arguments `delays` and `check` instead of
`n` and `max_delay`. The previous functionality can be achieved setting
`delays` to `ExponentialBackOff`. ([#19331])

* `transpose(::AbstractVector)` now always returns a `RowVector` view of the input (which is a
special 1×n-sized `AbstractMatrix`), not a `Matrix`, etc. In particular, for
`v::AbstractVector` we now have `(v.').' === v` and `v.' * v` is a scalar. ([#19670])

* Parametric types with "unspecified" parameters, such as `Array`, are now represented
as `UnionAll` types instead of `DataType`s ([#18457]).

* `Union` types have two fields, `a` and `b`, instead of a single `types` field.
The empty type `Union{}` is represented by a singleton of type `BottomType` ([#18457]).

* The type `NTuple{N}` now refers to tuples where every element has the same type
(since it is shorthand for `NTuple{N,T} where T`). To get the old behavior of matching
any tuple, use `NTuple{N,Any}` ([#18457]).

Library improvements
--------------------

* `max`, `min`, and related functions (`minmax`, `maximum`, `minimum`, `extrema`) now return `NaN` for `NaN` arguments ([#12563]).
* `max`, `min`, and related functions (`minmax`, `maximum`, `minimum`,
`extrema`) now return `NaN` for `NaN` arguments ([#12563]).

* The `chop` and `chomp` functions now return a `SubString` ([#18339]).

* Numbered stackframes printed in stacktraces can be opened in an editor by entering the corresponding number in the REPL and pressing `^Q` ([#19680]).
* Numbered stackframes printed in stacktraces can be opened in an editor by
entering the corresponding number in the REPL and pressing `^Q` ([#19680]).

* The REPL now supports something called *prompt pasting* ([#17599]).
This activates when pasting text that starts with `julia> ` into the REPL.
@@ -111,22 +144,32 @@ Library improvements
without having to scrub away prompts and outputs.
This can be disabled or enabled at will with `Base.REPL.enable_promptpaste(::Bool)`.

* The function `print_with_color` can now take a color represented by an integer between 0 and 255 inclusive as its first argument ([#18473]).
For a number to color mapping please refer to [this chart](https://upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg).
It is also possible to use numbers as colors in environment variables that customizes colors in the REPL.
For example, to get orange warning messages, simply set `ENV["JULIA_WARN_COLOR"] = 208`.
Please note that not all terminals support 256 colors.

* The function `print_with_color` no longer prints text in bold by default ([#18628]).
Instead, the function now take a keyword argument `bold::Bool` which determines whether to print in bold or not.
On some terminals, printing a color in non bold results in slightly darker colors being printed than when printing in bold.
Therefore, light versions of the colors are now supported.
For the available colors see the help entry on `print_with_color`.

* The default color for info messages has been changed from blue to cyan and for warning messages from red to yellow.
This can be changed back to the original colors by setting the environment variables `JULIA_INFO_COLOR` to `"blue"` and `JULIA_WARN_COLOR` to `"red"`.
One way of doing this is by adding for example `ENV["JULIA_INFO_COLOR"] = :blue` and `ENV["JULIA_WARN_COLOR"] = :red` to the `.juliarc.jl` file.
For more information regarding customizing colors in the REPL, see this [manual section]( http://docs.julialang.org/en/latest/manual/interacting-with-julia/#customizing-colors).
* The function `print_with_color` can now take a color represented by an
integer between 0 and 255 inclusive as its first argument ([#18473]). For
a number to color mapping please refer to [this
chart](https://commons.wikimedia.org/wiki/File:Xterm_256color_chart.svg).
It is also possible to use numbers as colors in environment variables that
customizes colors in the REPL. For example, to get orange warning
messages, simply set `ENV["JULIA_WARN_COLOR"] = 208`. Please note that not
all terminals support 256 colors.

* The function `print_with_color` no longer prints text in bold by default
([#18628]). Instead, the function now take a keyword argument `bold::Bool`
which determines whether to print in bold or not. On some terminals,
printing a color in non bold results in slightly darker colors being
printed than when printing in bold. Therefore, light versions of the
colors are now supported. For the available colors see the help entry on
`print_with_color`.

* The default color for info messages has been changed from blue to cyan and
for warning messages from red to yellow. This can be changed back to the
original colors by setting the environment variables `JULIA_INFO_COLOR` to
`"blue"` and `JULIA_WARN_COLOR` to `"red"`. One way of doing this is by
adding for example `ENV["JULIA_INFO_COLOR"] = :blue` and
`ENV["JULIA_WARN_COLOR"] = :red` to the `.juliarc.jl` file. For more
information regarding customizing colors in the REPL, see this [manual
section](
http://docs.julialang.org/en/latest/manual/interacting-with-julia/#customizing-colors).

* Iteration utilities that wrap iterators and return other iterators (`enumerate`, `zip`, `rest`,
`countfrom`, `take`, `drop`, `cycle`, `repeated`, `product`, `flatten`, `partition`) have been
@@ -139,7 +182,13 @@ Library improvements
you can now do e.g. `[A I]` and it will concatenate an appropriately sized
identity matrix ([#19305]).

* New `accumulate` and `accumulate!` functions, which generalize `cumsum` and `cumprod`. Also known as a [scan](https://en.wikipedia.org/wiki/Prefix_sum) operation ([#18931]).
* New `accumulate` and `accumulate!` functions, which generalize `cumsum` and
`cumprod`. Also known as a [scan](https://en.wikipedia.org/wiki/Prefix_sum)
operation ([#18931]).

* `reshape` now allows specifying one dimension with a `Colon()` (`:`) for the new shape, in which case
that dimension's length will be computed such that its product with all the other dimensions is equal
to the length of the original array ([#19919]).

* New `titlecase` function, which capitalizes the first character of each word within a string ([#19469]).

@@ -166,6 +215,12 @@ Library improvements
Compiler/Runtime improvements
-----------------------------

* `ccall` is now implemented as a macro, removing the need for special code-generator support for Intrinsics.

* `ccall` gained limited support for a `llvmcall` calling-convention. This can replace many uses of `llvmcall` with a simpler, shorter declaration.

* All Intrinsics are now Builtin functions instead and have proper error checking and fall-back static compilation support.

Deprecated or removed
---------------------

@@ -189,7 +244,7 @@ Deprecated or removed
functions (`airyai`, `airybi`, `airyaiprime`, `airybiprimex`, `airyaix`, `airybix`,
`airyaiprimex`, `airybiprimex`) ([#18050]).

* `produce`, `consume` and iteration over a Task object has been deprecated in favor of
* `produce`, `consume` and iteration over a Task object have been deprecated in favor of
using Channels for inter-task communication ([#19841]).

Julia v0.5.0 Release Notes
8 changes: 4 additions & 4 deletions base/Enums.jl
Original file line number Diff line number Diff line change
@@ -2,15 +2,15 @@

module Enums

import Core.Intrinsics.box
import Core.Intrinsics.bitcast
export Enum, @enum

function basetype end

abstract Enum{T<:Integer}

Base.convert{T<:Integer}(::Type{Integer}, x::Enum{T}) = box(T, x)
Base.convert{T<:Integer,T2<:Integer}(::Type{T}, x::Enum{T2}) = convert(T, box(T2, x))
Base.convert{T<:Integer}(::Type{Integer}, x::Enum{T}) = bitcast(T, x)
Base.convert{T<:Integer,T2<:Integer}(::Type{T}, x::Enum{T2}) = convert(T, bitcast(T2, x))
Base.write{T<:Integer}(io::IO, x::Enum{T}) = write(io, T(x))
Base.read{T<:Enum}(io::IO, ::Type{T}) = T(read(io, Enums.basetype(T)))

@@ -106,7 +106,7 @@ macro enum(T,syms...)
Base.@__doc__(bitstype $(sizeof(basetype) * 8) $(esc(typename)) <: Enum{$(basetype)})
function Base.convert(::Type{$(esc(typename))}, x::Integer)
$(membershiptest(:x, values)) || enum_argument_error($(Expr(:quote, typename)), x)
box($(esc(typename)), convert($(basetype), x))
return bitcast($(esc(typename)), convert($(basetype), x))
end
Enums.basetype(::Type{$(esc(typename))}) = $(esc(basetype))
Base.typemin(x::Type{$(esc(typename))}) = $(esc(typename))($lo)
11 changes: 6 additions & 5 deletions base/REPLCompletions.jl
Original file line number Diff line number Diff line change
@@ -315,7 +315,7 @@ function get_type(sym, fn)
end
# Method completion on function call expression that look like :(max(1))
function complete_methods(ex_org::Expr)
args_ex = DataType[]
args_ex = Any[]
func, found = get_value(ex_org.args[1], Main)
!found && return String[]
for ex in ex_org.args[2:end]
@@ -330,7 +330,8 @@ function complete_methods(ex_org::Expr)
io = IOBuffer()
for method in ml
# Check if the method's type signature intersects the input types
if typeintersect(Tuple{method.sig.parameters[1 : min(na, end)]...}, t_in) != Union{}
ms = method.sig
if typeintersect(Base.rewrap_unionall(Tuple{Base.unwrap_unionall(ms).parameters[1 : min(na, end)]...}, ms), t_in) != Union{}
show(io, method, kwtype=kwtype)
push!(out, String(take!(io)))
end
@@ -438,7 +439,7 @@ function completions(string, pos)
if partial_key !== nothing
matches = find_dict_matches(identifier, partial_key)
length(matches)==1 && (length(string) <= pos || string[pos+1] != ']') && (matches[1]*="]")
length(matches)>0 && return sort(matches), loc:pos, true
length(matches)>0 && return sort!(matches), loc:pos, true
else
return String[], 0:-1, false
end
@@ -457,7 +458,7 @@ function completions(string, pos)
paths[1] *= "\""
end
#Latex symbols can be completed for strings
(success || inc_tag==:cmd) && return sort(paths), r, success
(success || inc_tag==:cmd) && return sort!(paths), r, success
end

ok, ret = bslash_completions(string, pos)
@@ -550,7 +551,7 @@ function completions(string, pos)
end
end
append!(suggestions, complete_symbol(s, ffunc))
return sort(unique(suggestions)), (dotpos+1):pos, true
return sort!(unique(suggestions)), (dotpos+1):pos, true
end

function shell_completions(string, pos)
Loading