rptb1
- Karma
- 26
- Created
- September 14, 2012 (13y ago)
- Submissions
- 0
Richard Brooksby
https://www.ravenbrook.com/consultants/rb/
http://www.linkedin.com/in/richardbrooksby
etc.
[ my public key: https://keybase.io/rptb1; my proof: https://keybase.io/rptb1/sigs/Yb00f8EkL7zPAf23EdyvKaF7F2_YBq82rSb3nHYowiY ]
It would be excellent to have the Definition available online. MLWorks originated with a contract to develop a very strict implementation of the Definition, and we were quite proud of being truly Standard ML.
Why thank you. Although we've opened the coffin, we've yet to reanimate the corpse. Anyone who'd like to help out, please take a look at https://github.com/Ravenbrook/mlworks/wiki/Roadmap
I think we'd need a more careful definition of "handle" there! And we're definitely not proselytizing garbage collection here. The MPS is a framework for both manual and automatic memory management (and co-operation…
This is a really interesting topic and I could fill your screens with a wall of text. It's true that the MPS currently does not collect concurrently, however the only thing that makes it not-concurrent is a critical…
There is currently a "global pause" to scan thread registers and stacks at "flip", but that's all. Is that what you meant? Since we're just moving our commercial clients onto 64-bit, we don't have experience except up…
Perhaps you could write to mps-questions and we can have a chat about it.
Sure. The MPS approach that's deployed commercially is to use an unfashionable hardware read barrier to amortize the cost of the pointer rewrite, allowing the heap to be compacted incrementally. There's nothing that…
Yes indeed I'm very aware of this. The overall architecture and abstractions can support efficient multi-core operation, but the implementation is behind. Development is mostly paid for by single-threaded clients at the…
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...
I can't give you figures right now, but the reason we have commercial clients for the MPS is that we have extremely low pause times. Side-by-side comparisons are expensive to arrange. I'm working on that :)
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…
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…
I should probably clarify that little bit of hyperbole. We do track known issues (of course), but bugs in production are extremely rare -- about one per year.
It's an extremely simple toy intended to help people understand how to integrate the MPS, rather than show it off. But have at it!