- It is now possible to assign to bindings in another module using
setproperty!(::Module, ::Symbol, x)
. ([#44137])
- New builtins
getglobal(::Module, ::Symbol[, order])
andsetglobal!(::Module, ::Symbol, x[, order])
for reading from and writing to globals.getglobal
should now be preferred for accessing globals overgetfield
. ([#44137])
- 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]).
- A known concurrency issue of
iterate
methods onDict
and other derived objects such askeys(::Dict)
,values(::Dict)
, andSet
is fixed. These methods ofiterate
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]).
- The methods
a / b
andb \ a
witha
a scalar andb
a vector, which were equivalent toa * 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])
- The package environment (active project,
LOAD_PATH
,DEPOT_PATH
) are now propagated when adding local workers (e.g. withaddprocs(N::Int)
or through the--procs=N
command line flag) ([#43270]). addprocs
for local workers now accept theenv
keyword argument for passing environment variables to the workers processes. This was already supported for remote workers ([#43270]).