Commit Graph

800 Commits

Author SHA1 Message Date
Sam Caldwell ad2e337268 free standing fields! 2019-01-25 11:16:02 -05:00
Sam Caldwell 00bf7d2364 during 2019-01-25 11:16:02 -05:00
Sam Caldwell 632c04139b sets 2019-01-25 11:16:02 -05:00
Sam Caldwell 6d2d14459c lists 2019-01-25 11:16:02 -05:00
Sam Caldwell 03285824c7 two buyer example 2019-01-25 11:16:02 -05:00
Sam Caldwell ddff1c800c on start and stop, spawned actors 2019-01-25 11:16:02 -05:00
Sam Caldwell c66b62cf46 simple example 2019-01-25 11:16:01 -05:00
Sam Caldwell e7e8f5e174 fix pattern compilation 2019-01-25 11:16:01 -05:00
Sam Caldwell 938d3c519d fix bugs, null-ary stops 2019-01-25 11:16:01 -05:00
Sam Caldwell 35b3811462 cond, match 2019-01-25 11:16:01 -05:00
Sam Caldwell af91b669b7 lambdas 2019-01-25 11:16:01 -05:00
Sam Caldwell 5130197e27 utilities 2019-01-25 11:16:01 -05:00
Sam Caldwell 3705d95856 stop statement 2019-01-25 11:16:00 -05:00
Sam Caldwell 33af13016b dataspace form 2019-01-25 11:16:00 -05:00
Sam Caldwell 1a4fc4dd4f check input and output safety in spawn rule 2019-01-25 11:16:00 -05:00
Sam Caldwell e79237b1d3 small adjustment to Role type 2019-01-25 11:16:00 -05:00
Sam Caldwell 4bd8d20b0b refactor effect checking 2019-01-25 11:16:00 -05:00
Sam Caldwell 5803b8f9b0 refactor how effects are checked & propagated 2019-01-25 11:16:00 -05:00
Sam Caldwell 5bd391dd77 rename facet effect key from e to f 2019-01-25 11:16:00 -05:00
Sam Caldwell 71c2846a93 roles for bank account facets 2019-01-25 11:15:59 -05:00
Sam Caldwell 29e09ff3ef start on facet role types 2019-01-25 11:15:59 -05:00
Sam Caldwell 1e66554b8e note on performance 2019-01-25 11:15:59 -05:00
Sam Caldwell 8808b5aca9 typed book club 2019-01-25 11:15:59 -05:00
Sam Caldwell 5124b8e715 parse action types in transition,quit to allow empty lists 2019-01-25 11:15:59 -05:00
Sam Caldwell ceb0c60d20 start on typed book club 2019-01-25 11:15:58 -05:00
Sam Caldwell fb675a850c add tuple and patch utilities and set datatype 2019-01-25 11:15:58 -05:00
Sam Caldwell 46a833a66e typed bank account 2019-01-25 11:15:58 -05:00
Sam Caldwell 5934c1626f typed box and client 2019-01-25 11:15:58 -05:00
Sam Caldwell 9a3d921de3 starter for typed/syndicate/core 2019-01-25 11:15:58 -05:00
Sam Caldwell cff784384a add constructor types 2019-01-25 11:15:58 -05:00
Sam Caldwell b1c000e12e more wip on TS 2019-01-25 11:15:58 -05:00
Sam Caldwell 82e5c8504c wip on typed syndicate 2019-01-25 11:15:57 -05:00
Tony Garnock-Jones 47094c11c4 Responsibility transfer during outbound websocket connection establishment 2018-08-14 17:38:36 +01:00
Tony Garnock-Jones cb351eee09 Repair current-ground-dataspace initialization, to allow override in e.g. graphical programs 2018-06-01 09:12:39 +01:00
Sam Caldwell e402725d7f note 2018-05-01 13:55:34 -04:00
Sam Caldwell f1c51661c7 Re-finagle module-begin to a more incremental style
Fixes 33
2018-05-01 13:55:34 -04:00
Tony Garnock-Jones f64ad8389a Update example-during-criterion-snapshotting.rkt 2018-04-29 21:48:49 +01:00
Tony Garnock-Jones 1fa5167e20 Fix a design flaw in Syndicate-HLL for syndicate/rkt.
If:
 - a field is used in an assertion of interest in facet A
 - and that field changes
 - to a value that causes the assertion of interest to overlap
   with some facet B's assertion of interest
 - and an assertion matching that interest was already known to the actor,
