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-07
| 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
- Allow for constant strings in `foreign import`s
- `#exists(<string>) -> bool`
- `@(rodata)`
- `context.random_generator`
- Brand new `runtime.Random_Generator` interface
Compiler Improvements
- Brand new Multithreaded Test Runner
- https://github.com/odin-lang/Odin/pull/3646
- Improvements to error line rendering
- Full support for Unicode grapheme clusters
- NetBSD ARM64 support
- `-show-defineables` and `-export-defineables`
- `-vet-cast`
- Looks for redundant `casts` or `transmute`s, and `transmute`s that should be `cast`s
- `-strict-style` now enforces a lot more regarding the official Odin code base style
- `-vet-style` is a much weaker form that does not have all of the same enforced options as `-strict-style`
- Enforces `-vet-cast`
- Enforces `case` statements to be in the same column as their `switch` token
- Enforces 1TBS style
- `-vet-tabs`
- Enforces tabs to be used for indentation with statements/declarations
- `-custom-attribute:<string>`
- `-custom-attribute:attr1`
- `-custom-attribute:attr1,attr2`
- `-custom-attribute:attr1 -custom-attribute:attr2`
- Improve parsing for `label: #reverse for` and `label: #partial switch`
- Allow `#soa` arrays to be used directly with `make`, `reserve`, `append`, etc.
- `intrinsics.procedure_of(call(...))`
- `intrinsics.syscall_bsd`
- Fixes to debug information generation for LLVM < 13
- Add `#directory` (complements `#file`)
- Remove `@(warning)` and `#warning`
- Allow `- constant_array`
- Support `@(extra_linker_flags)` on WASM targets
- Use `f32` operations when doing `complex32` and `quaternion64` operations to improve accuracy and performance
- Allow for `when x in y {` (minor oversight in syntax)
- Keep `bit_field` accesses happy with `-santitize:address`
- Fix for `bit_set[$T]` not setting the bounds correctly (https://github.com/odin-lang/Odin/pull/3842)
- `intrinsics.type_struct_has_implicit_padding`
- Remove quite a few possible race conditions in the compiler
- Numerous big fixes
New Packages
- `vendor:wgpu` (WebGPU)
- https://github.com/odin-lang/Odin/commit/108b8feb357dab8b3faf788c382406567bd99d33
- `core:flags`
- https://github.com/odin-lang/Odin/commit/edb685f04be9aef407dc8abac7bb76fb51184f9f
- `core:encoding/uuid`
- https://github.com/odin-lang/Odin/commit/4824050c999542d6ae4bd7f67f301a6694dcd556
- `core:mem/tlsf`
- "Two-Level Segregated Fit" memory allocator
- `core:image/bmp`
- https://github.com/odin-lang/Odin/pull/3609
Package Improvements
- `core:text/table` now supports Unicode grapheme clusters correctly
- `core:math/rand` now uses the new `context.random_generator` interface instead of the implementation specific `rand.Rand`
- `core:crypto` has a Random_Generator interface for entropic cryptographic random number generators
- Improvements to `core:strconv`
- Support complex/quaternion parsing
- Partial parsing of infinity
- Improvements to `vendor:raylib` declarations
- Move `rlgl` to `vendor:raylib/rlgl`
- Fixes to `core:math/big` and add numerous other utility procedures
- Fix code generation for `vendor:vulkan` on `^[3]f32` parameters
- Numerous improvements to `core:odin/parser`
- Make `runtime.heap_alloc` et al `"contextless"`
- Add `#no_broadcast` to `append_soa` calls
- Add `no_zero_*` variants for `#soa` dynamic arrays
- More test suites