Commit Graph

1108 Commits

Author SHA1 Message Date
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
Yhya Ibrahim
89a5e93818 Remove a debug printf that caused regression 2025-10-05 09:56:03 +03:00
gingerBill
51a8660d52 Disallow dynamic-literals withint procedure scopes where context is not defined 2025-09-30 10:24:20 +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
gingerBill
53f4fc1cbb Add -para-poly-diagnostics 2025-09-29 14:03:32 +01:00
gingerBill
0d946268ee Disallow constant access x.y on struct #raw_union 2025-09-29 10:41:35 +01:00
gingerBill
10ba956d6a Rudimentary support for some constant struct #raw_union 2025-09-29 10:28:16 +01:00
gingerBill
4877214f34 Add more check_is_operand_compound_lit_constant uses 2025-09-28 23:53:07 +01:00
gingerBill
1df9f1d01d Fix constant union{proc()} 2025-09-28 22:02:25 +01:00
gingerBill
8be18d9a40 Allow for constant []typeid 2025-09-28 21:47:56 +01:00
gingerBill
f743110f63 Correct union type checking for constants 2025-09-28 21:00:36 +01:00
gingerBill
ffdfbfe2c2 Begin to support constant array of unions 2025-09-28 20:20:26 +01:00
gingerBill
a974c51d57 First step towards constant unions 2025-09-28 19:52:52 +01:00
gingerBill
62a03f118e Merge pull request #5689 from slowhei/master
Improve type inferencing of literals when calling proc groups
2025-09-26 14:13:05 +01:00
gingerBill
01c10f3f5e Use RecursiveMutex to fix a race condition with parapoly records 2025-09-26 10:18:46 +01:00
Tohei Ichikawa
6ed9351955 Merge remote-tracking branch 'upstream/master' 2025-09-24 21:09:31 -04:00
gingerBill
31cafda30d Remove unused variable 2025-09-19 12:31:06 +01:00
gingerBill
be1e889abb Remove debug message 2025-09-19 12:29:26 +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
Tohei Ichikawa
5e71ba4456 Remove an outdated TODO 2025-09-16 10:57:54 -04:00
Tohei Ichikawa
403ca2fb2e Improve type inferencing of literals when calling proc groups 2025-09-15 20:40:20 -04: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
bc36ea4170 Use macro instead of a C++ iterator - for speed
C++ iterators are bad.
2025-09-10 20:11:36 +01:00
gingerBill
1c648126c7 Move more from heap_allocator() to temporary_allocator() 2025-09-10 19:47:29 +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
9abc3f67b5 Fix constant procedure parameters when passing literals 2025-09-09 10:36:22 +01:00
smoke-y
906eddd1d4 formatting 2025-09-05 21:28:00 +05:30
smoke-y
5161731ce0 proc at type lvl seg fault 2025-09-05 11:27:28 +05:30
A1029384756
3074146784 skip errors on polymorphic procs when in a proc group with other options 2025-08-28 11:30:47 -04:00
gingerBill
409e397566 Fix bug with $fn: proc() when passed with a global variable 2025-08-18 21:47:09 +01:00
gingerBill
8df69c95c3 Add -integer-division-by-zero:all-bits 2025-08-10 18:29:08 +01:00
gingerBill
1524b40bc9 Merge pull request #5556 from odin-lang/bill/division-by-zero
Define Integer Division By Zero
2025-08-10 14:48:33 +01:00
gingerBill
a0ff05e633 Merge pull request #5558 from odin-lang/bill/init-fini-changes
`@(init)` & `@(finit)` Changes.
2025-08-10 12:47:15 +01:00
janga-perlind
5db6ea8354 Do not check for explicit allocators when determining proc in proc group 2025-08-09 12:37:15 +10:00
gingerBill
786d454443 Merge pull request #5559 from Creativty/variable_dereference_suggestion
Improve dereference missing suggestion message
2025-08-08 15:34:45 +01:00
xenobas
443dd566e3 Add a better suggestion for cases that don't need ^ operator 2025-08-08 14:40:43 +01:00
gingerBill
06e48099ca Improve error message 2025-08-08 12:23:22 +01:00
gingerBill
ee01643229 Add -integer-division-by-zero:self 2025-08-08 10:41:05 +01:00
gingerBill
991883d0e1 Add #+feature integer-division-by-zero:<string> 2025-08-08 10:24:44 +01:00
gingerBill
e4a0228a80 Define the behaviour of integer division by zero 2025-08-08 10:00:11 +01:00
gingerBill
eae43f1225 Merge branch 'master' into bill/utf16-strings 2025-08-05 15:07:06 +01:00
gingerBill
c910b5e583 Add intrinsics.type_is_nearly_simple_compare 2025-08-04 12:13:30 +01:00
gingerBill
bb4bc316a4 for in string16; Support string16 across core 2025-08-02 12:20:35 +01:00
gingerBill
ae02d3d02d Begin supporting string16 across the core library 2025-08-02 11:55:16 +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