Commit Graph

3 Commits

Author SHA1 Message Date
Bob Nystrom
21d600ebe5 fix: increase default GC heap threshold from 1MB to 10MB in newVM
The default garbage collection trigger threshold in newVM() is raised from 1024*1024 (1MB) to 1024*1024*10 (10MB) to reduce GC frequency for larger workloads. Additionally, the DEBUG_GC_STRESS macro in common.h is commented out to disable stress-test GC collections on every allocation by default.
2013-11-16 19:43:40 +00:00
Bob Nystrom
5930aacb24 feat: replace boxed Obj bool/null with direct VAL_TRUE/FALSE_VAL/NULL_VAL macros 2013-11-16 19:35:59 +00:00
Bob Nystrom
944591339f feat: implement mark-sweep garbage collector with object linked list and pinned roots
Replace manual malloc/free for Obj allocations with GC-managed heap. Add Obj->next linked list, markObj traversal for all object types, and sweep phase in VM. Introduce MAX_PINNED stack for temporary GC roots during compilation. Refactor all object constructors (newBool, newFunction, newClass, newNum, newString) to accept VM pointer and register allocations. Move function constant registration earlier in compiler to ensure GC reachability. Add DEBUG_GC_STRESS and TRACE_MEMORY macros in new common.h header.
2013-11-12 16:32:35 +00:00