Lucas Perlind
5c117bde6d
Add base:sanitizer package
2025-04-24 20:28:32 +10:00
Lucas Perlind
ab0b26e876
Add more asan support to the odin runtime and begin sanitizing
...
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.
2025-04-24 15:17:51 +10:00
gingerBill
1cf7a56ba7
General clean up of code
2025-01-01 15:13:46 +00:00
gingerBill
8006ba919e
Improve formatting
2024-10-11 14:48:55 +01:00
gingerBill
0d33df15b4
Merge pull request #4208 from laytan/more-wasm-vendor-support
...
wasm: support more vendor libraries
2024-09-17 11:37:10 +01:00
flysand7
e90f5d2528
[mem]: Adjust the docs on the buddy allocator
2024-09-14 10:03:04 +11:00
Laytan Laats
5ae27c6ebc
wasm: support more vendor libraries
...
Adds support for:
- box2d
- cgltf
- stb image
- stb rect pack
2024-09-09 18:49:13 +02:00
flysand7
167ced8ad1
[mem]: Don't use named params for dynamic pool in tests
2024-09-08 18:52:55 +11:00
flysand7
05df34f99c
[mem]: Start documenting allocators.odin
2024-09-08 18:44:33 +11:00
flysand7
299accb717
[mem]: Put panic allocator after nil allocator, adjust @require_results
2024-09-08 14:17:32 +11:00
flysand7
f1f5dc614e
[mem]: Remove old comments
2024-09-08 11:17:27 +11:00
flysand7
6eb80831b5
[mem]: Panic when allocator is not initialized
2024-09-08 11:12:28 +11:00
flysand7
6017a20e1c
[mem]: Make resize_bytes take a slice for the old memory
2024-09-07 15:11:04 +11:00
flysand7
2d988bbc5f
[mem]: Rename alloc to alloc_bytes and add alloc
2024-09-07 14:45:15 +11:00
flysand7
c0112d1c70
[mem]: Add free_all for buddy allocator
2024-09-07 13:27:17 +11:00
flysand7
c0e17808d4
[mem]: Split alloc and alloc_non_zeroed for buddy allocator
2024-09-07 13:26:09 +11:00
flysand7
6d3cffa13c
[mem]: Add @require_results to all functions returning values
2024-09-07 13:14:58 +11:00
flysand7
b350a35b77
[mem]: Add resize_non_zeroed variant to dynamic arena, and rename pool to arena
2024-09-07 13:10:29 +11:00
flysand7
03f6b9bbf6
[mem]: Add alloc_non_zeroed variant to dynamic pool
2024-09-07 12:59:19 +11:00
flysand7
f8641ddd1b
[mem]: Rename dynamic pool to dynamic arena
2024-09-07 12:33:12 +11:00
flysand7
aea3e9a585
[mem]: Fix vet errors
2024-09-07 12:26:47 +11:00
flysand7
4843db0960
[mem]: API for using small stack allocator directly
2024-09-07 12:23:55 +11:00
flysand7
de220a9aa5
[mem]: Remove the extra word 'allocator' in procedures
2024-09-07 11:07:06 +11:00
flysand7
9750b64096
[mem]: API for using stack allocator directly
2024-09-07 10:55:54 +11:00
flysand7
834f082dba
[mem]: Initialize scratch allocator during calls to free and resize
2024-09-07 10:24:00 +11:00
flysand7
e5106e48a8
[mem]: API for using scratch allocator directly
2024-09-07 10:09:05 +11:00
flysand7
da6213196d
[mem]: API for using arena directly
2024-09-07 09:42:04 +11:00
flysand7
2b9096517c
[mem]: Code formatting
2024-09-07 09:20:56 +11:00
DerTee
6b373cf49e
fix #3692 memory alignment bug in core:mem.dynamic_pool_alloc_bytes
2024-07-03 22:14:28 +02:00
Laytan Laats
0530f86a48
fix: buddy allocator wrong query info pointer
2024-04-28 16:09:03 +02:00
gingerBill
65277ddd6b
Add missing attribute
2024-03-06 16:30:39 +00:00
gingerBill
46718d6d85
Add Query_Info to Buddy_Allocator
2024-03-06 16:26:10 +00:00
gingerBill
2a0543d2f0
Add mem.Buddy_Allocator
2024-03-06 16:14:45 +00:00
gingerBill
792f06a234
Fix indentation
2024-03-06 15:29:07 +00:00
gingerBill
539cec7496
Move Tracking_Allocator to its own file.
2024-02-01 13:01:38 +00:00
gingerBill
3e7e779abf
Replace core:* to base:* where appropriate
2024-01-28 22:18:51 +00:00
Colin Davidson
991c1d4446
add resize_non_zeroed to query features
2024-01-17 13:27:19 -08:00
Colin Davidson
58e4a011c7
add non-zeroing append and resize
2023-12-04 00:08:13 -08:00
flysand7
270348b112
[core]: Remove do keyword from the core library
2023-11-11 20:36:38 +11:00
Benjamin Findley
7e4a65114a
fix whitespace
2023-08-15 08:49:27 -07:00
Benjamin Findley
38e06f13d6
prevent potential segfaults when using large allocations from dynamic pool
2023-08-11 11:49:31 -07:00
gingerBill
44ea82f845
Clean up usage of using throughout core and vendor
2023-07-31 11:46:40 +01:00
gingerBill
3d9328fd79
Default to panic allocator for wasm targets
2023-06-26 15:55:52 +01:00
gingerBill
762747273e
Add mutex to mem.Tracking_Allocator
2023-05-25 11:58:02 +01:00
gingerBill
600c97cc0f
Add missing Allocator_Error and @(require_results) to many procedures
2023-05-22 11:34:38 +01:00
hikari
d904ae5191
Replaced opaque bit-shifts with readable constants for memory units
2022-12-24 08:27:15 +02:00
gingerBill
15bbdb2030
Merge pull request #2181 from odin-lang/map-dev
...
New `map` internals
2022-11-17 15:29:28 +00:00
Michael Freundorfer
f323a179d9
Handle freeing nil in scratch allocator
2022-11-14 21:44:20 +01:00
gingerBill
f2f2d532f5
Add extra calls to Tracking_Allocator
2022-11-09 22:31:49 +00:00
gingerBill
366779f8c7
Fix bug with allocator not getting set on a map
2022-11-08 16:06:10 +00:00