| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Disable usage of AddressSanitizer pending a per-allocator review | Feoramund | 2025-06-15 | 1 | -7/+7 |
| | | | | | | | | | | | | It has been discovered that AddressSanitizer does not keep a 1:1 mapping of which bytes are poisoned and which are not. This can cause issues for allocations less than 8 bytes and where addresses straddle 8-byte boundaries. See the following link for more information: https://github.com/google/sanitizers/wiki/AddressSanitizerAlgorithm#mapping | ||||
| * | runtime: Remove unneeded `max(0, ...)` | Feoramund | 2025-06-13 | 1 | -2/+2 |
| | | | | | | `len` never returns negative numbers, so this was an overcautious expression. | ||||
| * | Merge pull request #5286 from Feoramund/no-san-mem | gingerBill | 2025-06-09 | 1 | -0/+74 |
| |\ | | | | | Add `@(no_sanitize_memory)` with additions to `base:sanitizer` | ||||
| | * | Add `@(no_sanitize_memory)` proc attribute with MSan additions to ↵ | Feoramund | 2025-06-05 | 1 | -0/+74 |
| | | | | | | | | | `base:sanitizer` | ||||
| * | | Add `intrinsics.type_is_bit_field` proc | iarkn | 2025-06-06 | 1 | -0/+1 |
| |/ | |||||
| * | Guard against negative `index` in `inject_at` | Feoramund | 2025-06-04 | 1 | -0/+9 |
| | | | | | Fixes #4595 | ||||
| * | Add missing return cast in 'memory_prefix_length' on amd64 avx2 | Matteo | 2025-06-01 | 1 | -1/+1 |
| | | |||||
| * | Vectorize `strings.prefix_length`. | Jeroen van Rijn | 2025-05-31 | 1 | -0/+68 |
| | | | | | Also add `strings.common_prefix`. | ||||
| * | Rename `SIMD_IS_EMULATED` to capability-affirmative `HAS_HARDWARE_SIMD` | Feoramund | 2025-05-29 | 1 | -8/+9 |
| | | |||||
| * | Vectorize `runtime.memory_*` comparison procedures | Feoramund | 2025-05-29 | 1 | -58/+140 |
| | | |||||
| * | Move `simd.IS_EMULATED` to `runtime.SIMD_IS_EMULATED` | Feoramund | 2025-05-29 | 1 | -0/+5 |
| | | |||||
| * | Remove commented block of code | Feoramund | 2025-05-27 | 1 | -59/+0 |
| | | |||||
| * | Clarify optimization mode affecting use-separate-modules | Jeroen van Rijn | 2025-05-26 | 1 | -2/+8 |
| | | |||||
| * | Clarify Darwin minimum OS version | Jeroen van Rijn | 2025-05-26 | 1 | -3/+3 |
| | | |||||
| * | Typo | Jeroen van Rijn | 2025-05-26 | 1 | -3/+3 |
| | | |||||
| * | Add comments to `builtin.odin`, documenting ODIN_* constants. (#5218) | Jeroen van Rijn | 2025-05-26 | 1 | -7/+223 |
| | | | | And document constants not previously listed. | ||||
| * | new compiler intrinsics type_integer_to_unsigned,type_integer_to_signed | 0xrsp | 2025-05-15 | 1 | -0/+3 |
| | | |||||
| * | Add `compress_values` | gingerBill | 2025-05-12 | 1 | -1/+2 |
| | | |||||
| * | require the __asan_unpoison_memory_region runtime symbol so empty projects ↵ | Laytan Laats | 2025-05-09 | 1 | -0/+1 |
| | | | | | with asan enabled build | ||||
| * | Merge pull request #5064 from harold-b/hb/objc-classes | gingerBill | 2025-05-08 | 2 | -7/+23 |
| |\ | | | | | Add support for Objective-C class implementation | ||||
| | * | Implement all checker specification for Objective-C class implementations ↵ | Harold Brenes | 2025-05-03 | 1 | -1/+1 |
| | | | | | | | | | and `objc_ivar_get` intrinsic | ||||
| | * | Go back to `objc_ivar_get` instead of `ivar_get`. | Harold Brenes | 2025-04-30 | 1 | -1/+1 |
| | | | |||||
| | * | Add initial support for Objective-C class implementation | Harold Brenes | 2025-04-20 | 2 | -7/+23 |
| | | | |||||
| * | | Merge pull request #5122 from Lperlind/asan-allocators | gingerBill | 2025-05-07 | 5 | -4/+111 |
| |\ \ | | | | | | | Add asan support for various allocators and stack unpoisoning | ||||
| | * | | Cleanup | Lucas Perlind | 2025-05-07 | 1 | -3/+1 |
| | | | | |||||
| | * | | Fix wasi_wasm | Lucas Perlind | 2025-05-06 | 1 | -1/+1 |
| | | | | |||||
| | * | | Add asan support for various allocators | Lucas Perlind | 2025-05-06 | 5 | -4/+113 |
| | | | | |||||
| * | | | Added alternate reduce-add/reduce-mul intrinsics. | Barinzaya | 2025-05-05 | 1 | -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 docs | gingerBill | 2025-05-05 | 1 | -1/+1 |
| | | | |||||
| * | | Document base:sanitizer | Lucas Perlind | 2025-04-29 | 2 | -6/+262 |
| | | | |||||
| * | | Remove dependency on runtime; Add to examples | Lucas Perlind | 2025-04-24 | 1 | -23/+9 |
| | | | |||||
| * | | Add base:sanitizer package | Lucas Perlind | 2025-04-24 | 1 | -48/+50 |
| | | | |||||
| * | | make asan procs contextless | Lucas Perlind | 2025-04-24 | 1 | -32/+32 |
| | | | |||||
| * | | make vet happy | Lucas Perlind | 2025-04-24 | 1 | -3/+3 |
| | | | |||||
| * | | Add more asan support to the odin runtime and begin sanitizing | Lucas Perlind | 2025-04-24 | 1 | -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` | gingerBill | 2025-04-16 | 1 | -0/+29 |
| | | |||||
| * | Remove Type_Info_Tuple | Jeroen van Rijn | 2025-04-13 | 1 | -1/+0 |
| | | |||||
| * | Support subtargets in build tags: `#build darwin:generic` and `#build ↵ | gingerBill | 2025-04-10 | 1 | -0/+4 |
| | | | | | linux:android, darwin:ios` | ||||
| * | Fix use of errno on OpenBSD. | Dave Voutila | 2025-03-27 | 1 | -1/+1 |
| | | |||||
| * | Merge pull request #4836 from laytan/fix-wrong-out-of-memory | gingerBill | 2025-03-20 | 1 | -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 Laats | 2025-02-12 | 1 | -6/+7 |
| | | | | | | | | | source of truth | ||||
| * | | Fix #4903 | gingerBill | 2025-03-03 | 1 | -1/+3 |
| | | | |||||
| * | | Merge pull request #4466 from Barinzaya/simd_extract_msbs | gingerBill | 2025-02-24 | 1 | -0/+3 |
| |\ \ | | | | | | | SIMD Extract MSbs/LSbs Intrinsics | ||||
| | * | | Added simd_extract_lsbs intrinsic as well. | Barinzaya | 2025-02-24 | 1 | -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. | Barinzaya | 2025-02-24 | 1 | -0/+2 |
| | | | | |||||
| * | | | Add `@(require_results)` to random generator | gingerBill | 2025-02-24 | 1 | -0/+1 |
| |/ / | |||||
| * | | Fix `typeid` size for 32-bit platforms | gingerBill | 2025-02-20 | 1 | -0/+2 |
| | | | |||||
| * | | Keep -vet happy | gingerBill | 2025-02-20 | 1 | -1/+1 |
| | | | |||||
| * | | Change `typeid` definition to be based around the canonical type hash | gingerBill | 2025-02-20 | 1 | -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. | Barinzaya | 2025-01-24 | 1 | -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. | ||||