Aquesta és una versió anterior. La versió actual és la dev-2026-10. Odin Programming Language dev-2026-10 · Data de publicació:
Fitxers d’instal·lació dev-2024-09
| Arquitectura | Tipus | Àmbit | Mida del fitxer | Baixa | SHA256 |
|---|---|---|---|---|---|
| 64 bits | ZIP → Portable | — | — | github.com | VirusTotal |
L’enllaç i l’SHA256 provenen del manifest comunitari del Gestor de paquets del Windows. Convé comparar el hash del fitxer baixat abans d’executar-lo.
Notes de la versió
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]