Commit Graph

467 Commits

Author SHA1 Message Date
gingerBill
8d37f9de09 Merge pull request #5378 from laytan/fix-wasm-c-abi-raw-unions
Fix WASM C ABI for raw unions
2025-06-21 11:01:52 +01:00
Laytan
2995557394 Merge pull request #5211 from Barinzaya/union-custom-align-tag-size
Consider custom `#align` when determining union tag size
2025-06-20 22:31:31 +02:00
Laytan Laats
3db8972c99 add return 2025-06-20 22:07:46 +02:00
Laytan Laats
3a86bc9c6d Fix WASM C ABI for raw unions 2025-06-20 22:04:53 +02:00
Jeroen van Rijn
cc08dca53d Add additional nullptr checks in types.cpp
Ran into a bunch of nullptr problems while reviving an 8-year old Odin problem.
2025-06-14 01:13:36 +02:00
Barinzaya
717b9f1578 Change union tag size to account for #align.
The prior behavior was adjusting the tag size based on the alignment of
the types in the union, even when the union has a custom alignment
specified with `#align`. This changes the behavior so that a custom
alignment, if specified, takes precedence over the alignment of the
types.
2025-05-24 12:41:28 -04:00
gingerBill
23aff08556 Merge pull request #5117 from bogwi/bug/5024
Bug/5024
2025-05-09 08:35:16 +01:00
gingerBill
92df892f25 Merge pull request #5064 from harold-b/hb/objc-classes
Add support for Objective-C class implementation
2025-05-08 12:58:33 +01:00
Jeroen van Rijn
2224911aca Fix type_union_tag_offset when all members are zero sized 2025-05-05 18:09:54 +02:00
bogwi
af0e067a12 CHECK 2 done
Add support for handling generic types in LLVM backend

- Updated `lb_type_internal` to return a pointer type for unspecialized generics.
- Modified `write_type_to_canonical_string` to handle specialized generics without panicking.
- Enhanced `default_type` to return the default type of specialized generics when applicable.
2025-05-05 16:58:14 +09:00
Harold Brenes
47abea1229 Add support for Objective-C method implementation with Odin calling convention.
Use @objc_context_provider to provide a context for a type.
2025-04-23 02:05:51 -04:00
Harold Brenes
bca02f81cd Include the ivar in the Objective-C class unconditionally of it being used or not.
Allow pseudo-fields for ivar access.
2025-04-22 19:18:53 -04:00
Harold Brenes
a3de9c8de4 Add initial support for Objective-C class implementation 2025-04-20 21:53:46 -04:00
gingerBill
3dcc22fa6d Change hashing rules for float-like types to make 0 == -0 2025-04-16 10:52:35 +01:00
gingerBill
6045955c88 More improvements doc writer name canonicalization 2025-04-15 12:35:20 +01:00
gingerBill
d0d5cf800e Fix nullptr check 2025-02-24 15:49:49 +00:00
gingerBill
614c0dd740 Fix typeid size for 32-bit platforms 2025-02-20 17:10:04 +00:00
gingerBill
5489a88983 Change typeid definition to be based around the canonical type hash
`typeid` used to be a fancy index with extra metadata stored on it. Now it is direct hash of the type.

This is safe to do in practice since any possible collisions are checked at compile time AND the chances of having a 1% collision are around 1 in 600K (see the Birthday Paradox).

Therefore accessing a `^Type_Info` is now a hash table lookup with linear probing. The table is twice the size than necessary so prevent too much probing due to an overly dense hash table.
2025-02-20 14:10:45 +00:00
gingerBill
0ab323012e Use TypeSet instead of PtrSet<Type *> 2025-02-20 11:12:59 +00:00
gingerBill
9b26bb2e6a Begin work on hash types 2025-02-17 13:10:38 +00:00
gingerBill
99d91ccd31 Work on making name mangling deterministic 2025-02-17 11:32:49 +00:00
gingerBill
4eba3698aa Begin work on nested declarations 2025-02-17 09:47:49 +00:00
gingerBill
2a5933513c Fill in more canonical types 2025-02-15 12:32:05 +00:00
gingerBill
98201962e0 Begin work on producing a canonicalized type string for hashing types. 2025-02-14 17:29:38 +00:00
gingerBill
f80bea5b11 Remove transmute suggestion with -vet-cast when transmuting native <-> endian-specific types 2025-02-05 10:27:17 +00:00
jason
b25ca0bb11 fixes compiler crash on syntax error (issue 4738) 2025-01-21 20:37:17 -05:00
gingerBill
b942479886 Minor improvement to type handing on failures 2024-12-02 15:57:20 +00:00
gingerBill
9115c7aa13 Convert mutex guard to "try lock" 2024-11-26 16:14:13 +00:00
gingerBill
e38a08013e Remove #relative types from the compiler 2024-11-14 16:17:24 +00:00
gingerBill
91dece1656 Change struct alignment rules for #max_field_align 2024-09-30 15:35:47 +01:00
gingerBill
a7d7c92a53 #min_field_align & #max_field_align; deprecate #field_align in favour of #min_field_align 2024-09-30 13:05:28 +01:00
gingerBill
0a08a65202 Simplify #row_major matrix and matrix_flatten behaviour 2024-09-07 12:21:29 +01:00
Laytan
578de09775 types with explicit custom alignment are identical to types with the same natural alignment 2024-09-04 18:48:11 +02:00
Laytan Laats
e3f375afd8 fix c_vararg bit_set
Fixes #4051
2024-08-11 17:00:49 +02:00
gingerBill
a06cb8ba46 Add #simd[N]rawptr support 2024-08-05 12:04:36 +01:00
gingerBill
ef84382f23 Add suggestion for #3961 2024-07-22 20:11:23 +01:00
gingerBill
1e37eaf54d Begin work for bit_set[...; [N]T] (not working) 2024-07-15 14:49:20 +01:00
gingerBill
1b0e98116d Revert changes to in_single_threaded_checker_stage 2024-07-15 01:47:52 +01:00
gingerBill
eb6805ef40 Disable the need for mutexes in single threaded checker stage 2024-07-15 01:44:23 +01:00
gingerBill
018026d844 Use gb_zero_* calls 2024-07-15 00:36:00 +01:00
gingerBill
891cf54b5c Add f16 to #c_vararg promotion rules 2024-07-14 12:03:34 +01:00
gingerBill
544959326b Add intrinsics.type_struct_has_implicit_padding #3844 2024-07-01 12:13:35 +01:00
gingerBill
52ea63f89c Fix #3471 2024-06-28 08:43:25 +01:00
gingerBill
68781f8dd3 Remove unnecessary Wait_Signal checks 2024-06-07 00:11:00 +01:00
gingerBill
7044a7d776 Try to fix a possible race condition with polymorphic record parameters 2024-06-06 23:55:48 +01:00
gingerBill
039bb8794a Improve matrix_align_of logic when it has invalid inputs. 2024-06-06 17:59:12 +01:00
gingerBill
cbabcb0907 Fix #3682 2024-06-05 15:43:15 +01:00
gingerBill
575b268e88 Fix more #soa changes 2024-05-16 17:15:38 +01:00
gingerBill
c9b1c99a40 Fix soa_zip and soa_unzip 2024-05-16 16:27:09 +01:00
gingerBill
8e263de4aa Fix error message handling 2024-05-11 13:59:06 +01:00