https://github.com/JuliaLang/julia
Raw File
Tip revision: f298e2e105e25ed7519788fe37732fc46f50587a authored by Jameson Nash on 04 April 2023, 18:52:21 UTC
memoize the freevars list in datatype
Tip revision: f298e2e
NEWS.md
Julia v1.10 Release Notes
========================

New language features
---------------------

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

* When a task forks a child, the parent task's task-local RNG (random number generator) is no longer affected. The seeding of child based on the parent task also takes a more disciplined approach to collision resistance, using a design based on the SplitMix and DotMix splittable RNG schemes ([#49110]).

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 `Rational`s 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](https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/#man-linalg-abstractq)
  ([#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 `AbstractVector`s ([#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
--------------------


<!--- generated by NEWS-update.jl: -->
back to top