Skip to content

dev-2024-09

Compare
Choose a tag to compare
@Kelimion Kelimion released this 02 Sep 15:33
· 595 commits to master since this release
16c5c69

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]