Then:
 - previously, facet A would not be informed of the matching assertion
 - but now, it is informed of the matching assertion.

This more or less only affects "on asserted" endpoints.

The change here should be written up as an erratum to chapter 5 in my
dissertation. Also, syndicate/js needs to be checked for the bug and
probably fixed in an analogous way.
2018-03-27 21:58:57 +13:00
Tony Garnock-Jones 55e1f09484 New "bug" (?) 2018-03-22 13:49:16 +13:00
Tony Garnock-Jones af150712e0 example-memoized.rkt 2018-03-06 17:35:40 +00:00
Tony Garnock-Jones 57a40e9576 Asynchronously send UDP packets.
Switch from synchronous to asynchronous UDP transmission, in case DNS
resolution takes a long time or fails. Specifically, in case of failure,
previously the UDP actor would crash, whereas now the packet is just
"dropped".
2018-03-06 11:12:57 +00:00
Tony Garnock-Jones 1ab4f0f525 Alternate approach to caching 2017-12-06 09:13:28 +00:00
Tony Garnock-Jones f11f4fd054 tcp-relay2.rkt 2017-12-05 17:38:49 +00:00
Tony Garnock-Jones eb44003317 New examples 2017-12-05 17:32:12 +00:00
Tony Garnock-Jones eb564fdb7c More general tcp-connect error catching. 2017-12-05 17:22:28 +00:00
Tony Garnock-Jones c9ec9f6be9 Special printer for seals. Fixes #27. 2017-12-05 17:22:13 +00:00
Tony Garnock-Jones 75093d0e1a Fullscreen big-bang 2017-11-25 12:03:32 -05:00
Tony Garnock-Jones 53e26b08a1 Many improvements to the netstack TCP implementation.
- New timestate `on-timeout` complementing `stop-when-timeout`
 - IP layer avoids spurious reordering
 - Demo HTTP server sends 4kB responses, for testing

 - TCP now has something closer to proper sliding-window behavior
 - TCP RTT estimator
 - TCP now uses timestate driver rather than raw timer driver
 - Many small TCP bugs found and fixed
