Commit Graph

68 Commits

Author SHA1 Message Date
Tony Garnock-Jones 8008ca5a53 Rearrange protocols subtree 2021-07-01 09:51:17 +02:00
Tony Garnock-Jones 6fe031e678 once 2021-06-18 22:19:54 +02:00
Tony Garnock-Jones 28901e9d31 Simpler stream connection protocol. 2021-06-18 13:48:12 +02:00
Tony Garnock-Jones ac8ea67ab1 `when` -> `on`; StreamConnection API; better `this-target`; tcp-listen errors
- spec-generic StreamConnection translators, for simple TCP API
 - `when` -> `on`, better use for event-expanders
 - Removal of special processing of `at`, making `this-target` properly lexically scopeable
 - TcpListenError and handling of tcp-listen errors
 - SYNDICATE_COLUMNS for pretty-printing of dataspace traces
 - Repair driver-support.rkt thread shutdown turn-taking
 - Refinements to stream protocols and implementation
 - Improvements to syntax location preservation in syntax.rkt
2021-06-17 13:38:30 +02:00
Tony Garnock-Jones 44bee78044 stop-actor-system 2021-06-15 14:26:19 +02:00
Tony Garnock-Jones 210e983c8d Redo actor-group linking style 2021-06-15 12:43:27 +02:00
Tony Garnock-Jones 0b1e9874d1 Treat #:message separately from #:asserted.
While in principle messages are "instantaneous" assertions, it invites
confusion to treat them as such in context of `(object)` because
assertions by default spawn nested facets, so it's too easy to
accidentally wrap a message handler in an unwanted facet. Being
explicit about messages means you never get an unwanted facet wrapper.
2021-06-15 12:41:46 +02:00
Tony Garnock-Jones 00ed26fb60 More indentation configurations 2021-06-14 19:23:12 +02:00
Tony Garnock-Jones 4a0e6e0519 actor-group; bug fixes 2021-06-13 07:55:50 +02:00
Tony Garnock-Jones d304d1e87d Credit-based flow control on tcp driver; line mode 2021-06-11 14:18:53 +02:00
Tony Garnock-Jones 247fd1b2c0 Introduce `object` and `spawn/link` 2021-06-10 16:21:30 +02:00
Tony Garnock-Jones b5c57381fa Simplify during* 2021-06-10 14:41:57 +02:00
Tony Garnock-Jones 1ca04c66b0 Detect situation with empty spawn body 2021-06-10 13:33:34 +02:00
Tony Garnock-Jones bd65204760 entity/stop-on-retract 2021-06-10 13:29:19 +02:00
Tony Garnock-Jones 37ca805969 Ambient current-turn 2021-06-10 11:42:07 +02:00
Tony Garnock-Jones 5ab375bc26 Conditional assertion 2021-06-10 10:00:22 +02:00
Tony Garnock-Jones b12fc5188d "Linking" during spawn; and during/spawn 2021-06-09 23:06:40 +02:00
Tony Garnock-Jones 5dec0afe39 syntax-classes.rkt 2021-06-09 23:05:51 +02:00
Tony Garnock-Jones 52362a9183 facet-on-end-of-turn! 2021-06-09 23:04:58 +02:00
Tony Garnock-Jones 40c26f006e Remove :template in favour of ->preserve 2021-06-08 16:20:58 +02:00
Tony Garnock-Jones 6f9ee4eb44 More emacs indentation config 2021-06-08 09:31:52 +02:00
Tony Garnock-Jones 8e866239a6 #:name for during* 2021-06-08 09:31:28 +02:00
Tony Garnock-Jones 2d07e46c67 Fix and add copyright notices 2021-06-04 16:20:14 +02:00
Tony Garnock-Jones 7be7c36537 Merge branch 'main' into novy 2021-06-04 16:19:41 +02:00
Tony Garnock-Jones 2a360bff32 Adjust copyrights 2021-06-04 15:56:03 +02:00
Tony Garnock-Jones c6d4d3acf1 Fix up copyright notices 2021-06-04 11:35:27 +02:00
Massimo Zaniboni 855b7835f6 Added license header to each source code file 2021-06-04 11:13:49 +02:00
Tony Garnock-Jones 7b600c51df Emacs indentation support 2021-06-03 22:48:12 +02:00
Tony Garnock-Jones a23047c26b stop-when, stop-when-true, when retracted 2021-06-03 22:48:12 +02:00
Tony Garnock-Jones 63720f80ba Split out during*; new example go2.rkt 2021-06-03 17:02:20 +02:00
Tony Garnock-Jones defb65cd30 Actor names; debug tracing of actors 2021-06-03 17:01:26 +02:00
Tony Garnock-Jones 2fa1b033eb Use :template in send!. 2021-06-03 16:07:25 +02:00
Tony Garnock-Jones 6b3988caf7 Repair during macro; use during in box/client example 2021-06-03 16:03:00 +02:00
Tony Garnock-Jones b77fe3efbc Steps towards using :pattern/:template in syntax 2021-06-02 13:11:26 +02:00
Tony Garnock-Jones 37bd64bf05 First attempt at novy syntax 2021-06-01 10:04:53 +02:00
Tony Garnock-Jones 08c4980025 Move the bulk of the existing implementation out of the way 2021-05-27 10:34:35 +02:00
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