Populars: Dades actualitzades el 26 d’octubre del 2026

Categories

Internet1.355
Comunicació321
Àudio i vídeo898
Gràfics i disseny539
Ofimàtica i productivitat1.120
Eines per a desenvolupadors3.132
Eines d’IA527
Seguretat i privadesa385
Eines del sistema3.113
Jocs523
Educació i ciència239
Xarxa i TI284

Odin Programming Language: baixar versions anteriors

Odin is a general-purpose programming language with distinct typing built for high performance, modern systems and data-oriented programming.

Aquí hi ha 22 versions d’Odin Programming Language, des de 4 de març del 2024 fins a l’actual, dev-2026-10. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.

2024: 11 11 24 2025: 8 8 25 2026: 3 3 26

22 versions en 3 anys · unes 8,5 per any

VersióDataMidaFitxers
dev-2026-10Darrera versió 6 d’octubre del 2026 — 64 bits ZIP
Notes de la versió
New Language Features
- [#7664]: Allow bit_set to be backed by arrays of integers
New Compiler Improvements
Speedups
- [#7720]: LLVM Backend Performance Improvements to Reduce Compile Times Part 1
- [#7729]: LLVM Backend Performance Improvements to Reduce Compile Times Part 2
- [#7747]: Compiler Performance Improvements to Reduce Compile Times Part 3
- [#7685]: Complete Parapoly Rewrite + Race condition fixes
- [#7694]: Make global checking codegen order-independent
- [#7686]: Parse integer literals without allocating per digit and reject non digits in their exponent
- [#7739]: Make radlink default linker on Windows
- [#7701]: Multithread The Entire Semantic Checker
- [#7728]: map performance improvements
General fixes and improvements
- [#7654]: Experimental support for cross-linking Windows executables
- [#7788]: Add the new -windows-sdk-root to the odin help build command
- [#7497]: Fix #7488: -vet error in core_builtin_soa.odin when appending multiple empty structs to #soa[dynamic]
- [#7500]: Fix #5851: Detect and error on chained offset_of expressions
- [#7505]: Apply mojibake magic to test runner, too
- [#7509]: Fix #7499: Add ctrl-c handler to run_subprocess
- [#7070]: Fix vendor:ENet.Buffer data/length ordering issue
- [#7524]: Fix alias nullptr ICE
- [#7528]: intrinsics.type_elem_type() added case for Type_FixedCapacityDynamicArray
- [#7531]: Improve error message for constant indexing
- [#7530]: simd_abs codegen improvement + fix for unsigned integers
- [#7545]: Fix #6917: LLVM IR va_arg instruction uses wrong stride for C varargs on Windows
- [#7548]: Fixes simd_approx_recip and simd_approx_recip_sqrt
- [#7549]: Fixes simd_select and simd_runtime_swizzle operand construction
- [#7574]: Fix #7573: Check Enumerations iota fits explicit base type
- [#7570]: Fix #7544: Constant bit_field field access returning zero value
- [#7568]: Fix side_effects vs volatile typo in error message
- [#7561]: Fixes #6888: SIMD gather/scatter and masked load/store randomly crashing the compiler
- [#7550]: Fix syntax error type with -json-errors
- [#7577]: Fix #location in global variable initializers
- [#7582]: Fix #7581: Compiler crash when checking code with swizzled SOA fields
- [#7605]: Fix #7604: Allow building at /
- [#7607]: Fix #7598: Keep entity iteration valid across a scope map rehash
- [#7623]: Add -file suggestion when main is duplicated or package names differ
- [#7628]: Fix quadratic type checking case: don't cache polymorphic record specializations
- [#7631]: Fix record instantiated poly proc on selector when used as a proc value
- [#7629]: Fix #7596 and #7511
- [#7621]: Fixes the attributes of the context parameter in dummy procedures
- [#7641]: Fix field sorting for bit_field literals
- [#7656]: Fix #7609: Emit union constants for non-constantable unions
- [#7658]: Fixes #must_tail on WASM targets
- [#7652]: Fix #6951 and #5214: $ procedure arguments matching the wrong instantiation
- [#7639]: Fix #6302: Broadcasting arrays of matrices and matrices
- [#7661]: Fix #7587: Full length swizzles through a pointer keeping the pointer type
- [#7594]: Fix #7583: -strict-style requires comma before newline after proc parameters which have a default value
- [#7588]: Fix #7427 and #7193: Error on OOB tuple element in compound literals
- [#7668]: Fix #5318: Procedures passed to $ parameters share an instantiation's name
- [#7666]: Add ExactValue_Rational to improve precision on compiler float computation
- [#7602]: Adds lifetime markers for named locals
- [#7674]: Fix #5105 and #5569: Deferred call in short circuits causes LLVM codegen failure
- [#7682]: Fixes the nocapture attribute on LLVM >= 21
- [#7679]: Fix #7477 and #7506: Casts between nested arrays of the same depth
- [#7697]: Fix compound literals of array backed bit_fields
- [#7692]: Disallows the "odin" calling convention with #must_tail
- [#7706]: Fix #7430: Fixed capacity dynamic array literals lose their length
- [#7709]: Fix #7708: Compare a polymorphic record's cons
dev-2026-09 1 de setembre del 2026 — 64 bits ZIP
dev-2026-05 4 de maig del 2026 — 64 bits ZIP
Notes de la versió
New Language Features
- Native Array Casting Semantics, e.g. cast([4]f32)4x_u32 (PR #6605)
- Increase matrix limit from 16 to 64 elements, allowing for up to matrix[8, 8]T
New Compiler Improvements
- Add -debug default behavior usage docs (PR #6511)
- Fix output of filename when outputting docs with the -in-source-order option (PR #6536)
- Fix #no_bounds_check regression (PR #6541)
- Fix target feature lookup, canonicalize target_features_set (PR #6544)
- Fix (Issue #6344) - Field-first index writes on #soa[dynamic]T and #soa[]T (PR #6539)
- Fix aligned_alloc not defined on Android/Bionic (PR #6519)
- Fix break/continue being allowed in a nested unrolled range loop (PR #6521)
- SROA and simplification passes on -o:minimal (PR #6553)
- Fix array counts for floats that are exactly representable as integers e.g. [1.1e4]int (PR #6583)
- Prevent coredump when child process gets killed by signal (PR #6586)
- Support multiple return values within compound literal elements (PR #6596)
- Fix (Issue #5422) - Make @(rodata) on constants yield "not supported" message (PR #6601)
- Fix (Issue #6594) - Report cycle when assigning variable to itself (PR #6599)
- Fix (Issue #6621) - Report cycle for type_of (PR #6624)
- Removed moribund Essence OS from supported targets (PR #6623)
- Add intrinsics.c_va_* (PR #6629)
- Fix type info not being generated for types only used in []typeid literals (PR #6630)
- Fix compiler warning on Linux (PR #6638)
New Packages
- [core:crypto/noise] Add Noise implementation (PR #6573)
Package Improvements
- [core:os] Add dir procedure (PR #6517, PR #6528)
- [base:runtime] Native simd width (PR #6545)
- [core:os] Fix _volume_name_len to handle paths of purely path separators (PR #6547)
- [core:math/linalg] Faster dot, cross3, floor, ceil, and add trunc (PR #6549)
- [core:math/linalg] More matrix related calls: pseudo_inverse, inverse_lu_decomposition, matrix_inverse_gauss_jordan
- [core:mem/virtual] Fix arena overcommit bug (PR #6552)
- [core:sys/linux] Fix missing argument in adjtimex syscall (PR #6502)
- [vendor:wgpu] Update to v29.0.0.0 (PR #6551)
- [core:sys/freebsd] Add ioctl and stdio FILENO constants (PR #6537)
- [core:nbio] Handle EOF in poll on Posix (PR #6556)
- [core:container/xar] Fix a typo in example (PR #6559)
- [core:testing] Ensure make_* style bounds traps are handled in test runner expect_signal on Windows (PR #6563)
- [core:sys/windows] Add I/O Ring API bindings (PR #6562)
- [vendor:directx/d3d12] Fix D3D12_BARRIER_SUBRESOURCE_RANGE struct (PR #6557)
- [core:testing] Fix stop reason being wrong for OOB on Windows (PR #6570)
- [core:fmt] Remove redundant 'defer bufio.writer_flush' from fprint procs (PR #6567)
- [vendor:zlib] Fix signature of inflateInit_ (PR #6566)
- [vendor:sdl3] Mixer: Removed #by_ptr from args that are valid as nil (PR #6576)
- [core:mem/virtual] Fix map_file usage example (PR #6577)
- [core:mem/virtual] Add address_hint to reserve (PR #6558)
- [core:os] Fix stem on empty path (PR #6579)
- [core:path/filepath] Create wrappers for allocating procedures (PR #6575)
- [core:fmt] Omit value when formatting map[T]struct{} sets (PR #6581)
- [vendor:vulkan] Add version macros (PR #6565)
- [core:sys/windows] Add Registry Association API (PR #6525)
- [core:sys/windows] Fix LockFileEx and UnlockFileEx (PR #6625)
- [core:math/linalg] Fix negated quaternions in angle_from_quaternion (PR #6607)
- [core:sys/linux] Emulate dup2 better on arm64 and riscv (PR #6632)
Full Change Log
Full Changelog: dev-2026-04...dev-2026-05
dev-2025-12 2 de desembre del 2025 — 64 bits ZIP
Notes de la versió
Breaking changes
- BREAKING: Use chacha8rand as the default RNG.
The old default generator is available under core:math/rand in rand_pcg.odin in case you require a seed to return the same sequence as before.
New Language Features
- Introduce #all_or_none for structs, which requires that struct literals have all or none of the fields set
New Compiler Improvements
- Use SIP hash as name canonicalization hash
- Moved checking of -vet-unused-procedures and -vet-packages flags to after all flags are parsed
- Fixes for 32 bit with regards to typeid
- Fix #5894
- Remove #no_copy
- Don't check proc signature similarity for imported Objective-C methods
- Ubuntu arm ci and posix fixes
- Fix allocation of anonymous globals
- Fix #5967: Incorrect stack overflow warning for by ref switches over unions
- Skip collision panic when package names aren't unique
New Packages
- Add vendor:curl
Package Improvements
- Improve docs for stable sort procedures
- Fix: linalg.quaternion_from_forward_and_up
- Clone unquoted strings in encoding/json
- Add missing SetLayeredWindowAttributes
- Add io uring API
- Add FreeLibraryAndExitThread in kernel32. Add EnumProcessModules in psapi
- Fix typo in NS.String_initWithCString
- Remove the Darwin-specific paths from thread_unix
- Fix thread_act_t size
- Fix: make choice_bit_set respect bit_set domain
- math/rand: Add range-based number generation procedures
- Fix is_pointer_internally not handling Named Types
- Faster big.itoa
- Add Xoshiro256 RNG
- Add LockFileEx/UnlockFileEx and related flags
- Fix vendor:stb/image resize alpha_channel parameter type to c.int
- Move some OS General_Error values to io.Error
- Fix out of bounds access when parsing end_pos
- Add WSASendTo and WSARecvFrom
- Update d3d12 bindings for D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT
- Add NSWindow coordinate space conversion bindings
- Don't build log allocator file on freestanding targets
- Adjust docs links for satellite SDL libraries
- Increase base64 decoding table size to 256, preventing out of bounds reads
- vendor/xlib: a few more IM-related procedures and constants
- add math.sign and math.sign_bit overloads for int types
- Implement more Linux syscalls
- Add SIO_UDP_CONNRESET winsock constant
- os2.File_Stream
Other
- Fix up macOS CI
Full Changelog: dev-2025-11...dev-2025-12
dev-2025-11 4 de novembre del 2025 — 64 bits ZIP
Notes de la versió
Licensing Changes
- Change Odin's LICENSE to zlib from BSD 3-clause
New Language Features
- intrinsics.concatenate
- Concatentation of constant slices, strings, and some arrays at compile time
- intrinsics.objc_super & @(objc_superclass=<type>)
New Compiler Improvements
- Objective-C interface improvements
- intrinsics.objc_super and automatically emit objc_msgSend calls where necessary for @(objc_superclass) attribute
- Fix block symbols naming conflict across modules
- LLVM backend fixes
- #simd vector only uses bit cast when elements are not pointers
- Fix bitcasting context pointer to prevent compilation errors on LLVM-14
- Numerous constant union improvements
- Prefer the Type * ver LLVMTypeRef when looking up struct_field_remapping due to lack of uniqueness
- Default parameter exclusion counting improvement for procedure groups
- Improved -target-features flag by allow the user to disable a target feature
- -target-features:-sse,-sse2,-avx
- -export-linked-libs-file:<string> flag to export the linked libraries to a file
- Fix a few compiler hangs on macOS.
- LLVM 21 support for non-Windows platforms
- Fix: #load alignment bug
- set minimum alignment to 16-bytes
- Fix orca linking path
- Add #subtype/using to name canonicalization rules
- Numerous frontend bugs fixed
New Packages
Package Improvements
- More documentation improvements across the core library
- General improvements and more documentation for core:os/os2
- Add inject_at_soa and append_nothing_soa
- vendor:wgpu update to 27.0.2.0
- core:unicode/utf8: Add Grapheme_Iterator
- New slice.sort implementation to allow for better code generation and general API
- Deprecate the C style procedures in strconv (e.g. iota, atoi, etc`)
- WASM: Fix odin.js undefined this.mem
- Fix sRGB <-> linear RGB conversion
- core:encoding/json fixes
- Fix null parsing in certain cases
- core:encoding/cbor: Fix epoch tag with small values
- core:container/rbtree add find_or_insert
- Fix bindings generator for vendor:vulkan for extensions and ~0 style constants
- Disable bounds checking where appropriate for Unicode and UTF-8 procedures
- vendor:fontstash: Fix crash with .TTC files
- core:simd : Fix incorrectly named calls in bit_not
- vendor:sdl3: Add PointInRectFloat
- vendor/egl
- add a few more procedures and constants
- Fix GetPlatformDisplay and CreatePlatformWindowSurface to use int instead of i32
- vendor:box2d
- fixes to bindings mismatches
- Add targetAngle to RevoluteJoint struct/procs
- core:odin/parser
- fixes for end_pos
- parse empty identifiers after selector as a selector expression with an empty field
- core:hash: add CCITT CRC-16
- Make packed conditional on EPoll_Event to match kernel
- core:math/linalg/hlsl: support half types
- core:math/ease: Add inverse ease procedures
- vendor:raylib: add MAX_MATERIAL_MAPS constant
- core:sys/darwin/Foundation: add additional AppKit bindings
- core:text/scanner allow for octal prefix style parsing for C-style ints
Full Changelog: dev-2025-10...dev-2025-11
dev-2025-09 8 de setembre del 2025 — 64 bits ZIP
Notes de la versió
New Language Features
- Native support for UTF-16 strings: string16 and cstring16
- Mostly for interfacing with Windows code, and other foreign code
- Define Integer Division By Zero #5556
New Compiler Improvements
- @(init) and @(fini) must be proc "contextless" ()
- Implement intrinsics.objc_block @harold-b in #5547
- Implements the Apple block ABI.2010.3.16 natively
- Improve deference missing suggestion message
- Do not check for explicit allocators when determining proc in proc group by @janga-perlind in #5564
- Skip errors on polymorphic procs when in a proc group with other options
- Fix compiler segfault when trying to use proc at type level or trying to use () as a type
New Packages
Package Improvements
- Fixes to vendor:darwin/Metal
- Numerous minor fixes to base:runtime
- Improvements to base:runtime docs
- Fixes to vendor:wasm/WebGL bindings
- Cleanup in math/rand and runtime/random_generator
- Add missing xlib functions for getting and setting text properties
- vendor:OpenGL fix misnamed parameter by
- Make D3D12_FEATURE_DATA_D3D12_OPTIONS.MinPrecisionSupport a bitset
- Fix buddy allocator assert
- Check for EOF when scanning file tags
- Fix stride in memory_equal/compare_zero giving false positves
- Split SDL_ttf bindings to group with and without require_results
- Propogate #caller_location to core:container/queue procs
- Support using allocator resize in _reserve_soa
- Zero existing memory when using resize_soa
- Add add/remove_document_event_listener() to core:sys/wasm/js
- Fixed and added obj-c methods for NSWindow
- fix typo in CLSIDFromProgIDEx signature
- Fix broken wglUseFontBitmaps binding
- Add LPFN_GETACCEPTEXSOCKADDRS to ws2_32.odin
- Specify %m and %M as verbs for integer formatting in core:fmt
- Add @(require_results) attribute to procs returning an allocator
- Handle allocator error when appending in read_entire_file_from_file
- vendor:box2d fix CreateMotorJoint procedure signature
- Add build tags to posix/spawn.odin
Full Changelog: dev-2025-08...dev-2025-09
dev-2025-08 20 d’agost del 2025 — 64 bits ZIP
dev-2025-06 14 de juny del 2025 — 64 bits ZIP
dev-2025-03 5 de març del 2025 — 64 bits ZIP
Notes de la versió
## New Language Features
-

## New Compiler Improvements

- Name Canonicalization
- Deterministic Name Mangling Rules for Symbols (Procedures, Variables, Debug Types, etc)
- typeid layout change
- Always 8-bytes in size
- Represents a hash of the canonical name for the type
- Improved generation times for odin doc
- Allow -show-timings for odin doc
- Very minor parser improvements to catch weird edges cases
- intrinsics.simd_extract_msbs
- intrinsics.simd_extract_lsbs
- for x in bit_set will use a count leading zeros intrinsics internally rather than checking each bit manually
- General bug fixes for LLVM backend

## New Packages

- vendor:sdl3/image

## Package Improvements

- Update vendor:wgpu to v24
- Improved documentation for core:simd
- Minor fixes to SDL3 bindings
- Support use of * in format strings without an index
- NS.SavePanel_URL fix
- Support %b for rune
- os2 fixes
- Recursive directory walker
- Fix race conditions on Linux
- os2.random_string to use context.random_generator
dev-2025-02 11 de febrer del 2025 — 64 bits ZIP
Notes de la versió
New Language Features
- Support #unroll(N) for with arrays
Compiler Improvements
- Enable -use-separate-module as default for all platforms (except wasm based ones)
- General Bug Fixes
- Remove erroneous warnings regarding stack overflow in range loops "by reference"
- Allow broadcasting of untyped values to #simd arrays
- Improvements to -obfuscate-source-code-locations
- Remove duplicates of .framework/.dynlib/.so in linker
- Darwin: Sort frameworks to link first
New Packages
- vendor:sdl3 (3.2.2)
- vendor:windows/GameInput
Package Improvements
- Improvements to D3D12 package
- Improvements for Haiku
- Add missing procedures to GLFW
- runtime.map_entry
- XInput bindings for core:sys/windows
- More work on core:os/os2 development
- More Objective-C bindings
- Additional bindings and constants for core:sys/windows
- mem.Tracking_Allocator defaults to panicking on bad frees
dev-2025-01 13 de gener del 2025 — 64 bits ZIP
Notes de la versió
New Language Features
- `#+feature dynamic-literals`
- All dynamic literals (maps and dynamic arrays) are disallowed by default to remove implicit allocations from Odin
- If the user wants to allow this, it can be enabled on a per-file basis by adding the above "build tag"
- Dynamic literals like the following:
- `[dynamic]int{1, 4, 9, 16}`
- `map[string]int{"Apple" = 759, "Pear" = 128, "Gorilla" = 533}`

Compiler Improvements
- `ensure`/`ensure_contextless`
- Identical to `assert`/`assert_contextless` but is not removed with `-disable-assert`
- Remove viral `#force_inline` and `#force_no_inline`
- Declaring a procedure with these tags would previously virally apply them to procedures called inside the subject procedure too, it now just affects the procedure it is applied to
- Fix bug with comparisons with big endian types
- Improve zeroing rules for `resize_dynamic_array`
- Add implicit broadcasting for `#simd` arrays
- `map_entry` ([Docs](https://pkg.odin-lang.org/base/builtin/#map_entry))

New Packages
N/A

Package Improvements
- Fixes to `vendor:raylib`
- Fixes to foreign imports after update to 5.5
- Allow for custom WASM link libraries
- Allow custom WASM link libraries for `vendor:box2d`
- Add trunc to `core:math/linalg/glsl`
- Improvements to `core:encoding/base32`
- Update `vendor:cgltf` to 1.14
- Add xinput bindings to `core:sys/windows`
- Fix to matrix adjugate procedure
dev-2024-12 6 de desembre del 2024 — 64 bits ZIP
Notes de la versió
New Language Features
N/A

Compiler Improvements
- Fix windows args parser problem from issue https://github.com/odin-lang/Odin/pull/4393.
- Suggestion when assigning `enum` to `bit_set`.
- Suggest `-microarch:native` if `popcnt` instruction is missing.
- List the supported targets using `odin build . -targets:?`.
- Fix: `build_odin.sh` always runs demo regardless of argument.
- Report error when builtin `min`/`max` has only one numeric parameter.
- Add which to `shell.nix` to build with `--pure`.
- Only error with `-vet-cast` when it is actually castable.
- Fix https://github.com/odin-lang/Odin/pull/4508 for `abs`, `min`, `max`.
- Rework macos version retrieval for `odin report`.
- Updated NetBSD CI to pkgsrc Q3 release.
- Check `type_expr` in `check_procedure_param_polymorphic_type`.
- Add support for LLVM v19
- Fix PowerShell version incompatibility in `build.bat` by adding `misc\get-date.c` utility.

New Packages
N/A

Package Improvements
- Update `vendor:raylib` to v5.5.
- Add `vendor:raylib` aliases for `Is*Ready` -> `Is*Valid`.
- Add new test, better fail-check, and non-transitioning tz fix.
- Fix random sequence bindings in `vendor:raylib`.
- Added Unlinking Section to Posix Socket Binding Documentation.
- Update `scanner.odin`.
- Fix relative links in `examples/README.md`.
- Correct `zlib` usage in doc.
- Add `core:slice.size`.
- reflect: add `enum_value_has_name` proc.
- Increased the size of Javascript keyboard event key/code buffer size.
- Add NSApplication bindings for `mainWindow` and `keyWindow`.
- Add `STICKYKEYS`, `TOGGLEKEYS`, and `FILTERKEYS` to `core:sys/windows`.
- Implemented inotify in `core:sys/linux`.
- Fix integer type in `UXTheme` bindings.
- `os2`: fix leak in `dir_windows`, fix netbsd, and add a test for dir reading.
- [runtime] `make(map[K]V)` should not allocate any capacity.
- Fix typo in the Quaternion dot product implementation.
- Fix `https://github.com/odin-lang/Odin/pull/config` typo in Lua bindings.
- Parsing fix for timezones that have an uneven number of utc / st tags.
- Fix https://github.com/odin-lang/Odin/pull/4509
- Fix unhandled `unmarshal` error.
- Rework macos version retrieval for `core:sys/info`.
- `core:net`: Fix `DNS_RECORD.Data` alignment error on Windows i386.
- Fix math binomial proc giving wrong result.
- Make `O_RDONLY` default for `os.open` on all platforms.
- `core:dynlib`: Unload library before loading again & add `LIBRARY_FILE_EXTENSION` constant.
- Correct handling newlines between build tags in `core:odin`.
- Pass allocator to implicitly (de)allocating procs in `core:log`.
- Use a proper `Queue` in `core:thread.Pool`
- Fix `core:text/regex`'s `match_with_preallocated_capture` returning `num_groups`.
- Add `linalg.clamp_length(vector, max_length) -> clamped_vector`.
- Improve `strings.index_multi`.
- Add regression test for https://github.com/odin-lang/Odin/pull/4553.
- `core:encoding/json`: Move struct field zipping outside of loop.
dev-2024-11 7 de novembre del 2024 — 64 bits ZIP
Notes de la versió
New Language Features
-

Compiler Improvements
- General bug fixes
- Fix 128-bit ABI issues caused by LLVM changes
- Fix `#load_directory` containing directories
- Add warning for `unsigned >= 0` like conditions in a `for` loop

New Packages
- `core:time/timezone`

Package Improvements
- Numerous bug fixes
- `core:sys/posix` Linux Support
- Improvements to `core:sys/darwin`
- Add missing bindings to `rlgl`
- `rand.choice_bit_set`
- `slice.to_type`
- Improvements to `js` target APIs
dev-2024-10 1 d’octubre del 2024 — 64 bits ZIP
Notes de la versió
New Language Features
- Replace `//+` syntax with `#+`
- Used in cases like `#+build windows`
- `#min_field_align` and `#max_field_align`
- deprecate `#field_align` in favour of `#min_field_align`
- `#max_field_align` used in places where `#pragma pack` was used in some C compilers
- `#caller_expression`

Compiler Improvements
- *ABI BREAKING CHANGE*: How SysV handles multiple return values
- Matches the same behaviour as other platforms to pass multiple return values separately
- Fix ABI for 128-bit integers since the breaking changes in LLVM 18 for WASM and AMD64
- `-vet-packages:<command-separated-string_array>`
- `-vet-unused-procedures`
- Add `-no-rpath`
- Simplify `#row_major` and `matrix_flatten` behaviour
- Allow `transmute(Bit_Set)~T(0)`
- Move many of the `vendor:wasm/js` package to `core:sys/wasm/js`
- Rename `runtime.js` to `odin.js` to be consistent

New Packages
- -

Package Improvements
- General improvement to documentation across the `core` library
- `core:sys/info`: more CPU feature detection for RISC-V
- `core:time` `time.time_to_datetime`
- Add `#any_int` directive to built-in procedures that were missing it, to be consistent
- More Objective-C Runtime Bindings
- Improvements to `core:container/bit_array`
- Improvements to C vararg behaviour and definitions and `va_list`
- Improvements to atomic/sync/thread related operations
- Improvements to `core:sync/chan`
dev-2024-09 2 de setembre del 2024 — 64 bits ZIP
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]: 
dev-2024-08 2 d’agost del 2024 — 64 bits ZIP
Notes de la versió
New Language Features

Compiler Improvements
- Update to LLVM 18.1.8
- Force compiler source to be parsed as UTF-8 (Windows)
- Improve various compiler-internal asserts
- Fix `#soa` assignment bug
- Add error for `type_of(value of untyped type)`
- Remove `*_test.odin`; always compile it for all targets
- Add `-print-linker-flags`
- Allow `x :: y when cond else proc(...){...}`
- Allow using a precompiled Windows resource file with `-resource:foo.res`
- Fix problem where the initial package's directory name ended in .odin
- Fix check for whether executable output path is a directory

New Packages

Package Improvements
- Add bindings for WOW64 API
- Improve `os.open` for WASI
- Support `vendor:stb/truetype` and `vendor:fontstash` on WASM
- Fix linker errors with empty project for `vendor:wgpu`
- Fix SDL constants
- Fix alignment bug in `mem.dynamic_pool` and add tests for it
- Fix `reflect.as_pointer`
- Remove implicit allocator usage in `core:dynlib`
- Fix `utf8_to_wstring` given zero bytes.
- Add `setenv` and `unsetenv` for Darwin
- Improve `core:encoding/cbor`
- Remove syscall usage on Darwin to comply with Apple guidelines
- Add some XKB extension procedures and constants to `vendor:x11`
- Fix `@(optimization_mode)` usage in builtin collections
- Add synonyms `strings.starts_with` and `strings.ends_with` as aliases
- Allow overriding random generator in `rand` calls
- Add documentation and example for `core:container/intrusive/list`
- Update stb_truetype.odin
- Add support of `ignore` tag for `json.marshal`
- Allow json maps with int keys in `marshal` and `unmarshal`
- Add Intel AES-NI support to `core:crypto/aes`
- Improve `rand.shuffle`
- Fix leak in `core:encoding/ini` and add tests for it
- Document `core:time`, `core:time/datetime`, `core:thread` and `core:sync`
- Add example and tests for `vendor:lua`
- Many `core:sys/windows` improvements
- Add json reporting to `core:testing`
- Add `time.to_string*` formatters.
- Clamp `dot` in `linalg.angle_between` to avoid precision errors.
- Update RayGui procedures
dev-2024-07 1 de juliol del 2024 — 64 bits ZIP
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
dev-2024-06 4 de juny del 2024 — 64 bits ZIP
Notes de la versió
New Language Features
- `intrinsics.type_is_matrix_row_major` + `intrinsics.type_is_matrix_column_major`
- `#hash(<string>[, algo])`
- `@(link_suffix=<string>)`

Compiler Improvements
- New NetBSD target support
- Experimental `orca_wasm32` target support
- Documentation tests fixed and re-enabled
- Fix `>=` for strings, add test for string comparisons
- Suggest `-all-packages` if testing an empty directory
- `core:intrinsics` -> `base:intrinsics`
- `..` range is now an error. Use `..<` or `..=`
- Reimplement `-build-mode:static` / `-build-mode:lib`
- Strictly enforce `switch &x in y` semantics and fix `for &v in &fixed_array`
- Fix `intrinsics.ptr_sub`
- Fix indexing type when using a `#row_major matrix`
- Remove constant indexing for `matrix` value propagation
- Improve error messages and their suggestions
- Delay checking `foreign import` paths until the global scope is checked

New Packages
- `core:container/rbtree`
- `core:encoding/ini`
- `core:crypto/aes`

Package Improvements
- Fix some edge cases and oversights for `bit_field`
- Fix `read_directory` skipping directories on Unix-likes
- Add default heap/general purpose allocator for WASM
- Fix and improve `i18n` .mo plurals
- Correctly load/store uint & int for wasm64p32
- Fix bug in `QOI` encoder + decoder
- Fix the way `%32b` and other prefixed numbers are written`
- Improve `fmt` parsing of struct field tags
- `vendor:microui` gained textbox selection, cut, copy and paste
- Add a custom iterator to `CSV` package.
- Allow space as allowed separator to RFC 3339 parser
- Add abbreviated ISO 8601 parser
- Lots and lots of bugfixes

Packages deprecated
- `core:odin/printer` and `core:odin/format` have been removed in favor of using OLS

Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2024-04a...dev-2024-05
dev-2024-05 10 de maig del 2024 — 64 bits ZIP
Notes de la versió
New Language Features
-

Compiler Improvements
- `odin root` command
- Normalize `ODIN_ROOT` path
- Improvements to arm64 ABI for returning 0 sized types
- Allow compiling with LLVM 18 (non-Windows targets)
- Fix linking with clang-18
- Fix wrote llvm-config in build script for FreeBSD
- Change layout of compiler (not language) hash maps for minor performance improvements
- Numerous improvements to catch the possible race conditions with the new error reporting system
- Allow `-default-to-nil-allocator` on wasm targets
- Allow `@(init) procs to be `@(disabled)`
- Performance improvements for access and storing fields from a `bit_field` type
- Minimally support compiling Odin on FreeBSD arm64
- Improved target feature support
- Improved `-microarch` support with list of possible micro-architectures.=
New Packages
- `core:sys/darwin/CoreFoundation`
- `core:sys/darwin/Security`
- `core:encoding/cbor`

Package Improvements
- General bug fixes
- General documentation improvement (typos and `doc.odin` fixes)
- core:net Add support for URL fragments
- Fix `big.internal_random_prime` with `Second_MSB_On`
- Fix `vendor:d3d12` calling convention mistakes
- Fix to Fisher-Yates shuffle in `core:rand`
- Fix `core:text/i18n` default `number` value in `get_*_section`
- Fix `#soa` `%#v` formatting
- Fix `%e` formatting
- Fix `%[N].*[M]v` style formatting
- Improvements to `Negative_Read/Negative_Write` logic for `core:io`
- Fix `omitempty` in `json.marshal`
- Improved statistics for `core:mem/Tracking_Allocator`
- Require results for non-buffered `print` procs
- `core:sys/info`: add arm feature detection, fix Linux implementation, show more CPU info on Darwin
- Fix vendor dynamic libraries not working on Linux
- Fixes to `core:encoding/json` invalid JSON when an error does not have a position
- Add `slice.enum_slice_to_bitset` & `slice.bitset_to_enum_slice`
- Add DXGI 1.5 & 1.6 APIs
- Update d3d12 API
- Refactor `fmt.wprintf`
- Fix `core:odin/parser` crashing on empty and/or no package files

Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2024-04a...dev-2024-05
dev-2024-04a 11 d’abril del 2024 — 64 bits ZIP
Notes de la versió
Minor Update from dev-2024-04
For the full release notes of dev-2024-04, see its release (https://github.com/odin-lang/Odin/releases/tag/dev-2024-04)

New Language Features
-

Compiler Improvements
- nasm check fixes
- Keep `-vet` happy
- Fix `bit_field` access on implicit dereference
- Fix typos in error messages
- Improve and fix numerous warnings

New Packages
-

Package Improvements
- Add `bit_field` to `core:odin`
- core/crypto: Even more improvments by @Yawning in https://github.com/odin-lang/Odin/pull/3288

Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2024-04...dev-2024-04a
dev-2024-04 8 d’abril del 2024 — 64 bits ZIP
Notes de la versió
New Language Features
- `bit_field` type
```
Foo :: bit_field u16 { // backing type must be an integer or array of integers
x: i32 | 3, // signed integers will be signed extended on use
y: u16 | 2 + 3, // general expressions
z: My_Enum | foo.SOME_CONSTANT, // ability to define the bit-width elsewhere
w: bool | foo.SOME_CONSTANT > 10 ? 2 : 1,
}
```
```
Handle :: bit_field u32 {
slot: u32 | 16,
generation: u32 | 15,
in_use: bool | 1,
}
```
- `name: type | bit_width`
- `name: type | bit_width "field_tag"` (similar to a struct field with a tag)

Compiler Improvements
- Improved Error Reporting System
- Sorted printing based on error position
- Ability to export error list to json `-json-errors`
- `-terse-errors` are only a single line now
- Error message suggestions for people making common C mistakes
- Aiding newcomers from C/C++ to Odin
- Loads of debug info refactors and improvements
- Add Haiku OS support by @avanspector in https://github.com/odin-lang/Odin/pull/3230
- Respect "smart linker" approaches
- Respect `-lld` on non-Windows machines
- Remove entry point when compiled with no-entry-point as shared library
- Numerous fixes to wasm targets
- Numerous fixes to ARM64 ABI on Darwin
- Numerous fixes to SysV AMD64 ABI on Darwin and Linux
- Speed up `path_to_fullpath` on Linux/macOS
- Numerous compiler fixes and error messages

New Packages
- Moved `vendor:darwin/Foundation` to `core:sys/darwin/Foundation`

Package Improvements
- Improvements to `core:crypto`
- Make raylib and stb_rect_pack be free of libc
- Numerous improvements to `core:encoding/json`
- Support writing enum value names
- Support for `using _: T` fields
- Fixes to `core:math/big`
- Fixes to `core:math/linalg`
- Fixes to `core:slice`
- Fixes to `core:odin/parser`
- General fixes to `base:runtime`
- `vendor:x11` fixes
- Allow for the new futex API on darwin platforms if it is available
- Fix `os.read_entire_file` for pipes and console

CI Improvements
- Update LLVM to 17 for the CI/Releases

Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2024-03...dev-2024-04
dev-2024-03 4 de març del 2024 — 64 bits ZIP
Notes de la versió
Distribution Changes
- MacOS ARM releases and CI support
- MacOS releases self-contained / bundle LLVM

New Language Features
-

Compiler Improvements
- General bug fixes in the compiler
- Fix `-no-crt` on Darwin and Linux
- Make `odin run` args take the first '--' as the start of the args, instead of the last '--'
- Fix intstrumentation in debug mode
- Add backend info to `odin report`
- Change `runtime.type_table` to allow RTTI to be constantly initialized on all platforms
- Removes the need for the start procedure initializing the RTTI table
- Previous approach was due to limitations and bugs in LLVM
- Promote types in `#c_varargs` according to C rules
- Reduce dynamic library dependencies on macOS
- We were previously linking with LLVM-C, LLVM, and libunwind, however only LLVM was needed since it contains LLVM-C, and libunwind comes with macOS already

New Packages
- `core:crypto/hash`
- General refactor of the cryptographic packages
- `core:container/avl`
- AVL Tree Container

Package Improvements
- `fmt.*printfln` add to `core:fmt`
- Fixes to the WebGL package
- General improvements to package os for *nix platforms
- Numerous documentation improvements
- Fixes to `core:mem/virtual` `arena_static_reset_to`
- Make spall able to be used in instrumentation procedures
- Expose `vendor:OpenGL` shader procedures in
- Add more Windows window procedures
- Fix `return` in json unmarshal for enumerated arrays
- Add `ID3DUserDefinedAnnotation` to direct3d package
- Update miniaudio to 0.11.21
- Change `vendor:raylib` to use non-universal binaries
- Fix `vendor:raylib`'s ModelAnimation alignment to match that of C's
- Better error code for binding a privileged port without root access in `core:net`
- `vendor:glfw` add `RawMouseMotionSupported`
- Basic EGL support on Linux
- Improved implementation of `core:math` round

Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2024-02...dev-2024-03

El més popular a Llenguatges i SDK

Mostra-ho tot
  1. Go Programming LanguageLlenguatges i SDK
  2. LLVMLlenguatges i SDK · LLVM
  3. DenoLlenguatges i SDK · Deno Land Inc.
  4. CMakeLlenguatges i SDK · Kitware
  5. YarnLlenguatges i SDK · Yarn Contributors
  6. CcacheLlenguatges i SDK · Joel Rosdahl
  7. sbtLlenguatges i SDK · Lightbend, Inc.
  8. BOINCLlenguatges i SDK · Space Sciences Laboratory, U.C. Berkeley
  9. Dart SDKLlenguatges i SDK · Google
  10. NVM for WindowsLlenguatges i SDK · Ecor Ventures LLC

Etiquetes

Comparteix