2017-11-13 20:02:07 +00:00
Sam Tobin-Hochstadt 87495bdc37 Fix missing dependency. 2017-11-12 14:04:36 +00:00
Tony Garnock-Jones 710e75dffa cleanup.rkt 2017-10-31 17:00:09 +00:00
Tony Garnock-Jones d51a513f8b add1-simple.rkt 2017-10-21 14:56:46 +01:00
Tony Garnock-Jones bf0eb16643 syndicate-render-msd: --number, --no-number, --number-gap 2017-10-21 14:55:28 +01:00
Tony Garnock-Jones 8999b8446d Use tcp-in-line in chat-tcp2.rkt 2017-10-21 14:54:53 +01:00
Tony Garnock-Jones fa82634868 ceu-leds.rkt 2017-10-20 16:25:16 +01:00
Tony Garnock-Jones 45eee62fc2 chat-bot.rkt 2017-10-20 11:54:04 +01:00
Tony Garnock-Jones 5904a2f956 Tweak chat-tcp2.rkt 2017-10-19 17:12:01 +01:00
Tony Garnock-Jones 32d1274a8d Expose field-ref/field-set!, for the f-to-c examples I committed just previously 2017-10-17 21:21:58 +01:00
Tony Garnock-Jones 18b3ab0d97 Two equations are better than one blob 2017-10-17 21:21:27 +01:00
Tony Garnock-Jones fc0e900485 New variations on f-to-c 2017-10-17 18:49:26 +01:00
Tony Garnock-Jones 0526364698 web-request-send! 2017-10-13 13:52:45 +01:00
Tony Garnock-Jones 70a56e6457 Allow stop-current-facet to take scripts to execute, like stop-facet 2017-10-12 13:59:11 +01:00
Tony Garnock-Jones 22998de0dc tcp2 line-reader 2017-10-11 22:22:29 +01:00
Tony Garnock-Jones 801470ebaa tcp2 2017-10-11 14:45:54 +01:00
Tony Garnock-Jones 66e2e8b1a7 Fix race condition (!) in timer driver 2017-10-03 10:49:48 +01:00
Tony Garnock-Jones 14f1cbd4fa Remove obsolete call to current-inexact-milliseconds 2017-10-03 10:08:44 +01:00
Tony Garnock-Jones 275b60310f Positively assert detected failures during continuous interest 2017-10-02 14:31:58 +01:00
Tony Garnock-Jones ca0de7d52f running-total.rkt 2017-10-01 15:27:58 +01:00
Tony Garnock-Jones 16bd0155cc Terminal-based IRC client 2017-10-01 11:08:46 +01:00
Tony Garnock-Jones eb07be548e Bug fix: retract names on part 2017-10-01 11:08:36 +01:00
Tony Garnock-Jones 5254feb4de rpc-with-error.rkt 2017-09-30 21:24:43 +01:00
Tony Garnock-Jones db333a266f Tweaks to udp-echo.rkt 2017-09-29 17:34:40 +01:00
Tony Garnock-Jones d96477b9db udp-echo.rkt 2017-09-29 17:23:07 +01:00
Tony Garnock-Jones 0599f974b9 all-pairs-shortest-paths3.rkt 2017-09-29 15:43:02 +01:00
Tony Garnock-Jones 4f52ebf108 Simplify make.rkt slightly 2017-09-29 13:13:57 +01:00
Tony Garnock-Jones fa257a1d16 Avoid accidental n^2 in filesystem driver; make.rkt example 2017-09-28 19:28:38 +01:00
Tony Garnock-Jones 7a4d528dc0 Another timestate example 2017-09-28 17:41:17 +01:00
Tony Garnock-Jones 4a51141500 Simplify timestate driver 2017-09-28 17:07:32 +01:00
Tony Garnock-Jones 51ab2921c2 New examples 2017-09-28 16:26:01 +01:00
Tony Garnock-Jones e41290c509 simple-cross-layer.rkt 2017-09-25 23:56:03 +01:00
Tony Garnock-Jones 6c4ae38499 Make HLL `dataspace` no longer automatically `quit-dataspace`. Fixes #20. 2017-09-25 23:52:29 +01:00
Tony Garnock-Jones 903ed5deaa Omit empty patches in render-msd 2017-09-18 16:14:22 +01:00
Tony Garnock-Jones 96331e0cfd More flip-flop tweaks 2017-09-15 21:46:39 +01:00
Tony Garnock-Jones e124983e05 Print differently in flip-flop 2017-09-15 21:45:54 +01:00
Tony Garnock-Jones a82b428f44 racket/syndicate/examples/actor/flip-flop.rkt 2017-09-15 20:34:16 +01:00
Tony Garnock-Jones 516f6a5cd2 message-struct and assertion-struct 2017-09-13 19:08:01 +01:00
Tony Garnock-Jones 6a436f4c12 Fiddle with spacing of MSD renders 2017-09-03 11:44:21 +01:00
Tony Garnock-Jones 5ce1cec2ea Better comments. 2017-08-27 08:18:11 -04:00
Tony Garnock-Jones d0e803ac41 Update renders 2017-08-27 07:50:17 -04:00
Tony Garnock-Jones 0acd504d05 Demonstrate the general insufficiency of the approach of commit 2a0197b 2017-08-27 07:50:09 -04:00
Tony Garnock-Jones e0dc583f51 Improve MSD rendering 2017-08-27 07:46:01 -04:00
Tony Garnock-Jones 2a0197b711 Fix responsibility-handoff for TCP listener.
Similar problems likely still exist elsewhere that the LLL
demand-matcher is used.
2017-08-22 16:53:57 -04:00
Tony Garnock-Jones 930e4270b4 Better defaults; print defaults accurately 2017-08-22 16:44:07 -04:00
Tony Garnock-Jones 88d324929d Command-line tool, syndicate-render-msd 2017-08-14 17:20:36 -04:00
Tony Garnock-Jones 8cbabafbab Fix #21, long-standing mismatch in assumptions in LLL demand-matcher.
The LLL demand-matcher has two pieces: a `default-task-supervisor`
which does the work of figuring out what to do for a given change in
an instance of demand, and a driver which computes demand instances
and calls `default-task-supervisor` for each.

