mps
mps copied to clipboard
Refactor the RefSet value type into a structure type
As https://www.ravenbrook.com/project/mps/branch/ says:
Converting the RefSet value type into a structure type, so that we can store more information about references and improve the remembered set.
This is refactoring work that should not have any external effect on the MPS. Its purpose is to lay the foundation for inclusion of age (or other) information in the remembered set, to reduce unnecessary scanning and improve performance (#136 solution 3).
The reason this is its own branch and pull request is that it's a delicate change that needs careful review and testing. Adding age information to the remembered set is also a delicate change that will need careful review and testing. Trying to do both at once is very risky.
4d74b9246a92866f1c20e64f3a33a00093786a17 shows that the terms "summary", "reference set", "zones", and "zone set" are conflated in design, comments, and naming. This needs careful search and clean-up. They are separated by the work on this branch.
A note for review: the differences on the remember-time-3 branch are a source document for this work.
We believe this is essential. We still need to do experiments to back this up.