Julia v1.14 Release Notes · The Julia Language
Description: Documentation for The Julia Language.

# Julia v1.14 Release Notes

## New language features

- It is now possible to control which version of the Julia syntax will be used to parse a package by setting the `compat.julia` or `syntax.julia_version` key in Project.toml. This feature is similar to the notion of "editions" in other language ecosystems and will allow non-breaking evolution of Julia syntax in future versions. See the "Syntax Versioning" section in the code loading documentation (#60018).

- `ᵅ` (U+U+1D45), `ᵋ` (U+1D4B), `ᶲ` (U+1DB2), `˱` (U+02F1), `˲` (U+02F2), and `ₔ` (U+2094) can now also be used as operator suffixes, accessible as `\^alpha`, `\^epsilon`, `\^ltphi`, `\_<`, `\_>`, and `\_schwa` at the REPL (#60285).

- The `@label` macro can now create labeled blocks that can be exited early with `break name [value]`. Use `@label name expr` for named blocks or `@label _ expr` for anonymous blocks. The `continue` statement also supports labels with `continue name` to continue a labeled loop (#60481).

## Language changes

## Compiler/Runtime improvements

## Command-line option changes

## Multi-threading changes

- New functions `Threads.atomic_fence_heavy` and `Threads.atomic_fence_light` provide support for asymmetric atomic fences, speeding up atomic synchronization where one side of the synchronization runs significantly less often than the other (#60311).

## Build system changes

## New library functions

## New library features

- `IOContext` supports a new boolean `hexunsigned` option that allows for printing unsigned integers in decimal instead of hexadecimal (#60267).

## Standard library changes

- `codepoint(c)` now succeeds for overlong encodings. `Base.ismalformed`, `Base.isoverlong`, and `Base.show_invalid` are now `public` and documented (but not exported) (#55152).

#### JuliaSyntaxHighlighting

#### LinearAlgebra

#### Markdown

- Strikethrough text via `~strike~` or `~~through~~` is now supported by the Markdown parser. (#60537)

#### Profile

#### Random

#### REPL

#### Test

- `@test`, `@test_throws`, and `@test_broken` now support a `context` keyword argument that provides additional information displayed on test failure. This is useful for debugging which specific case failed in parameterized tests (#60501).

- `@test_throws`, `@test_warn`, `@test_nowarn`, `@test_logs`, and `@test_deprecated` now support `broken` and `skip` keyword arguments for consistency with `@test` (#60543).

- New functions `detect_closure_boxes` and `detect_closure_boxes_all` find methods that allocate `Core.Box` in their lowered code, which can indicate performance issues from captured variables in closures.

#### Dates

- `unix2datetime` now accepts a keyword argument `localtime=true` to use the host system's local time zone instead of UTC (#50296).

#### InteractiveUtils

#### Dates

## External dependencies

## Tooling Improvements

## Deprecated or removed

Theme

This document was generated with Documenter.jl version 1.16.1 on Thursday 19 February 2026. Using Julia version 1.14.0-DEV.1759.