New Language Features
#+feature using-stmtusingas a statement and procedure parameter modifier is now an opt-in feature on a per-file basis rather than on by defaultusingon struct fields still works
struct #simple- force a struct to use simple comparison if all of the fields "nearly simply comparable"
- This is a niche solution to a niche problem
- "simply comparable" are types which can be compared with the equivalent of C's
memcmpdirectly (e.g. integers, booleans, aggregates of them) - "nearly simply comparable" include the simply comparable types and floats, since floats have different rules for
+0,-0, andNaN, and are NEARLY simply comparable if you don't care about those edge cases - This struct directive will force a struct to be "simply comparable" even if its fields would make it "nearly simply comparable"
New Compiler Improvements
- Link-Time Optimization Support
-lto:thinand-lto:thin-files
#must_taildirective andpreserve/none/preserve/most/preserve/allcalling conventions- Enables the ability to state how optimize for tail calls
-disable-unwind- Improvements to the constant conversion checks
intrinsics.count_leading_onesandintrinsics.count_trailing_ones- Show
-targetflag usage example in help - Numerous debug info fixes
- Static linking on non-Windows platforms
- Add warning for
size_of(&x)as it will always besize_of(rawptr)and probably a typo -target:freestanding_amd64_mingw- Allowing for linking to MinGW on Windows but for freestanding purposes (not general)
- Fix
string16issues on Mac and Linux - Fix
in/not_inon constantbit_sets - Allow
#+vettags always work in addition to command line flag - General fixes to
-vet - Type assertions now use the same
context.assertion_failure_procasassertandpanicwhere possible #+feature force-type-assertwhich overrides-no-type-asserton a per-file basis- Fix numerous data races in the compiler frontend
- Fix numerous threading bugs in the compiler frontend
New Packages
core:nbio- Non-Blocking IO
core:container/handle_map- Utilizing
core:container/xarfor stable backing data
- Utilizing
Package Improvements
core:thread- Add
initandfinicallback procedures to thread pools
- Add
core:crypto- Add initial support for short Weierstrass curves
- General improvements and additions
core:testing- Use Windows API for SIG handling on Windows
core:image- Fix TGA header detections
.do_not_expand_grayscalefor TGA
core:os/core:os/os2- Fix
lookup_env_buf - Fix truncate-clamp op order when determining to_read size
- Fix
core:encoding/base64- Add support URL variant
core:encoding/entity- Update handling of 2-codepoint based entities
core:encoding/xml- Correct how comment handling and entities
core:strings- Add
loc := #caller_locationto allocating procedures that would benefit for it
- Add
core:sys/windows- add a few procedure bindings
- sync barriers
- procedure-based "macros" for RawInput
core:text/regex- Pass given allocator on in
create_iterator
- Pass given allocator on in
vendor:x11/xlib- Binding fixes, correcting incorrect signatures
vendor:directx- Improve string type uses in DirectX bindings
vendor:compress/lz4- Fix linking on non-Windows platforms
vendor:curl- Fix linking on all unix-like OSes
vendor:sdl3- Add missing procedures
GetGpueDeviceProperties - Fix signature of
RenderTextureRotated
- Add missing procedures
vendor:sdl3/image- Update to 3.4.0
- Move
vendor:libctovendor:libc-shim- This is to clarify that it exists as a "shim" rather than a proper replacement
- Update Orca bindings
- General additions and improvements to
core:sys/linux - Bulk-write to a slice in xoshiro/pcg_random_generator_proc
- Fixes to darwin/Foundation bindings
Full Change Log
Full Changelog: dev-2026-01...dev-2026-02