Commit Graph

329 Commits

Author SHA1 Message Date
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
be2e4dec7d Resolve other TODOs 2025-05-03 13:06:57 -04:00
Harold Brenes
fc082f5ea5 Remove some TODO. Leave important note 2025-05-03 03:21:03 -04:00
Harold Brenes
6d18560ca3 Move unconditionally exporting Objective-C methods to the right location 2025-05-03 03:09:31 -04:00
Harold Brenes
cf3830a6a8 Fix checker errors. 2025-05-03 03:09:31 -04: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
c2dfc4b749 Cleanup ivar generation for selector expressions.
Cleanup ObjC superclass resolution.
2025-04-30 20:32:34 -04:00
Harold Brenes
5097e98da2 Better Objective-C object superclass cycle check 2025-04-30 20:32:05 -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
Laytan
8efeaef40b fix not resolving to alias in a recursive declaration 2025-04-16 22:55:25 +02:00
gingerBill
d9f990d42e Fix #4975 2025-04-03 10:55:35 +01:00
gingerBill
19b59461b0 Use TypeSet for DeclInfo deps 2025-02-18 13:31:34 +00:00
gingerBill
99d91ccd31 Work on making name mangling deterministic 2025-02-17 11:32:49 +00:00
gingerBill
ab469e657d Remove debug code 2025-02-05 10:20:18 +00:00
gingerBill
b48f14ba82 @(export) foreign import to be package scope level 2025-01-30 11:30:38 +00:00
jason
e85667c95c fix grammar in error message 2025-01-21 20:48:11 -05:00
gingerBill
bfbcc02aff Merge pull request #4608 from zen3ger/assignment-of-non-specialized-parapoly
Fix crash on assignment of parapoly proc to variable
2025-01-01 17:40:40 +00:00
gingerBill
c8ad2a4245 Support multiple paths for wasm in foreign import 2025-01-01 15:12:54 +00:00
Roland Kovacs
9f77f7c417 Fix crash on assignment of parapoly proc to variable 2024-12-22 12:38:37 +01:00
Misomosi
01c7380df8 Fix #4390 by assigning invalid entity type 2024-10-20 22:45:30 -04:00
gingerBill
3498d4341d Fix #4330 2024-10-02 15:07:22 +01:00
Laytan
dcf339517e make c vararg with any vs concrete type similar enough 2024-09-04 18:47:08 +02:00
Laytan Laats
f7d7d65bc0 fix open bindings
`open` specifies the `mode` argument as vararg (presumably to make it
optional). varargs actually have rules about casting, in this case the
rule that any integer arg of size <= 4 has to be casted to `i32` before
passing it.

Not doing that implicit cast makes the permissions wrong or not apply at
all.
2024-08-16 22:54:53 +02:00
gingerBill
e810c3eace Merge pull request #4012 from laytan/posix
core:sys/posix and core:os/os2 based on it (for darwin, netbsd, freebsd and openbsd)
2024-08-14 15:10:31 +01:00
gingerBill
fd5376ba88 Allow @(require_results) on foreign blocks 2024-08-14 11:28:49 +01:00
Laytan Laats
efe68c2e24 posix: add package 2024-08-14 01:44:35 +02: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
gingerBill
e4ba786948 Remove use of mutex in single threaded code 2024-07-15 01:29:57 +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
Laytan Laats
1a20b78633 remove misleading @(optimization_mode) values and make "none" inhibit optimizations 2024-07-08 21:06:57 +02:00
gingerBill
8b7c6a23ba Restrict a bit more 2024-07-04 14:06:02 +01:00
gingerBill
87bccc8f3f Remove import name cases 2024-07-04 13:53:52 +01:00
gingerBill
657bc88535 Allow x :: y when cond else proc(...){...} 2024-07-04 13:48:52 +01:00
Laytan Laats
6f1cc8071c wasm: add foreign import and linking of wasm object files 2024-07-02 15:28:08 +02:00
Laytan Laats
b79d7e6917 disallow non-global foreign import of variables on wasm 2024-06-28 01:34:09 +02:00
Jeroen van Rijn
140ee036ce wasm error is no longer relevant 2024-06-27 23:29:36 +02:00
Feoramund
0196cc46e3 Allow custom main when -no-entry-point is set 2024-06-18 01:49:55 -04:00
gingerBill
eaf1d88287 Merge pull request #3734 from Feoramund/fix-3730
Fix #3730
2024-06-11 12:50:41 +01:00
gingerBill
0b02c67cdf Minor clean up for backend 2024-06-11 12:19:52 +01:00
Feoramund
61c630bbf8 Fix #3730 2024-06-11 05:23:43 -04: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
gingerBill
9ef43fc782 Add @(rodata) 2024-06-06 15:16:34 +01:00
gingerBill
8db87170a9 Clean up handle_link_name handling of link_suffix 2024-05-30 21:53:23 +01:00
gingerBill
66acbb7fed Add @(link_suffix=<string>) 2024-05-30 21:48:23 +01:00
gingerBill
8e263de4aa Fix error message handling 2024-05-11 13:59:06 +01:00