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); put_n(live_objects() - base); put_c(' '); f = gc(); put_n(f >= 990); put_c(' '); // conservative: a stale word or two may keep one alive put_n(keep[0]); put_c(' '); // the one a global still points at survives churn(200000); // 3.2m words through a 393k word heap: needs the automatic collector put_n(gc_runs > 1); put_c(' '); put_n(keep[0]); put_c(10); return 0; }