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
23efd1bd02
Add TypeWriter stream to allow for in-place hashing and string generation
2025-02-18 14:32:41 +00:00
gingerBill
19b59461b0
Use TypeSet for DeclInfo deps
2025-02-18 13:31:34 +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
868ab27720
Add @(ignore_duplicates) for foreign import declarations
2025-01-28 10:31:46 +00:00
gingerBill
8d400f43fd
Merge pull request #4607 from zen3ger/parapoly-proc-fixes
...
Fix crash when proc return type is undeclared parapoly variable
2025-01-01 17:40:04 +00:00
gingerBill
c8ad2a4245
Support multiple paths for wasm in foreign import
2025-01-01 15:12:54 +00:00
Roland Kovacs
f2f952b344
Fix crash when proc return type is undeclared parapoly variable
...
Disallow the declaration of new parapoly variables in return types, when
the procedure's parapoly scope is itself. This happens if e.g.:
`foo :: proc() -> $T`.
Closes #3949 , #4294 , #4563
2024-12-22 02:31:25 +01:00
gingerBill
fd5376ba88
Allow @(require_results) on foreign blocks
2024-08-14 11:28:49 +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
gingerBill
23351ca8be
Merge pull request #3137 from laytan/show-defineable
...
Add flags to show/export defineable values and warn if a -define is unused in the project
2024-06-20 11:45:52 +01:00
gingerBill
fa3cae2bb0
Add intrinsics.procedure_of
...
```odin
foo :: proc(x: $T) { fmt.println(x) }
bar :: intrinsics.procedure_of(foo(int(123))) // parameters are never ran at compile time, similar to `size_of`
bar(333) // prints 333
```
2024-06-10 15:02:34 +01:00
Laytan Laats
315695b4f8
collect and show docs of defineables
2024-06-07 15:08:41 +02:00
Laytan Laats
b818a77131
check if -define is actually used
2024-06-06 19:46:01 +02:00
Laytan Laats
9a95049393
-show-defineables and -export-defineables
2024-06-06 19:44:54 +02:00
gingerBill
9ef43fc782
Add @(rodata)
2024-06-06 15:16:34 +01:00
Laytan Laats
b47a15733d
implement #exists(path)
2024-06-04 19:06:13 +02:00
gingerBill
66acbb7fed
Add @(link_suffix=<string>)
2024-05-30 21:48:23 +01:00
gingerBill
a1b8749e74
Delay checking foreign import paths until after global scope is checked
2024-05-28 00:23:23 +01:00
gingerBill
a61ae7c861
Fix #3427
2024-04-16 13:31:49 +01:00
gingerBill
1009182f7b
Fix another #soa race condition bug
2024-03-26 14:13:55 +00:00
gingerBill
e5629dafd0
Potentially fix a race condition with parapoly types (related to #3328 )
2024-03-25 13:23:43 +00:00
gingerBill
80ecf5b68a
On x: [?]T = {...}, minimize errors by using the [?]T expression as a kind of hint
2024-03-19 13:32:37 +00:00
gingerBill
5a84a08225
Add general support for bit_fields
2024-02-22 17:24:42 +00:00
gingerBill
5c4485f657
Add #load_directory(path: string) > []runtime.Load_Directory_File
2024-02-09 15:18:29 +00:00
gingerBill
aff8f06e3c
Add frontend stuff instrumentation tooling
...
//+no-instrumentation
@(no_instrumentation)
@(instrumentation_enter)
@(instrumentation_exit)
2024-01-07 19:56:00 +00:00
gingerBill
2820bbc269
Add @(entry_point_only) for procedures
2024-01-05 13:38:30 +00:00
gingerBill
648b83d6ea
Add or_break and or_continue constructs
2023-09-30 15:04:17 +01:00
gingerBill
65206fe33e
Go through loads of TODOs
2023-08-01 11:39:04 +01:00
gingerBill
0de7df9eab
Improve //+vet; remove using in many places; add //+vet !using-stmt where necessary
2023-07-31 11:37:14 +01:00
gingerBill
60e509b1e0
Add separate -vet flags; -vet-using-* flags; //+vet file flags
2023-07-31 11:09:19 +01:00
gingerBill
581eebb197
Fix a race condition when produced anonymous procedure literals with -use-separate-modules
2023-06-13 13:14:59 +01:00
gingerBill
dc55e88588
Add @(deferred_*_by_ptr=<proc>)
2023-04-15 16:04:04 +01:00
gingerBill
2c4a478987
Add @(extra_linker_flags=<string>)
2023-03-21 13:30:58 +00:00
gingerBill
8a2a70a3c2
Fix overriding procedure information for literals
2023-02-17 13:00:37 +00:00
gingerBill
94c1331c07
Implement @(fini) (opposite of @(init))
2023-02-15 11:31:51 +00:00
gingerBill
e97bf2ef35
Minimize contention on the deps for decls
2023-01-12 15:38:23 +00:00
gingerBill
cbe3791b42
Replace all queues with MPSCQueue where possible
2023-01-12 13:11:17 +00:00
gingerBill
b470ceb470
Correct mpsc_dequeue
2023-01-12 12:59:09 +00:00
gingerBill
c15db05199
Implement MPSCQueue
2023-01-12 12:41:53 +00:00
gingerBill
7124d541a1
General optimizations
2023-01-11 18:10:27 +00:00
gingerBill
12e42d92d3
Localize GenProcsData to the entity itself
2023-01-04 15:35:24 +00:00