dev-2024-07
版本发布时间: 2024-07-02 01:28:06
odin-lang/Odin最新发布版本:dev-2024-09(2024-09-02 23:33:25)
New Language Features
- Allow for constant strings in
foreign import
s -
#exists(<string>) -> bool
-
@(rodata)
-
context.random_generator
- Brand new
runtime.Random_Generator
interface
- Brand new
Compiler Improvements
- Brand new Multithreaded Test Runner
- Improvements to error line rendering
- Full support for Unicode grapheme clusters
- NetBSD ARM64 support
-
-show-defineables
and-export-defineables
-
-vet-cast
- Looks for redundant
cast
s ortransmute
s, andtransmute
s that should becast
s
- Looks for redundant
-
-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 theirswitch
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
andlabel: #partial switch
- Allow
#soa
arrays to be used directly withmake
,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 doingcomplex32
andquaternion64
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) -
core:flags
-
core:encoding/uuid
-
core:mem/tlsf
- "Two-Level Segregated Fit" memory allocator
-
core:image/bmp
Package Improvements
-
core:text/table
now supports Unicode grapheme clusters correctly -
core:math/rand
now uses the newcontext.random_generator
interface instead of the implementation specificrand.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
tovendor: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
toappend_soa
calls - Add
no_zero_*
variants for#soa
dynamic arrays - More test suites
1、 odin-macos-amd64-dev-2024-07.zip 87.46MB
2、 odin-macos-arm64-dev-2024-07.zip 84.42MB
3、 odin-ubuntu-amd64-dev-2024-07.zip 81.89MB
4、 odin-windows-amd64-dev-2024-07.zip 128.38MB