gingerBill
53f4fc1cbb
Add -para-poly-diagnostics
2025-09-29 14:03:32 +01:00
gingerBill
01c10f3f5e
Use RecursiveMutex to fix a race condition with parapoly records
2025-09-26 10:18:46 +01:00
gingerBill
6ce889f4eb
Entity * to std::atomic<Entity *> to remove the need for a PtrMap+Mutex
2025-09-19 11:01:41 +01:00
gingerBill
5ea2e1fe60
Minimize mutex usage when in single threaded mode.
2025-09-10 21:41:52 +01:00
gingerBill
549edcc0f9
Use a RwMutex instead of BlockingMutex
2025-09-10 21:00:43 +01:00
gingerBill
34e3d30780
More thread contention removal
2025-09-10 20:51:52 +01:00
gingerBill
0476d33a6c
Remove global PtrMap<Type *, GenTypesData *> and store on the TypeNamed directly
2025-09-10 20:45:26 +01:00
gingerBill
a36a8722dc
Minimize more thread contention
2025-09-10 19:30:32 +01:00
gingerBill
1e0902677f
Multithread min dep set by removing the set itself
2025-09-10 17:29:11 +01:00
gingerBill
70d396c8ad
Split type and inline cycles into separate loops
2025-09-10 13:26:07 +01:00
A1029384756
3074146784
skip errors on polymorphic procs when in a proc group with other options
2025-08-28 11:30:47 -04:00
gingerBill
d5b1fc48fb
Add @(raddbg_type_view=<optional-string>)
...
If no string parameter is provided, then one will be generated from the struct field tags.
The attribute must be applied if the automatic struct field tag approach is to be used.
2025-08-21 17:14:33 +01:00
Feoramund
9c5640886d
Add @(no_sanitize_memory) proc attribute with MSan additions to base:sanitizer
2025-06-05 16:06:40 -04:00
gingerBill
92df892f25
Merge pull request #5064 from harold-b/hb/objc-classes
...
Add support for Objective-C class implementation
2025-05-08 12:58:33 +01:00
Harold Brenes
a00b91577d
Prevent multiple uses of the same Objective-C class name
2025-05-03 03:09:30 -04:00
Harold Brenes
5f0b47c373
Implement all checker specification for Objective-C class implementations and objc_ivar_get intrinsic
2025-05-03 00:59:33 -04:00
Lucas Perlind
5c73b4ef58
Add attribute @(no_sanitize_address)
...
The purposes of this attribute is to let procedures opt-out of being
instrumented with asan. Typically an allocator that includes 'in-band'
meta-data will be accessing poisoned values (such as tlsf).
Making asan work with these allocators becomes very challenging so
just being to ignore asan within specific allocator procedures
makes it easier to reason and removes the need to temporarily
poison and unpoison allocator data.
2025-05-01 20:42:21 +10:00
Harold Brenes
89533f49e4
Fix more styling and minor issues
2025-04-27 23:05:17 -04:00
Harold Brenes
f3923ed666
Fix indentations
...
Fix Objective-C wrapper procs not forwarding return value
2025-04-27 22:55:53 -04:00
Harold Brenes
47abea1229
Add support for Objective-C method implementation with Odin calling convention.
...
Use @objc_context_provider to provide a context for a type.
2025-04-23 02:05:51 -04:00
Harold Brenes
a3de9c8de4
Add initial support for Objective-C class implementation
2025-04-20 21:53:46 -04: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
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