Commit Graph
19425 Commits
Author SHA1 Message Date
gingerBill fbb155ddd7 Merge pull request #7671 from Dihedron-Software/fix-xar-chunk-count
`core:container/xar`: fix chunk slot count capping `Array` capacity
2026-09-29 18:00:54 +01:00
gingerBill 571599414c Merge branch 'master' of https://github.com/odin-lang/Odin 2026-09-29 17:56:19 +01:00
gingerBill 92a3d4411a Fix #7636 2026-09-29 17:55:45 +01:00
Wassim Alhajomar 69b0996c61 core:container/xar: fix chunk slot count capping Array capacity 2026-09-29 18:50:56 +02:00
gingerBill 3f518fd130 Merge pull request #7602 from corleypc/lifetime-markers
Adds lifetime markers for named locals
2026-09-29 17:44:06 +01:00
gingerBill 53f6f378d3 Merge pull request #7666 from odin-lang/bill/exact-value-big-float
Add `ExactValue_Rational` to improve precision on compiler float computation
2026-09-29 17:04:17 +01:00
gingerBill 1e183e4490 Minor style change 2026-09-29 16:57:16 +01:00
gingerBill 6653101e61 Fix race condition with unlocking something too early 2026-09-29 16:46:46 +01:00
Jeroen van Rijn 6d619c30e1 Merge pull request #7670 from Kelimion/netbsd_q3
NetBSD 2026Q1 -> 2026Q3
2026-09-29 08:39:04 -07:00
gingerBill 383a2fe1e5 Reject complex/quaternion component overflow to match normal floats 2026-09-29 16:34:06 +01:00
Jeroen van Rijn aaa29addf6 NetBSD 2026Q1 -> 2026Q3 2026-09-29 17:22:52 +02:00
gingerBill bb2745f325 Add exact rational printing to be like 1.0/3 2026-09-29 16:15:40 +01:00
gingerBill 17e25b0cc4 Check for big rat components 2026-09-29 16:15:13 +01:00
gingerBill 95df4904e8 Change struct Complex128 and struct Quaternion256 to use ExactValue elements to allow for the new Big_Rat benefits that floats get 2026-09-29 16:00:28 +01:00
Jeroen van Rijn 0b3f7a5509 Merge pull request #7668 from louisnovy/fix-proc-constant-link-names
Fix #5318: procedures passed to `$` parameters share an instantiation's name
2026-09-29 07:45:20 -07:00
gingerBill 28d8a790d7 Add more tests for the float constant builtins 2026-09-29 15:27:07 +01:00
Louis Novy 41d3f37fba Fix #5318: procedures passed to $ parameters share an instantiation's name 2026-09-29 10:21:43 -04:00
gingerBill 29b681b43d Handle more cases where ExactValue_Float was being handled but not for ExactValue_Rational 2026-09-29 15:21:00 +01:00
Jeroen van Rijn da7371404e Improve bit_array (#7665)
Fix `index: uint` -> `index: int`, examples.
Add `create_from_enum` helper.
2026-09-29 15:54:42 +02:00
gingerBill 19f7b5e2e2 Add f16/f32 precision checks; Fix macOS MSIZE macro collision 2026-09-29 14:53:28 +01:00
gingerBill a910a0794d Add test_number_literals.odin 2026-09-29 14:39:15 +01:00
gingerBill 7b19697dcf Integrate ExactValue_Rational throughout the codebase 2026-09-29 14:38:08 +01:00
gingerBill e23e01510e Add ExactValue_Rational; Start adding some tests for big rat 2026-09-29 14:17:21 +01:00
corleypc 6c5651638c Merge branch 'master' into lifetime-markers 2026-09-29 16:04:59 +03:00
gingerBill db10c6ba3f Implement the basics for a big rational library in the compiler 2026-09-29 14:01:08 +01:00
gingerBill d7da8c0833 Merge pull request #7610 from bplu4t2f/fix-7547
Fix #7547 (double-null-terminate path in SHFileOperationW)
2026-09-29 13:28:35 +01:00
Jeroen van Rijn 1bdd184b93 Merge pull request #7584 from bplu4t2f/comdlg32
Extend Win32 common dialog bindings
2026-09-29 05:23:11 -07:00
gingerBill 8e3dd40262 Merge pull request #7579 from jpgleeson/jackg/core-fastX-types
[core/c] Fix fastX type widths
2026-09-29 13:16:29 +01:00
gingerBill 798be5cc0a Merge pull request #7588 from Creativty/fix/CompoundLit_OOB
Error on OOB tuple element in compound literals
2026-09-29 13:14:46 +01:00
gingerBill 88d2c3f11e Merge branch 'master' into fix-7547 2026-09-29 13:13:47 +01:00
gingerBill 5a4e0de0cc Merge pull request #7594 from bplu4t2f/fix-7583
Fix 7583: -strict-style requires comma before newline after proc parameters which have a default value.
2026-09-29 13:11:39 +01:00
gingerBill bd4f2821e1 Merge pull request #7630 from MatzeOGH/fast_float
Ported Eisel-Lemire's fast float algorithm to Odin
2026-09-29 13:09:28 +01:00
gingerBill 38b8d5f4f4 Merge pull request #7632 from alexthed1rk/impl-simd-arm-neon-transpose-reverse
Impl simd arm neon transpose reverse
2026-09-29 13:06:47 +01:00
gingerBill 8640b38899 Merge pull request #7661 from louisnovy/fix-swizzle-through-pointer
Fix #7587: full length swizzles through a pointer keeping the pointer type
2026-09-29 13:06:24 +01:00
gingerBill f3ab1d4b3c Merge pull request #7639 from louisnovy/fix-array-programming-with-matrices
Fix #6302: broadcasting arrays of matrices and matrices
2026-09-29 13:05:33 +01:00
gingerBill 4f9ab7ae5a Merge pull request #7663 from alexthed1rk/impl-simd-x86-avx512-shift-logical
Impl simd x86 avx2 avx512 shift logical
2026-09-29 13:05:14 +01:00
gingerBill 5a9c4c598b Merge pull request #7652 from louisnovy/fix-forwarded-poly-proc-param
Fix #6951 and #5214: `$` procedure arguments matching the wrong instantiation
2026-09-29 13:04:57 +01:00
gingerBill d5a2ff0619 Merge pull request #7658 from corleypc/must-tail-wasm-fix
Fixes #must_tail on wasm targets
2026-09-29 13:03:59 +01:00
gingerBill 3f24a82469 Merge pull request #7656 from alyekypo/fix/union-constant-non-constantable
fix(llvm): emit union constants for non-constantable unions
2026-09-29 13:03:37 +01:00
gingerBill 7a228a97f8 Merge pull request #7664 from odin-lang/bill/bit_set_backing
Allow `bit_set` to be backed by arrays of integers
2026-09-29 13:02:25 +01:00
gingerBill 0af5fd70ff Correct for finite decimal literals 2026-09-29 12:33:43 +01:00
gingerBill bd87143db7 Add some regression tests for bit_set backed by arrays 2026-09-29 12:20:52 +01:00
gingerBill b153d6071c Support bit_set[E; [4]u64] style types 2026-09-29 12:17:02 +01:00
gingerBill ae63a4a4c6 Fix big integer representation of large numbers such as 98765.0e309 2026-09-29 11:41:50 +01:00
Alexander Zhura f3dff6da4b Impl simd x86 avx2 avx512 shift logical 2026-09-29 13:21:03 +03:00
Jeroen van Rijn 95c9eaaa33 Merge pull request #7659 from hugpoint-tech/base64_strict
core/encoding/base64: add strict decoding options
2026-09-29 02:59:56 -07:00
Louis Novy adc2059d36 Merge branch 'master' of https://github.com/odin-lang/Odin into fix-swizzle-through-pointer
# Conflicts:
#	tests/issues/run.bat
#	tests/issues/run.sh
2026-09-29 02:27:05 -04:00
Ihor Antonov 2109ba8fbd core: add strict base64 decoding
core:encoding/base64 currently decodes leniently: it infers padding from the
last one or two bytes, accepts missing/extra/interior padding, and does not
check the trailing padding bits required by RFC 4648 Section 3.5.
Go exposes canonical decoding as `Encoding.Strict()`; Odin has no equivalent,
so downstream ports (e.g. age) have to reimplement base64 from scratch.

This adds opt-in strict decoding through a `Decode_Options` bit set.
Existing calls and behavior are unchanged.
2026-09-28 19:59:23 -07:00
corley a931018a24 fixes #must_tail on wasm targets 2026-09-29 01:57:49 +03:00
alyekypo b9c4067f78 fix(llvm): emit union constants for non-constantable unions
`constant: U : value` produced a constant of the wrong type:
lb_const_value took its union-lowering branch only when
`is_type_union_constantable(type)` held, so for a union with a variant
that whitelist rejects (`union{bool, ^int}`) the value fell through to
the scalar branch and reached `LLVMConstInt(lb_type(m, union_type),
...)`.  The constant emitted there does not match the union's type:
bytes that change between runs for `true`, a compiler crash for `1.0`,
an `is_type_string` assertion for a string literal.

The checker already resolves which variant a constant represents and
records it in `ExactValue::variant_type` - the variant type, tag index,
payload and padding the union branch needs - so that branch is now also
taken when the value pins a variant this backend can build as a
constant.  The type-level whitelist was re-guessing information the
value already carries; variant types this backend cannot build as
constants (`any`) stay excluded.

lb_build_static_variables had the same defect in another place: it
lowered an initializer with the expression's type instead of the
declared type, so `@(static) s: U` emitted a payload-only constant and
LLVM rejected the module with “Global variable initializer type does not
match global variable type!”.  It now passes the declared type and gives
the global the constant's layout-compatible type, the way the file-scope
path already does.

Blast radius: every union-typed constant, i.e. typed constants, global
static initializers, @(static)/@(thread_local)/@(rodata), default
parameters and constant aggregate elements.  Unions whose variants are
all constantable keep the previous path.
2026-09-28 19:32:04 +00:00