New Language Features
Compiler Improvements
odin rootcommand- Normalize
ODIN_ROOTpath - Improvements to arm64 ABI for returning 0 sized types
- Allow compiling with LLVM 18 (non-Windows targets)
- Fix linking with clang-18
- Fix wrote llvm-config in build script for FreeBSD
- Change layout of compiler (not language) hash maps for minor performance improvements
- Numerous improvements to catch the possible race conditions with the new error reporting system
- Allow
-default-to-nil-allocatoron wasm targets - Allow
@(init)procs to be@(disabled) - Performance improvements for access and storing fields from a
bit_fieldtype - Minimally support compiling Odin on FreeBSD arm64
- Improved target feature support
- Improved
-microarchsupport with list of possible micro-architectures.=
New Packages
core:sys/darwin/CoreFoundationcore:sys/darwin/Securitycore:encoding/cbor
Package Improvements
- General bug fixes
- General documentation improvement (typos and
doc.odinfixes) - core:net Add support for URL fragments
- Fix
big.internal_random_primewithSecond_MSB_On - Fix
vendor:d3d12calling convention mistakes - Fix to Fisher-Yates shuffle in
core:rand - Fix
core:text/i18ndefaultnumbervalue inget_*_section - Fix
#soa%#vformatting - Fix
%eformatting - Fix
%[N].*[M]vstyle formatting - Improvements to
Negative_Read/Negative_Writelogic forcore:io - Fix
omitemptyinjson.marshal - Improved statistics for
core:mem/Tracking_Allocator - Require results for non-buffered
printprocs core:sys/info: add arm feature detection, fix Linux implementation, show more CPU info on Darwin- Fix vendor dynamic libraries not working on Linux
- Fixes to
core:encoding/jsoninvalid JSON when an error does not have a position - Add
slice.enum_slice_to_bitset&slice.bitset_to_enum_slice - Add DXGI 1.5 & 1.6 APIs
- Update d3d12 API
- Refactor
fmt.wprintf - Fix
core:odin/parsercrashing on empty and/or no package files
Full Changelog: dev-2024-04a...dev-2024-05