let keep; unchecked fn churn(n) { let i = 0, p; while (i < n) { p = new(10); p[0] = i; if (i % 100 == 0) keep = p; i++; } return 0; } fn main() { let base = live_objects(), f; churn(1000); putn(live_objects() - base); putc(' '); f = gc(); putn(f >= 990); putc(' '); // conservative: a stale word or two may keep one alive putn(keep[0]); putc(' '); // the one a global still points at survives churn(200000); // 3.2m words through a 393k word heap: needs the automatic collector putn(gc_runs > 1); putc(' '); putn(keep[0]); putc(10); return 0; }