Skip to content

Implement incremental and generational GC and document performance roadmap#8

Open
alexryndin wants to merge 1 commit into
masterfrom
p15.30.1-performance-roadmap
Open

Implement incremental and generational GC and document performance roadmap#8
alexryndin wants to merge 1 commit into
masterfrom
p15.30.1-performance-roadmap

Conversation

@alexryndin

Copy link
Copy Markdown
Contributor

Summary

  • replace deferred full-collection GC steps with persistent incremental pause -> propagate -> atomic -> sweep phases;
  • implement a PUC-like generational collector with object ages, nursery registries, remembered sets, write barriers, minor/major transitions, weak tables and finalizers;
  • fix automatic GC pacing after collectgarbage("restart");
  • add regression tests for generational minor collections and restart pacing;
  • update README with the completed GC work, measured performance bottlenecks and roadmap P15.31-P15.37.

Changed files

  • README.md
  • src/lua/vm.zig
  • tests/smoke/43_generational_minor.lua
  • tests/smoke/44_gc_restart_pace.lua

Verification performed before upload

  • Zig 0.16.0 Debug build and unit tests;
  • 44/44 differential smoke tests;
  • iterative dispatch stress under a 1 MiB host stack;
  • 29/29 portable/soft upstream suites;
  • direct gc.lua, constructs.lua, and verybig.lua;
  • full gengc.lua --testc lane.

The branch contains one source commit relative to master; no staging, workflow, archive, base64, generated timing cache, Zig cache, or build artifacts are included.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant