gingerBill
8e8a075a22
Merge branch 'master' into directx-packages
2022-02-16 16:04:20 +00:00
gingerBill
db6bd9b358
Allow sysv and win64 calling conventions to be used on any platform on amd64
2022-02-16 16:03:49 +00:00
gingerBill
65dedbb1ca
Add #subtype struct field prefix, required to have a COM interface hierarchy
2022-02-16 11:54:15 +00:00
gingerBill
f8afda3b22
Add more objc attributes
2022-02-11 22:54:51 +00:00
gingerBill
05dd3d490d
Correct objc_class propagation for parapoly structs
2022-02-08 17:33:55 +00:00
gingerBill
97be867103
Rename #partial[Enum]Type to #sparse[Enum]Type for non-contiguous enum fields
2022-02-05 13:01:15 +00:00
gingerBill
fe0b5bf4e2
Parse comments on enums fields
2022-01-24 23:28:59 +00:00
gingerBill
2554c72bb2
Update CommentGroup parsing for struct types
2022-01-24 14:47:33 +00:00
gingerBill
28a816ef25
Allow for entity grouping in structs and procedure signatures with the Odin doc-format
2022-01-19 14:57:27 +00:00
gingerBill
80bd1eb615
Fix polymorphic matrix element with a minor hack
2022-01-10 12:19:49 +00:00
gingerBill
236b08cb49
Fix #1356
2022-01-03 12:51:32 +00:00
Joakim Hentula
8255481204
Allow enums to pass #any_int checks
2021-11-25 11:20:40 +00:00
gingerBill
3f038428a7
Begin minimizing Ast size
2021-11-14 15:12:37 +00:00
gingerBill
6646348e1a
Increase usage of PtrMap
2021-11-05 17:03:02 +00:00
Jeroen van Rijn
dcc5697a48
Fix error message.
2021-11-03 11:01:18 +01:00
gingerBill
141299eb02
Change the behaviour change is for when a bit_set of range/enum and the underlying type has been specified
...
* If the lower bound is greater than zero, it will become zero (thus removing the compatification)
* If the lower bound is negative, it is an error
This means that an integer value N, maps directly to the N-th bit.
Example
```
foo :: enum u8 {
a = 2,
b = 3,
c = 4,
}
set0: bit_set[foo]
set0 += {.a, .b}
// internally set0 == 1<<(2-2) | 1<<(3-2)
set1: bit_set[foo; u32]
set1 += {.a, .b}
// internally set1 == 1<<(2-0) | 1<<(3-0)
```
2021-10-31 19:39:01 +00:00
gingerBill
306bdf8869
Update alignment rules for matrix types as a compromise to keep zero padding
2021-10-25 00:46:50 +01:00
gingerBill
e0b9475378
Allow casting between square matrices of the same element type
2021-10-21 01:14:44 +01:00
gingerBill
cee45c1b15
Add hadamard_product
2021-10-20 02:18:30 +01:00
gingerBill
4c655865e5
Begin work on matrix type
2021-10-18 16:52:19 +01:00
gingerBill
d386563344
Correct issue with the generated map type internals; Simplify map rehash logic to utilize resize
2021-10-07 21:23:37 +01:00
gingerBill
00671a59a0
Minor code cleanup for backend; add struct_fields_index_by_increasing_offset for future use
2021-10-02 17:22:56 +01:00
gingerBill
71f2289c20
Fix #1174
2021-09-18 15:10:29 +01:00
Jeroen van Rijn
0d12432d3f
VS: Fix compilation using VS 2022.
2021-09-16 13:24:20 +02:00
gingerBill
526a42c6ca
Remove custom alignment limit
2021-09-13 16:44:01 +01:00
gingerBill
be68bf9f26
Only store field_index remove field_src_index (for the time being)
2021-09-13 11:29:46 +01:00
gingerBill
042dbda47f
Replace many uses of heap_allocator() with permanent_allocator()
2021-09-13 01:30:30 +01:00
gingerBill
2d7aea79b9
Make TypeStructl.tags a pointer from a slice (reduce memory usage)
2021-09-13 01:23:37 +01:00
gingerBill
71bffd46dc
Reduce size of Type
2021-09-13 01:14:17 +01:00
gingerBill
f5bc95eb34
More culling
2021-09-13 01:07:24 +01:00
gingerBill
fb8fa5217d
Begin minimize Type size by replacing Array with Slice etc
2021-09-13 00:58:39 +01:00
gingerBill
6a77fc4cdd
Add multi-pointer types [^]T
2021-08-21 23:10:21 +01:00
gingerBill
38841dd46e
Fix race condition from add_entity_use due to Entity.identifier
2021-08-19 17:38:18 +01:00
gingerBill
7845769d4b
Remove unused code
2021-08-19 15:03:10 +01:00
gingerBill
fce86ff3d5
Correct struct tag bug
2021-08-16 18:17:26 +01:00
gingerBill
7bbc9a4634
Add #any_int directive to replace auto_cast uses on parameters.
2021-08-15 12:56:59 +01:00
gingerBill
0e84e06756
Fix lower and upper values for a bit_set[Enum] type.
2021-08-13 14:17:27 +01:00
gingerBill
8ff9f2e44f
Fix #1077
2021-08-13 11:49:52 +01:00
gingerBill
a5d6fda433
Define which mutexes are blocking and recursive explicitly
2021-07-27 23:14:01 +01:00
gingerBill
116e98b378
Improve default scope size
2021-07-27 10:59:39 +01:00
gingerBill
76707e1d2f
Add sanity casts for 32/64 bit correctness
2021-07-12 11:03:12 +01:00
gingerBill
63b572a0ab
Clean up big int to LLVM integer code
2021-07-11 16:18:30 +01:00
gingerBill
460e14e586
Change the compiler's big integer library to use libTomMath
...
This now replaces Bill's crappy big int implementation
2021-07-11 16:08:16 +01:00
gingerBill
d9e6ade030
Add experimental support for a threaded semantic checker to -threaded-checker
2021-07-10 23:51:37 +01:00
gingerBill
9f7154a039
Prepare for multithreading the semantic checker by giving mutexes to variables of contention
...
NOTE(bill): I know this is dodgy, but I want to make sure it is correct logic before improve those data structures
2021-07-10 15:14:25 +01:00
gingerBill
4a932616fc
Improve CheckerContext usage
2021-07-10 13:02:13 +01:00
gingerBill
d6125f05d4
Correct does_field_type_allow_using
2021-06-29 12:35:15 +01:00
gingerBill
e79fb68291
Correct #soa type creation
2021-06-08 11:23:23 +01:00
gingerBill
9491c13a5c
Fix #1011 by unifying the logic
2021-06-08 11:09:41 +01:00
gingerBill
4d80f8598d
Fix polymorphic record "too few" lacking error message
2021-05-31 20:33:14 +01:00