New Language Features
- None
New Compiler Features
- Rework of the entire atomic intrinsics (similar to C11 in design)
Atomic_Memory_Orderenumatomic_type_is_lock_freeatomic_thread_fenceatomic_signal_fenceatomic_storeatomic_store_explicitatomic_loadatomic_load_explicitatomic_addatomic_add_explicitatomic_subatomic_sub_explicitatomic_andatomic_and_explicitatomic_nandatomic_nand_explicitatomic_oratomic_or_explicitatomic_xoratomic_xor_explicitatomic_exchangeatomic_exchange_explicitatomic_compare_exchange_strongatomic_compare_exchange_strong_explicitatomic_compare_exchange_weakatomic_compare_exchange_weak_explicit
union #shared_nil- This adds a feature to
unionwhich requires all the variants to have anilvalue and on assign to the union, checks whether that value isnilor not. If the value isnil, the union will benil(thus sharing thenilvalue)
- This adds a feature to
- Improved build script for the compiler
- Numerous bug fixes
Compiler Improvements
- Improve
-helpmessages for define/config
New Packages
- Completely redesigned
core:sync- Designed from the ground up with making the zero value useful (no need to initialize nor destroy values)
- Utilizes the abilities of modern OSes with native futex support
- Primitives:
MutexRW_MutexRecursive_MutexCondSemaFutex
- Extended:
Wait_GroupBarrierAuto_Reset_EventTicket_MutexBenaphoreRecursive_BenaphoreOnce
core:math/ease
Package Improvements
- Update Thread Pool in
core:thread - More additions to
core:sys/windows - Remove
#caller_locationfrom certain calls incore:container/small_array vendor:stb/easy_fontfixes/improvements- Update
mem.nil_allocatorto match the same implementation inruntime - Numerous improvements and additions to
core:strings - Add
nilcheck onast.walkincore:odin/ast - Numerous bug fixes