Commit Graph

405 Commits

Author SHA1 Message Date
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
Tony Garnock-Jones 2a2d363c5e Improve printing of patches 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones 129dd23b84 Remove obsolete endpoint.rkt and its example 2016-07-30 14:49:05 -04:00
Tony Garnock-Jones 56d2fc2c0d Support #:when conditional (on ...) clauses. 2016-07-28 15:45:45 -04:00
Tony Garnock-Jones 0cff79abec Switch from parameters to "stores".
A store is like a parameter, except stores are independent of each
other, unlike parameters which are bundled together into a single
parameterization. This was observable in cases like the
example-action-after-suspension code checked in here, where dataflow
invoked a script, which parameterized current-dataflow-subject-id.
This captured *too much* of things like the pending-patch and
pending-actions. Subsequent `schedule-action!` calls' effects were
then lost.
2016-07-28 15:45:45 -04:00
Sam Caldwell 2e24e105b8 Modify LLL two-buyer examples to give buyer A a budget 2016-07-28 15:33:52 -04:00
Sam Caldwell 48763d8dbe modify HLL two-buyer example to give buyer A a budget
no longer bathing in venture capital
2016-07-27 18:01:15 -04:00
Tony Garnock-Jones e99cd0887f Improved tests for dataflow.rkt 2016-07-27 06:03:57 -04:00
Tony Garnock-Jones 8dba9a66c6 Line reader for TCP 2016-07-25 21:31:12 -04:00
Tony Garnock-Jones 8e22e58920 Move LLL two-buyer examples together in the syndicate collect 2016-07-25 18:37:45 -04:00
Tony Garnock-Jones a05d486354 let-event 2016-07-25 18:34:34 -04:00
Sam Caldwell fdf0fa8cf6 Add spawn/stateless to syndicate/monolithic 2016-07-25 14:48:41 -04:00
Tony Garnock-Jones 819ff13835 Expanders for events and assertion-patterns.
Introduced expanders for events (define-event-expander) and for
assertion-patterns (define-assertion-expander).

Introduced convenience syntax and utilities in web.rkt for working
with web requests.

Support nested bindings in assertion-patterns for message events
(only).
2016-07-23 14:57:26 -04:00
Tony Garnock-Jones 796acbeea2 Defaults for web-response-header 2016-07-23 11:40:18 -04:00
Tony Garnock-Jones b6e863fa79 Support for using struct-defaults in web.rkt, plus a simple default 2016-07-23 11:28:46 -04:00
Tony Garnock-Jones 981914c15b Move web-demo.rkt to web-sanity-check.rkt 2016-07-23 11:03:17 -04:00
Sam Caldwell f28e16ee7b low-level two-buyer example 2016-07-22 15:20:10 -04:00
Sam Caldwell 9f8ddc5249 Allow stateless actors to be given names 2016-07-22 15:11:53 -04:00
Tony Garnock-Jones cecb261c6b Introduce level-anchor and level-anchor->meta-level 2016-07-21 18:53:41 -04:00
Tony Garnock-Jones 5aebc7fa75 #:meta-level in query-set and friends 2016-07-21 18:31:44 -04:00
Tony Garnock-Jones c931b0aee5 Fix dataspace macro 2016-07-21 18:31:33 -04:00
Tony Garnock-Jones 4357424e78 Switch to non-boxed, persistent impl of fields 2016-07-21 16:50:16 -04:00
Tony Garnock-Jones 970baf7a36 Forbid multiple uses of a suspend-script continuation 2016-07-21 15:14:03 -04:00
Tony Garnock-Jones bffc3757cb Remove unused #:substate arg from add-facet!. 2016-07-21 15:00:58 -04:00
Tony Garnock-Jones 573ca4d6e5 Handle exceptions better in syndicate/threaded 2016-07-20 23:02:42 -04:00
Tony Garnock-Jones ccdaceb30c Add syndicate/threaded. 2016-07-20 22:13:43 -04:00
Tony Garnock-Jones 3569426048 Support specification of the form to use to create an actor in during/actor 2016-07-20 22:05:14 -04:00
Tony Garnock-Jones 9b5a399383 Route targeted-events via actor paths 2016-07-20 19:30:49 -04:00
Tony Garnock-Jones 815b139e5c Split out keeping track of actor paths to hierarchy.rkt 2016-07-20 18:54:31 -04:00
Tony Garnock-Jones a01480fe05 Anticipate the pid a process is *about* to be allocated. 2016-07-20 18:42:35 -04:00
Sam Caldwell c76480f701 Allow giving two contracts in field macro 2016-07-20 16:51:41 -04:00
Sam Caldwell 01ad7c72f6 Allow field/c to have different in and out contracts
This can be used to temporarily disallow writing to the field, or
allowing the field to be initially #f but never set to #f.
2016-07-20 16:34:21 -04:00
Sam Caldwell 3b9e483076 Re-kerjigger field macro to allow using #f as a contract 2016-07-20 16:14:12 -04:00
Sam Caldwell e20f87adba Implement field/c using a struct rather than make-contract
Asumu suggested that using a struct with the contract property is
generally preferred.
2016-07-19 17:49:45 -04:00
Sam Caldwell 9cf12a381e wrap contracts given to field with `field\c` 2016-07-18 15:20:38 -04:00
Sam Caldwell 0fb5fa52f4 allow field/c to blame positive party 2016-07-18 15:17:17 -04:00
Tony Garnock-Jones a046bd0f23 Experimental begin/dataflow and define/dataflow facilities 2016-07-17 12:51:57 -04:00
Tony Garnock-Jones 21f05e110a Do not provide "sleep" from the #langs 2016-07-17 12:51:57 -04:00
Tony Garnock-Jones 0a0feee01b Support optional priority in on-event 2016-07-17 00:29:52 -04:00
Tony Garnock-Jones 1334bd3abb Split out query-set* etc; add query-value etc 2016-07-17 00:11:19 -04:00
Tony Garnock-Jones d36ccbb0c2 New web driver 2016-07-16 16:20:57 -04:00
Tony Garnock-Jones 4496258d0e Support current-ground-dataspace for big-bang and friends 2016-07-16 16:07:34 -04:00
Tony Garnock-Jones b6c679afa6 Support `module+` in Syndicate #langs. Closes #2.
Adding `#'module+` explicitly to the stop-list for local-expand stops
the infinite recursion (problem 1 in the issue description). The code
goes on to treat it like `#'module` and `#'module+`, namely as a
non-action-producing form.

Problem 2 in the issue description is interesting. I haven't done
anything in particular to address the production of unbounded `X` ->
`(begin X)` expansions, but it seems not currently to be a problem;
and, weirdly (?), submodules in a `#lang syndicate` or `#lang
syndicate/actor` module do not seem to inherit the `#%module-begin` of
their container! That is, `(module+ main)`, `(module+ test)` etc. all
seem to have a `racket/base` `#%module-begin`, though I've not looked
very far into this.

Most peculiar on this front is that if the `#,@(reverse final-forms)`
precedes the `(module+ syndicate-main ...)`, and the module being
processed includes, say, a `(module+ main)`, then for some reason the
resulting `main` submodule *is* treated as having a `syndicate/lang`
`#%module-begin` (thus causing problems as suggested in the issue
description)! I *really* don't understand why that might be, and
haven't spent very much time investigating after I noticed that so
long as the `main`-required `syndicate-main` submodule preceded all
other submodule declarations, things seemed to work out.

This whole approach is still a bit dicey: for example, the following
will erroneously treat `(foo quux)` as an expression yielding actions,
rather than a struct declaration:

    #lang syndicate
    (define-syntax-rule (foo x) (struct x ()))
    (foo quux)
2016-07-16 15:49:03 -04:00
Sam Caldwell 75cec37038 Support for defining fields with contracts 2016-07-15 18:53:25 -04:00
Sam Caldwell e1f42d5d4f First pass at field/c
Logic mostly dupicated from parameter/c
2016-07-15 15:45:08 -04:00
Tony Garnock-Jones 22f5c47d30 Collect actor.rkt pending-actions during module compilation 2016-07-15 09:50:29 -04:00
Tony Garnock-Jones cb473a8847 Make rising-edge check at patch-compute-time.
This makes rising-edge checks happen only when *fields* change, rather
than every turn. It also means that if a script causes a relevant
field change, the rising-edge check will definitely be performed
before the end of the turn.

A potential downside is that a rising-edge check could schedule a
script which triggers the same rising-edge check, causing an infinite
loop in `run-scripts!`.
2016-07-15 09:47:48 -04:00
Tony Garnock-Jones 0ac24a5755 Support #:on-add, #:on-remove in queries 2016-07-13 17:20:57 -04:00
Tony Garnock-Jones 024cb6d707 Promote {define/,}query-{set,hash,hash-set} to actor.rkt 2016-07-13 16:59:55 -04:00
Tony Garnock-Jones 95fe020ed1 Factor out support/hash.rkt 2016-07-13 16:53:07 -04:00
Tony Garnock-Jones fe272ab514 define/query-set, -hash, -hash-set 2016-07-13 16:37:58 -04:00
Tony Garnock-Jones 6c3295c96d Rename track -> query 2016-07-13 16:35:55 -04:00
Tony Garnock-Jones 53efb1fcd4 Refine script priorities for use by track-set and friends 2016-07-13 16:34:16 -04:00
Tony Garnock-Jones be80ac038f Split effect.rkt out into a package of its own, github.com/tonyg/racket-effects 2016-07-13 13:25:47 -04:00
Tony Garnock-Jones a466fcdf23 track-set.rkt 2016-07-12 21:17:07 -04:00
Tony Garnock-Jones cf82b794e5 Abort to prompt-tag when invoking a suspended continuation. 2016-07-12 17:42:54 -04:00
Tony Garnock-Jones 1a6199f9ee Allow naming of `during/actor`s 2016-07-12 16:32:54 -04:00
Tony Garnock-Jones 34b504326f Remove react/independent; counter to Syndicate design. See Journal 5 for details. 2016-07-12 15:33:31 -04:00
Tony Garnock-Jones 7989bc4931 Add `flush!` utility to actor.rkt 2016-07-12 15:18:06 -04:00
Tony Garnock-Jones 0b06bcf1c4 Introduce syndicate module *activation*.
Make #lang syndicate module-begin gather boot actions into a
syndicate-main submodule, and for each such module, add a main
submodule that calls run-ground with the syndicate-main boot actions.

This lets us write syndicate *libraries* that comprise both
data-structures, functions, and Syndicate services.
2016-07-12 15:05:56 -04:00
Tony Garnock-Jones 2afa0fce15 #lang syndicate/monolithic, integrated with incremental 2016-07-12 13:45:32 -04:00
Tony Garnock-Jones 7c11a438e4 Change compute-patch to deal with trie-sets rather than -maps 2016-07-12 13:43:01 -04:00
Tony Garnock-Jones 118c163193 Done 2016-07-11 12:27:15 -04:00
Tony Garnock-Jones b323d7c650 Support (quit-dataspace) at ground level 2016-07-10 20:14:54 -04:00
Tony Garnock-Jones adf6603440 Track dependencies from fields to endpoint assertion sets with simple dataflow 2016-07-10 19:22:02 -04:00
Tony Garnock-Jones b20337fad8 Introduce actor-global field-table. 2016-07-10 19:15:50 -04:00
Tony Garnock-Jones 081383d321 Correct grammatical error in error message 2016-07-10 18:41:29 -04:00
Tony Garnock-Jones adf2d1e291 Disallow usage of assert!/retract!/patch! outside scripts 2016-07-10 16:48:09 -04:00
Tony Garnock-Jones 9bf2991da8 Enforce rule: fields legal only at actor toplevel or in facet setup code 2016-07-10 16:47:37 -04:00
Tony Garnock-Jones 175c619edc #lang syndicate/actor 2016-07-10 12:33:16 -04:00
Tony Garnock-Jones bf12d3f27f Examples demonstrating illegal field flow 2016-07-09 17:25:37 -04:00
Tony Garnock-Jones 1e1fef6a6e Correctly (?) prune field-tables 2016-07-09 17:24:23 -04:00
Tony Garnock-Jones 3bc95aeaeb Update big-bang.rkt to the new Syndicate/Racket HLL. 2016-07-09 16:35:29 -04:00
Tony Garnock-Jones 8ca2b1ac0c Reimplement Syndicate/Racket with a new design.
This is Syndicate/Racket v2, modeled more closely after Syndicate/js.
Facets and Endpoints are now contained within a single actor, unlike
Syndicate/Racket v1, where a linkage protocol between multiple actors
was used. The approach to actor and facet state has been revised as a
consequence.

Almost all the examples using syndicate/actor have been updated.
2016-07-09 16:18:30 -04:00
Tony Garnock-Jones 52aed3111c Print process names during exn; avoid double-printing exns 2016-07-09 15:28:31 -04:00
Tony Garnock-Jones d244866617 Fix match-value/captures for vectors (and hence structs) 2016-07-09 13:21:20 -04:00
Tony Garnock-Jones 707245cfe2 Support broadcast messages 2016-06-27 14:54:07 -04:00
Tony Garnock-Jones 173a0edb54 two-buyer-protocol.rkt 2016-06-23 10:48:28 -04:00
Tony Garnock-Jones e5a38d5fe5 Instantiated patterns need `?`, not `_`. 2016-06-18 11:57:11 -04:00
Tony Garnock-Jones eac9f39169 Mini version of forward-chaining.rkt using syndicate/actor 2016-06-14 04:01:54 -04:00
Tony Garnock-Jones 4ae9aa0e2b Move the newly-runnable example into examples/actor 2016-06-14 03:51:10 -04:00