-
Immutable types (#13).
-
Triple-quoted string literals (#70).
-
New infix operator
in
(e.g.x in S
), and corresponding functionin(x,S)
, replacingcontains(S,x)
function (#2703). -
New variable bindings on each for loop and comprehension iteration (#1571). For example, before this change:
julia> map(f->f(), { ()->i for i=1:3 }) 3-element Any Array: 3 3 3
and after:
julia> map(f->f(), { ()->i for i=1:3 }) 3-element Any Array: 1 2 3
-
Explicit relative importing (#2375).
-
Methods can be added to functions in other modules using dot syntax, as in
Foo.bar(x) = 0
. -
A semicolon is now allowed after an
import
orusing
statement (#4130).
-
Sampling profiler (#2597).
-
Functions for examining stages of the compiler's output:
code_lowered
,code_typed
,code_llvm
, andcode_native
-
Multimedia I/O API (display, writemime, etcetera) (#3932).
-
MPFR-based
BigFloat
(#2814), and many newBigFloat
operations. -
New half-precision IEEE floating-point type,
Float16
(#3467). -
Support for setting floating-point rounding modes (#3149).
-
methodswith
shows all methods with an argument of specific type. -
mapslices
provides a general way to perform operations on slices of arrays (#2204) -
Collections.PriorityQueue
type andCollections.heap
functions (#2920). -
quadgk
1d-integration routine (#3140). -
erfinv
anderfcinv
functions (#2987). -
varm
,stdm
(#2265) -
logdet
(#3070) -
names for C-compatible types:
Cchar
,Clong
, etc. (#2370). -
cglobal
to access global variables (#1815) -
unsafe_pointer_to_objref
(#2468) andpointer_from_objref
(#2515) -
readandwrite
for external processes -
I/O functions
readbytes
andreadbytes!
(#3878). -
flush_cstdio
function (#3949). -
ClusterManager makes it possible to support different types of compute clusters (#3649, #4014).
-
rmprocs
for removing processors from a parallel computing session. The system can also tolerate to some extent processors that die unexpectedly (#3050). -
interrupt
for interrupting worker processes (#3819). -
timedwait
does a polled wait for an event till a specified timeout. -
Condition
type withwait
andnotify
functions for synchronizingTask
s -
versioninfo
provides detailed version information -
detach
for running child processes in a separate process group -
setenv
for passing environment variables to child processes
-
isequal
now returnsfalse
for numbers of different types. This makes it easier to define hash functions for new numeric types. Uses ofDict
with numeric keys might need to change to account for this increased strictness. -
Rewritten
Pkg
system for much greater robustness in case of failures, versioned dependencies, and many other enhancements. -
Sort API updates (#3665).
-
delete!(d::Dict, key)
has now been split into separatepop!
anddelete!
variants: the former returns the deleted value and behaves like the olddelete!
, and the latter returnsd
and does not throw an exception ifkey
was not found (#3439). -
Linear-algebra factorization routines (
lu
,chol
, etc.) now returnFactorization
objects (andlud
,chold
, etc. are deprecated) (#2212). -
A number of improvements to sparse matrix capabilities and sparse linear algebra.
-
More linear algebra fixes and eigensolver hooks for
SymTridiagonal
,Tridiagonal
andBidiagonal
matrix types (#2606, #2608, #2609, #2611, #2678, #2713, #2720, #2725) -
Change
integer_valued
,real_valued
, and so on toisinteger
,isreal
, and so on, and semantics of the later are now value-based rather than type-based, unlike Matlab/Octave (#3071).isbool
andiscomplex
are eliminated in favor of generaliseltype
function. -
Transitive comparison of floats with rationals (#3102).
-
Fast primality testing (da670c4).
-
sum
andcumsum
now use pairwise summation for better accuracy (#4039). -
Dot operators (
.+
,.*
etc.) now broadcast singleton dimensions of array arguments. This behavior can be applied to any function usingbroadcast(f, ...)
. -
combinations
,permutations
, andpartitions
now return iterators instead of a task, andinteger_partitions
has been renamed topartitions
(#3989, #4055). -
isreadable
/iswritable
functions added for more IO types (#3872). -
Much faster and improved
readdlm
andwritedlm
(#3350, #3468, #3483). -
Faster
matchall
(#3719), and a number of string and regex improvements. -
Documentation for writing packages (#2714, #2769, #2791) and linear algebra (#2807)
-
Support optional RTLD flags in
dlopen
(#2380) -
Options in
pmap
for retrying or ignoring failed tasks. Alsopmap
now works with any iterable. -
New
sinpi(x)
andcospi(x)
functions to compute sine and cosine ofpi*x
more accurately (#4112).
-
ComplexPair
was renamed toComplex
and madeimmutable
, andComplex128
and so on are now aliases to the newComplex
type. -
!
was added to the name of many mutating functions, e.g.,push
was renamedpush!
(#907). -
ref
renamed togetindex
, andassign
tosetindex!
(#1484). -
writeable
renamed towritable
(#3874). -
logb
andilogb
renamed toexponent
(#2516). -
quote_string
renamed torepr
. -
safe_char
,check_ascii
, andcheck_utf8
replaced byis_valid_char
,is_valid_ascii
, andis_valid_utf8
, respectively. -
each_line,
each_match,
begins_with,
ends_with,
parse_float,
parse_int, and
seek_endreplaced by:
eachline,
eachmatch, and so on (
_` was removed) (#1539). -
parse_bin(s)
replaced byparseint(s,2)
;parse_oct(s)
replaced byparseint(s,8)
;parse_hex(s)
replaced byparseint(s,16)
. -
findn_nzs
replaced byfindnz
(#1539). -
DivideByZeroError
replaced byDivideError
. -
addprocs_ssh
,addprocs_ssh_tunnel
, andaddprocs_local
replaced byaddprocs
(with keyword options). -
remote_call
,remote_call_fetch
, andremote_call_wait
replaced byremotecall
,remotecall_fetch
, andremotecall_wait
. -
has
replaced bycontains
for sets and byhaskey
for dictionaries. -
diagmm
anddiagmm!
replaced byscale
andscale!
(#2916). -
unsafe_ref
andunsafe_assign
replaced byunsafe_load
andunsafe_store!
. -
add_each!
anddel_each!
replaced byunion!
andsetdiff!
-
isdenormal
renamed toissubnormal
(#3105). -
expr
replaced by direct call toExpr
constructor. -
|
,&
,$
,-
, and~
for sets replaced byunion
,intersect
,symdiff
,setdiff
, andcomplement
(#3272). -
square
function removed. -
pascal
function removed. -
add
andadd!
forSet
replaced bypush!
. -
Deprecated
ls
function in favor ofreaddir
or; ls
in the REPL. -
start_timer
now expects arguments in units of seconds, not milliseconds. -
Shell redirection operators
|
,>
, and<
were eliminated in favor of a new operator|>
(#3523). -
amap
is deprecated in favor of newmapslices
functionality.
julia-release-*
executables renamed tojulia-*
, andlibjulia-release
renamed tolibjulia
(#4177).
Too numerous to mention.