https://github.com/JuliaLang/julia
Revision 65ce61191cb31ec00ece9d2ae23c1f664cf40455 authored by KristofferC on 13 May 2022, 07:06:40 UTC, committed by KristofferC on 13 May 2022, 07:06:40 UTC
1 parent f146480
Raw File
Tip revision: 65ce61191cb31ec00ece9d2ae23c1f664cf40455 authored by KristofferC on 13 May 2022, 07:06:40 UTC
fix test
Tip revision: 65ce611
NEWS.md
Julia v1.9 Release Notes
========================

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

* It is now possible to assign to bindings in another module using `setproperty!(::Module, ::Symbol, x)`. ([#44137])
* Slurping in assignments is now also allowed in non-final position. This is
  handled via `Base.split_rest`. ([#42902])

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

* New builtins `getglobal(::Module, ::Symbol[, order])` and `setglobal!(::Module, ::Symbol, x[, order])`
  for reading from and writing to globals. `getglobal` should now be preferred for accessing globals over
  `getfield`. ([#44137])

Compiler/Runtime improvements
-----------------------------


Command-line option changes
---------------------------

* In Linux and Windows, `--threads=auto` now tries to infer usable number of CPUs from the
  process affinity which is set typically in HPC and cloud environments ([#42340]).
* `--math-mode=fast` is now a no-op ([#41638]). Users are encouraged to use the @fastmath macro instead, which has more well-defined semantics.
* The `--threads` command-line option now accepts `auto|N[,auto|M]` where `M` specifies the
  number of interactive threads to create (`auto` currently means 1) ([#42302]).

Multi-threading changes
-----------------------

* `Threads.@spawn` now accepts an optional first argument: `:default` or `:interactive`.
  An interactive task desires low latency and implicitly agrees to be short duration or to
  yield frequently. Interactive tasks will run on interactive threads, if any are specified
  when Julia is started ([#42302]).

Build system changes
--------------------


New library functions
---------------------

* `Iterators.flatmap` was added ([#44792]).
* New helper `Splat(f)` which acts like `x -> f(x...)`, with pretty printing for
  inspecting which function `f` was originally wrapped. ([#42717])

Library changes
---------------

* A known concurrency issue of `iterate` methods on `Dict` and other derived objects such
  as `keys(::Dict)`, `values(::Dict)`, and `Set` is fixed.  These methods of `iterate` can
  now be called on a dictionary or set shared by arbitrary tasks provided that there are no
  tasks mutating the dictionary or set ([#44534]).
* Predicate function negation `!f` now returns a composed function `(!) ∘ f` instead of an anonymous function ([#44752]).
* `RoundFromZero` now works for non-`BigFloat` types ([#41246]).
* `Dict` can be now shrunk manually by `sizehint!` ([#45004]).
* `@time` now separates out % time spent recompiling invalidated methods ([#45015]).
* `@time_imports` now shows any compilation and recompilation time percentages per import ([#45064]).

Standard library changes
------------------------

#### Package Manager

#### LinearAlgebra

* The methods `a / b` and `b \ a` with `a` a scalar and `b` a vector,
  which were equivalent to `a * pinv(b)`, have been removed due to the
  risk of confusion with elementwise division ([#44358]).
* We are now wholly reliant on libblastrampoline (LBT) for calling
  BLAS and LAPACK. OpenBLAS is shipped by default, but building the
  system image with other BLAS/LAPACK libraries is not
  supported. Instead, it is recommended that the LBT mechanism be used
  for swapping BLAS/LAPACK with vendor provided ones. ([#44360])
* `normalize(x, p=2)` now supports any normed vector space `x`, including scalars ([#44925]).

#### Markdown

#### Printf

#### Random

* `randn` and `randexp` now work for any `AbstractFloat` type defining `rand` ([#44714]).

#### REPL

* `Meta-e` now opens the current input in an editor. The content (if modified) will be
  executed upon existing the editor.

#### SparseArrays

#### Dates

#### Downloads

#### Statistics

#### Sockets

#### Tar

#### Distributed

* The package environment (active project, `LOAD_PATH`, `DEPOT_PATH`) are now propagated
  when adding *local* workers (e.g. with `addprocs(N::Int)` or through the `--procs=N`
  command line flag) ([#43270]).
* `addprocs` for local workers now accept the `env` keyword argument for passing
  environment variables to the workers processes. This was already supported for
  remote workers ([#43270]).

#### UUIDs

#### Unicode

* `graphemes(s, m:n)` returns a substring of the `m`-th to `n`-th graphemes in `s` ([#44266]).

#### Mmap

#### DelimitedFiles


Deprecated or removed
---------------------

* Unexported `splat` is deprecated in favor of exported `Splat`, which has pretty printing of the wrapped function. ([#42717])

External dependencies
---------------------


Tooling Improvements
---------------------

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