On Sunday, July 7th, 2024 at 09:24, Gerd Möllmann wrote: > Pip Cet pipcet@protonmail.com writes: > > > > Hm, maybe we are missing out on something here, in igc. I don't remember > > > > that I balance in igc. > > > > Do we remove intervals at all with igc? It looks to me like they're > > partially-weak objects, effectively, and we scan them strongly, > > removing them only when the buffer dies? > > > Balancing only changes the tree structure, without freeing nodes, AFAIR. > But that could be wrong. It's been a long time since I looked closer at > that tree. > > Wrt to weakness, I don't think there are weak references. Oh, you're right! That's a relief. > The big > difference to the non-MPS case is that struct interval is subject to GC > at all, they are malloc'd without igc. I didn't see another way to > handle their plist otherwise. Making them malloc'd roots would have > meant too many roots for my taste. I have currently ca. 20.000 live > intervals for example, after GC. Does there have to be a big difference at all, or is it possible the test is broken on vanilla Emacs, and it just so happens that GC happens at the right time and hides that bug? The attached patch to Emacs master makes make -C test lisp/emacs-lisp/ert-tests run out of memory for me (again, on master, nothing special). I don't think it should: all it does is modify the test that runs before. So is it possible this isn't all that MPS-specific? Pip