An `actions` accumulator is threaded through the
`default-task-supervisor` calls. However, the driver code mistakenly
believed that the result of `default-task-supervisor` calls was a
collection of fresh actions only, and therefore consed together the
previous collection of actions with the "new" ones. Because the
`default-task-supervisor` was returning an unmodified accumulator from
time to time, any actions in the accumulator across a call to
`default-task-supervisor` would end up duplicated.

This change favours the thread-the-accumulator-through perspective,
and changes the way the driver uses `new-actions` to match.
2017-08-14 17:17:49 -04:00
Tony Garnock-Jones cb3eee64dc Avoid serialization problems for exceptions 2017-08-13 22:40:28 -04:00
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
Sam Caldwell 2b19064960 Update FAQ.md 2017-01-27 15:22:06 -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 038ea39b30 Fix deps 2016-12-19 10:15:15 +13:00
Tony Garnock-Jones b946bbec3c Glitching example 2016-12-12 11:09:39 +13:00
Tony Garnock-Jones 4940c0b372 Many animated sprites 2016-12-12 10:46:19 +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
Tony Garnock-Jones f440911e7f Sort process table by PID 2016-12-07 09:47:03 +13:00
Tony Garnock-Jones c019a61c18 Improvements in error-handling for websocket connections re: deadlock, closed ports etc. 2016-12-06 05:55:00 +13:00
Tony Garnock-Jones 64cfce2472 Work around limitations in the way the OS supports filesystem-change-evt 2016-12-06 05:54:17 +13:00
Tony Garnock-Jones 4ee234f118 Remove egregious lack of support for reading directory contents in filesystem driver 2016-12-04 17:33:12 +13:00
Tony Garnock-Jones c2ece35bf9 Add #:hook to spawn-broker-server-connection 2016-11-30 10:19:56 +13:00
Tony Garnock-Jones 78cb6f0c02 Add #:hook to spawn-configuration 2016-11-29 18:22:00 +13:00
Tony Garnock-Jones 97b194487b Remove unneeded definitions 2016-11-29 18:05:06 +13:00
Tony Garnock-Jones ae6c5a409f Abstract broker over spatial separation syntax used 2016-11-29 16:29:54 +13:00
Tony Garnock-Jones 97bb848611 Always supervise reloaders 2016-11-29 15:04:13 +13:00
Tony Garnock-Jones d0d7e677fe Reevaluate supervisor name expression for each supervisee 2016-11-29 14:59:14 +13:00
Tony Garnock-Jones d9cc478e6c Use a gensym if no supervisor name is supplied 2016-11-29 14:53:46 +13:00
Tony Garnock-Jones 8cd60417c4 Reimplement supervise.rkt to use spawn->process+transition at each reboot. 2016-11-29 14:48:28 +13:00
Tony Garnock-Jones 726b936ed3 Example of supervision 2016-11-29 13:45:43 +13:00
Tony Garnock-Jones 02c0af4c75 Remove noisy logging 2016-11-29 13:45:23 +13:00
Tony Garnock-Jones 885a1d05d6 Initial stab at a general supervisor 2016-11-29 12:28:08 +13:00
Tony Garnock-Jones 9bb831cac5 Avoid stomping on current-actor-state if it is changed in patch-fn 2016-11-29 12:24:31 +13:00
Tony Garnock-Jones f677c3a888 current-action-transformer must be a store, not a parameter, else it sticks around for (e.g.) supervision of children of supervised actors 2016-11-29 12:23:33 +13:00
Tony Garnock-Jones 3a3d216908 Only act when we know a positive fact about the state of our watched file 2016-11-29 12:19:34 +13:00
Tony Garnock-Jones bde2d833bd Clean up internal interfaces to actor.rkt 2016-11-29 10:34:37 +13:00
Tony Garnock-Jones f638923c6f `current-action-transformer` 2016-11-29 10:19:52 +13:00
Tony Garnock-Jones 05c57ec05d `perform-actions!` 2016-11-29 10:19:06 +13:00
Tony Garnock-Jones c77513e838 Improve actor-state pretty-printing 2016-11-29 10:18:38 +13:00
Tony Garnock-Jones e7402e4387 example-multiple-suspension-resumption.rkt 2016-11-29 10:16:39 +13:00
Tony Garnock-Jones 260a99e08b Track lexical information through analyze-pattern 2016-11-28 14:08:46 +13:00
Tony Garnock-Jones bab5aba083 Crude steps toward reloadable Syndicate modules 2016-11-28 12:27:10 +13:00
Tony Garnock-Jones 8202220fec `schedule-actions!` 2016-11-28 11:39:38 +13:00
Tony Garnock-Jones 2f7313a489 Use web-request-header-websocket-upgrade?. 2016-11-26 11:27:14 +13:00
Tony Garnock-Jones ad2874f463 `web-request-header-websocket-upgrade?` 2016-11-26 11:25:44 +13:00
Tony Garnock-Jones 8f181f5b4d Hoist broker startup into a module+ main 2016-11-26 11:19:31 +13:00
Tony Garnock-Jones b72fca51b0 Export spawn-broker-server-connection 2016-11-26 11:19:17 +13:00
Tony Garnock-Jones f1a7e10fbf Change syndicate-broker to use web.rkt instead of websocket.rkt 2016-11-26 11:09:23 +13:00
Tony Garnock-Jones 7b5b866a6d web-request-peer-details 2016-11-26 11:08:45 +13:00
Tony Garnock-Jones 16d9dd27c9 ... Oops. 2016-11-26 10:02:59 +13:00
Tony Garnock-Jones 990ae8ea9a Oops. 2016-11-26 09:59:24 +13:00
Tony Garnock-Jones 0a585d7842 More uniform treatment of resource-path functions 2016-11-26 09:54:26 +13:00
Tony Garnock-Jones 4af472f7ff Log smtp-account startup and shutdown 2016-11-24 10:38:36 +13:00
Tony Garnock-Jones a3335800f6 Make immediate-query able to yield multiple values 2016-11-24 10:36:38 +13:00
Tony Garnock-Jones f201bea5c6 immediate-query 2016-11-23 22:11:35 +13:00
Tony Garnock-Jones f0f29007df Very basic inbound cookie support 2016-11-23 22:05:49 +13:00
Tony Garnock-Jones 257c0bf628 #:headers for `web-redirect!`. 2016-11-23 17:21:01 +13:00
Tony Garnock-Jones 0d34e3280e web-redirect/temporary! -> web-redirect! 2016-11-23 15:39:11 +13:00
Tony Garnock-Jones 3ce8bc380b web-redirect/temporary! 2016-11-23 15:32:44 +13:00
Tony Garnock-Jones 4b99b629df syndicate/drivers/config 2016-11-23 13:49:24 +13:00
Tony Garnock-Jones 97a843ccec SMTP driver 2016-11-23 13:42:10 +13:00
Tony Garnock-Jones c302e35024 Properly shut down tcp-listener 2016-11-22 11:45:53 +13:00
Tony Garnock-Jones 0102a7d1cd append-url-path 2016-11-22 11:08:11 +13:00
Tony Garnock-Jones 6497cc5185 Use utility sleep instead of repeating it in one of the examples 2016-11-22 09:16:23 +13:00
Tony Garnock-Jones 4d6a2986d5 web-response-successful? 2016-11-22 09:16:08 +13:00
Tony Garnock-Jones c8b7be22cc Use SSL on outbound HTTPS connections properly 2016-11-21 17:38:55 +13:00
Tony Garnock-Jones 9d34ffea4f Log websocket connection starts 2016-11-21 17:38:41 +13:00
Tony Garnock-Jones b2c795c57a Sleep utility 2016-11-21 11:51:48 +13:00
Tony Garnock-Jones c595c638b2 Make ground a little quieter 2016-11-21 11:46:31 +13:00
Tony Garnock-Jones a7a2a5c492 Log HTTP server startup and shutdown 2016-11-21 10:57:43 +13:00
Tony Garnock-Jones c6ca757a7e Useful web utilities 2016-11-21 10:57:35 +13:00
Tony Garnock-Jones 08f1e7506b filesystem driver 2016-11-20 22:33:07 +13:00
Tony Garnock-Jones bc346ff38a Use logger named syndicate/drivers/web 2016-11-20 18:18:43 +13:00
Tony Garnock-Jones 594bb3989b Log web requests 2016-11-20 18:11:08 +13:00
Tony Garnock-Jones c77793f7fd Ticker 2016-10-31 17:42:38 -04:00
Tony Garnock-Jones 15504cccab timestate 2016-10-31 17:36:59 -04:00
Tony Garnock-Jones 490e414904 Add #:let to during/actor 2016-10-31 17:27:46 -04:00
Tony Garnock-Jones d442f4890f summarise-ground-state with SIGUSR2 2016-10-31 13:46:53 -04:00
Tony Garnock-Jones 4a39a03a0a Log failures of outbound web requests 2016-10-30 20:30:58 -04:00
Tony Garnock-Jones c9eddfa0b7 web-response-header-code-type 2016-10-30 20:30:49 -04:00
Tony Garnock-Jones 2d1ad8a62d Add #:on-crash to during/actor 2016-10-30 20:30:38 -04:00
Tony Garnock-Jones 37af1e8726 Cope with transient pulses of demand in during/actor 2016-10-25 16:59:00 -04:00
Tony Garnock-Jones ea997539a2 WIP exploration of problems with demand transients 2016-10-25 12:38:19 -04:00
Tony Garnock-Jones e90c0e580e Check once for unix-signal support, rather than every (!) time (!) 2016-10-25 12:37:57 -04:00
Tony Garnock-Jones acd9dde2b8 Remove mistaken require 2016-10-25 12:37:35 -04:00
Tony Garnock-Jones cd83b5f5d8 Minor fixes 2016-10-24 22:01:17 -04:00
Tony Garnock-Jones 171a51d68c Fix package deps 2016-10-14 16:33:30 -04:00
Tony Garnock-Jones e0ce5eb5b4 clock-face.rkt 2016-10-08 17:34:55 -04:00
Tony Garnock-Jones 0f3db4eac6 Rotations had the wrong sign 2016-10-08 17:34:48 -04:00
Tony Garnock-Jones d1c858a7ae Fix deps 2016-09-27 18:18:09 -04:00
Tony Garnock-Jones 773d1e953b Support coordinate-map in syndicate-gl/2d 2016-09-27 17:08:24 -04:00
Tony Garnock-Jones d00f0cbf13 Fix bug where #:when-disabled on-message endpoints were processing
events even when "disabled".
2016-09-25 15:06:22 -04:00
Tony Garnock-Jones 4ea2586666 Support texture clipping 2016-09-25 15:06:07 -04:00
Tony Garnock-Jones be7cf7417d Repair error in hsv->color 2016-09-25 15:05:07 -04:00
Tony Garnock-Jones 39e46c1cfa Support hierarchical parent/child relationship between sprites. 2016-09-24 13:31:13 -04:00
Tony Garnock-Jones 8f28ae0e9c Minor refactoring 2016-09-19 21:26:38 -04:00
Tony Garnock-Jones 694de50bc0 Illustrate bounds on observation too 2016-09-19 21:21:43 -04:00
Tony Garnock-Jones c1681f7804 Another firewall-demo example case 2016-09-19 21:19:17 -04:00
Tony Garnock-Jones e7dc36f126 syndicate/firewall 2016-09-19 21:14:08 -04:00
Tony Garnock-Jones 9a62eb6076 sandbox-os.rkt 2016-09-19 20:24:51 -04:00
Tony Garnock-Jones aab25684b8 Fancy process table display on SIGUSR1 (if SYNDICATE_TRACE envt var nonempty) 2016-09-13 17:35:12 -04:00
Tony Garnock-Jones 7be8eb6d60 Oops -- I had forgotten udp-handle support in the UDP driver. 2016-09-13 13:21:04 -04:00
Tony Garnock-Jones 9080396bc5 Environment variable for convenient redirection of stdout to stderr 2016-09-13 12:24:53 -04:00
Tony Garnock-Jones bb889542fc Track process names in trace/stderr.rkt 2016-09-13 12:24:16 -04:00
Tony Garnock-Jones 9ee7e677ad Give names to udp-driver and udp-socket processes 2016-09-06 16:46:14 +01:00
Tony Garnock-Jones c844c0d596 Make sure spawn tracing happens before initial-patch tracing 2016-09-06 16:45:59 +01:00
Tony Garnock-Jones 02828d8356 syndicate/profile 2016-09-05 11:22:27 +01:00
Tony Garnock-Jones 0ef2a621d1 Support #:exit? on ide-dataspace 2016-09-05 11:22:13 +01:00
Tony Garnock-Jones 497b63699c Avoid consing up a fresh 1x1 rectangle each time 2016-09-05 11:22:01 +01:00
Tony Garnock-Jones 550bb12c4a Workable first stab at visualization of running configuration 2016-09-02 17:56:07 +01:00
Tony Garnock-Jones 7880b2ba28 current-trace-procedures needs to be a store, not a parameter, because spawns capture the parameterization too early and the scoping of tracing should be hierarchy-based 2016-09-02 17:55:46 +01:00
Tony Garnock-Jones 7d52e24a35 Support rotation of simple-sprites 2016-09-02 17:54:41 +01:00
Tony Garnock-Jones 74b768044f actor-view tooltip 2016-09-02 13:09:41 +01:00
Tony Garnock-Jones 9f333345fc Add actor-view for ground dataspace 2016-09-02 13:09:28 +01:00
Tony Garnock-Jones 92ae08b24e Better dataspace detection 2016-09-02 13:09:16 +01:00
Tony Garnock-Jones c459dbe684 Render dataspaces a little differently 2016-09-02 13:02:20 +01:00
Tony Garnock-Jones c758c0d79c Use `signal-background-activity!` to prevent blocking of the main user thread 2016-09-02 13:00:32 +01:00
Tony Garnock-Jones 9451c6ca54 Fix vertical alignment of tooltip 2016-09-02 12:59:42 +01:00
Tony Garnock-Jones 01013ea372 Tooltip 2016-09-02 11:32:10 +01:00
Tony Garnock-Jones 82e4b64168 Make frame counter transparent wrt touching 2016-09-02 11:15:22 +01:00
Tony Garnock-Jones bd40ca3c62 Simplify `touching` notifications 2016-09-02 11:11:56 +01:00
Tony Garnock-Jones 386df02fd0 Fix comment. 2016-09-02 10:36:40 +01:00
Tony Garnock-Jones b56f559f45 draggable-mixin in syndicate-gl/examples/basic.rkt 2016-09-02 10:36:26 +01:00
Tony Garnock-Jones 45c12bacf0 Permit #:when in stop-when. 2016-09-02 10:36:03 +01:00
Tony Garnock-Jones e50ab77b53 `#:touchable-predicate` 2016-09-02 10:08:02 +01:00
Tony Garnock-Jones a6f002c27d Simplify transform composition 2016-09-02 09:50:48 +01:00
Tony Garnock-Jones b60fa8c755 First steps toward mouse-based picking in syndicate-gl 2016-09-01 19:50:03 +01:00
Tony Garnock-Jones 1ae40c1ff1 `install-ide-dataspace!` 2016-09-01 11:34:38 +01:00
Tony Garnock-Jones b69c3b3778 First sketch of "IDE" for Syndicate 2016-08-31 19:12:40 +01:00
Tony Garnock-Jones 8249993a86 Use lists rather than conses, since they travel through dataspaces better 2016-08-31 19:12:05 +01:00
Tony Garnock-Jones 4685d6af46 extract-patch-pids and tset/set-union 2016-08-31 19:11:43 +01:00
Tony Garnock-Jones bf3b2a5a36 Expose current-ground-event-async-channel 2016-08-31 19:11:16 +01:00
Tony Garnock-Jones e76ccd31a2 Add #:label parameter to 2d-dataspace 2016-08-31 19:10:59 +01:00
Tony Garnock-Jones fb3ed65831 trace-logger --> current-trace-procedures 2016-08-31 15:12:52 +01:00
Tony Garnock-Jones ca1c0f6645 Add a way of loading trace modules at startup time 2016-08-25 18:15:39 +01:00
Tony Garnock-Jones 2a6061bd97 Revamp tracing 2016-08-25 18:07:27 +01:00
Tony Garnock-Jones 0bc775a89f First commit moving from (actor (react ...)) to (actor ...) 2016-08-24 17:35:38 +01:00
Tony Garnock-Jones 56e893fac4 Use field instead of set!. 2016-08-21 08:42:45 -04:00
Tony Garnock-Jones 3240f20d90 Allow ($ v) bindings 2016-08-21 08:27:56 -04:00
Tony Garnock-Jones 426a38b17f Silence redefinition warning 2016-08-15 10:45:23 -04:00
Tony Garnock-Jones fe47abd540 Cosmetic 2016-08-10 19:14:01 -04:00
Tony Garnock-Jones a890a7147b Queue implementations without credit tracking 2016-08-10 19:04:08 -04:00
Tony Garnock-Jones 956a940480 Cosmetic 2016-08-10 19:03:52 -04:00
Tony Garnock-Jones 6684c9e883 queue-remove in functional-queue.rkt 2016-08-10 19:03:40 -04:00
Tony Garnock-Jones 0bc370beec A Queue with credit-based flow control. 2016-08-10 18:42:19 -04:00
Tony Garnock-Jones a828334b2f Cosmetic 2016-08-10 18:41:46 -04:00
Tony Garnock-Jones 2b29e817a5 Add *idle-priority*, and allow #:priority on begin/dataflow 2016-08-10 18:41:41 -04:00
Tony Garnock-Jones f20d1a2ad7 Invariant checking via begin/dataflow 2016-08-10 17:09:24 -04:00
Tony Garnock-Jones d7a594e2b9 Counting-semaphore-like mutex, and dining philosophers. 2016-08-10 17:03:21 -04:00
Tony Garnock-Jones eaade6e4fd Treat synthetic patches differently wrt previousKnowledge 2016-08-07 21:58:19 -04:00
Tony Garnock-Jones 02c66c4bab Fix deps 2016-08-04 13:05:54 -04:00
Sam Caldwell 73f180d90a fix bug in LLL two-buyer 2016-08-03 14:19:18 -04:00
Tony Garnock-Jones e22f608109 Now that we capture parameterization for actors, current-actor-path-rev has to be a store rather than a parameter 2016-07-31 22:19:59 -04:00
Tony Garnock-Jones 4e1bab4b90 Introduce make-spawn to capture parameterizations. Closes #10. 2016-07-31 17:24:48 -04:00
Tony Garnock-Jones 1fa50e4e6a file-system-during2.rkt 2016-07-31 12:22:15 -04:00
Tony Garnock-Jones 628b7b2356 Remove superfluous begin0; reindent 2016-07-31 12:19:54 -04:00
Tony Garnock-Jones e2897d37f4 Factor out commonality from file-system*.rkt examples 2016-07-31 12:17:12 -04:00
Tony Garnock-Jones 463dd48577 Always pick the highest-priority script to run next.
This means that `*gc-priority*` scripts will now reliably run last.
Prior to this change, if some higher-priority script X ran while a
`*gc-priority*` script Y was queued, and it enqueued a high-priority
script Z, then Y would run before Z.
2016-07-31 12:02:11 -04:00
Tony Garnock-Jones f34924bc6d Leave a "tombstone" so we can see the process's name while any record of it remains. 2016-07-31 11:36:25 -04:00
Tony Garnock-Jones 4dad3e9661 Process retractions before asserts in the query forms 2016-07-30 17:05:54 -04:00
Tony Garnock-Jones 9e3f804aae I don't understand how elapsed-ms can end up negative, but I was seeing it in the platformer at frame 0 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones b6a03bdd9b Tweak scribblings to silence errors. Still need to update docs. 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones 3edd184242 Update syndicate-gl for split mux and relay. 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones c7dae47210 inbound* and outbound* are now match-expanders 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones 07eb91b0d9 Update big-bang for split relay and mux. 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones 17db697690 spawn->process+transition 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones c0786c86ca Introduce struct process. 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones 68ba2f74a6 Split dataspaces in to relay and mux sublayers.
This is a major change to the previous design, and also a change with
respect to the semantics in the ESOP 2016 paper. All the complexity of
echo-cancellation is stripped out of the core dataspace semantics, and
the relaying protocol is changed from one constructor, `at-meta`, to
two, `inbound` and `outbound`. The relay connecting a dataspace to its
container is now completely symmetric with the contained actors: it
initially asserts interest in what it is to relay, just like any other
actor would. Dataspaces no longer treat relaying specially.

This commit has updated all (I think) of the non-graphical examples. The
graphical code remains to be done in a following commit.
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones b8c109d82b pretty-print-actor-state 2016-07-30 14:49:05 -04:00