https://github.com/JuliaLang/julia
Raw File
Tip revision: f07dea91e2bd598afff47bba1f90022e6c55adaa authored by Shuhei Kadowaki on 01 April 2022, 09:57:03 UTC
effects: define `Core.Compiler.infer_effects`
Tip revision: f07dea9
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]).

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


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


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

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]).


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])

#### Markdown

#### Printf

#### Random

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

#### REPL

#### 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
---------------------


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


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

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