Commit Graph

37 Commits

Author SHA1 Message Date
Tony Garnock-Jones 5d0d636f16 Happy new year 2024-03-10 12:43:06 +01:00
Tony Garnock-Jones 5d368fed95 First experimental noise relay 2023-01-19 16:21:26 +01:00
Tony Garnock-Jones 89353fa84f Happy new year 2023-01-16 15:57:29 +01:00
Tony Garnock-Jones d4d53fa9ba Bump copyright years 2022-01-16 09:48:18 +01:00
Tony Garnock-Jones c5643fb1b1 No more distinction between internal/external protocol variants 2021-09-24 13:02:51 +02:00
Tony Garnock-Jones 701f5722f0 Error on sending transient references 2021-09-02 16:47:09 +02:00
Tony Garnock-Jones b4b5a443d1 Use external protocol variant 2021-07-03 16:33:10 +02:00
Tony Garnock-Jones 8008ca5a53 Rearrange protocols subtree 2021-07-01 09:51:17 +02:00
Tony Garnock-Jones 0ba6bac01b Clean up relay logging 2021-06-10 16:46:28 +02:00
Tony Garnock-Jones 37ca805969 Ambient current-turn 2021-06-10 11:42:07 +02:00
Tony Garnock-Jones 9aa33210b0 Use tcp driver in tcp-server 2021-06-10 10:53:30 +02:00
Tony Garnock-Jones e8a2e00fa2 TAttenuate 2021-06-09 15:06:58 +02:00
Tony Garnock-Jones fff4b05036 Run packet writer in a turn to add proper error handling 2021-06-09 14:53:41 +02:00
Tony Garnock-Jones eb3aa40541 Fix double-embedded problem; ~working tcp-server! 2021-06-08 18:01:27 +02:00
Tony Garnock-Jones 2276d1a81e Allow deferred production of initial-ref 2021-06-08 16:35:07 +02:00
Tony Garnock-Jones ef66c1d358 Further adaptation to recent Preserves changes 2021-06-08 16:09:59 +02:00
Tony Garnock-Jones 19fc5f97bb Adapt to recent changes in preserves-schema 2021-06-08 15:39:55 +02:00
Tony Garnock-Jones 468b6541f9 Yesterday's work on relay + TCP distribution 2021-06-08 09:33:56 +02:00
Tony Garnock-Jones 08c4980025 Move the bulk of the existing implementation out of the way 2021-05-27 10:34:35 +02:00
Tony Garnock-Jones a3a229532a add-observer-endpoint!, add-raw-observer-endpoint! 2019-05-04 22:58:45 +01:00
Tony Garnock-Jones a86478b7b9 Remove unneeded #:capture-projection argument to term->skeleton-interest 2019-05-03 20:29:40 +01:00
Tony Garnock-Jones 759bbdf1c3 Add visibility-restriction, making the test pass 2019-03-25 16:32:09 +00:00
Tony Garnock-Jones fc43d5c4a0 Initial broker implementation 2019-03-18 15:34:14 +00:00
Tony Garnock-Jones ab64f71766 Restriction-paths: right idea (?), wrong implementation. This time maybe.
Instead of having restriction-paths as an adjunct to a change, they're
more propertly a part of each assertion itself. The new `skeleton.rkt`
keeps an optional restriction-path with each assertion, treating it as
distinct from its underlying assertion. The idea of not signalling
changes in assertions that have a restriction-path mismatch stays.
2018-05-04 15:55:53 +01:00
Tony Garnock-Jones 69a8893da3 Add the concept of "restriction-path", which limits assertion visibility.
This is used when relaying: because we don't have access to the full
term, but only the projection results, we are inserting various
`(discard)`s. This is the cause of the failure in
`test/core/nesting-confusion.rkt`.

By adding `restriction-path`, we allow the inner dataspace to avoid
showing a reconstructed term to endpoints that might be able to
observe the reconstructed parts.

An alternative implementation approach is to generalize patterns in
the inner relay actor, translating all `(discard)`s into captures,
which would give us all the relevant terms that we need. The way I've
chosen to go (or at least, to try out) allows us to potentially keep
the "efficient" idea of just transmitting pattern-bound values across
some network link connecting dataspaces. The alternative would require
transmission of the full assertions, eliding no irrelevant detail.
2018-05-03 22:09:33 +01:00
Tony Garnock-Jones 00d50e6700 Factor out assertion structure definitions 2018-05-03 16:14:30 +01:00
Tony Garnock-Jones 17cee51342 Ensure (??) that relays' assertions can't outlive them 2018-05-02 18:10:52 +01:00
Tony Garnock-Jones dd123f4a27 Notes on eventual improvements to dataspace nesting 2018-05-02 13:19:18 +01:00
Tony Garnock-Jones eb208f3a10 Handy logging for diagnosing problems 2018-05-01 22:39:50 +01:00
Tony Garnock-Jones 869a495392 First sketch of `quit-dataspace!`. 2018-05-01 21:12:54 +01:00
Tony Garnock-Jones 0e37037b6e Eliminate another parameter: now only `current-facet` remains 2018-04-30 11:18:49 +01:00
Tony Garnock-Jones 14ee4f70ef Avoid manipulating `in-script?` all the time 2018-04-30 10:44:35 +01:00
Tony Garnock-Jones a6811f2ba5 Add timer/timestate support; this prompted a change to endpoint registration.
The `add-endpoint!` call is changed in two ways:

 - the old `assertion-fn` has become `update-fn`, yielding both
   an assertion *and* an optional handler, because if the handler
   depends on a field which changes, previously the handler wasn't
   being updated

 - a new parameter, `dynamic?`, can be set to #f (it's usually #t)
   to ensure that the assertion and skeleton-interest are calculated
   only once ever, and are not connected to the dataflow machinery.

The first change makes it possible for the `(later-than (deadline))`
pattern, where `deadline` is a field, to work; the second change makes
`during` and `during/spawn` work correctly in the face of field
updates.
2018-04-29 22:27:55 +01:00
Tony Garnock-Jones 91596b066f External-event and TCP drivers; chat server and stdin echo programs 2018-04-29 18:43:39 +01:00
Tony Garnock-Jones 2652147141 Commented-out debug-printing in relay.rkt 2018-04-29 16:08:35 +01:00
Tony Garnock-Jones b3d6b74dab Repair scheduling of inner dataspaces, thus allowing e.g. double nesting 2018-04-29 16:07:49 +01:00
Tony Garnock-Jones dd2cddb6a7 Nested dataspaces 2018-04-29 14:54:14 +01:00