Commit Graph

852 Commits

Author SHA1 Message Date
Franz
ba9b9eacb5 Fix #5967 (Incorrect stack overflow warning for by ref switches over unions) 2025-11-28 13:55:07 +01:00
Laytan
eb089a1c98 skip collision panic when package names aren't unique 2025-11-16 15:06:30 +01:00
gingerBill
816c47058d For test runner, try to look for os.exit or os2.exit 2025-10-30 16:14:32 +00:00
Jeroen van Rijn
e4db455458 Fix #5785 2025-10-11 20:32:09 +02:00
Harold Brenes
86f9c920da Fix Objective-C block symbols naming conflict across modules.
Fix assert triggered when there's checker errors and
 Objective-C method implementations.
2025-10-05 15:53:42 -04:00
Harold Brenes
fc44b10431 Include objc runtime type dependencies only on darwin 2025-09-29 20:38:16 -04: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
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
0476d33a6c Remove global PtrMap<Type *, GenTypesData *> and store on the TypeNamed directly 2025-09-10 20:45:26 +01:00
gingerBill
d3602ca634 Removal of some old checks 2025-09-10 20:37:39 +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
228ddd6903 Inline some ptr set iterators 2025-09-10 20:02:39 +01:00
gingerBill
1c648126c7 Move more from heap_allocator() to temporary_allocator() 2025-09-10 19:47:29 +01:00
gingerBill
01258d4817 Multithread "check all scope usages" 2025-09-10 19:38:30 +01:00
gingerBill
a36a8722dc Minimize more thread contention 2025-09-10 19:30:32 +01:00
gingerBill
21b1173076 Minor clean up of permanent/temporary arena usage 2025-09-10 18:20:20 +01:00
gingerBill
af37ba76c1 Use arena in calculate_global_init_order 2025-09-10 18:02:02 +01:00
gingerBill
1e0902677f Multithread min dep set by removing the set itself 2025-09-10 17:29:11 +01:00
gingerBill
60684ff028 Multithread some of the min dep system 2025-09-10 13:39:06 +01:00
gingerBill
70d396c8ad Split type and inline cycles into separate loops 2025-09-10 13:26:07 +01:00
gingerBill
629777b988 Multithread check_update_dependency_tree_for_procedures 2025-09-10 12:42:36 +01:00
smoke-y
5f60e7cdc0 formatting 2025-09-05 21:28:49 +05:30
smoke-y
c01ba41955 fix empty parentheses seg fault 2025-09-05 11:02:01 +05:30
gingerBill
9381040711 Fix parentheses for raddbg expression 2025-08-22 09:32:17 +01:00
gingerBill
46d4f22ef4 Remove debug print 2025-08-22 09:29:44 +01:00
gingerBill
23689d0c01 Improve the raddbg type views generated from fmt-based struct field tags 2025-08-22 09:29:07 +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
2648bd8fcd Allow #+feature global-context for @(init) and @(fini) procedures as an interim measure 2025-08-12 09:51:16 +01:00
gingerBill
7642e0a0e0 Require @(init) and @(fini) to be proc "contextless" () 2025-08-08 12:10:01 +01:00
Harold Brenes
9d8e15b3af Implementes the block ABI.2010.3.16 natively via the objc_block intrinsic and the Objc_Block builtin type.
See: https://clang.llvm.org/docs/Block-ABI-Apple.html
2025-08-06 20:27:31 -04:00
gingerBill
af3184adc9 Change is_utf16 field to encoding and use an enum 2025-08-05 15:12:54 +01:00
gingerBill
eae43f1225 Merge branch 'master' into bill/utf16-strings 2025-08-05 15:07:06 +01:00
gingerBill
7f194080e6 Fix possible race condition with struct offsets 2025-08-05 12:28:18 +01:00
gingerBill
2561427dd3 Add string16 and cstring16 (UTF-16 based strings) 2025-08-02 11:00:15 +01:00
Laytan
d343b93ef2 fix check 2025-08-01 20:31:53 +02:00
Harold Brenes
bab4ce11fc Rename iOS subtarget to iPhone for consistency.
Add `ODIN_PLATFORM_SUBTARGET_IOS` builtin constant which evaluated to
`true` when the platform is `Darwin` and the subtarget it either `iPhone` or `iPhoneSimulator`
2025-07-14 21:55:28 -04:00
Harold Brenes
0e245fb40f Updated iOS/iPhoneSimulator build support 2025-07-13 20:17:30 -04:00
gingerBill
87247b8bb7 Merge pull request #5286 from Feoramund/no-san-mem
Add `@(no_sanitize_memory)` with additions to `base:sanitizer`
2025-06-09 12:46:22 +01:00
Feoramund
54f018ffc7 Guard against untyped nil in type cycle and type info sections
Fixes #5299
2025-06-08 17:48:01 -04:00
Feoramund
1cd1f9fec4 Add nullptr check in add_type_info_type_internal
Fixes #5215
2025-06-06 09:23:06 -04:00
Feoramund
9c5640886d Add @(no_sanitize_memory) proc attribute with MSan additions to base:sanitizer 2025-06-05 16:06:40 -04:00
Jeroen van Rijn
229c734820 Add comments to builtin.odin, documenting ODIN_* constants. (#5218)
And document constants not previously listed.
2025-05-26 18:58:59 +02:00
Feoramund
b018528833 Do not call disabled deferred procedures 2025-05-19 20:50:43 -04:00
Jeroen van Rijn
7c80df4830 @(init), @(fini) and @(export) procedures are classified as used.
For the purposes of `-vet-unused-procedures`, exported procedures and `@(init)` and `@(fini)` are now disregarded.
2025-05-17 16:22:47 +02: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
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