Commit Graph

234 Commits

Author SHA1 Message Date
gingerBill
d2ec2d1606 Remove another use of a global mutex 2023-01-02 19:46:55 +00:00
gingerBill
529383f5b1 Correct a race condition when checking the procedure body 2023-01-02 15:30:04 +00:00
gingerBill
015fe924b8 Remove use of queues for procedure checking. 2023-01-02 12:28:38 +00:00
gingerBill
00823ca88c Remove a few TODOs 2022-12-22 13:03:34 +00:00
gingerBill
c1f5be24e2 Remove dead code in the compiler 2022-12-18 22:49:10 +00:00
gingerBill
690666537c Add gb_internal to checker 2022-12-18 21:46:27 +00:00
gingerBill
34a048f7da Replace compiler for loops for the hash-table types to simplify code usage 2022-12-09 11:29:28 +00:00
gingerBill
d88b052d2d Naïve optimization of named _split_ multiple return valued when defer is never used
This is a naïve optimization but it helps a lot in the general case where callee temporary stack variables
are not allocated to represent the named return values by using that specific memory.

In the future, try to check if a specific named return value is ever used a `defer` within a procedure or not,
or is ever passed to a nested procedure call (e.g. possibly escapes).
2022-11-25 23:57:55 +00:00
Lucas Perlind
73c1f08776 Improve error messages with 'using _' 2022-10-15 19:46:17 +11:00
gingerBill
5e3cf45df3 Add #soa pointer type to aid with refactoring to #soa data types
a: #soa[16]Foo
p := &a[6]
#assert(type_of(p) == #soa^#soa[16]Foo)
p^.x = 123
p.x = 123
2022-08-08 15:07:00 +01:00
gingerBill
5b42dd7707 Correct @(require_results) on parapoly procedures 2022-05-30 15:27:09 +01:00
gingerBill
f3aefbc443 @(require_target_feature=<string>) @(enable_target_feature=<string>)
require_target_feature - required by the target micro-architecture
enable_target_feature - will be enabled for the specified procedure only
2022-05-30 14:53:12 +01:00
gingerBill
66b5a35ec3 Add simd_to_bits; correct fix typo causing issue with parapoly 2022-05-26 13:45:47 +01:00
gingerBill
b032d5af87 Make #simd an opaque type 2022-05-25 17:26:18 +01:00
gingerBill
53c70da0b8 Correct foreign import prefix behaviour for wasm 2022-05-06 11:16:24 +01:00
gingerBill
72ae061769 Add intrinsics.wasm_memory_grow intrinsics.wasm_memory_size 2022-03-30 17:29:37 +01:00
gingerBill
286549693e Fix #1609 2022-03-14 12:28:28 +00:00
gingerBill
410b85b5c7 Disallow @(thread_local) on wasm targets 2022-02-28 15:40:00 +00:00
gingerBill
278e239973 Commit rest of code for -disallow-rtti 2022-02-28 13:40:01 +00:00
gingerBill
7681c43b14 Show error message when something like this is done test: proc() : {} 2022-02-28 12:12:04 +00:00
gingerBill
03aec70287 Change objc_class_name to objc_name with objc_is_class_method 2022-02-14 17:31:55 +00:00
gingerBill
f8afda3b22 Add more objc attributes 2022-02-11 22:54:51 +00:00
gingerBill
0cc40db565 Begin work on support objc intrinsics 2022-02-08 17:04:55 +00:00
gingerBill
1553137c23 Change behaviour of A :: distinct Enum_Type to be more intuitive 2022-02-05 00:04:02 +00:00
gingerBill
d5384c5aa4 Only check idents in the alias (of alias)+ problem 2022-02-04 22:45:13 +00:00
gingerBill
3a81f2ab89 Correct the type aliasing problem, caused by aliases (of aliases)+ 2022-02-04 22:40:15 +00:00
gingerBill
35c90fe124 Fix type alias declaration evaluation problem (#854 #1439) 2022-02-03 13:34:31 +00:00
gingerBill
7e4067c44c Begin work to move entry point code to Odin itself rather than in C++ side 2022-01-12 19:19:43 +00:00
gingerBill
847b05013f Disable DEFAULT_TO_THREADED_CHECKER until race condition is found 2022-01-11 10:56:07 +00:00
gingerBill
7cc265e14c Add mutex guards for signature scopes 2022-01-10 14:50:28 +00:00
gingerBill
f47311f2f6 Remove scope field from Ast 2021-11-14 15:22:40 +00:00
gingerBill
6ded538546 @(linkage=<string>) for procedures and variables; @(require) for procedures; package runtime linkage improvements; Subsequence improvements to lb_run_remove_unused_function_pass 2021-11-04 12:40:50 +00:00
gingerBill
229c98309e Correct assertion usage 2021-11-03 11:02:47 +00:00
gingerBill
c5cd97dd89 Improve wasm-import semantics to allow procedures from different import paths 2021-11-02 12:54:23 +00:00
gingerBill
8ef6f9dd7b Compile wasm64; Add lb_run_remove_unused_function_pass 2021-10-31 00:11:38 +01:00
gingerBill
2bdae52fed Add @(init) attribute for procedures, allowing for procedures to be called at startup
These procedures will be called after global variables have been initialized as normal
2021-10-03 11:53:32 +01:00
gingerBill
382ca20916 Correct procedure checking flag handling, and correct the (bodge) handle of unchecked procedure bodies 2021-08-23 19:24:53 +01:00
gingerBill
8694a0f68a Update signature_parameter_similar_enough for multi pointers 2021-08-22 12:31:03 +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
a01c946c20 Add mutex to Scope lookups and insertions 2021-08-18 11:17:14 +01:00
gingerBill
beaad719ad Reallow using on enum declarations temporarily but with a warning. 2021-08-05 17:51:45 +01:00
gingerBill
0d257c61cd Disallow using on an enum declaration. 2021-08-05 17:46:42 +01:00
gingerBill
9e6e769141 Add sanity checks to checker 2021-08-02 18:32:17 +01:00
gingerBill
ccbdf086ff Add @(warning=<string>) 2021-08-02 16:58:50 +01:00
gingerBill
a5d6fda433 Define which mutexes are blocking and recursive explicitly 2021-07-27 23:14:01 +01:00
gingerBill
99080d41f3 INTERNAL USE ONLY: //+lazy build flag 2021-07-25 13:06:09 +01:00
gingerBill
2938ec028f Remove dead code 2021-07-15 00:37:59 +01:00
gingerBill
bd8e2f82be Replace non-recursive mutexes with BlockingMutex; Minor improves to initialization improves 2021-07-14 00:34:34 +01:00
gingerBill
7a9b7af078 Reduce mutex usage and convert things to queues from arrays 2021-07-13 23:09:24 +01:00