Title | Manual unclear about exact collection |
Status | open |
Priority | nice |
Assigned user | Gareth Rees |
Organization | Ravenbrook |
Description | Christian Schafmeister [2] would like to implement exact collection, but couldn't figure out what to do from the manual. (A similar problem was reported by GRM [3]: "It's anti-social to require that the client has ambiguous roots.") |
Analysis | The manual contains the information he needs, but it's buried away in the "Allocation point protocol" section [2]: "The description of the protocol assumes that you have declared your threads’ control stacks and registers to be ambiguous roots ... This is the simplest way to write a client, but other scenarios are possible. Please contact us if your use case is not covered here (for example, if you need an exact collector)." Three opportunities for improvement here: 1. This section could easily describe another scenario. (Register your own ambiguous root using mps_root_create_table and use that instead.) 2. The notes on exact collection should be pulled up to top level. We don't support it at the moment because of the race between assignment of the exact reference and mps_commit. 3. We could automate the normal case by putting a root into the allocation point (that points to the last object allocated on the AP, if any). |
How found | customer |
Evidence | [1] <http://www.ravenbrook.com/project/mps/...location.html#allocation-point-protocol >[2] < https://info.ravenbrook.com/mail/2013/08/16/21-47-33/0/ >[3] https://info.ravenbrook.com/project/mp...2001-11-05/mmprevol/request/mps/160108/ |
Created by | Gareth Rees |
Created on | 2014-05-16 12:10:05 |
Last modified by | Gareth Rees |
Last modified on | 2014-10-01 20:14:53 |
History | 2014-05-16 GDR Created. |