Commit Graph

796 Commits

Author SHA1 Message Date
gingerBill
a66ea9bf4a Remove warning on struct field parameters being too big for the stack 2025-04-09 13:23:15 +01:00
gingerBill
e6718fcfcc Very very rudimentary support for -target:linux_arm64 -subtarget:android 2025-03-26 13:09:39 +00:00
gingerBill
55317b0987 Fix #4914 2025-03-06 11:15:27 +00:00
gingerBill
ebda946d61 Move temporary array out of CheckerInfo 2025-02-22 18:12:43 +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
1d348318f2 Use PtrMap temporarily 2025-02-20 13:23:23 +00:00
gingerBill
0bac34eec8 Number fields within procedures with a depth-first numbering system 2025-02-19 10:59:05 +00:00
gingerBill
19b59461b0 Use TypeSet for DeclInfo deps 2025-02-18 13:31:34 +00:00
gingerBill
721bcf2249 Minor code clean up 2025-02-18 13:24:08 +00:00
gingerBill
d69eb57cfa Fix typos 2025-02-18 13:18:51 +00:00
gingerBill
4a29d9bb84 Simplify type info table construction 2025-02-17 16:29:42 +00:00
gingerBill
b8f057951c Begin work on TypeSet 2025-02-17 13:46:17 +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
2af60b8767 Fix #4763 2025-01-31 09:30:15 +00:00
gingerBill
0cd20e61ab Add @(export) foreign import 2025-01-31 08:34:15 +00:00
gingerBill
868ab27720 Add @(ignore_duplicates) for foreign import declarations 2025-01-28 10:31:46 +00:00
flysand7
87b590c99b Do not warn about stack overflow in range loops 'by reference' 2025-01-16 22:11:30 +03:00
gingerBill
bca08d3b85 Make -no-dynamic-literals the default now 2025-01-05 13:33:06 +00:00
gingerBill
c8ad2a4245 Support multiple paths for wasm in foreign import 2025-01-01 15:12:54 +00:00
gingerBill
e38a08013e Remove #relative types from the compiler 2024-11-14 16:17:24 +00:00
gingerBill
aeb568f79a Ignore package runtime with using -vet-unused-packages 2024-10-02 15:04:50 +01:00
Beau McCartney
e3eea1b9fa print proc types in same order as procs 2024-09-29 23:55:55 -06:00
Beau McCartney
fe8325f0ad fix deferred procedure errors 2024-09-29 23:34:09 -06:00
gingerBill
09588836e7 Add -vet-unused-procedures 2024-09-17 11:33:42 +01:00
gingerBill
19c1ed154c Add -vet-packages:<comma-separated-string-array> 2024-09-17 11:01:26 +01:00
Laytan Laats
7f3d8e115f remove comma 2024-08-31 02:45:17 +02:00
Laytan Laats
7624ecf4ba fix some issues with the "bad import name" errors
There was so much wrong here:
- The `if` statement was never entered because even on invalid import
  names `path_to_entity_name` returns "_"
- Two errors were shown where one doesn't make sense, need to choose one
  based on context
- Structure of the messages were different from other error messages
- Suggestion was using the wrong import path
2024-08-31 02:30:32 +02:00
gingerBill
a4e865f90b Fix #4166 2024-08-30 11:01:06 +01:00
avanspector
47f423c123 Set a flag for delayed checking 2024-08-30 01:32:06 +02:00
avanspector
9866c83d61 Add missing checker delaying 2024-08-29 23:43:01 +02:00
avanspector
43ec2b9253 checker: delay foreign block checking
if file scope, otherwise as before
2024-08-26 20:59:16 +02:00
avanspector
d7e977069a Update checker.cpp 2024-08-26 19:59:15 +02:00
gingerBill
8c952878fb Allow empty strings in link_prefix and link_suffix 2024-08-25 14:03:14 +01:00
Laytan
ca6ef95b03 add support for linux_riscv64 and freestanding_riscv64 2024-08-20 14:06:40 +02:00
Laytan Laats
b2e64b7ce0 implement lshrti3 on wasm 2024-08-18 17:09:57 +02:00
gingerBill
fd5376ba88 Allow @(require_results) on foreign blocks 2024-08-14 11:28:49 +01:00
gingerBill
2584c6bcd7 Merge pull request #4069 from zen3ger/1738-aliased-procedure-resolution
Fix alias handling of procedures
2024-08-13 14:07:51 +01:00
Roland Kovacs
9eb7186cda Fix alias handling of procedures
An incorrect memmove when overriding entities caused multiple ones to point to
the same procedure with incomplete variant data, resulting in later hiting a
compiler assertion.

Introduced delayed type checking for procedure aliases, as it was masked by
the previous error in the override logic.
2024-08-12 19:52:42 +02:00
Laytan Laats
6918d8aaa6 possibly fix init_core_type_info race condition 2024-08-10 21:03:40 +02:00
gingerBill
84ac56f778 Add intrinsics.simd_masked_load and intrinsics.simd_masked_store 2024-08-05 14:08:41 +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
e4ba786948 Remove use of mutex in single threaded code 2024-07-15 01:29:57 +01:00
gingerBill
3311ea1c76 Keep MSVC happy with secure versions of C calls 2024-07-15 00:38:10 +01:00
gingerBill
018026d844 Use gb_zero_* calls 2024-07-15 00:36:00 +01:00
gingerBill
6959554040 Calculate size and alignment, and reuse memory for all variadic calls within a procedure body 2024-07-14 13:44:47 +01:00
gingerBill
3dff83f3dc Mock out #no_capture for future use 2024-07-14 12:39:30 +01:00
gingerBill
edc793d7c1 Add #no_capture args: ..T to reuse the backing array stack memory 2024-07-14 11:39:05 +01:00
Laytan Laats
1a20b78633 remove misleading @(optimization_mode) values and make "none" inhibit optimizations 2024-07-08 21:06:57 +02:00