Commit Graph

153 Commits

Author SHA1 Message Date
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
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
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
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
7b334d2bd9 Add #branch_location 2025-01-01 17:26:15 +00:00
Laytan Laats
603efa860a add '#caller_expression' 2024-09-14 22:13:37 +02:00
gingerBill
edc793d7c1 Add #no_capture args: ..T to reuse the backing array stack memory 2024-07-14 11:39:05 +01:00
gingerBill
34c6868e78 Merge pull request #3895 from laytan/fix-optimization-mode-attribute
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-10 13:22:57 +01:00
Laytan Laats
1a20b78633 remove misleading @(optimization_mode) values and make "none" inhibit optimizations 2024-07-08 21:06:57 +02:00
gingerBill
2a219fa830 Correct -use-separate-module behaviour 2024-07-08 15:13:40 +01:00
gingerBill
0b02c67cdf Minor clean up for backend 2024-06-11 12:19:52 +01:00
gingerBill
9ef43fc782 Add @(rodata) 2024-06-06 15:16:34 +01: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
a344bc4c0e Remove the old switch/for semantics entirely and enforce switch &x in y 2024-05-16 14:39:16 +01:00
gingerBill
d85c8f0b2c Fix #3555 2024-05-09 10:58:57 +01:00
Laytan Laats
25f1d0906d compiler: improve target features support 2024-05-02 00:59:52 +02:00
gingerBill
45d7a670ce Fix @(static) error message bug 2024-04-11 15:34:34 +01:00
gingerBill
624b870f28 Add some basic escape analysis errors for return &x 2024-03-23 14:58:10 +00:00
gingerBill
006ea11c56 Update doc-format for #by_ptr and #no_broadcast parameters 2024-03-21 11:58:32 +00:00
gingerBill
29e5f94c2a Add #no_broadcast procedure parameter to disallow automatic array programming broadcasting on procedure arguments 2024-03-21 11:52:48 +00:00
gingerBill
5a84a08225 Add general support for bit_fields 2024-02-22 17:24:42 +00:00
gingerBill
f4782157d3 Implement instrumentation pass 2024-01-07 21:34:44 +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
0600054ad4 Remove temporary assert 2023-08-07 15:21:18 +01:00
gingerBill
b782fca75b Fix using bug 2023-08-07 15:18:45 +01:00
gingerBill
b495a302b0 Merge branch 'master' into tilde 2023-08-03 13:14:09 +01:00
gingerBill
65206fe33e Go through loads of TODOs 2023-08-01 11:39:04 +01:00
gingerBill
7cd2d14b64 Very start of working on Tilde Backend for Odin 2023-07-14 11:58:18 +01:00
gingerBill
00d60e28c2 Allow switch &v in ... work to be consistent with for &e in ... 2023-06-26 15:41:53 +01:00
gingerBill
ea00619c3b for &e, i in array and for k, &v in map (alternative to passing the iterable by pointer) 2023-06-26 15:20:40 +01:00
gingerBill
2c4a478987 Add @(extra_linker_flags=<string>) 2023-03-21 13:30:58 +00:00
gingerBill
94c1331c07 Implement @(fini) (opposite of @(init)) 2023-02-15 11:31:51 +00:00
gingerBill
2dca39b557 Remove auto_cast procedure field flag
Fixes #2285
2023-01-16 12:06:03 +00:00
gingerBill
12e42d92d3 Localize GenProcsData to the entity itself 2023-01-04 15:35:24 +00:00
gingerBill
5c519f0e8d Remove the synchronization primitive init/destroy calls 2023-01-01 16:19:21 +00:00
gingerBill
c1f5be24e2 Remove dead code in the compiler 2022-12-18 22:49:10 +00:00
gingerBill
056ba1ed13 Even more gb_internal everywhere 2022-12-18 21:24:45 +00:00
gingerBill
c8ab1b7ee1 Add #by_ptr procedure attribute to enforce a parameter to be passed by pointer internally 2022-07-24 13:11:48 +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
e4743b15b1 Add @(priority_index=<int>) for foreign import 2022-05-04 16:40:12 +01:00
gingerBill
a232c0888c intrinsics.atomic_type_is_lock_free 2022-04-02 14:38:42 +01:00
gingerBill
a68f0b2d72 Improve procedure group selection based on the minimum number of arguments 2022-03-18 22:18:12 +00:00
gingerBill
65dedbb1ca Add #subtype struct field prefix, required to have a COM interface hierarchy 2022-02-16 11:54:15 +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