New Language Features
Compiler Improvements
- Update to LLVM 18.1.8
- Force compiler source to be parsed as UTF-8 (Windows)
- Improve various compiler-internal asserts
- Fix
#soaassignment bug - Add error for
type_of(value of untyped type) - Remove
*_test.odin; always compile it for all targets - Add
-print-linker-flags - Allow
x :: y when cond else proc(...){...} - Allow using a precompiled Windows resource file with
-resource:foo.res - Fix problem where the initial package's directory name ended in .odin
- Fix check for whether executable output path is a directory
New Packages
Package Improvements
- Add bindings for WOW64 API
- Improve
os.openfor WASI - Support
vendor:stb/truetypeandvendor:fontstashon WASM - Fix linker errors with empty project for
vendor:wgpu - Fix SDL constants
- Fix alignment bug in
mem.dynamic_pooland add tests for it - Fix
reflect.as_pointer - Remove implicit allocator usage in
core:dynlib - Fix
utf8_to_wstringgiven zero bytes. - Add
setenvandunsetenvfor Darwin - Improve
core:encoding/cbor - Remove syscall usage on Darwin to comply with Apple guidelines
- Add some XKB extension procedures and constants to
vendor:x11 - Fix
@(optimization_mode)usage in builtin collections - Add synonyms
strings.starts_withandstrings.ends_withas aliases - Allow overriding random generator in
randcalls - Add documentation and example for
core:container/intrusive/list - Update stb_truetype.odin
- Add support of
ignoretag forjson.marshal - Allow json maps with int keys in
marshalandunmarshal - Add Intel AES-NI support to
core:crypto/aes - Improve
rand.shuffle - Fix leak in
core:encoding/iniand add tests for it - Document
core:time,core:time/datetime,core:threadandcore:sync - Add example and tests for
vendor:lua - Many
core:sys/windowsimprovements - Add json reporting to
core:testing - Add
time.to_string*formatters. - Clamp
dotinlinalg.angle_betweento avoid precision errors. - Update RayGui procedures