Commit Graph

405 Commits

Author SHA1 Message Date
Tony Garnock-Jones b2e2674f44 Support opening/closing the MSD trace file with SIGUSR1 2017-08-13 22:14:45 -04:00
Tony Garnock-Jones 3db51ffda5 Track quits differently 2017-08-13 22:13:44 -04:00
Tony Garnock-Jones fdcd9b9388 Remove unused commented-out code 2017-08-13 20:52:52 -04:00
Tony Garnock-Jones e2d1ae853c Avoid (cdr '()) for patches from drivers - for msd.rkt this time 2017-08-13 20:52:29 -04:00
Tony Garnock-Jones af30c19ee0 Remove unused debug 2017-08-13 20:47:47 -04:00
Tony Garnock-Jones f3b5fd6cd1 Avoid (cdr '()) for patches from drivers 2017-08-13 20:47:40 -04:00
Tony Garnock-Jones 6728fcf10d Extra knobs 2017-08-13 20:08:09 -04:00
Tony Garnock-Jones 09d0fb620d Much improved tracing 2017-08-13 19:58:48 -04:00
Tony Garnock-Jones 84ec153a1e Extract utilities for tracing 2017-08-12 00:40:10 -04:00
Tony Garnock-Jones 4efe18bfe0 Trace action production as well as interpretation 2017-08-12 00:08:09 -04:00
Tony Garnock-Jones 9009fb5ec7 Stay rational 2017-08-10 17:40:15 -04:00
Tony Garnock-Jones 40961e7893 f-to-c3.rkt 2017-08-10 17:08:31 -04:00
Tony Garnock-Jones b3a745dbcb Make #lang syndicate equivalent to #lang syndicate/actor. Fixes #17. 2017-08-10 15:17:28 -04:00
Tony Garnock-Jones c9996d53ae Avoid premature termination of parent facet.
Scenario:
 - In script of facet X, (react (stop-when E (react ...)))
 - This creates facet Y, child of X.
 - Facet X has no endpoints, only its child facet Y.
 - When the stop-when fires, without this patch, facet X
   will be terminated because the *inner* react above hasn't executed yet.
 - With this patch, the check for a useless X is done after the stop-when
   has had a chance to run; and so X will survive for now.
2017-08-10 15:08:48 -04:00
Tony Garnock-Jones 837ab77002 #lang syndicate -> #lang syndicate/core; first half of fix for #17. 2017-08-10 15:04:45 -04:00
Tony Garnock-Jones 6b3f8d920a Key debouncer 2017-08-07 13:41:01 -04:00
Tony Garnock-Jones 61b683fc94 double-click "debouncing" example 2017-08-07 13:04:10 -04:00
Tony Garnock-Jones 4f8bc6e5af Ugh, forgot to git-add this 2017-08-07 11:21:09 -04:00
Tony Garnock-Jones 4f21e9ab46 Elide spurious detail in patch actions and events 2017-08-05 19:38:35 -04:00
Tony Garnock-Jones 5bff630547 Support t and T SYNDICATE_TRACE flags, for control over state display 2017-08-05 19:38:17 -04:00
Tony Garnock-Jones f83f286e28 Name the line-reader-factory 2017-08-05 19:37:34 -04:00
Tony Garnock-Jones 11de40ce98 Change spawn processing to include initial-assertions 2017-08-05 19:36:40 -04:00
Tony Garnock-Jones f9a477832a Avoid identifier clash 2017-08-05 19:36:40 -04:00
Tony Garnock-Jones 75aee96e1a query-count 2017-08-01 17:45:19 -04:00
Tony Garnock-Jones 6b2ee53fa8 Give line-reader instances a debug-name 2017-08-01 09:30:53 -04:00
Sam Caldwell 5f621b098e trie-step-wild 2017-07-31 11:39:50 -04:00
Tony Garnock-Jones 81a0351828 Cope with potential interference in query-sets (etc) from outside the official event handlers 2017-07-30 18:48:33 -04:00
Tony Garnock-Jones 6e399dd1dd Experimental Racket GUI driver. 2017-07-29 23:17:55 -04:00
Tony Garnock-Jones 28f6b8acf8 Finally committing the f-to-c examples of Sep 23, 2016 2017-07-27 10:40:11 -04:00
Tony Garnock-Jones a090ed8330 *gc-priority* has been unused since factoring away cross-facet restrictions on fields 2017-07-12 14:25:42 -04:00
Tony Garnock-Jones 8a2ace112b Handle additional cases: children present, and obsolescent parent. Additional fix for #18 2017-07-12 11:38:27 -04:00
Tony Garnock-Jones f6c145b4a7 Fix poor on-stop/post-stop separation. Additional fix for #23. 2017-07-12 11:36:20 -04:00
Tony Garnock-Jones 46e5922dc8 Stop a new facet with no endpoints. Fixes #18. 2017-07-12 11:12:10 -04:00
Tony Garnock-Jones 6db1e67a7e Beginnings of test case for termination order 2017-07-12 11:03:23 -04:00
Tony Garnock-Jones 76c1a5b347 Tentative repair to startup/shutdown ordering problems 2017-07-12 11:02:26 -04:00
Tony Garnock-Jones 990ad4ca72 Pretty-print struct process instances 2017-07-12 10:29:26 -04:00
Tony Garnock-Jones 3073d8b614 Avoid some stop-when/rising-edge/flag combinations, and some rising-edge uses generally 2017-07-05 07:13:36 -04:00
Tony Garnock-Jones 37cee0c937 (stop-current-facet) 2017-07-05 06:28:06 -04:00
Tony Garnock-Jones ac5c5d2e5f First steps toward correct facet-termination.
- Facet IDs are now lists so arbitrary ancestors can be computed with
   repeated application of cdr

 - `stop-facet` is new and untested, other than that `stop-when` is
   refactored to use `stop-facet`

 - *all* matching stop-when instances run now; the limitation that
    exactly one instance should match is lifted.

 - roughly, (stop-when E X ...) === (on E (stop (current-facet-id) X ...))

Remaining to be done: fix `terminate-facet!` to do the right things in
the right order.
2017-07-04 22:03:32 -04:00
Tony Garnock-Jones 1fdd62d56d Remove enforcement of field scoping rules dating back to separate-actor implementation of HLL 2017-07-04 16:31:46 -04:00
Tony Garnock-Jones 46fd5e2b92 Remove/unprovide a few unneeded utilities from patch.rkt 2017-06-23 17:57:35 -04:00
Tony Garnock-Jones 9b54069ecd chat-multiroom-topic-persist.rkt 2017-05-12 19:21:41 -04:00
Tony Garnock-Jones 42742fe8ac chat-multiroom-topic.rkt 2017-05-12 18:55:32 -04:00
Tony Garnock-Jones 966cd2ed17 Comment 2017-05-12 17:14:18 -04:00
Tony Garnock-Jones 4be0a8cb59 chat-multiroom.rkt 2017-05-12 15:45:38 -04:00
Tony Garnock-Jones b9dfd79f34 example-bug-rising-edge-true.rkt 2017-05-04 09:08:47 -04:00
Sam Caldwell 6448188e82 Create test harness & lang for contrasting big & little actor langs 2017-04-20 13:50:01 -04:00
Tony Garnock-Jones 425a5abac3 Default to empty-string to avoid crash when header entirely absent 2017-03-25 15:19:21 -04:00
Sam Caldwell d4f95d3a7b Allow creation of facets at the parent level when shutting down a facet
Behavior is fairly different from big implementation
2017-03-17 13:50:33 -04:00
Sam Caldwell 460d72d69e Run new facets with current knowledge 2017-03-17 13:50:33 -04:00
Sam Caldwell a8421f3929 actor -> spawn 2017-03-17 13:50:33 -04:00
Sam Caldwell 36ff30c289 No longer need to say `react` right after `actor` 2017-03-17 13:50:33 -04:00
Sam Caldwell da422ff117 update field declaration syntax to match full impl 2017-03-17 13:50:32 -04:00
Sam Caldwell 88f515a98f Change syntax of field accesses to match full implementation 2017-03-17 13:50:32 -04:00
Sam Caldwell fb3918404c fix exception handling for booting actors 2017-03-17 13:50:32 -04:00
Sam Caldwell 6ee97839fa use racket functions to represent lambdas 2017-03-17 13:50:32 -04:00
Sam Caldwell e57af91698 reorganize 2017-03-17 13:50:32 -04:00
Sam Caldwell 318363f4be cleanup 2017-03-17 13:50:32 -04:00
Sam Caldwell c8cc8051a1 don't run new facets asap 2017-03-17 13:50:32 -04:00
Sam Caldwell 34c3b6bf3a fix ft-assertions 2017-03-17 13:50:32 -04:00
Sam Caldwell 90bf07f6d4 fixups 2017-03-17 13:50:32 -04:00
Sam Caldwell 079e2da53d sort out relaying in hll interperter 2017-03-17 13:50:31 -04:00
Sam Caldwell df40cc7ba9 fix race in trace testing 2017-03-17 13:50:31 -04:00
Sam Caldwell 3986f4d0ea add trace testing 2017-03-17 13:50:31 -04:00
Sam Caldwell e1671ce878 add on-stop 2017-03-17 13:50:31 -04:00
Sam Caldwell da1f9d4b6d MONADS 2017-03-17 13:50:31 -04:00
Sam Caldwell 5544052488 add lambda to hll interp 2017-03-17 13:50:31 -04:00
Sam Caldwell 7b1c102224 add dataspaces to hll interp 2017-03-17 13:50:31 -04:00
Sam Caldwell 1be415eb45 cleanup 2017-03-17 13:50:31 -04:00
Sam Caldwell 53cd60f196 run hll actors in two steps
first: run facets/endpoints to determine the new facet tree and any
actions (messages, spawns)
second: use new facet tree to determine assertions and subscriptions

This makes sure that all field updates are visible to
assertions/subscriptions.
2017-03-17 13:50:31 -04:00
Sam Caldwell f19a02e859 catch exceptions from hll actors 2017-03-17 13:50:30 -04:00
Sam Caldwell 5a87428f62 partially working hll interpreter 2017-03-17 13:50:30 -04:00
Tony Garnock-Jones 118cdef4c6 Refactor other chat servers to match 2017-03-14 18:29:45 -04:00
Tony Garnock-Jones 689d410bda Rearrange chat-simplified-internals2.rkt 2017-03-14 18:06:02 -04:00
Sam Caldwell e0e7baed46 Keep ground dataspace running while subscriptions are present 2017-03-08 18:00:45 -05:00
Tony Garnock-Jones dc83d33afb Cosmetic 2017-03-08 06:45:40 -05:00
Tony Garnock-Jones c51f18efc2 Compile lambda calculus into Syndicate 2017-03-08 06:37:27 -05:00
Sam Caldwell 921b84e056 Add upside-down relays 2017-03-07 12:59:39 -05:00
Tony Garnock-Jones ea1b1bc072 Allow run-ground to return the active set of assertions at the time of its exit. 2017-02-28 18:44:01 -05:00
Tony Garnock-Jones ee52520a13 spawn-dataspace --> dataspace-actor 2017-02-25 11:16:25 -05:00
Sam Caldwell 783d132f25 Fix upside-down spawn translations 2017-02-23 22:22:43 -05:00
Sam Caldwell 99ccc12fee typo 2017-02-22 17:46:55 -05:00
Sam Caldwell 27cb9ba983 Add a way of sepcifying and checking upside-down traces 2017-02-22 17:44:07 -05:00
Sam Caldwell 1f4bf075b7 Take actors to ... the upside down [1]
Actors in the upside down may communicate with each other, but not the outside
world. However, the outside world can see what actors in the upside-down are
saying. The intention is to use this facility for testing.

[1] (http://strangerthings.wikia.com/wiki/Upside_Down).
2017-02-22 17:42:06 -05:00
Tony Garnock-Jones 1bfc4bbdad Log port number in SMTP driver startup/shutdown messages 2017-02-21 15:12:47 -05:00
Tony Garnock-Jones 6d8ced489c Accept toplevel action-producing expressions yielding 0 values.
A recent change to Racket must have changed the way `for` expands,
because now in conjunction with `local-expand`, we see *effectively* a
`(begin (values) (void))`. This isn't a problem usually, but in
`#lang syndicate`'s `module-begin` context, we split apart `begin`s
and examine their constituents, leading to examination of something
that will ultimately yield 0 values.

The change accepts either 0 or 1 values when collecting actions for
the module's main boot actor to execute. More than 1 value yielded by
such an expression is still considered an error. Currently, it gives
unhelpful error location information; a future refinement might be to
make the error reporting for this (rare) situation more helpful.
2017-02-20 17:04:39 -05:00
Tony Garnock-Jones deefa251d9 Missed one. 2017-02-20 13:29:19 -05:00
Tony Garnock-Jones 1f8bb56c69 Update examples 2017-02-20 12:54:52 -05:00
Sam Caldwell 9c1e9719ba swap the meaning of spawn and actor in racket syndicate 2017-02-15 18:18:19 -05:00
Tony Garnock-Jones 413840382b Better crash-handling for simplified TCP protocol sketch 2017-02-09 19:24:02 -05:00
Tony Garnock-Jones 25729454a6 Tweak 2017-01-23 17:38:38 -05:00
Tony Garnock-Jones 36459c5942 Even simpler chat server 2017-01-23 16:40:01 -05:00
Tony Garnock-Jones e593cf768b Cosmetic 2017-01-08 14:10:15 -05:00
Tony Garnock-Jones 19bebc9881 Handle IRC QUIT 2017-01-07 01:46:09 -05:00
Tony Garnock-Jones eb4a228c73 Crude IRC driver and example. 2017-01-07 01:14:14 -05:00
Tony Garnock-Jones b946bbec3c Glitching example 2016-12-12 11:09:39 +13:00
Tony Garnock-Jones 6a2163bce9 Avoid accidental shadowing of field-names in query-value* and friends 2016-12-12 10:26:50 +13:00
Tony Garnock-Jones c7db9f2543 Reload when hash of file has changed; stop using a naive counter 2016-12-07 10:10:36 +13:00
Tony Garnock-Jones b87639b7a4 Split out reloader-mixin and reloader-mixin* 2016-12-07 09:47:53 +13:00
Tony Garnock-Jones d9905df4e5 Add #:linkage for during/actor and the new supervise/actor to communicate properly 2016-12-07 09:47:39 +13:00