Skip to content

Latest commit

 

History

History
96 lines (64 loc) · 3.62 KB

NEWS.md

File metadata and controls

96 lines (64 loc) · 3.62 KB

Julia v1.3 Release Notes

New language features

  • Support for Unicode 12.1.0 ([#32002]).
  • Methods can now be added to an abstract type ([#31916]).

Language changes

Multi-threading changes

Build system changes

New library functions

  • findfirst, findlast, findnext and findprev now accept a character as first argument to search for that character in a string passed as the second argument ([#31664]).
  • New findall(pattern, string) method where pattern is a string or regex ([#31834]).
  • istaskfailed is now documented and exported, like its siblings istaskdone and istaskstarted ([#32300]).

Standard library changes

  • Regex can now be multiplied (*) and exponentiated (^), like strings ([#23422]).
  • Cmd interpolation (`$(x::Cmd) a b c` where) now propagates x's process flags (environment, flags, working directory, etc) if x is the first interpolant and errors otherwise ([#24353]).
  • Zero-dimensional arrays are now consistently preserved in the return values of mathematical functions that operate on the array(s) as a whole (and are not explicitly broadcasted across their elements). Previously, the functions +, -, *, /, conj, real and imag returned the unwrapped element when operating over zero-dimensional arrays ([#32122]).
  • IPAddr subtypes now behave like scalars when used in broadcasting ([#32133]).
  • clamp can now handle missing values ([#31066]).
  • empty now accepts a NamedTuple ([#32534])

Libdl

  • dlopen() can now be invoked in do-block syntax, similar to open().

LinearAlgebra

  • The BLAS submodule no longer exports dot, which conflicts with that in LinearAlgebra ([#31838]).
  • diagm and spdiagm now accept optional m,n initial arguments to specify a size ([#31654]).
  • Hessenberg factorizations H now support efficient shifted solves (H+µI) \ b and determinants, and use a specialized tridiagonal factorization for Hermitian matrices. There is also a new UpperHessenberg matrix type ([#31853]).

SparseArrays

  • SparseMatrixCSC(m,n,colptr,rowval,nzval) perform consistency checks for arguments: colptr must be properly populated and lengths of colptr, rowval, and nzval must be compatible with m, n, and eltype(colptr).
  • sparse(I, J, V, m, n) verifies lengths of I, J, V are equal and compatible with eltype(I) and m, n.

Dates

  • DateTime and Time formatting/parsing now supports 12-hour clocks with AM/PM via I and p codes, similar to strftime ([#32308]).
  • Fixed repr such that it displays Time as it would be entered in Julia ([#32103]).

Sockets

  • getipaddrs returns IP addresses in the order provided by libuv ([#32260]).
  • getipaddr prefers to return the first IPv4 interface address provided by libuv ([#32260]).

Statistics

  • mean now accepts both a function argument and a dims keyword ([#31576]).

Sockets

  • Added InetAddr constructor from AbstractString, representing IP address, and Integer, representing port number ([#31459]).

Miscellaneous

  • foldr and mapfoldr now work on any iterator that supports Iterators.reverse, not just arrays ([#31781]).

External dependencies

Tooling Improvements

  • The ClangSA.jl static analysis package has been imported, which makes use of the clang static analyzer to validate GC invariants in Julia's C code. The analysis may be run using make -C src analyzegc.