New Language Features
cap(Enum), equivalent tomax(Enum)-min(Enum)+1ODIN_BUILD_PROJECT_NAMEconstant//+build-project-namebuild directiveintrinsics.type_convert_variants_to_pointers- Add
helgrindandvalgrindsupport
Compiler Improvements
- Greatly improve error messages
- Preparations for Compiler Explorer support
- Use
uintinstead ofintto improve bounds checking code generation - Replace
#optional_secondwith#optional_allocator_error - Remove extra pointer indirection
- Make
intrinsics.count_{ones,zeros,trailing_zeros,leading_zeros}work at compile time - Improve
map - Improve parapoly support for ^T to [^]$V and vice versa
- Various bugfixes
- Simplify win32 resource file linking
- Add Windows 32-bit build system error
- Add
helpcommand, so you can now useodin help buildin addition toodin build -help - Improve macOS version detection for
odin report
New Packages
- Add
vendor:zlib - Begin work on
core:debug/peto parse PE files - Add
core:sys/infoto query CPU, GPU, RAM, etc.
Package Improvements
- Add system:legacy_stdio_definitions.lib to
core:c - Allow reading/writing files larger than
max(i32)on Darwin - Allow skipping unused fields in
core:encoding/json - Add parsing of +/-Inf and NaN to
core:strconv - Add additional win32 imports and constants
- Fix typo in
map_insert - Fix
libc.aligned_alloc - Add
slice.enumerated_array - Add serial comms support to
core:sys/windows - Add complex support to
core:libc - Correct json unmarshal of
maps - Fix Darwin libs for
vendor:stb/image - Added support for ID3D11InfoQueue to
vendor:directx - Improve
core:mem/virtualhandling of out of memory on Windows - Simplify
core:ioby removing different unnecessary types and calls - Add the builtin procedures
abs,clamp,min,maxtocore:mathas aliases