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
gingerBill
d85c8f0b2c
Fix #3555
2024-05-09 10:58:57 +01:00
Laytan Laats
25f1d0906d
compiler: improve target features support
2024-05-02 00:59:52 +02:00
gingerBill
a61ae7c861
Fix #3427
2024-04-16 13:31:49 +01:00
Laytan Laats
5339e1e1b6
fix objc proc group edge case
...
Fixes #2648
2024-04-03 21:21:46 +02:00
gingerBill
b47d73c651
Fix type checking for invalid enum backing type
2024-04-01 13:34:30 +01:00
gingerBill
cf9bdc134c
Fix #3341
2024-03-27 16:48:51 +00:00
gingerBill
1009182f7b
Fix another #soa race condition bug
2024-03-26 14:13:55 +00:00
gingerBill
533ba63c82
Fix #3327 #3204 #3200
2024-03-26 13:06:39 +00:00
gingerBill
18fb665bf6
Correct matrix builtins for #row_major
2024-03-19 21:15:47 +00:00
gingerBill
a750fc0ba6
Add #row_major matrix[R, C]T
...
As well as `#column_major matrix[R, C]T` as an alias for just `matrix[R, C]T`.
This is because some libraries require a row_major internal layout but still want to be used with row or major oriented vectors.
2024-03-19 21:05:23 +00:00
gingerBill
c7c6852057
Support swizzle selector syntax .xyzw for #simd vectors
2024-03-12 12:11:48 +00:00
gingerBill
4bb7cd5e4b
Add bit_field option to core_type in the compiler
2024-03-07 11:31:00 +00:00
gingerBill
7ae22b7ce5
Update are_types_identical for bit_field
2024-03-04 20:22:49 +00:00
gingerBill
3e295734cb
Correct is_type_comparable for bit_field
2024-03-04 20:10:34 +00:00
gingerBill
84a7e03178
Merge pull request #3220 from laytan/promote-types-in-c-varargs
...
Promote types in `#c_varargs` according to C rules
2024-02-28 10:49:28 +00:00