Commit Graph

7 Commits

Author SHA1 Message Date
Jose Luis Montañes Ojados
667e5564b8 refactor(allocator): use memset when creating allocator 2026-02-16 05:16:41 +01:00
Jose Luis Montañes Ojados
84b3abbfda Add while loops, GC mark-and-sweep, and malloc block reuse
- Lexer: add INDENT/DEDENT tokens, <, >, : operators, while keyword,
  closing DEDENT emission, include guards
- Parser: add NODE_WHILE with while_loop union, parse while/cond/body
  blocks, include guards
- Eval: add while loop evaluation, GC integration with roots from env,
  debug and gc flags, <, > comparison operators
- GC: implement mark-and-sweep collector with 3 stages (mark roots,
  sweep unmarked, join free blocks)
- Allocator: block reuse via first-fit search with splitting, exponential
  heap growth, NULL check on malloc, include guards, marked field in metadata
- Object: add include guards, fix include to use allocator.h
2026-02-16 04:55:52 +01:00
Jose Luis Montañes Ojados
14b6a2ddd2 Add * and / operators, VM step debugger, and visualizer tweaks
Support multiply and divide in lexer, parser and eval.
Add step-by-step VM debug output with AST and heap visualization.
Remove spacing in visualizer hex output.
2026-02-16 02:24:37 +01:00
Jose Luis Montañes Ojados
d14227efeb Add list type, obj_free for compound types, and self-reference guard
- Implement OBJ_LIST with offset-based items array and capacity
- obj_free now releases child allocations (string buffer, list items)
- obj_print detects self-referencing lists to prevent infinite recursion
- Visualizer distinguishes freed blocks (JLANG_NOT_USE) from active ones
- JLANG_free now zeroes payload on release
2026-02-16 00:33:02 +01:00
Jose Luis Montañes Ojados
13c9d052a0 Refactor allocator to use offsets instead of absolute pointers
JLANG_malloc now returns size_t offsets relative to the heap buffer,
making all references stable across heap growth (realloc). Object API
updated accordingly: constructors return offsets, obj_print/obj_free
receive (allocator, offset). Added heap auto-grow when out of space.
2026-02-15 23:17:51 +01:00
Jose Luis Montañes Ojados
5dc0946a19 add JLANG_free and Object 2026-02-15 22:12:19 +01:00
Jose Luis Montañes Ojados
c90883ac27 base allocator logic 2026-02-15 20:57:19 +01:00