MPS issue job001665

TitleWeakness is not well documented.
Statusclosed
Priorityessential
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionWeakness is not well documented.

The documentation has precious little to say about weakness. Even
basic things like what the semantics of a weak reference are are
missing.

We need documentation for:
- description of weak reference semantics, and in particular that all
  weak references get splatted together*.
- how weakness interacts with finalization
- different sorts of weakness (if we implement them)
- what is weakness good for?
- implementing part-weak part-strong hash tables (because its a common
  requirement)

Possible we need subjobs for these things as we decide to do them.
That's okay.
AnalysisDecide what we want the behaviour to be, document it.

* See [1]. It turns out that there is a defect in the MPS that can cause it to not splat all weak references to some object atomically (job001666). I believe lack of documentation may have contributed to the defect.

GDR 2012-11-01: For now, I've documented that weak references may die at different times.
How foundunknown
Evidence[1] <http://info.ravenbrook.com/mail/2007/06/26/11-48-09/0/>
Observed in1.107.0
Created byDavid Jones
Created on2007-06-27 12:30:02
Last modified byGareth Rees
Last modified on2012-11-03 14:49:04
History2007-06-27 DRJ Created.
2012-10-17 GDR Assigned to GDR.

Fixes

Change Effect Date User Description
180202 closed 2012-10-31 17:45:35 Gareth Rees Write weak references chapter.
180165 open 2012-10-30 17:03:29 Gareth Rees Write pool reference.