Skip to content

Latest commit

 

History

History
142 lines (122 loc) · 7.45 KB

NEWS.md

File metadata and controls

142 lines (122 loc) · 7.45 KB

Julia v1.2 Release Notes

New language features

  • Argument splatting (x...) can now be used in calls to the new pseudo-function in constructors (#30577).
  • Support for Unicode 12.0.0 (#31561).
  • Added (\star) as unary operator (#31604).

Language changes

  • Empty entries in JULIA_DEPOT_PATH are now expanded to default depot entries (#31009).

Multi-threading changes

  • The Condition type now has a thread-safe replacement, accessed as Threads.Condition. With that addition, task scheduling primitives such as ReentrantLock are now thread-safe (#30061).
  • It is possible to schedule and switch Tasks during @threads loops, and perform limited I/O (#31438).

Build system changes

  • The build system now prefers downloading prebuilt binary tarballs for most dependencies on supported systems, disable by setting USE_BINARYBUILDER=0 at make time (#31441).

New library functions

  • getipaddrs() function returns all the IP addresses of the local machine, with IPv4 addresses sorting before IPv6 addresses ([#30349, #30604]).
  • getipaddr(addr_type) and getipaddrs(addr_type) functions returns an IP address(es) of the desired type of the local machine (#30604).
  • Added Base.hasproperty and Base.hasfield (#28850).
  • One argument !=(x), >(x), >=(x), <(x), <=(x) have been added, returning partially-applied versions of the functions, similar to the existing ==(x) and isequal(x) methods (#30915).

Standard library changes

  • Enum now behaves like a scalar when used in broadcasting (#30670).
  • If a pipeline is specified with append=true set, but no redirection, an ArgumentError is thrown, rather than a ErrorException (#27900).
  • Functions that invoke commands (e.g. run(::Cmd)) now throw a ProcessFailedException rather than an ErrorException, if those commands exit with non-zero exit code (#27900).
  • The extrema function now accepts a function argument in the same manner as minimum and maximum (#30323).
  • hasmethod can now check for matching keyword argument names (#30712).
  • startswith and endswith now accept a Regex for the second argument (#29790).
  • retry supports arbitrary callable objects (#30382).
  • A no-argument constructor for Ptr{T} has been added which constructs a null pointer (#30919).
  • strip now accepts a function argument in the same manner as lstrip and rstrip (#31211).
  • mktempdir now accepts a prefix keyword argument to customize the file name (#31230, #22922).
  • keytype and valtype now work on AbstractArray, and return the eltype of keys(...) and values(...) respectively (#27749).
  • nextfloat(::BigFloat) and prevfloat(::BigFloat) now returns a value with the same precision as their argument, which means that (in particular) nextfloat(prevfloat(x)) == x whereas previously this could result in a completely different value with a different precision (#31310).
  • mapreduce now accepts multiple iterators, similar to map (#31532).
  • filter now supports SkipMissing-wrapped arrays (#31235).
  • Objects created by calling skipmissing on an array can now be indexed using indices from the parent at non-missing positions. This allows functions such as findall, findfirst, argmin/argmax and findmin/findmax to work with these objects, returning the index of matching non-missing elements in the parent (#31008).
  • inv(::Missing) has now been added and returns missing (#31451).
  • nextfloat(::BigFloat, n::Integer) and prevfloat(::BigFloat, n::Integer) methods have been added (#31310).

LinearAlgebra

  • Added keyword arguments rtol, atol to pinv and nullspace (#29998).
  • UniformScaling instances are now callable such that e.g. I(3) will produce a Diagonal matrix (#30298).
  • Eigenvalues λ of general matrices are now sorted lexicographically by (Re λ, Im λ) (#21598).
  • one for structured matrices (Diagonal, Bidiagonal, Tridiagonal, Symtridiagonal) now preserves structure and type (#29777).
  • diagm(v) is now a shorthand for diagm(0 => v) (#31125).

SparseArrays

  • Performance improvements for sparse matrix-matrix multiplication (#30372).
  • Sparse vector outer products are more performant and maintain sparsity in products of the form kron(u, v'), u * v', and u .* v' where u and v are sparse vectors or column views (#24980).

Dates

  • Fixed repr such that it displays DateTime as it would be entered in Julia (#30200).

Statistics

  • quantile now accepts in all cases collections whose eltype is not a subtype of Number (#30938).

Miscellaneous

  • Since environment variables on Windows are case-insensitive, ENV now converts its keys to uppercase for display, iteration, and copying (#30593).

External dependencies

  • libgit2 has been updated to v0.27.7 (#30584).
  • OpenBLAS has been updated to v0.3.5 (#30583).
  • MbedTLS has been updated to v2.16.0 (#30618).
  • libunwind has been updated to v1.3.1 (#30724).