Skip to content

Latest commit

 

History

History
127 lines (78 loc) · 3.81 KB

NEWS.md

File metadata and controls

127 lines (78 loc) · 3.81 KB

Julia v1.10 Release Notes

New language features

Language changes

Compiler/Runtime improvements

  • The @pure macro is now deprecated. Use Base.@assume_effects :foldable instead ([#48682]).

Command-line option changes

Multi-threading changes

Build system changes

New library functions

  • tanpi is now defined. It computes tan(πx) more accurately than tan(pi*x) ([#48575]).
  • fourthroot(x) is now defined in Base.Math and can be used to compute the fourth root of x. It can also be accessed using the unicode character , which can be typed by \fourthroot<tab> ([#48899]).

New library features

  • The initialized=true keyword assignment for sortperm! and partialsortperm! is now a no-op ([#47979]). It previously exposed unsafe behavior ([#47977]).
  • binomial(x, k) now supports non-integer x ([#48124]).
  • A CartesianIndex is now treated as a "scalar" for broadcasting ([#47044]).
  • printstyled now supports italic output ([#45164]).

Standard library changes

  • startswith now supports seekable IO streams ([#43055])
  • printing integral Rationals will skip the denominator in Rational-typed IO context (e.g. in Arrays) ([#45396])

Package Manager

  • "Package Extensions": support for loading a piece of code based on other packages being loaded in the Julia session. This has similar applications as the Requires.jl package but also supports precompilation and setting compatibility.
  • Pkg.precompile now accepts timing as a keyword argument which displays per package timing information for precompilation (e.g. Pkg.precompile(timing=true))

LinearAlgebra

  • AbstractQ no longer subtypes to AbstractMatrix. Moreover, adjoint(Q::AbstractQ) no longer wraps Q in an Adjoint type, but instead in an AdjointQ, that itself subtypes AbstractQ. This change accounts for the fact that typically AbstractQ instances behave like function-based, matrix-backed linear operators, and hence don't allow for efficient indexing. Also, many AbstractQ types can act on vectors/matrices of different size, acting like a matrix with context-dependent size. With this change, AbstractQ has a well-defined API that is described in detail in the Julia documentation ([#46196]).
  • Adjoints and transposes of Factorization objects are no longer wrapped in Adjoint and Transpose wrappers, respectively. Instead, they are wrapped in AdjointFactorization and TranposeFactorization types, which themselves subtype Factorization ([#46874]).
  • New functions hermitianpart and hermitianpart! for extracting the Hermitian (real symmetric) part of a matrix ([#31836]).
  • The norm of the adjoint or transpose of an AbstractMatrix now returns the norm of the parent matrix by default, matching the current behaviour for AbstractVectors ([#49020]).

Printf

  • Format specifiers now support dynamic width and precision, e.g. %*s and %*.*g ([#40105]).

Profile

Random

REPL

SuiteSparse

SparseArrays

Test

  • The @test_broken macro (or @test with broken=true) now complains if the test expression returns a non-boolean value in the same way as a non-broken test. ([#47804])

Dates

Distributed

Unicode

DelimitedFiles

InteractiveUtils

  • code_native and @code_native now default to intel syntax instead of AT&T.

Deprecated or removed

External dependencies

Tooling Improvements