gingerBill
b0ee0bb635
Add @(fast_math={...}) + intrinsics.Fast_Math_Flags
2026-05-11 11:55:07 +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
gingerBill
d086a16f64
Make atomic variant_block_size and tag_size in TypeUnion
2026-02-02 10:52:14 +00:00
gingerBill
07d814d9cf
Add struct #simple to force a struct to use simple comparison if all of the fields "nearly simply comparable".
2026-01-29 10:49:26 +00:00
gingerBill
4a7fb46667
Complete is_type_simple_compare switch rules
2026-01-29 09:21:31 +00:00
gingerBill
5f07055ac1
Add #must_tail and "preserve/none" calling convention
2026-01-15 17:28:28 +00:00
Morgan
555081240b
missed a semicolon
2025-12-01 16:43:52 +01:00
Morgan
b3ef77e9dd
undetected type declaration cycles work-around
2025-12-01 16:24:57 +01:00
gingerBill
593d2e6daa
Add #all_or_none
2025-11-05 13:30:40 +00:00
Laytan
c4d1cd6ee5
fixes for 32bit with regards to typeid
2025-11-04 21:37:29 +01:00
gingerBill
99520d82fd
Add intrinsics.constant_(floor|truncate|ceil|round)
2025-10-30 08:52:21 +00:00
Jeroen van Rijn
faa9222fef
Set minimum #load(file, type) alignment to 16 bytes
2025-10-15 18:04:24 +02:00
Jeroen van Rijn
5dbade87e9
Simple compare is also comparable
2025-10-11 15:43:30 +02:00
Jeroen van Rijn
e6754547ab
Fix #5786
2025-10-11 15:17:23 +02:00
Jeroen van Rijn
b3dfd34f2d
#5788
2025-10-11 14:57:45 +02:00
Harold Brenes
5af13f5d53
Automatically emit objc_msgSend calls when calling imported or implemented Objective-C methods
...
- Add intrinsics.objc_super()
- Emit objc_msgSendSuper2 calls when an objc method call is combined with objc_super(self)
- Fix objc_block return value ABI for large struct returns
- Fix objc_implement method wrappers bad ABI for large struct returns and indirect args
- Simplify parameter forwarding for objc_imlpement methods
- Add intrinsics.objc_instancetype to mimi Objective-C instancetype* returns
This facilitates returning the correct type on subclasses when calling mehtods
such as `alloc`, `init`, `retain`, etc.
- Refactor Objective-C class implementations generation so that hierarchies are properly initialized
- Better codegen for context passing with ivar-based autocontext
- Allow @superclass on imported objc-c objects
- Better codegen for block forwarding invoker, arguments are forwarded directly
2025-09-29 20:37:48 -04:00
gingerBill
240b2f1819
Disable #raw_union constants for the time being
2025-09-29 12:54:52 +01:00
gingerBill
10ba956d6a
Rudimentary support for some constant struct #raw_union
2025-09-29 10:28:16 +01:00
gingerBill
4877214f34
Add more check_is_operand_compound_lit_constant uses
2025-09-28 23:53:07 +01:00
gingerBill
8be18d9a40
Allow for constant []typeid
2025-09-28 21:47:56 +01:00
gingerBill
ffdfbfe2c2
Begin to support constant array of unions
2025-09-28 20:20:26 +01:00
gingerBill
dfb86db159
Fix absolutely random change between , and newline
2025-09-26 10:50:16 +01:00
gingerBill
01c10f3f5e
Use RecursiveMutex to fix a race condition with parapoly records
2025-09-26 10:18:46 +01:00
gingerBill
549edcc0f9
Use a RwMutex instead of BlockingMutex
2025-09-10 21:00:43 +01:00
gingerBill
0476d33a6c
Remove global PtrMap<Type *, GenTypesData *> and store on the TypeNamed directly
2025-09-10 20:45:26 +01:00
gingerBill
1e0902677f
Multithread min dep set by removing the set itself
2025-09-10 17:29:11 +01:00
Jeroen van Rijn
1d561247f5
Add nullptr checks to more type helpers.
2025-09-09 20:45:32 +02:00
gingerBill
af3184adc9
Change is_utf16 field to encoding and use an enum
2025-08-05 15:12:54 +01:00
gingerBill
eae43f1225
Merge branch 'master' into bill/utf16-strings
2025-08-05 15:07:06 +01:00
gingerBill
accdd7c2af
Fix atomics for tuples
2025-08-05 12:31:57 +01:00
gingerBill
7f194080e6
Fix possible race condition with struct offsets
2025-08-05 12:28:18 +01:00
gingerBill
c910b5e583
Add intrinsics.type_is_nearly_simple_compare
2025-08-04 12:13:30 +01:00