17:43
<Ashley Claymore>
https://es.discourse.group/t/note-in-liveness-section-appears-to-be-normative/1345
Cross posting question I posted in the forum 🙂
17:47
<shu>
no, not the intention that it's normative
17:48
<shu>
liveness is defined on sets of objects
17:48
<annevk>
Ashley Claymore: that does seem like a bug of sorts; you shouldn't have requirements in notes; notes should be statements of fact, or discuss some context or some such
17:48
<shu>
the note is clarifying that this clearing operation is on sets of objects, not individual objects
17:48
<shu>
it's in there because a previous formulation of liveness was buggy in that way
17:49
<Ashley Claymore>
The bit I’m missing is that there doesn’t seem to be a requirement for what is in the set
17:49
<shu>
that's defined in liveness, the two bullet points
17:49
<shu>
there is no requirement on the size of that set
17:50
<shu>
it is as compliant to never clear any objects as it is to always clear the maximal set of non-live objects
17:50
<annevk>
shu: I'd rephrase the "must" bits as statements of fact then, this is reading as separate requirements
17:50
<shu>
annevk: fair
17:52
<Ashley Claymore>
The bit that is tripping me up, is the liveness of a set that only has one object in it: this seems to only refer to the keptAliveList and weakRef-oblivious executions. So it then only clears weakrefs that have that one object as its target.
17:52
<Ashley Claymore>
But other weakRefs could allow that object to be reached, without mention of them being cleared
17:53
<Ashley Claymore>
Apart from in that last note
17:54
<shu>
in your example, that set would be considered live then
17:54
<shu>
the WeakRef-oblivious execution part is parametric on this set of objects S
17:54
<shu>
it's not that all derefs for all weakrefs return undefined
17:54
<Ashley Claymore>
Ooo
17:54
<Ashley Claymore>
That is what I’m missing
17:54
<shu>
so if your set S has one object in it, but is reachable by a WeakRef that's not in S
17:55
<shu>
the "with respect to S" part
17:55
<shu>
maybe this should be rewritten to be more function-like so it obviously takes S as an input or something
17:55
<Ashley Claymore>
Thanks Shu!
17:55
<shu>
sure thing, let me think of how to improve the note and this editorially
17:56
<Ashley Claymore>
I think it is clear, not sure why I didn’t correctly apply that description when reading the other parts
17:57
<Ashley Claymore>
If a different way of phrasing it comes to mind I’ll say.
18:06
<shu>
annevk: how would you recommend the "must" be restated as a statement of fact?
18:06
<shu>
does something like "conformance requires implementations do blah blah" suffice?
18:25
<Ashley Claymore>
Something like that does sound good to me - "WeakRef-oblivious execution with respect to S" could maybe be "WeakRef[S]-oblivious-execution" - though I can see why others may prefer the wordier wording 😆