Julia v1.13 Release Notes
New language features
- New
Base.@acquire
macro for a non-closure version ofBase.acquire(f, s::Base.Semaphore)
, like@lock
. (#56845)
Language changes
mod(x::AbstractFloat, -Inf)
now returnsx
(as long asx
is finite), this aligns with C standard and
is considered a bug fix (#47102)
Compiler/Runtime improvements
Command-line option changes
Multi-threading changes
Build system changes
New library functions
- Exporting function
fieldindex
to get the index of a struct's field (#58119).
New library features
fieldoffset
now also accepts the field name as a symbol asfieldtype
already did (#58100).sort(keys(::Dict))
andsort(values(::Dict))
now automatically collect, they previously threw (#56978).Base.AbstractOneTo
is added as a supertype of one-based axes, withBase.OneTo
as its subtype (#56902).
Standard library changes
JuliaSyntaxHighlighting
LinearAlgebra
Profile
REPL
Test
- Test failures when using the
@test
macro now show evaluated arguments for all function calls (#57825, #57839).
InteractiveUtils
- Introspection utilities such as
@code_typed
,@which
and@edit
now accept type annotations as substitutes for values, recognizing forms such asf(1, ::Float64, 3)
or evensum(::Vector{T}; init = ::T) where {T<:Real}
. Type-annotated variables as inf(val::Int; kw::Float64)
are not evaluated if the type annotation provides the necessary information, making this syntax compatible with signatures found in stacktraces (#57909, #58222).