Releases
dev-2024-09
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.bat
about 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 context
error message
Fix inline transmutation of [16]i8
to i128
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 sdl2glue
to vendor:wgpu
package
Fix os.read_dir with symlinks
os.Error
to replace os.Errno
core:image/common.odin
Fixes
Prevent SIGPIPE
on Darwin when writing to a closed core:net
socket
Add reflect.struct_field_count
that 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:net
to FreeBSD
Allow testing for intentional leaks in test runner
Various core:encoding/cbor
fixes
Various core:crypto
improvements
Vectorize index_byte
Use intrinsics.reverse_bits
in core:compress/zlib
Fix type_info_union_is_pure_maybe
only working with regular pointers
Add support for field tags on bit_field fields to core:odin
Loop os.write_entire_file
to write more than MAX_RW
[fmt] Add bit fields to the pointer printing logic
Fix os.read_dir
closing 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 xFixes
vendor:egl
: Added a few more egl procedures and constants
core:time
WASI implementation
core:sys/linux
: Add binding to ioctl syscall + standard fd constants.
Update mem doc example formatting
Error if assigning to rodata
variable with index
Report error when a variadic procedure parameter has a default value
core:sys/posix
and core:os/os2
based 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_CREATE
on Darwin before forcing chmod
Fix open
bindings
Fix log unnecessary allocations
(raygui) Restores vertical text alignment broken after 4.0 migration
Implement lshrti3
on wasm
Add core:math.count_digits_of_base
Remove deprecated log
procs from core: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:time
and core:log
Fix ambiguous generic type names
Added missing slice advancing.
Fix binding: Make rl.LoadImageAnim
take 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 -vet
and -strict-style
failures in tests
[os2/process]: Don't free process info fields in partial success scenarios
Add API for freeing thread_local
state
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 sysconf
for 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:io
test 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]
You can’t perform that action at this time.