From fe6f462cdb655cc7f34ffbcc4de81bab32a5f3fc Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sat, 29 Mar 2025 05:55:42 -0700 Subject: [PATCH] actually lets downgrade mimalloc --- cmake/targets/BuildMimalloc.cmake | 2 +- src/allocators/mimalloc.zig | 3 +++ src/allocators/mimalloc_arena.zig | 2 +- src/bun.js/bindings/workaround-missing-symbols.cpp | 2 ++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/cmake/targets/BuildMimalloc.cmake b/cmake/targets/BuildMimalloc.cmake index 650796b5f3..d259e57ac4 100644 --- a/cmake/targets/BuildMimalloc.cmake +++ b/cmake/targets/BuildMimalloc.cmake @@ -4,7 +4,7 @@ register_repository( REPOSITORY oven-sh/mimalloc COMMIT - 7d4ee623861ddd5561503a5205df7cf8e8d0623c + 7085b6cec31641fddaca3d40932cda82e91baf07 ) set(MIMALLOC_CMAKE_ARGS diff --git a/src/allocators/mimalloc.zig b/src/allocators/mimalloc.zig index f4f2ccc774..44c89b7393 100644 --- a/src/allocators/mimalloc.zig +++ b/src/allocators/mimalloc.zig @@ -212,3 +212,6 @@ inline fn mi_malloc_satisfies_alignment(alignment: usize, size: usize) bool { return (alignment == @sizeOf(*anyopaque) or (alignment == MI_MAX_ALIGN_SIZE and size >= (MI_MAX_ALIGN_SIZE / 2))); } + +pub const mi_arena_id_t = ?*anyopaque; +pub extern fn mi_heap_new_ex(heap_tag: c_int, allow_destroy: bool, arena_id: mi_arena_id_t) ?*Heap; diff --git a/src/allocators/mimalloc_arena.zig b/src/allocators/mimalloc_arena.zig index 52277695fd..b0d82f8dbd 100644 --- a/src/allocators/mimalloc_arena.zig +++ b/src/allocators/mimalloc_arena.zig @@ -186,7 +186,7 @@ pub const Arena = struct { } pub fn init() !Arena { - const arena = Arena{ .heap = mimalloc.mi_heap_new() orelse return error.OutOfMemory }; + const arena = Arena{ .heap = mimalloc.mi_heap_new_ex(0, true, null) orelse return error.OutOfMemory }; // if (comptime Environment.isDebug) { // ArenaRegistry.register(arena); // } diff --git a/src/bun.js/bindings/workaround-missing-symbols.cpp b/src/bun.js/bindings/workaround-missing-symbols.cpp index e55f4d2991..d378c90494 100644 --- a/src/bun.js/bindings/workaround-missing-symbols.cpp +++ b/src/bun.js/bindings/workaround-missing-symbols.cpp @@ -261,3 +261,5 @@ extern "C" bool icu_hasBinaryProperty(UChar32 cp, unsigned int prop) { return u_hasBinaryProperty(cp, static_cast(prop)); } + +extern "C" __attribute__((weak)) void mi_thread_set_in_threadpool() {}