Commit Graph

9 Commits

Author SHA1 Message Date
Kai Tamkun
83704566e5 Merge branch 'main' into kai/memory-usage 2025-08-14 14:30:49 -07:00
Kai Tamkun
9616c88583 Merge branch 'jarred/mimalloc-upgrade-v3' into kai/memory-usage 2025-08-13 18:19:06 -07:00
taylor.fish
8d40ee17ed Add thread safety checks to MimallocArena (#21806)
Make sure allocations happen on the same thread.

(For internal tracking: fixes STAB-919)
2025-08-12 22:25:04 -07:00
taylor.fish
41b1efe12c Rename disabled parameter in Output.scoped (#21769)
It's very confusing.

(For internal tracking: fixes STAB-977)
2025-08-11 20:19:34 -07:00
taylor.fish
a57dee5721 Various safety improvements (safety.ThreadLock, stack traces, MimallocArena, RefCount, safety.alloc) (#21726)
* Move `DebugThreadLock` to `bun.safety`
* Enable in `ci_assert` builds, but store stack traces only in debug
builds
  * Reduce size of struct by making optional field non-optional
* Add `initLockedIfNonComptime` as a workaround for not being able to
call `initLocked` in comptime contexts
* Add `lockOrAssert` method to acquire the lock if unlocked, or else
assert that the current thread acquired the lock
* Add stack traces to `CriticalSection` and `AllocPtr` in debug builds
* Make `MimallocArena.init` infallible
* Make `MimallocArena.heap` non-nullable
* Rename `RefCount.active_counts` to `raw_count` and provide read-only
`get` method
* Add `bun.safety.alloc.assertEq` to assert that two allocators are
equal (avoiding comparison of undefined `ptr`s)

(For internal tracking: fixes STAB-917, STAB-918, STAB-962, STAB-963,
STAB-964, STAB-965)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-11 13:40:07 -07:00
taylor.fish
a1f44caa87 Simplify mimalloc alignment check (#21497)
This slightly reduces memory use.

Maximum memory use of `bun test html-rewriter`, averaged across 100
iterations:

* 101975 kB without this change
* 101634 kB with this change

I also tried changing the code to always use the aligned allocation
functions, but this slightly increased memory use, to 102160 kB.

(For internal tracking: fixes ENG-19866)
2025-07-30 14:30:47 -07:00
Kai Tamkun
0ecb121199 Merge branch 'main' into jarred/mimalloc-upgrade-v3 2025-07-28 14:56:50 -07:00
taylor.fish
712d5be741 Add safety checks to MultiArrayList and BabyList (#21063)
Ensure we aren't using multiple allocators with the same list by storing
a pointer to the allocator in debug mode only.

This check is stricter than the bare minimum necessary to prevent
illegal behavior, so CI may reveal certain uses that fail the checks but
don't cause IB. Most of these cases should probably be updated to comply
with the new requirements—we want these types' invariants to be clear.

(For internal tracking: fixes ENG-14987)
2025-07-25 18:12:21 -07:00
taylor.fish
07cd45deae Refactor Zig imports and file structure (part 1) (#21270)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-22 17:51:38 -07:00