Commit Graph

319 Commits

Author SHA1 Message Date
thetarnav 72754962ab Use resize_soa instead of resize proc group in soa procs 2025-11-02 14:20:55 +01:00
thetarnav e364e76f7f Add inject_at_soa and append_nothing_soa procedures 2025-11-02 12:13:11 +01:00
gingerBill da1d599326 Bodge runtime.exit for haiku 2025-10-31 15:19:08 +00:00
Jeroen van Rijn 338733d9ef Remove duplicate import 2025-10-30 17:54:02 +01:00
gingerBill 91a9875077 Correct cast to uintptr 2025-10-30 16:32:26 +00:00
gingerBill efb553afad Add runtime.exit 2025-10-30 16:29:23 +00:00
gingerBill 074a8d7df5 constant_truncate -> constant_trunc to be consistent with other intrinsics 2025-10-30 09:37:09 +00:00
gingerBill 99520d82fd Add intrinsics.constant_(floor|truncate|ceil|round) 2025-10-30 08:52:21 +00:00
samwega 45f2822dd0 fix: typo 2025-10-14 19:11:49 +03:00
gingerBill 98dac324e9 Add to intrinsics.odin 2025-10-10 12:13:49 +01:00
gingerBill 0b2c0f785c Add type_is_nearly_simple_compare to intrinsics.odin 2025-10-09 10:06:39 +01:00
gingerBill 7870e6d68b Update intrinsics.odin 2025-10-09 09:56:30 +01:00
gingerBill 20e67f2ad9 Add some more docs 2025-10-07 14:27:19 +01:00
gingerBill a4a74442ce Add some basic docs to Default_Temp_Allocator 2025-10-07 10:41:52 +01:00
gingerBill 47cfee1f62 Add docs to nil_allocator and panic_allocator 2025-10-07 10:38:50 +01:00
gingerBill d343afbad5 Improve core_builtin.odin docs 2025-10-07 10:34:48 +01:00
Harold Brenes 2daaf57ad1 Correct signature (missing return value) for objc_msgSendSuper2 2025-09-30 14:16:43 -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 9b4c0ea492 Type erase the internals of runtime.copy_* 2025-09-29 15:12:55 +01:00
gingerBill 2baa19f73c Remove unused variable 2025-09-27 10:10:25 +01:00
gingerBill ac01d1b5bf Add runtime.conditional_mem_zero to improve heap_allocator performance on non-Windows systems 2025-09-27 09:58:28 +01:00
gingerBill 286e3eafe6 Change inlining semantics for some builtin calls 2025-09-25 08:55:03 +01:00
gingerBill 4d2854f561 Merge pull request #5632 from kalsprite/x386
windows i386 support
2025-09-18 22:01:14 +01:00
gingerBill 9cf69576ab More improvements to minimize code gen size 2025-09-18 20:58:24 +01:00
gingerBill 3954491393 Type erasure to minimize code generation size 2025-09-18 15:54:05 +01:00
Jon Lipstate 57bc45ae30 revert to working build 2025-09-03 22:51:28 -07:00
Jon Lipstate e0c4c53362 add tls when we have crt 2025-09-03 22:32:33 -07:00
Damian Tarnawski 21fd7c200e Add require_results attr to procs returning an allocator 2025-09-02 13:03:15 +02:00
Jon Lipstate 231ce2da59 windows i386 support 2025-08-29 12:41:38 -07:00
Damian Tarnawski ce0cf7076c Add missing test attr and don't zero memory when reserve already did 2025-08-26 13:03:26 +02:00
gingerBill 83a78d5d28 Merge branch 'master' into soa-resize-zero-memory 2025-08-26 11:26:15 +01:00
Damian Tarnawski 95cfad67b7 Cleanup soa resize logic—reduce nesting 2025-08-24 15:17:13 +02:00
Damian Tarnawski 66f4c93420 Handle nil old data case 2025-08-24 15:04:19 +02:00
Damian Tarnawski ac4a89e765 Always use .Resize_Non_Zeroed in _reserve_soa 2025-08-23 17:07:57 +02:00
Damian Tarnawski 2a6dfd2545 Avoid overlap issues when correcting memory after resize in _reserve_soa 2025-08-23 16:55:12 +02:00
Damian Tarnawski 18a2980d26 Zero existing memory when using resize_soa (fixes #5614) 2025-08-23 14:28:25 +02:00
Damian Tarnawski 9d651348b5 Only zero memory when requested 2025-08-23 13:10:19 +02:00
Damian Tarnawski 05706864b7 Support using allocator resize in _reserve_soa (fixes #5615) 2025-08-23 12:55:07 +02:00
blob1807 f90d7029b4 Fix stride in memory_equal/compare_zero giving false positves
The previous stride of 8 assumed `uintptr` size is 8 which isn't the case on 32bit & wasm64p32. Skipping every other set of 4 bytes
2025-08-21 05:19:16 +10:00
Xotchkass d60fba13df fix: throwing away the last generated byte in default_random_generator_proc 2025-08-14 13:49:59 +03: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
gingerBill 804984ed35 contextless fixes for js 2025-08-08 13:29:49 +01:00
gingerBill 7642e0a0e0 Require @(init) and @(fini) to be proc "contextless" () 2025-08-08 12:10:01 +01:00
Sunagatov Denis e6635e2508 Update runtime doc file
This updates and reformats the doc file for the runtime package. The
list of things that need to be implemented for a compiler runtime to
work has been updated in accordance with recent changes to runtime
(notably `cstring16` and `string16` types and `#load_directory`). Some
copy-paste errors around string-comparison procedures have been fixed.

The file has been renamed to `doc.odin` as per convention, the comment
has been moved to the top of the package declaration and the comment is
now markdown-formatted.

Also wrote down a little map to maybe slightly help with understanding
navigation within package runtime's files and added a few more
explanations as to why that list of declarations exists and how to use
it.

The list of declarations has been detailed to some degree, explaining
under what conditions the declarations are required.
2025-08-08 15:34:30 +11:00
gingerBill a0e9a98d61 Merge pull request #5547 from harold-b/hb.objc_block_intrinsic
Implements the Apple block ABI.2010.3.16 natively via `objc_block` intrinsic
2025-08-07 16:08:38 +01:00
gingerBill 34b4b84b64 Add intrinsics.type_canonical_name 2025-08-07 12:34:41 +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 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