Harold Brenes
3a07a32411
Don't check procedure signature similarity when a foreign import proc is an Objective-C method.
2025-11-07 21:38:34 -05:00
Harold Brenes
9f5bde4a6f
Perform type kind check before making use relevant fields in objc_superclass check
2025-10-08 11:38:20 -04:00
gingerBill
810ca89253
Merge pull request #5727 from harold-b/hb.intrinsics.objc_super
...
Add intrinsics.objc_super and Automatically emit objc_msgSend calls
2025-10-05 20:27:01 +01:00
Harold Brenes
a769e341cb
Preempt field checking on signature_parameter_similar_enough with a type ptr equality check
2025-09-30 11:50:30 -04:00
gingerBill
4945168e6d
Short circuit for #raw_union in signature_parameter_similar_enough
2025-09-30 10:48:05 +01:00
gingerBill
668df4a571
Improve signature_parameter_similar_enough for structs
2025-09-30 10:47:31 +01:00
Harold Brenes
5af13f5d53
Automatically emit objc_msgSend calls when calling imported or implemented Objective-C methods
...
- Add intrinsics.objc_super()
- Emit objc_msgSendSuper2 calls when an objc method call is combined with objc_super(self)
- Fix objc_block return value ABI for large struct returns
- Fix objc_implement method wrappers bad ABI for large struct returns and indirect args
- Simplify parameter forwarding for objc_imlpement methods
- Add intrinsics.objc_instancetype to mimi Objective-C instancetype* returns
This facilitates returning the correct type on subclasses when calling mehtods
such as `alloc`, `init`, `retain`, etc.
- Refactor Objective-C class implementations generation so that hierarchies are properly initialized
- Better codegen for context passing with ivar-based autocontext
- Allow @superclass on imported objc-c objects
- Better codegen for block forwarding invoker, arguments are forwarded directly
2025-09-29 20:37:48 -04:00
Harold Brenes
24daa4427c
Fix various foreign signatures
2025-09-29 19:58:14 -04:00
gingerBill
8be18d9a40
Allow for constant []typeid
2025-09-28 21:47:56 +01:00
gingerBill
6338e0a8a3
Allow unions with one variant to be constant
2025-09-19 11:56:44 +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
992cad101c
Minor mutex rearrangement
2025-09-10 21:16:56 +01:00
gingerBill
bc36ea4170
Use macro instead of a C++ iterator - for speed
...
C++ iterators are bad.
2025-09-10 20:11:36 +01:00
gingerBill
a36a8722dc
Minimize more thread contention
2025-09-10 19:30:32 +01: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
gingerBill
983f3ec423
Add #+feature global-context
...
This allows to use of `context` in the global scope on a per file basis.
2025-08-10 15:03:30 +01:00
gingerBill
b86932c03c
Disallow proc "odin" procedures to be called in the global scope in variable declarations
2025-08-08 12:21:50 +01:00
gingerBill
2561427dd3
Add string16 and cstring16 (UTF-16 based strings)
2025-08-02 11:00:15 +01:00
gingerBill
7057fc8dfc
Remove the semantics of #no_copy, keep the grammar
2025-07-30 23:14:29 +01:00
Harold Brenes
edc01293b2
Allow objective-c procedures to have their @objc_name attribute inferred.
...
The `@objc_name` is automatically inferred if it is not specified and
the procedure name is prefixed with type name specified in `@objc_type`,
followed by an `_`. What followed the `_` is interpreted as the `@objc_name`.
2025-07-16 17:14:57 -04:00
Feoramund
3608297e0b
Forbid nested declaration of instrumentation procedures
...
Fixes #3774
2025-06-23 09:11:16 -04:00
Feoramund
d343f54d6d
Fix spurious failure to compile procedures marked @instrumentation_enter
...
The type `Source_Code_Location` may not be available yet, which causes
the compiler to not recognize the procedure type correctly.
2025-06-23 09:03:50 -04: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
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