Julia v1.15 Release Notes
New language features
Language changes
Slicesexposesdataidsof its parent array to properly identify aliasing in broadcasting (#49182).
Compiler/Runtime improvements
- After a sweep, Julia's default garbage collector now lets any thread reuse the free cells of pages that still hold live objects, instead of only the thread that allocated the page. This reduces the memory footprint of workloads that allocate many small objects on many threads and keep few of them, such as a language server that runs type inference repeatedly (#63512).
Command-line option changes
--code-coverage=-<paths>records no coverage for files under the given paths, and optimizes their code as if coverage were off, so that instrumenting a test suite does not change how its own functions are compiled.--code-coverage=@<paths>and--track-allocation=@<paths>accept a list of paths (#54698).
Multi-threading changes
--threads=auto,--procs=auto,JULIA_NUM_THREADS=autoand the default number of GC threads now honourJULIA_CPU_THREADS, matchingSys.EFFECTIVE_CPU_THREADS(#64613).- With
JULIA_EXCLUSIVE=1, default-pool threads are pinned to the CPUs of the inherited affinity mask, in order, instead of to CPUs0toN-1. Their number is limited by that mask rather than bySys.EFFECTIVE_CPU_THREADS(#64613).
Build system changes
base/userimg.jlis no longer supported, and the build now fails if it exists. To build a system image with additional code, use PackageCompiler.jl, or run a script on top of an existing system image withjulia --sysimage <image> --output-o <file> <script>.
New library functions
bitsizeof(x)returns the declared width in bits of a primitive type, or of the primitive type ofx, excluding the padding thatsizeofincludes. It throws for any other type or value (#61359).filterfirst(f, itr)returns the first element ofitrfor whichfreturnstrue(#60913).growat!(a::Vector, i, delta)growsabydeltauninitialized elements inserted at indexi(#63573).
New library features
Standard library changes
Dates
InteractiveUtils
JuliaSyntaxHighlighting
Libdl
LinearAlgebra
Markdown
Mmap
Profile
Random
REPL
SharedArrays
Sockets
Test
TOML
UUIDs
uuid5now hashes the bytes ofnameas specified by RFC 4122, instead of first processing backslash escape sequences in it withunescape_string. This changes the result for names containing a backslash, which previously could also throw anArgumentError.