aboutsummaryrefslogtreecommitdiff
path: root/base/runtime/core_builtin.odin
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into nbioLaytan2026-01-131-1/+0
|\
| * Remove duplicate assingment of array.allocator = allocator in ↵Faker-092026-01-131-1/+0
| | | | | | | | _make_dynamic_array_len_cap(...) (#6095)
* | runtime: use `alloc_non_zeroed` in `new_clone`; zeroing is not neededLaytan Laats2026-01-111-1/+1
|/
* Add @builtin to missing builtin procedure group procsSylphrena2025-12-191-3/+10
|
* Improve core_builtin.odin docsgingerBill2025-10-071-19/+94
|
* Type erase the internals of `runtime.copy_*`gingerBill2025-09-291-18/+16
|
* Change inlining semantics for some builtin callsgingerBill2025-09-251-4/+4
|
* Merge pull request #5632 from kalsprite/x386gingerBill2025-09-181-1/+6
|\ | | | | windows i386 support
| * revert to working buildJon Lipstate2025-09-031-2/+2
| |
| * add tls when we have crtJon Lipstate2025-09-031-2/+2
| |
| * windows i386 supportJon Lipstate2025-08-291-1/+6
| |
* | More improvements to minimize code gen sizegingerBill2025-09-181-7/+15
| |
* | Type erasure to minimize code generation sizegingerBill2025-09-181-14/+21
|/
* Implementes the block ABI.2010.3.16 natively via the `objc_block` intrinsic ↵Harold Brenes2025-08-061-0/+5
| | | | | | and the `Objc_Block` builtin type. See: https://clang.llvm.org/docs/Block-ABI-Apple.html
* Add `string16` and `cstring16` (UTF-16 based strings)gingerBill2025-08-021-1/+27
|
* runtime: Remove unneeded `max(0, ...)`Feoramund2025-06-131-2/+2
| | | | | `len` never returns negative numbers, so this was an overcautious expression.
* Guard against negative `index` in `inject_at`Feoramund2025-06-041-0/+9
| | | | Fixes #4595
* Merge pull request #4599 from Barinzaya/fix_dynamic_resize_zeroing_on_growgingerBill2025-01-061-3/+5
|\ | | | | Fix dynamic array not zeroing when growing
| * Fixed zeroing in resize_dynamic_array.Barinzaya2024-12-191-3/+5
| | | | | | | | | | | | When a dynamic array has unused capacity and is resized to a size greater than its capacity, the unused part of its capacity wasn't being zeroed.
* | Merge pull request #4533 from laytan/map-entrygingerBill2025-01-061-0/+26
|\ \ | | | | | | add `map_entry` procedure
| * | add `map_entry` procedureLaytan Laats2024-11-281-0/+26
| |/
* / base/runtime: Add `ensure` and `ensure_contextless`Yawning Angel2024-12-251-0/+29
|/ | | | | | | This provides an equivalent to `assert` and `assert_contextless` that are always evaluated, ignoring `ODIN_DISABLE_ASSERT`, which is useful for enforcing API contracts or "asserting" on conditionals with side-effects.
* [runtime] `make(map[K]V)` should not allocate any capacityTetralux2024-11-161-2/+2
| | | | | | | `make(map[K]V)` was resolving to `make_map_cap()` which allocates initial capacity when it wasn't intended to. It now calls `make_map()` which doesn't allocate any capacity. Both `make(map[K]V)` and `make(map[K]V, allocator)` will NOT allocate initial capacity now.
* math/rand: add `choice_bit_set`Laytan Laats2024-10-261-13/+1
|
* Add make_map that just takes an allocator and no capacity, similar to ↵Karl Zylinski2024-10-021-2/+14
| | | | make_dynamic_array. This renames the old make_map to make_map_cap.
* Add documentation to `runtime.container_of`mtarik34b2024-09-291-0/+33
|
* add '#caller_expression'Laytan Laats2024-09-141-2/+2
|
* Added `#any_int` directive to some more builtin slice/dynamic arrayFranz Hoeltermann2024-09-031-10/+10
| | | | procedures
* Add `assert_contextless`, `panic_contextless`, `unimplemented_contextless`gingerBill2024-08-141-0/+27
|
* fix copy-paste error in `make` docsLaytan Laats2024-08-111-2/+2
|
* Type erase `_make_dynamic_array_len_cap`gingerBill2024-07-151-6/+13
|
* Minor clean upsgingerBill2024-07-141-8/+11
|
* Inline `_append_elem_string` furthergingerBill2024-07-141-6/+1
|
* Type erase for `append_elems`gingerBill2024-07-141-32/+33
|
* Type erase `append_elem`gingerBill2024-07-141-29/+29
|
* type erase `resize` and `reserve` internalsgingerBill2024-07-141-22/+21
|
* Imply `#no_capture` to all variadic parametersgingerBill2024-07-141-4/+4
|
* Add more uses of `#no_capture`gingerBill2024-07-141-7/+7
|
* Add `non_zero_*` variants for `#soa` dynamic arraygingerBill2024-07-011-3/+18
|
* Add `#soa` support to `append` directlygingerBill2024-07-011-0/+3
|
* Add #soa forms to reserve, clear, and resizegingerBill2024-07-011-4/+23
|
* Add support for `make(#soa[]T)` etcgingerBill2024-07-011-0/+5
|
* Made default capacity of dynamic arrays more consistent.Karl Zylinski2024-06-291-5/+5
| | | | | | | | | Before this if you do `arr: [dynamic]int` and then append to arr, then it will have capacity 8. But if you did `arr := make([dynamic]int, context.temp_allocator)` then arr would have capacity 16. Now both `arr: [dynamic]int` and `arr := make([dynamic]int, context.temp_allocator)` will resut in arr having zero 0. The only reason to use `make` without an explicit len or cap now is because you want to set it up for a non-default allocator. After the first call to `append` it will now in both cases have capacity 8. I also updated the documentation on the strings builder, both to reflect this, and also to fix it incorrectly saying that len would be 'max(16,len)', which wasn't true even before these changes.
* Merge pull request #3502 from ARtemachka/mastergingerBill2024-06-281-2/+2
|\ | | | | Fix typo in core_builtin
| * Fix typo in core_builtinArtsiom Babukh2024-04-281-2/+2
| |
* | Replace `max(8, 1)` in _append_elem with just `8` and a comment.Karl Zylinski2024-06-251-1/+2
| |
* | Use `#any_int` for `reserve_*` and `resize_*` procsFeoramund2024-06-101-5/+5
|/ | | | Resolves #3088
* Correct `copy_from_string` docsChris2024-04-161-2/+2
|
* Fix `resize` bug caused by typogingerBill2024-03-241-1/+1
|
* Fix `resize` zeroing behaviourgingerBill2024-03-241-0/+3
|