New Language Features
[Enum]Type{...}checks for missing enumerated fields in a compound literal by default- Opt-out with
#partial [Enum]Type{...}
- Opt-out with
#sparse[Enum]Typefor non-contiguous enum fields used in an enumerated array type#partial #sparse[Enum]Type{...}can be combined to allow for missing fields in a sparse enumerated array compound literal
New Compiler Features
- OpenBSD support
- Objective-C Runtime Intrinsics
intrinsics.objc_sendintrinsics.find_selectorintrinsics.find_classintrinsics.register_selector(only required when creating Objective-C classes at runtime)intrinsics.register_class(only required when creating Objective-C classes at runtime)
intrinsics.constant_utf16_cstring
Compiler Improvements
//+private filesupport- Numerous bug fixes
- Removal of
context.user_data- Prefer
context.user_ptr
- Prefer
New Packages
- Native Metal package:
- These directly call the Objective-C message sending runtime directly and does not use a wrapper
vendor:darwin/Metalvendor:darwin/QuartzCorevendor:darwin/Foundation
- DirectX packages
- Article: https://odin-lang.org/news/major-graphics-apis/
vendor:directx/d3d11vendor:directx/d3d12vendor:directx/d3d_compilervendor:directx/dxgi
core:container/topological_sort
Package Improvements
core:mem/virtualLinux Support- Add
is_16_bit_from_memorytovendor:stb/image