From f07fcb90819b6495f7e9e0e4f0c1596d678aba9d Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 2 Nov 2018 12:18:44 +0000 Subject: [PATCH] More notes --- imperative/HOWITWORKS.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/imperative/HOWITWORKS.md b/imperative/HOWITWORKS.md index 01768d7..3caec1f 100644 --- a/imperative/HOWITWORKS.md +++ b/imperative/HOWITWORKS.md @@ -460,7 +460,12 @@ check followed by zero or more (move, check) pairs. Care must be taken when applying entire *patches* to ensure that added assertions are processed before removed assertions; otherwise, actors -will observe glitching in certain cases. +will observe glitching in certain cases. For example, consider an +endpoint with a wildcard subscription `[_]` and a separate endpoint +asserting `[3]`. If a patch atomically replaces `[3]` with `[4]`, then +if the removal is processed first, it will briefly appear to the `[_]` +endpoint as if no assertions remain, whereas if the addition is +processed first, no glitch will be detected. **Definition.** The procedure `sendMessage` delivers a message `v` to event handlers in the given index. @@ -539,6 +544,11 @@ interested in the `present` constructor. endpoint of the other endpoint, even though you might expect the relayed assertion to do so. + - there's more to say about the implementation of the *dataspace* + itself, not just the index structures. For example, the care that + must be taken regarding `cleanup-changes` and abandoning work + during exception handling. +