Update max memory.

This commit is contained in:
Christoffer Lerno
2025-07-04 17:46:02 +02:00
parent ae1d51d089
commit fa50268b4e
3 changed files with 8 additions and 9 deletions

View File

@@ -76,13 +76,13 @@ void compiler_init(BuildOptions *build_options)
compiler.context.module_list = NULL;
compiler.context.generic_module_list = NULL;
compiler.context.method_extensions = NULL;
vmem_init(&ast_arena, 512);
vmem_init(&ast_arena, 4096);
ast_calloc();
vmem_init(&expr_arena, 512);
vmem_init(&expr_arena, 4096);
expr_calloc();
vmem_init(&decl_arena, 256);
vmem_init(&decl_arena, 4096);
decl_calloc();
vmem_init(&type_info_arena, 256);
vmem_init(&type_info_arena, 4096);
type_info_calloc();
// Create zero index value.
if (build_options->std_lib_dir)

View File

@@ -17,8 +17,8 @@ static Vmem char_arena;
void memory_init(size_t max_mem)
{
if (max_mem) vmem_set_max_limit(max_mem);
vmem_init(&arena, 2048);
vmem_init(&char_arena, 512);
vmem_init(&arena, 4096);
vmem_init(&char_arena, 2048);
allocations_done = 0;
arena_zero = (uintptr_t)arena.ptr;
vmem_alloc(&arena, 16);

View File

@@ -28,7 +28,7 @@ static inline void mmap_init(Vmem *vmem, size_t size)
}
#elif PLATFORM_POSIX
void* ptr = NULL;
size_t min_size = size / 16;
size_t min_size = size / 32;
if (min_size < 1) min_size = size;
while (size >= min_size)
{
@@ -74,8 +74,7 @@ static inline void* mmap_allocate(Vmem *vmem, size_t to_allocate)
if (vmem->size < allocated_after)
{
error_exit("Fatal Error! The compiler ran out of memory: more than %u MB was allocated from a single memory arena, "
"exceeding the current maximum limit. Perhaps you called some recursive macro? "
"Note that you can increase the max memory using the command line setting '--max-mem <limit in MB>' and attempt compiling again.",
"exceeding the current maximum limit. Perhaps you called some recursive macro?",
(unsigned)(vmem->size / (1024 * 1024)));
}
return ptr;