BREAKING Changes
-
core:oshas been replaced with our newly improved and rewritten v2, previously available atcore:os/os2. The oldcore:osimplementation will remain available atcore:os/olduntil sometime in Q3 of 2026.- Article on Moving Towards a New
"core:os"
- Article on Moving Towards a New
-
core:sys/infopreviously retrieved all information beforemainwas entered, using@(init), and exposed everything via globals. It now gathers more information on demand, and returns everything via accessors for a consistent API. Where practical - like cpu name + features - those values will be cached.
New Language Features
for init; x in y {}style loops
New Compiler Improvements
- Stop silently ignoring unknown directives on an inline
asmexpression - Do not allow duplicated
#partialdirectives on switch statements - Add broadcasting to strings (Fix #1837)
- Improve LLVM version picking
- Fix name canonicalization for typed ranges in
bit_set - Fix
bit_setparapoly specialization - Fix separating of diverging procedure types from block statements
- Update
Type_Info_Bit_Setto always record underlying type. Addruntime.type_info_underlying - Fix #6347
- Fix #6270
New Packages
core:crypto/ecdsa: Add ECDSA support
Package Improvements
- [BREAKING]
core:os/os2->core:osintegration - [BREAKING]
core:sys/info: Change API from globals to calls. Do as little work in@(init)as practical. - Allow test names to be specified as a command line option for tests executable
vendor:x11/xlib: Fix signature of XChangeWindowAttributesvendor:directx/d3d12: AddedIGraphicsCommandList7and fix access violation errors- Minimize some internal depencies in the
corepackages, e.g. don't importcore:memjust formem.Allocator_Error vendor:box2d: Fix and try Git LFScore:log: Add support forjs/wasmcore:container/xar: Fixes and improvementscore:container/pool: Fix parapoly type inference around address sanitization when using multiple Pool typescore:container/handle_map: Improvementdemo.odinFixcross_3dtypocore:encoding/hex: Add uppercase encodingcore:bytes: Update comment oncompare; add additional caller location propagationcore:math/big: Clean upcore:os: Fix silent failure inos.replace_path_separatorsif the separator was multi-byte- Add additional tests
core:sys/es: Fix build errorscore:unicode/utf8: Fix utf-8 validation- Vendor Wycheproof cryptographic tests under
tests/core/ - Propagate allocator errors from certain unicode functions
- Fix some tools and examples after
core:osupdate andusing-stmtfeature - Fix typo in
atomic.odindocumentation core:os: Removeprocess_closeand addprocess_terminatecore:time: Correct 12-hour clock string- Update Unicode specification
vendor:curl: Fixwhatargument forurl_set- Small optimization for dynamic arrays
vendor:miniaudio: Upgrade to 0.11.24core:container/priority_queue: Add example and testscore:text/regex: Fix\bhandling in iteratorvendor:sdl3: Update to 3.4.2- Add bindings to allow custom hardware cursors
core:nbio: Fix op reusecore:strings: Fixsubstringnot returning end of rangecore:sys/windows: Add morewin32API bindingscore:sys/windows: Fix incorrectPVOID/VOIDuse in some signaturescore:sys/windows: Tighten upMultiByteToWideCharusage inutf8_to_wstring_bufvendor:stb/vorbis: Remove unnecessarycore:c/libcimportvendor:wasm/WebGL: Add bindings, fixTex*Image*Dcore:os: Return.Permission_Deniedfor.EACCESin Posix and Linuxcore:crypto/_blake2: Fix final blocks call with partial block- Kill deprecated file tags and fix assignment of package docs
Full Change Log
Full Changelog: dev-2026-02...dev-2026-03