dev-2022-04
gingerBill
released this
04 Apr 20:57
·
7547 commits
to master
since this release
New Language Features
- None
New Compiler Features
- Rework of the entire atomic intrinsics (similar to C11 in design)
Atomic_Memory_Order
enumatomic_type_is_lock_free
atomic_thread_fence
atomic_signal_fence
atomic_store
atomic_store_explicit
atomic_load
atomic_load_explicit
atomic_add
atomic_add_explicit
atomic_sub
atomic_sub_explicit
atomic_and
atomic_and_explicit
atomic_nand
atomic_nand_explicit
atomic_or
atomic_or_explicit
atomic_xor
atomic_xor_explicit
atomic_exchange
atomic_exchange_explicit
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
union #shared_nil
- This adds a feature to
union
which requires all the variants to have anil
value and on assign to the union, checks whether that value isnil
or not. If the value isnil
, the union will benil
(thus sharing thenil
value)
- This adds a feature to
- Improved build script for the compiler
- Numerous bug fixes
Compiler Improvements
- Improve
-help
messages 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:
Mutex
RW_Mutex
Recursive_Mutex
Cond
Sema
Futex
- Extended:
Wait_Group
Barrier
Auto_Reset_Event
Ticket_Mutex
Benaphore
Recursive_Benaphore
Once
core:math/ease
Package Improvements
- Update Thread Pool in
core:thread
- More additions to
core:sys/windows
- Remove
#caller_location
from certain calls incore:container/small_array
vendor:stb/easy_font
fixes/improvements- Update
mem.nil_allocator
to match the same implementation inruntime
- Numerous improvements and additions to
core:strings
- Add
nil
check onast.walk
incore:odin/ast
- Numerous bug fixes