New Language Features
- Add support for linux_riscv64 and freestanding_riscv64
Compiler Improvements
- Support RISC-V for the compiler itself
- Fix crash if referencing import "aliased" in other file
- Added a hint at end of
build.batabout release mode when building in debug mode - Allow symlink test to work irrespective of git settings
- Use another BSD URL for pkgsrc on CI
- Fix type switching over internal pointer union
- Fix c_vararg bit_set
- Add table-driven (in)definite article to some errors.
- Fix alias handling of procedures
- riscv: add an error when atomics are used without the atomics extension
- Remove extra format item at end of
contexterror message - Fix inline transmutation of
[16]i8toi128 - Fix 'odin [run|test] --' giving a compiler out of bounds
- UL_COMPARE_AND_WAIT_SHARED is macOS 10.15+
- query brew for llvm-config location if possible
New Packages
- Add
vendor:box2d - Add
core:text/regex
Package Improvements
- Add
sdl2gluetovendor:wgpupackage - Fix os.read_dir with symlinks
os.Errorto replaceos.Errnocore:image/common.odinFixes- Prevent
SIGPIPEon Darwin when writing to a closedcore:netsocket - Add
reflect.struct_field_countthat returns the number of fields in a struct type - Fix missing closing brace for Bit_Field in
core:odin/parser - Fix SIMD intrinsics wording
- Core sys windows rawinput code
- Port
core:netto FreeBSD - Allow testing for intentional leaks in test runner
- Various
core:encoding/cborfixes - Various
core:cryptoimprovements - Vectorize
index_byte - Use
intrinsics.reverse_bitsincore:compress/zlib - Fix
type_info_union_is_pure_maybeonly working with regular pointers - Add support for field tags on bit_field fields to
core:odin - Loop
os.write_entire_fileto write more than MAX_RW - [fmt] Add bit fields to the pointer printing logic
- Fix
os.read_dirclosing the given file descriptor - Fix type hint propagation for shift
- Let memory failures be errors in the test runner
- Check if procedure parameter type declares polymorphic args
vendor:x11: Added a few procedures for xrandr, xinput, and xFixesvendor:egl: Added a few more egl procedures and constantscore:timeWASI implementationcore:sys/linux: Add binding to ioctl syscall + standard fd constants.- Update mem doc example formatting
- Error if assigning to
rodatavariable with index - Report error when a variadic procedure parameter has a default value
core:sys/posixandcore:os/os2based on it (for darwin, netbsd, freebsd and openbsd)- Fix error handling in os2.read_entire_file_from_file()
- add shm_open and shm_unlink syscalls for darwin
- More Foundation bindings.
- Add autogenerated orca bindings and macros from laytan
- os2 process linux implementation
- Improve benchmarks.
- Check if file open-mode is
O_CREATEon Darwin before forcing chmod - Fix
openbindings - Fix log unnecessary allocations
- (raygui) Restores vertical text alignment broken after 4.0 migration
- Implement
lshrti3on wasm - Add
core:math.count_digits_of_base - Remove deprecated
logprocs fromcore:testing - Fix SIMD var typo
- Fix wiki link in the
README.md - Add support for Linux on os/sys/posix termios.
- A couple of foundation binding. Vet tabs.
- core:sys/linux - implement clock_settime, clock_getres and clock_nanosleep
- os2: process API for Darwin and most of it for BSDs
- orca: implement
core:timeandcore:log - Fix ambiguous generic type names
- Added missing slice advancing.
- Fix binding: Make
rl.LoadImageAnimtake a pointer instead of a multi-pointer. - Fix
core:reflect/iterator.odin - Fix binding to cmark_node_get_fence_info
- Fix win32 dwmapi DWMWINDOWATTRIBUTE enum.
- os2: propagate errors from execv
- Free the arenas allocated in
test_core_runtime - Fix use-after-free in
thread.Pool - Fix error for uuid to require 36 bytes instead 32 (4 bytes for dashes)
- Fix
-vetand-strict-stylefailures in tests - [os2/process]: Don't free process info fields in partial success scenarios
- Add API for freeing
thread_localstate - wgpu: update to v22.1.0.1
- Delay lexical checking for foreign blocks that are in file scope
- -vet -strict-style -disallow-do in tests
- Win32 clipboard procedures
- os2: disable custom heap allocator
- mem/virtual: use
sysconffor retrieving page size and actually use these init procs - mem/virtual: make sure the given size is used for subsequent blocks
- Add missing lexer checking delay for foreign blocks
- Add
core:iotest suite - Add a file tag parser to core:odin/parser
- Fix some issues with the "bad import name" errors
- Add math.remap_clamped, which clamps the result in range [new_min, new_max]