aboutsummaryrefslogtreecommitdiff
path: root/base
Commit message (Collapse)AuthorAgeFilesLines
* Add missing return cast in 'memory_prefix_length' on amd64 avx2Matteo2025-06-011-1/+1
|
* Vectorize `strings.prefix_length`.Jeroen van Rijn2025-05-311-0/+68
| | | | Also add `strings.common_prefix`.
* Rename `SIMD_IS_EMULATED` to capability-affirmative `HAS_HARDWARE_SIMD`Feoramund2025-05-291-8/+9
|
* Vectorize `runtime.memory_*` comparison proceduresFeoramund2025-05-291-58/+140
|
* Move `simd.IS_EMULATED` to `runtime.SIMD_IS_EMULATED`Feoramund2025-05-291-0/+5
|
* Remove commented block of codeFeoramund2025-05-271-59/+0
|
* Clarify optimization mode affecting use-separate-modulesJeroen van Rijn2025-05-261-2/+8
|
* Clarify Darwin minimum OS versionJeroen van Rijn2025-05-261-3/+3
|
* TypoJeroen van Rijn2025-05-261-3/+3
|
* Add comments to `builtin.odin`, documenting ODIN_* constants. (#5218)Jeroen van Rijn2025-05-261-7/+223
| | | And document constants not previously listed.
* new compiler intrinsics type_integer_to_unsigned,type_integer_to_signed0xrsp2025-05-151-0/+3
|
* Add `compress_values`gingerBill2025-05-121-1/+2
|
* require the __asan_unpoison_memory_region runtime symbol so empty projects ↵Laytan Laats2025-05-091-0/+1
| | | | with asan enabled build
* Merge pull request #5064 from harold-b/hb/objc-classesgingerBill2025-05-082-7/+23
|\ | | | | Add support for Objective-C class implementation
| * Implement all checker specification for Objective-C class implementations ↵Harold Brenes2025-05-031-1/+1
| | | | | | | | and `objc_ivar_get` intrinsic
| * Go back to `objc_ivar_get` instead of `ivar_get`.Harold Brenes2025-04-301-1/+1
| |
| * Add initial support for Objective-C class implementationHarold Brenes2025-04-202-7/+23
| |
* | Merge pull request #5122 from Lperlind/asan-allocatorsgingerBill2025-05-075-4/+111
|\ \ | | | | | | Add asan support for various allocators and stack unpoisoning
| * | CleanupLucas Perlind2025-05-071-3/+1
| | |
| * | Fix wasi_wasmLucas Perlind2025-05-061-1/+1
| | |
| * | Add asan support for various allocatorsLucas Perlind2025-05-065-4/+113
| | |
* | | Added alternate reduce-add/reduce-mul intrinsics.Barinzaya2025-05-051-0/+4
|/ / | | | | | | | | | | | | | | | | | | The new reduce_add/reduce_mul procs perform the corresponding arithmetic reduction in different orders than sequential order. These alternative orders can often offer better SIMD hardware utilization. Two different orders are added: pair-wise (operating on pairs of adjacent elements) or bisection-wise (operating element-wise on the first and last N/2 elements of the vector).
* | Add `simd.indices` and docsgingerBill2025-05-051-1/+1
| |
* | Document base:sanitizerLucas Perlind2025-04-292-6/+262
| |
* | Remove dependency on runtime; Add to examplesLucas Perlind2025-04-241-23/+9
| |
* | Add base:sanitizer packageLucas Perlind2025-04-241-48/+50
| |
* | make asan procs contextlessLucas Perlind2025-04-241-32/+32
| |
* | make vet happyLucas Perlind2025-04-241-3/+3
| |
* | Add more asan support to the odin runtime and begin sanitizingLucas Perlind2025-04-241-0/+311
|/ | | | | | | | | | | | | | | | | | | | | | allocators This adds various bindings to the asan runtime which can be used to poison/unpoison memory handed out by various allocators. This means we can catch use after free memory bugs when using operations such as free_all during runtime. Asan poisoning are added for the follow allocators in mem: Arena (including temporary arenas) Scratch Stack Small_Stack Additionally a bug in the stack allocator was fixed to disallow freeing in the middle of the stack (caught by the asan!). I plan on adding support for all the allocators in core. This is just a good starting point and were some of the easiest ones to implement asan for.
* Change hashing rules for float-like types to make `0 == -0`gingerBill2025-04-161-0/+29
|
* Remove Type_Info_TupleJeroen van Rijn2025-04-131-1/+0
|
* Support subtargets in build tags: `#build darwin:generic` and `#build ↵gingerBill2025-04-101-0/+4
| | | | linux:android, darwin:ios`
* Fix use of errno on OpenBSD.Dave Voutila2025-03-271-1/+1
|
* Merge pull request #4836 from laytan/fix-wrong-out-of-memorygingerBill2025-03-201-6/+7
|\ | | | | fix wrong out of memory in edge cases, just try allocate from block for one source of truth
| * fix wrong out of memory in edge cases, just try allocate from block for one ↵Laytan Laats2025-02-121-6/+7
| | | | | | | | source of truth
* | Fix #4903gingerBill2025-03-031-1/+3
| |
* | Merge pull request #4466 from Barinzaya/simd_extract_msbsgingerBill2025-02-241-0/+3
|\ \ | | | | | | SIMD Extract MSbs/LSbs Intrinsics
| * | Added simd_extract_lsbs intrinsic as well.Barinzaya2025-02-241-0/+1
| | | | | | | | | | | | | | | Equivalent to the simd_extract_msbs intrinsic, except it extracts the least significant bit of each element instead.
| * | Added simd_extract_msbs intrinsic.Barinzaya2025-02-241-0/+2
| | |
* | | Add `@(require_results)` to random generatorgingerBill2025-02-241-0/+1
|/ /
* | Fix `typeid` size for 32-bit platformsgingerBill2025-02-201-0/+2
| |
* | Keep -vet happygingerBill2025-02-201-1/+1
| |
* | Change `typeid` definition to be based around the canonical type hashgingerBill2025-02-201-47/+9
|/ | | | | | | | `typeid` used to be a fancy index with extra metadata stored on it. Now it is direct hash of the type. This is safe to do in practice since any possible collisions are checked at compile time AND the chances of having a 1% collision are around 1 in 600K (see the Birthday Paradox). Therefore accessing a `^Type_Info` is now a hash table lookup with linear probing. The table is twice the size than necessary so prevent too much probing due to an overly dense hash table.
* Added support for growing in place to some arenas.Barinzaya2025-01-241-4/+18
| | | | | | | | | | | | | This affects `runtime.Arena` and `virtual.Arena`, but not currently `mem.Arena`. These changes allow the last allocation that has been made to be resized to a larger size by just extending their allocation in-place, when there's sufficient room in the memory block to do so. Shrinking in place and re-using the rest of the allocation can be supported using almost the same logic, but would require the memory to be zeroed. Since this would add a additional cost that isn't currently present, shrinking has not been changed.
* Add `priority_index` to `Foundation.framework` import in `base:runtime`gingerBill2025-01-221-0/+1
|
* fix map_entry sometimes giving wrong key pointerLaytan Laats2025-01-181-10/+27
| | | | | | | `map_desired_position` does not return the actual position, probing must be done afterwards to figure out the real position. `map_entry` did not do this for the returned key pointer so it could point to the wrong key if probing was done.
* Fix: Issue with non-zeroed memory after arena_temp_and;alektron2025-01-151-1/+2
| | | | Fix: total_used field of growing Arena was not decremented correctly in arena_temp_end;
* 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-062-0/+49
|\ \ | | | | | | add `map_entry` procedure