Commit Graph

385 Commits

Author SHA1 Message Date
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
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 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 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 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 45c12bacf0 Permit #:when in stop-when. 2016-09-02 10:36:03 +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 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
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 b6a03bdd9b Tweak scribblings to silence errors. Still need to update docs. 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