mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Update max memory.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user