Julia 1.12 highlights
5 hours ago
- #Julia
- #Programming
- #Release
- Julia version 1.12 has been released, thanking contributors and testers.
- New experimental feature for trimming statically unreachable code to improve compile times and binary sizes.
- Bindings now participate in the 'world age' mechanism, allowing proper redefinition of constants and structs.
- New command-line flag `--trace-compile-timing` to track compilation times.
- Julia now starts with one interactive thread by default for a more responsive REPL experience.
- CPU affinity settings are now respected, improving performance in Docker and HPC environments.
- Introduction of `OncePerX` types (`OncePerProcess`, `OncePerThread`, `OncePerTask`) for safer initialization patterns.
- Support for BOLT-optimized versions of libLLVM, libjulia-internal, and libjulia-codegen for improved performance.
- `@atomic` macro family now supports reference assignment syntax for atomic operations on array-like references.
- New per-task metrics for tracking running and wall time.
- Workspaces introduced for managing multiple projects with shared manifests.
- Apps feature allows creating standalone Julia programs with entry points via `@main`.
- `Pkg.status()` now highlights mismatched loaded package versions.
- `Ptr{T}` now lowers to actual LLVM pointer types, simplifying low-level interop.
- Test RNG state is now printed on failure to aid in debugging intermittent test failures.