gingerBill
a934751be1
Merge pull request #7435 from kalsprite/asm_group_empty_params
...
Delete dead code that crashed the checker on an asm template group with no parameters
2026-08-26 08:40:20 +01:00
kalsprite
3d4fcd3612
merge master
2026-08-25 23:07:38 -07:00
kalsprite
915fc97b5f
add missing int 128le
2026-08-25 22:46:30 -07:00
kalsprite
7bf266ef93
string_split_iterator fix
2026-08-24 17:32:30 -07:00
kalsprite
366c33e5af
Delete dead code that crashed the checker on an asm template group with no parameters
2026-08-23 23:17:55 -07:00
korvahkh
02246ac6fd
Implement fixes for constant unions
...
Note that with this commit, casting through
multiply-nested unions is forbidden, e.g.
```
U :: union {int, V}
V :: union {bool}
x: U = true
```
does not compile.
(Previously the compiler would simply crash)
This is to avoid situations where adding variants
can lead to unexpected changes in the value.
For example if `U` is changed to have a `bool`
variant of its own:
```
U :: union {int, bool, V}
```
Then `x: U = true` would equal
`U(true)` instead of `U(V(true))`.
Single-variant unions are exempt, primarily to
improve the ergonomics of `Maybe` in cases like:
```
x: Maybe(union{int, bool}) = 1
```
Fix #6100
Fix #6699
Fix #6895
Fix #6896
Fix #6897
Fix #7036
Fix #7083
Fix #7091
2026-08-19 20:12:56 -05:00
kalsprite
389416c3ef
a self-referential hangs the compiler
2026-08-19 13:27:49 -07:00
gingerBill
645b57be9f
Merge pull request #7327 from kalsprite/abi_conformance
...
ABI Conformance Harness + Fixes
2026-08-17 16:28:01 +02:00
kalsprite
38e053b96c
i386: cap cmplx / quaternion alignment; abi test: cover a narrow member in front of complex
2026-08-14 23:02:04 -07:00
kalsprite
b25497ecd5
matrix, vector align
2026-08-13 20:20:00 -07:00
kalsprite
e621a924f5
darwin align(16) max
2026-08-13 00:04:19 -07:00
kalsprite
8470c6eda2
i386 64-bit scalar alignment
2026-08-12 23:08:26 -07:00
kalsprite
939802e713
fix bitfield intrinsic
2026-08-12 19:23:41 -07:00
gingerBill
c629f923b3
Merge pull request #7307 from kalsprite/endian_partition
...
types: make the three endianness predicates partition
2026-08-12 13:21:37 +02:00
gingerBill
eb9c7d471a
Merge pull request #7296 from kalsprite/comparable_unspecialized
...
type_is_comparable: false for an unspecialized polymorphic record
2026-08-12 13:20:28 +02:00
kalsprite
586f87c0e1
apply max field align
2026-08-11 23:15:29 -07:00
kalsprite
613067a677
make endiant types partition
2026-08-11 20:13:47 -07:00
kalsprite
fef29f0f42
reject unspec poly
2026-08-11 18:59:37 -07:00
gingerBill
9914a57fc7
Add intrinsics.soa_copy_from_slice and use it within _append_soa_elems replacing the old handwritten unrolled approach
2026-08-03 14:41:04 +01:00
Isabella Basso
0843def5f5
types: allow fixed-capacity arrays in constant unions
...
Fixes : #7089
2026-07-19 18:34:48 -03:00
gingerBill
448a71f432
Support q.xyz on quaternion*
2026-07-02 12:27:03 +01:00
gingerBill
45eed87309
Allow #no_alias on any pointer-like type
2026-07-01 01:21:49 +01:00
misomosi
c8aa151a66
Add more constant type cases
2026-06-29 22:46:17 -04:00
gingerBill
6e65b5e4bc
Allow for more "constantable" union values
2026-06-29 00:55:07 +01:00
gingerBill
40e54a97ed
Merge branch 'master' into bill/bedrock
2026-06-24 11:07:02 +01:00
gingerBill
baef272bbd
Support constant compound literals
2026-06-22 12:53:27 +01:00
gingerBill
67cd466974
Fix the mistake caused by #6845
2026-06-22 12:45:44 +01:00
Andreas Stenmark
bc5adb070f
Fix #6814 : reject transitive #subtype-only implicit conversion in checker
2026-06-15 00:51:36 +02:00
gingerBill
eaa32a82e8
Fix global constant union initialization bug.
2026-05-29 09:38:56 +01:00
gingerBill
b0ee0bb635
Add @(fast_math={...}) + intrinsics.Fast_Math_Flags
2026-05-11 11:55:07 +01:00
gingerBill
8ffcdf172a
Odin_Calling_Convention defined in compiler; Allow for main :: proc "contextless" () {} with -bedrock; intrinsics.type_proc_calling_convention
2026-05-05 15:07:42 +01:00
gingerBill
8da640da58
Merge pull request #6629 from odin-lang/bill/va_arg
...
`intrinsics.c_va_*`
2026-04-28 15:32:00 +01:00
gingerBill
162eab5052
Increase matrix maximum element count from 16 to 64, allowing for matrix[8, 8]T
2026-04-28 15:19:06 +01:00
gingerBill
7b97530443
Add intrinsics.c_var_*
2026-04-28 15:00:53 +01:00
gingerBill
6e09ce9a04
intrinsics.to_bits_signed; simd.signbit
2026-04-07 15:25:41 +01:00
Harold Brenes
4f6caf19f0
Ensure checking for proc property equality before checking param assignability
2026-03-23 21:15:12 -04:00
Harold Brenes
147542b5cc
Allow pointers to types which have subtype fields at offset 0
...
to be assignable in proc parameters.
```odin
// Virtual interface
IFoo :: struct {
foo: proc( self: ^IFoo ),
}
// Implements IFoo interface
Foo :: struct {
using vt: IFoo,
name: string,
}
// Implement interface via `Foo`
Foo_Impl :: IFoo {
// `self` of type `^Foo` (not `^IFoo`) is now accepted as a valid parameter.
foo = proc( self: ^Foo ) {
...
},
}
```
2026-03-23 20:55:44 -04:00
gingerBill
04cb889aed
Begin interning ScopeMap strings
2026-03-17 11:04:32 +00:00
gingerBill
d5a78a9cf1
Remove canonical hash shortcut
2026-03-17 09:43:16 +00:00
gingerBill
f7ede8632f
Minor changes
2026-03-17 08:10:13 +00:00
gingerBill
36d5a19115
Replace Scope.elements to use a custom hash map ScopeMap
...
This hash map is robin hood based with a inline slot amount for small scopes
2026-03-16 17:41:58 +00:00
gingerBill
1744f57d01
Use permanent_alloc_item directly rather than through the gb_alloc_item generic interface
2026-03-16 16:03:27 +00:00
gingerBill
c51391f8cb
Fix #5129
2026-03-15 17:15:16 +00:00
gingerBill
0e6ea3884d
General improves
2026-03-14 16:26:42 +00:00
gingerBill
8e23c58620
Add intrinsics type_fixed_capacity_dynamic_array_len_offset and type_is_fixed_capacity_dynamic_array
2026-03-12 17:39:44 +00:00
gingerBill
a6160770ff
Support compound literals for fixed capacity dynamic arrays
2026-03-12 10:03:58 +00:00
gingerBill
f1dbe9c242
[dynamic; N]T proof of concept: fixed capacity dynamic array (akin to small_array.Small_Array(N, T))
2026-03-11 16:46:33 +00:00
bymehul
763c8d3a42
Fix generic cycle deadlock in struct layout
2026-03-11 03:04:26 +05:30
gingerBill
a936f3fb7d
Comment out t->Struct.are_offsets_being_processed.load()
2026-02-02 11:41:33 +00:00
gingerBill
8594deb4e1
Move return true; to after the if check
2026-02-02 11:40:30 +00:00