Commit Graph

32 Commits

Author SHA1 Message Date
Tony Garnock-Jones a3a229532a add-observer-endpoint!, add-raw-observer-endpoint! 2019-05-04 22:58:45 +01:00
Tony Garnock-Jones 7e2284ac11 User count; define/query-count 2019-01-29 20:47:06 +00:00
Tony Garnock-Jones 832adc94c0 Enable immediate-query 2019-01-28 13:46:54 +00:00
Tony Garnock-Jones 93371894a0 Repair longstanding, subtle bug in both old- and new-syndicate.
during/spawn used not to add linkage assertions to its
initial-assertion set. In addition, if a spawned actor died in its
initial boot procedure, its initial assertions would never be visible.
These two problems interlocked to cause a space leak in during/spawn,
where monitoring facets would never be cleaned up.

This change does two things:
 - adds linkage assertions to the initial-assertion set in during/spawn
 - properly briefly signals initial-assertions even when a new actor
   immediately crashes.

Together, these repair the space leak in during/spawn with a crashy
child startup procedure.
2018-11-04 13:43:17 +00:00
Tony Garnock-Jones 00d50e6700 Factor out assertion structure definitions 2018-05-03 16:14:30 +01:00
Tony Garnock-Jones eb208f3a10 Handy logging for diagnosing problems 2018-05-01 22:39:50 +01:00
Tony Garnock-Jones 896cfe2498 Multi-assert!/retract! for adhoc assertions 2018-05-01 20:58:26 +01:00
Tony Garnock-Jones e43054a6bd More thoughtless uncommenting of query-* forms 2018-05-01 20:58:02 +01:00
Tony Garnock-Jones 9c22868bd2 Correct error from earlier thoughtless uncommenting 2018-05-01 20:57:42 +01:00
Tony Garnock-Jones 475e6527f3 Uncomment query-value and friends. May need tweaks. 2018-04-30 22:48:50 +01:00
Tony Garnock-Jones a6811f2ba5 Add timer/timestate support; this prompted a change to endpoint registration.
The `add-endpoint!` call is changed in two ways:

 - the old `assertion-fn` has become `update-fn`, yielding both
   an assertion *and* an optional handler, because if the handler
   depends on a field which changes, previously the handler wasn't
   being updated

 - a new parameter, `dynamic?`, can be set to #f (it's usually #t)
   to ensure that the assertion and skeleton-interest are calculated
   only once ever, and are not connected to the dataflow machinery.

The first change makes it possible for the `(later-than (deadline))`
pattern, where `deadline` is a field, to work; the second change makes
`during` and `during/spawn` work correctly in the face of field
updates.
2018-04-29 22:27:55 +01:00
Tony Garnock-Jones dd2cddb6a7 Nested dataspaces 2018-04-29 14:54:14 +01:00
Tony Garnock-Jones f40e7c15cc Refactor tests 2018-04-29 11:55:32 +01:00
Tony Garnock-Jones 3a857db4b9 Box-and-client speed test 2018-04-27 23:59:04 +01:00
Tony Garnock-Jones 290170f450 Simple test harness 2018-04-27 23:53:31 +01:00
Tony Garnock-Jones d6c0241c57 Cosmetic notes 2018-04-27 18:23:34 +01:00
Tony Garnock-Jones a4abea9d87 Remove current-dataspace parameter 2018-04-27 18:05:33 +01:00
Tony Garnock-Jones 0cbb5b061c Cosmetic notes 2018-04-27 17:36:43 +01:00
Tony Garnock-Jones 65a221ae68 New failing test case. This, plus recent commits, calls for a
different strategy for tracking the retractions necessary at actor
termination.
2018-04-27 10:55:21 +01:00
Tony Garnock-Jones a247d8fd2b Switch adhoc-assertions to a bag (from a set).
This repairs a bug regarding crashes in a new actor's boot-proc.

Previously, if boot-proc raised an exception, the initial assertions
would stick around forever. By changing adhoc-assertions to a bag
rather than a set, and putting the initial assertions in the bag, we
put them somewhere they are guaranteed to be processed during actor
termination, even when an exception is signalled during boot.

This is an API change wrt the previous Syndicate implementation:
assert!/retract! now have bag semantics, not set semantics. We can add
set-semantics APIs if we end up needing them, of course, layered on
top of the bag implementation.
2018-04-27 09:59:03 +01:00
Tony Garnock-Jones 928e48113f Failing test: an exception in a stop script messes up cleanup 2018-04-25 20:13:54 +01:00
Tony Garnock-Jones bc9b931312 Omit "name" to ctor for dataspace struct - name is/will be a property of the downward relay connection 2018-04-25 19:30:45 +01:00
Tony Garnock-Jones e6d6f67021 during/spawn 2018-04-22 21:07:35 +01:00
Tony Garnock-Jones 1523ef17cf Correct typo 2018-04-22 21:06:18 +01:00
Tony Garnock-Jones 55f4b55784 Implement during and ad-hoc assertions 2018-04-19 17:55:52 +01:00
Tony Garnock-Jones 5377a486c9 Better Isolated Turn Principle 2018-04-11 12:28:09 +01:00
Tony Garnock-Jones 533d6f9a24 Improve syntax location tracking 2018-04-09 10:29:14 +01:00
Tony Garnock-Jones 3452f1fe6e Script suspend and resume 2018-04-09 10:23:22 +01:00
Tony Garnock-Jones bd9dcb61ca Simple messages-per-second test (~195kHz at present) 2018-04-08 12:06:37 +01:00
Tony Garnock-Jones eb24d566e9 Progress on syntax veneer 2018-04-08 11:44:32 +01:00
Tony Garnock-Jones e84f2e2e39 Eliminate (interesting uses of) facet IDs by storing references directly 2018-04-08 08:52:37 +01:00
Tony Garnock-Jones 3c70496688 Steps toward API usable by syntax layer; beginning of syntax layer, adapted from previous implementation 2018-04-08 07:39:39 +01:00