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.juliaorsyntax.julia_versionkey 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\_schwaat the REPL (#60285).
Language changes
Compiler/Runtime improvements
Command-line option changes
Multi-threading changes
- New functions
Threads.atomic_fence_heavyandThreads.atomic_fence_lightprovide 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
IOContextsupports a new booleanhexunsignedoption 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, andBase.show_invalidare nowpublicand documented (but not exported) (#55152).
JuliaSyntaxHighlighting
LinearAlgebra
Profile
Random
REPL
Test
@test,@test_throws, and@test_brokennow support acontextkeyword argument that provides additional information displayed on test failure. This is useful for debugging which specific case failed in parameterized tests (#60501).