feat: export gc_clear_marks + gc_mark_select_tree; remove clear from gc_sweep (phase 6)

- Add gc_clear_marks(): iterates intern table and zeroes all gc_mark bits
- Rename static gc_mark_tree → public gc_mark_select_tree (no attribute((unused)))
- Remove Phase 6 guard (live_jobs != NULL early return) from gc_sweep_select_nodes
- Remove the mark-clear loop from gc_sweep_select_nodes; add (void) casts for now-unused params
- Declare gc_clear_marks and gc_mark_select_tree in resreq.h with protocol comment
- Add TDD test test_gc_clear_marks_exported verifying the exported primitives
- Prefix all existing gc_sweep_select_nodes(NULL, 0) call sites in test_select.c with gc_clear_marks()
This commit is contained in:
Rongsong Shen 2026-04-30 03:40:24 +00:00
parent bb4a95ce37
commit 9a19a8f932
3 changed files with 1372 additions and 55 deletions

File diff suppressed because it is too large Load diff