Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Is there any documentation that says what this does/how it works? The documentation on the web site seems to be for people already familiar with the code.

e.g. how does it compare with the Boehm collector?



Looks like it's a precise GC, not a conservative GC like Boehm. That means that your language has to provide a list of roots manually, while Boehm discovers them automatically. The downside is that Boehm can misidentify pointers (and it also has to jump through extra hoops to achieve incremental and generational collection, while in MPS it should be more straightforward).


It's both a precise and conservative GC, depending on what you declare to it, and which pool classes you use. In commercial deployment and in Open Dylan it's a mostly-copying GC (i.e. a mixture of both) see http://www.memorymanagement.org/glossary/m.html#mostly-copyi...


Old but still reasonably accurate for a high-level view is the original "open source" announcement paper http://www.ravenbrook.com/project/mps/doc/2002-01-30/ismm200...


There's a good bit of design documentation here: http://www.ravenbrook.com/project/mps/master/design/

And hopefully this will change forms in the coming months to something more modern / up to date.

There's also some stuff here: http://www.ravenbrook.com/project/mps/master/manual/wiki/

MPS allows for precise rather than conservative GC. It supports doing copying collectors (see poolamc in the design docs for example).

It has some pretty nice telemetry and event logging as well.

Overall, I really like MPS and it is pretty powerful. It is a nicely structured library. It is more work to use than Boehm, but it does more than Boehm.


Yeah we're not really a drop-in malloc replacement like Boehm, though we could have some glue which deploys the MPS like that. Take a look at the Scheme example to see how the MPS integrates at present http://www.ravenbrook.com/project/mps/version/1.110/example/...




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: