Commit Graph

405 Commits

Author SHA1 Message Date
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
Tony Garnock-Jones f21e58dacb Support #:meta-level for during 2016-06-14 03:48:31 -04:00
Tony Garnock-Jones 7271ef6b73 Ensure that `?` is provided by pattern.rkt and clients 2016-06-14 03:48:12 -04:00
Tony Garnock-Jones 0b964bb1bb Compute `retracted` pattern just once during `during`. Avoids mutation-related bug. 2016-06-11 06:59:59 -04:00
Tony Garnock-Jones 7e144ab33b Remove unused require 2016-06-09 14:24:03 -04:00
Tony Garnock-Jones 403cc372c1 Forgot to update endpoint.rkt's use of <spawn> 2016-06-09 14:23:54 -04:00
Tony Garnock-Jones d161d50b9a Split out pattern.rkt 2016-06-08 14:22:35 -04:00
Tony Garnock-Jones 2a218dd0a6 Split out effect-handling library. 2016-06-08 13:52:32 -04:00
Tony Garnock-Jones e74f6ae7e5 Initial support for properly-recorded actor names. 2016-06-06 16:45:42 -04:00
Tony Garnock-Jones cd94df3cab Report non-network-failure exceptions more clearly 2016-06-06 10:36:00 -04:00
Tony Garnock-Jones 9af4e88681 Optional SSL options for broker 2016-06-05 12:06:28 -04:00
Tony Garnock-Jones f3645b9081 Better choice of example UDP multicast group address. 2016-05-28 10:32:03 -04:00
Tony Garnock-Jones f6ed330a0d UDP multicast support 2016-05-27 19:43:35 -04:00
Tony Garnock-Jones 4d905e9f3f Correct typo in documentation 2016-05-27 18:45:41 -04:00
Tony Garnock-Jones 5c288036aa Friendlier error when one accidentally asserts wildcard 2016-05-17 02:08:23 -04:00
Tony Garnock-Jones 791d2880ae If a parent facet terminates, its children watch for this and terminate themselves. 2016-05-17 01:15:09 -04:00
Tony Garnock-Jones 1e84a3507d Avoid use of racket/match for message matching in actors; makes abstracting over patterns easier 2016-05-17 01:14:48 -04:00
Tony Garnock-Jones e3ff45b08e Fix wildcard matcing in trie-lookup to properly prepend wilds for open-parens. 2016-05-17 01:11:00 -04:00
Tony Garnock-Jones 07ef4f108e Improve printing of actor state 2016-05-17 01:10:26 -04:00
Tony Garnock-Jones b1f7816418 Only fire (on (asserted)) when no previous matching assertions have been seen.
This makes (on (asserted)), (on (retracted)) and (during) behave as if
they are *grouping* by their named captures, which is what we want. It
gives a much easier to understand programming model. Note the
differences in execution of example-partial-retraction.rkt before and
after this patch. This patch gives example-partial-retraction.rkt, and
programs like it, a more natural behaviour.
2016-05-17 00:24:17 -04:00
Tony Garnock-Jones 3db6177ce9 Second listener, this one using during 2016-05-17 00:15:52 -04:00
Tony Garnock-Jones d9b11566f5 example-partial-retraction.rkt 2016-05-17 00:09:18 -04:00
Tony Garnock-Jones c7b62b109e Slightly less noisy logging from broker by default 2016-05-16 14:18:44 -04:00
Tony Garnock-Jones cd60353053 Remove obsolete definition. 2016-05-15 07:01:32 -04:00
Tony Garnock-Jones 74c663d5d4 Provide broker-scope and broker-data from server.rkt 2016-05-15 06:59:28 -04:00
Tony Garnock-Jones 81f9a0f0fe Split host and port in websocket-remote-client and broker-scope. 2016-05-15 06:56:29 -04:00
Tony Garnock-Jones c29ae059ff Make sure to advertise presence even during connection establishment, since otherwise the user actor may hang indefinitely. 2016-05-15 06:55:39 -04:00
Tony Garnock-Jones 0f1fabddfb Better logging of websocket connection failures. 2016-05-15 06:55:14 -04:00
Tony Garnock-Jones 931c54df6a It is expected that outbound connection supply should drop. 2016-05-15 06:53:02 -04:00
Tony Garnock-Jones b65291e789 Remove obsolete clean-patch function. 2016-05-15 06:11:04 -04:00
Tony Garnock-Jones e7b0e15786 Support nested observation across broker protocol 2016-05-15 06:10:51 -04:00
Tony Garnock-Jones ee120022a4 trie-step* 2016-05-15 06:10:31 -04:00
Tony Garnock-Jones 7a4f1d8931 Update Racket demand-matcher to match improvements in the js version. 2016-05-14 17:07:50 -04:00
Tony Garnock-Jones 68cde5be6c DemandMatcher: overlap not ruled out! Remove it. 2016-05-12 22:18:57 -04:00
Tony Garnock-Jones c6cfa2fe87 Scoped broker connections 2016-05-12 12:32:29 -04:00
Tony Garnock-Jones f486f93bd4 More ergonomic step/prepend for tries and patches 2016-05-12 12:18:59 -04:00
Tony Garnock-Jones 81e10632dd Expose Websocket request host/path to server-side 2016-05-12 12:18:43 -04:00
Tony Garnock-Jones 7e48e82a48 Print out peer connection details in broker 2016-05-12 10:57:34 -04:00
Tony Garnock-Jones de44b51e49 ws-echo.rkt and ws-echo-client.rkt 2016-05-12 10:48:34 -04:00
Tony Garnock-Jones a8821913a1 Publish websocket-peer-details for each connection 2016-05-12 10:46:02 -04:00
Tony Garnock-Jones 4de4a099b9 Fix bug with outbound websocket connections 2016-05-12 10:46:02 -04:00
Tony Garnock-Jones 8d6bc484a8 Canonicalize deserialized atoms. Fixes serious routing bug when using the broker. 2016-05-12 08:06:23 -04:00
Tony Garnock-Jones fd2e4cc23c Exchange ad-hoc tracing for slightly more principled log-info output. 2016-05-10 01:24:47 -04:00
Tony Garnock-Jones bbca582b98 Get the broker working.
Add support for encoding prefab structs as JSON objects.

Remove linkage & at-meta from patches inside broker dataspace. This is
ugly, and deserves to be revisited in future.

Fix a bug where using trie-prune-branch was incorrect, and
trie-subtract should have been used instead.

Factor out support/struct.rkt.
2016-05-10 00:25:50 -04:00
Tony Garnock-Jones 7c4e00f614 Command-line launcher for broker 2016-05-09 12:55:20 -04:00
Tony Garnock-Jones 18eab695cc First sketch of broker 2016-05-08 20:42:46 -04:00
Tony Garnock-Jones 5d46a6e631 Add patch-without-at-meta 2016-05-08 20:42:33 -04:00
Tony Garnock-Jones fbece48f52 `patch!` and crude `on-event` handling in actor.rkt 2016-05-08 20:41:29 -04:00
Tony Garnock-Jones 925ba8c8de mux-focus-event (commented out, because problems) 2016-05-08 19:47:07 -04:00
Tony Garnock-Jones 6fe897eb46 Rename track -> query 2016-05-08 17:51:08 -04:00
Sam Caldwell 7b8b6c5da7 scribble syndicate-gl/2d 2016-05-06 17:35:15 -04:00
Tony Garnock-Jones 839818f8e4 Tries and patches to and from jsexpr 2016-04-19 18:52:49 -04:00
Tony Garnock-Jones d033c69083 Emacs indentation settings 2016-04-07 10:06:59 +02:00
Tony Garnock-Jones 7fcfa9586b Rename "network" to "dataspace" throughout 2016-04-07 09:42:54 +02:00
Tony Garnock-Jones b6ccbe81cc Rename documentation to "syndicate" 2016-04-04 05:06:23 +02:00
Tony Garnock-Jones 9dee4e3b30 Alpha convert: prospect -> syndicate 2016-04-01 19:53:46 -04:00