Commit Graph

509 Commits

Author SHA1 Message Date
Tony Garnock-Jones 210e983c8d Redo actor-group linking style 2021-06-15 12:43:27 +02:00
Tony Garnock-Jones 0b1e9874d1 Treat #:message separately from #:asserted.
While in principle messages are "instantaneous" assertions, it invites
confusion to treat them as such in context of `(object)` because
assertions by default spawn nested facets, so it's too easy to
accidentally wrap a message handler in an unwanted facet. Being
explicit about messages means you never get an unwanted facet wrapper.
2021-06-15 12:41:46 +02:00
Tony Garnock-Jones d23e264756 escape-pod 2021-06-15 12:38:13 +02:00
Tony Garnock-Jones 6c5e6b713e Print (DEAD) on a dead facet 2021-06-15 12:37:59 +02:00
Tony Garnock-Jones 6c9926cb11 Add ConnectionPeer assertions; rename TcpOutbound -> TcpRemote and TcpInbound -> TcpLocal 2021-06-15 12:37:14 +02:00
Tony Garnock-Jones a0a963f1e2 Provide event-expanders 2021-06-14 19:23:20 +02:00
Tony Garnock-Jones 00ed26fb60 More indentation configurations 2021-06-14 19:23:12 +02:00
Tony Garnock-Jones 4a0e6e0519 actor-group; bug fixes 2021-06-13 07:55:50 +02:00
Tony Garnock-Jones 4dc40da056 Batch outbound actions per-actor, not per-facet; continue to retain ordering within a batch group 2021-06-12 22:16:59 +02:00
Tony Garnock-Jones 6546e335ef Refactor/repair tcp.prs and tcp.rkt 2021-06-11 15:29:12 +02:00
Tony Garnock-Jones d304d1e87d Credit-based flow control on tcp driver; line mode 2021-06-11 14:18:53 +02:00
Tony Garnock-Jones 5e1518c2bb Avoid caching turn past a user action (which causes problems if we suspend/resume across turns) 2021-06-11 09:57:35 +02:00
Tony Garnock-Jones 4970d0fd9e Tweak error message 2021-06-11 09:56:35 +02:00
Tony Garnock-Jones b2c591777e Avoid potential (?) for wrong early termination of engine 2021-06-11 09:55:48 +02:00
Tony Garnock-Jones 26ca865b87 More sensible representation of facet ancestry 2021-06-11 09:54:53 +02:00
Tony Garnock-Jones 0ba6bac01b Clean up relay logging 2021-06-10 16:46:28 +02:00
Tony Garnock-Jones b409063ff2 Handle EPIPE in tcp driver 2021-06-10 16:46:20 +02:00
Tony Garnock-Jones 6ea074948a Launchers from previous incarnation 2021-06-10 16:46:02 +02:00
Tony Garnock-Jones 247fd1b2c0 Introduce `object` and `spawn/link` 2021-06-10 16:21:30 +02:00
Tony Garnock-Jones b5c57381fa Simplify during* 2021-06-10 14:41:57 +02:00
Tony Garnock-Jones 2f4525b031 Split out tcp-client.rkt and tcp-echo-server.rkt 2021-06-10 13:35:26 +02:00
Tony Garnock-Jones 11eb0bcd6f drivers/racket-event.rkt 2021-06-10 13:34:18 +02:00
Tony Garnock-Jones 1ca04c66b0 Detect situation with empty spawn body 2021-06-10 13:33:34 +02:00
Tony Garnock-Jones 752bc91991 ActiveSocket-close now gets a string, not an embedded exn 2021-06-10 13:33:16 +02:00
Tony Garnock-Jones 3984a2c22a Correct generation of patterns for literal embedded-values 2021-06-10 13:32:39 +02:00
Tony Garnock-Jones 7790923e65 Split out timer-demo.rkt 2021-06-10 13:30:30 +02:00
Tony Garnock-Jones bd65204760 entity/stop-on-retract 2021-06-10 13:29:19 +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 45e8c29976 TCP client driver, and provides 2021-06-10 10:42:59 +02:00
Tony Garnock-Jones 336811c51e Beginnings of a TCP driver 2021-06-10 10:00:43 +02:00
Tony Garnock-Jones 5ab375bc26 Conditional assertion 2021-06-10 10:00:22 +02:00
Tony Garnock-Jones 82648dc0da Port timer driver from older syndicate/rkt implementation 2021-06-09 23:08:06 +02:00
Tony Garnock-Jones ee5a5d9f5f Cosmetic, more or less 2021-06-09 23:07:18 +02:00
Tony Garnock-Jones de18aa2112 Add debug output to facet-inert? 2021-06-09 23:07:03 +02:00
Tony Garnock-Jones b12fc5188d "Linking" during spawn; and during/spawn 2021-06-09 23:06:40 +02:00
Tony Garnock-Jones 5dec0afe39 syntax-classes.rkt 2021-06-09 23:05:51 +02:00
Tony Garnock-Jones 52362a9183 facet-on-end-of-turn! 2021-06-09 23:04:58 +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 c40ba51a29 Oops! Omitted DBind case when extending index skeleton 2021-06-09 14:53:22 +02:00
Tony Garnock-Jones d0fb1cfa99 Various missing con/destructors 2021-06-09 14:53:08 +02:00
Tony Garnock-Jones eb3aa40541 Fix double-embedded problem; ~working tcp-server! 2021-06-08 18:01:27 +02:00
Tony Garnock-Jones 5c2bdb1e93 Don't silently swallow errors in linked-thread 2021-06-08 16:37:40 +02:00
Tony Garnock-Jones 2276d1a81e Allow deferred production of initial-ref 2021-06-08 16:35:07 +02:00
Tony Garnock-Jones 600a52c287 Fully expose the problem with missing-unwrapping-of-embedded 2021-06-08 16:34:51 +02:00
Tony Garnock-Jones 40c26f006e Remove :template in favour of ->preserve 2021-06-08 16:20:58 +02:00
Tony Garnock-Jones ef66c1d358 Further adaptation to recent Preserves changes 2021-06-08 16:09:59 +02:00
Tony Garnock-Jones 92eab82b1f Correct name of engine.rkt logger 2021-06-08 15:57:25 +02:00
Tony Garnock-Jones 19fc5f97bb Adapt to recent changes in preserves-schema 2021-06-08 15:39:55 +02:00
Tony Garnock-Jones 601d60adc3 Adapt to new ty-field records 2021-06-08 14:13:01 +02:00
Tony Garnock-Jones 468b6541f9 Yesterday's work on relay + TCP distribution 2021-06-08 09:33:56 +02:00
Tony Garnock-Jones 6f9ee4eb44 More emacs indentation config 2021-06-08 09:31:52 +02:00
Tony Garnock-Jones 8e866239a6 #:name for during* 2021-06-08 09:31:28 +02:00
Tony Garnock-Jones bed381dd5e Remove unwanted commented code 2021-06-08 09:30:38 +02:00
Tony Garnock-Jones b22ed84bdb Minor refactoring 2021-06-08 09:30:29 +02:00
Tony Garnock-Jones 5d1e266ea3 Improve error reporting on turn reuse 2021-06-08 09:30:04 +02:00
Tony Garnock-Jones 98486667f4 gen:custom-write for turn 2021-06-08 09:29:49 +02:00
Tony Garnock-Jones 5260370154 entity-data 2021-06-08 09:29:15 +02:00
Tony Garnock-Jones e7153b9c6a Truncate output of hmac-sha256 correctly 2021-06-08 09:28:48 +02:00
Tony Garnock-Jones c18a2b2652 turn-committed? 2021-06-08 09:28:14 +02:00
Tony Garnock-Jones eec5c59f84 Accommodate new preserves approach to (un)parsing embeddeds 2021-06-08 09:27:51 +02:00
Tony Garnock-Jones 3751c07de6 *dead-actor*, *dead-facet*, *dead-engine* 2021-06-08 09:24:25 +02:00
Tony Garnock-Jones 557a0fb499 actor-remove-exit-hook! 2021-06-08 09:23:23 +02:00
Tony Garnock-Jones 4c72ab11f4 Export actor-name and actor-engine 2021-06-08 09:22:50 +02:00
Tony Garnock-Jones da0d2b8e61 attenuate-entity-ref as well as attenuate-sturdy 2021-06-08 09:21:54 +02:00
Tony Garnock-Jones 2d07e46c67 Fix and add copyright notices 2021-06-04 16:20:14 +02:00
Tony Garnock-Jones 7be7c36537 Merge branch 'main' into novy 2021-06-04 16:19:41 +02:00
Tony Garnock-Jones 2a360bff32 Adjust copyrights 2021-06-04 15:56:03 +02:00
Tony Garnock-Jones c6d4d3acf1 Fix up copyright notices 2021-06-04 11:35:27 +02:00
Massimo Zaniboni 855b7835f6 Added license header to each source code file 2021-06-04 11:13:49 +02:00
Tony Garnock-Jones e85760e6d6 syndicate/sturdy.rkt 2021-06-04 00:05:04 +02:00
Tony Garnock-Jones f1c3859a71 Put assertion-struct and message-struct back. 2021-06-03 23:32:22 +02:00
Tony Garnock-Jones 2a9cdfc5cc !dump-registered-preserves-patterns! 2021-06-03 23:23:48 +02:00
Tony Garnock-Jones b49178146d Move box-protocol to a #lang preserves-schema module 2021-06-03 23:22:46 +02:00
Tony Garnock-Jones d554c4ba8e Move go.rkt and go2.rkt into the examples package 2021-06-03 22:54:36 +02:00
Tony Garnock-Jones d648af920a Restore syndicate-examples package; port box-and-client.rkt 2021-06-03 22:48:12 +02:00
Tony Garnock-Jones 7b600c51df Emacs indentation support 2021-06-03 22:48:12 +02:00
Tony Garnock-Jones a23047c26b stop-when, stop-when-true, when retracted 2021-06-03 22:48:12 +02:00
Tony Garnock-Jones 50f6dfadc0 Pattern quasiquotation (!!!) 2021-06-03 22:48:12 +02:00
Tony Garnock-Jones 7bf0f17e8e Repair missing argument in call to struct-label-and-arity 2021-06-03 22:48:11 +02:00
Tony Garnock-Jones 12df86ee74 Hash-table patterns 2021-06-03 22:48:11 +02:00
Tony Garnock-Jones 507f137c25 Fix templates of union schemas 2021-06-03 22:48:11 +02:00
Tony Garnock-Jones 7ce9166a5d actor-system/dataspace 2021-06-03 22:48:11 +02:00
Tony Garnock-Jones 490f2d82db Provide :pattern and :template by default 2021-06-03 22:48:11 +02:00
Tony Garnock-Jones d6c29fc2e7 Immediate stop-facet continuation execution 2021-06-03 22:48:11 +02:00
Tony Garnock-Jones 22bd461cdc Entity names 2021-06-03 22:48:11 +02:00
Tony Garnock-Jones 63720f80ba Split out during*; new example go2.rkt 2021-06-03 17:02:20 +02:00
Tony Garnock-Jones 5d17a3bc58 Use actor names; extract reporting from box 2021-06-03 17:01:59 +02:00
Tony Garnock-Jones defb65cd30 Actor names; debug tracing of actors 2021-06-03 17:01:26 +02:00
Tony Garnock-Jones 2fa1b033eb Use :template in send!. 2021-06-03 16:07:25 +02:00
Tony Garnock-Jones 6b3988caf7 Repair during macro; use during in box/client example 2021-06-03 16:03:00 +02:00
Tony Garnock-Jones 4b1b2a9635 Proper skeleton-based dataspace 2021-06-03 15:59:17 +02:00
Tony Garnock-Jones 6fe14e09a5 Pattern decomposition 2021-06-03 15:58:48 +02:00
Tony Garnock-Jones 044860a3b5 Useful custom-write for entities 2021-06-03 15:57:28 +02:00
Tony Garnock-Jones 40310a0eb3 Split out dataspace.rkt 2021-06-02 15:00:25 +02:00
Tony Garnock-Jones 7a9f52b97c Add missing layer in pattern generation 2021-06-02 13:41:30 +02:00
Tony Garnock-Jones b77fe3efbc Steps towards using :pattern/:template in syntax 2021-06-02 13:11:26 +02:00
Tony Garnock-Jones fe6430abfd Add :template 2021-06-02 12:50:21 +02:00
Tony Garnock-Jones ac01ce4dfe Work towards schema-to-pattern compiler 2021-06-02 12:37:36 +02:00
Tony Garnock-Jones 5c97661c73 Update schemas for new embedded syntax; steps toward pattern support 2021-06-02 06:57:48 +02:00
Tony Garnock-Jones 37bd64bf05 First attempt at novy syntax 2021-06-01 10:04:53 +02:00
Tony Garnock-Jones 35e1d24fde Cope with nonexistent schemas/gen directory during setup 2021-06-01 10:02:41 +02:00
Tony Garnock-Jones 568f97c2f6 ref -> entity-ref 2021-06-01 10:01:10 +02:00
Tony Garnock-Jones d4af09e1b9 Main submodule in go.rkt 2021-05-31 13:07:37 +02:00
Tony Garnock-Jones a06b9d188a Integrate dataflow 2021-05-31 13:05:37 +02:00
Tony Garnock-Jones e5b87f5bb0 Cosmetic 2021-05-31 12:25:44 +02:00
Tony Garnock-Jones bcbc660ff1 Make turns atomic, rather than reply-turn-per-event 2021-05-31 12:06:44 +02:00
Tony Garnock-Jones caec6fc820 Daemon actors and go.rkt shutdown 2021-05-28 10:33:02 +02:00
Tony Garnock-Jones 3528391f12 Crude pseudo-dataspace, plus box-and-client 2021-05-28 09:57:11 +02:00
Tony Garnock-Jones 4eb43a158e Progress 2021-05-27 11:41:11 +02:00
Tony Garnock-Jones 21bb695ac8 First program! 2021-05-27 11:28:10 +02:00
Tony Garnock-Jones d1a1c967f7 First steps to an actual novy implementation 2021-05-27 10:36:35 +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 4b55742548 Published preserves on the package catalog 2021-05-16 11:38:14 +02:00
Tony Garnock-Jones ec42282c69 Update for latest preserves API 2021-05-15 22:34:58 +02:00
Tony Garnock-Jones 3030d1959e Use flow control to avoid being spammed by fast talkers 2020-06-10 13:38:26 +02:00
Tony Garnock-Jones 55f01cea3f Placeholders no longer available in preserves 2020-06-10 12:06:10 +02:00
Tony Garnock-Jones d300f24243 Update path to preserves package 2020-04-27 21:10:48 +02:00
Tony Garnock-Jones c55e5924f7 Update commit names 2020-04-27 20:34:09 +02:00
Tony Garnock-Jones f269c02c23 Rearrange for independent packages. 2020-04-27 20:27:48 +02:00
Tony Garnock-Jones 419e90e42f server-session-connected avoids assert-lock of server-connected 2019-09-11 16:07:54 +01:00
Tony Garnock-Jones 0013c917b3 Update to new preserves API 2019-09-11 15:10:44 +01:00
Tony Garnock-Jones c9c0d8bb09 Default TCP port 21369 2019-06-23 14:01:30 +01:00
Tony Garnock-Jones 976741cd49 Cope with echo-server minimart-benchmark test: flat new-connection cost 2019-06-21 16:43:59 +01:00
Tony Garnock-Jones df6918bc6f Remove out-of-date example expansions 2019-06-21 16:43:24 +01:00
Tony Garnock-Jones 751d8e104a On start, only relay subs with active holders 2019-06-20 22:54:59 +01:00
Tony Garnock-Jones 6514e1731f Must be able to disable heartbeats for testing 2019-06-20 12:19:45 +01:00
Tony Garnock-Jones aef3490a20 Proper heartbeats 2019-06-20 11:55:29 +01:00
Tony Garnock-Jones c122253681 Update HOWITWORKS.md 2019-06-18 18:01:40 +01:00
Tony Garnock-Jones 5923bdd3ce Partial repair for a deep problem with visibility-restriction.
This change makes `during` work "atomically" across a communications
delay, by ensuring that a retracted assertion matching the `during`'s
pattern triggers the "stop on" clause in the expansion of the
`during`.

Some discussion of the change exists in the Journal and in my
notebook.
2019-06-18 17:56:09 +01:00
Tony Garnock-Jones ff25f8b377 Cosmetic: indicate protocol grouping 2019-06-13 12:51:20 +01:00
Tony Garnock-Jones 68ba310327 Terminate federation link facet on receipt of Err 2019-06-13 12:51:11 +01:00
Tony Garnock-Jones 2512d68852 Repair error: an End was missing 2019-06-13 12:50:55 +01:00
Tony Garnock-Jones c17eb4caa0 Improved error signalling 2019-06-12 00:23:39 +01:00
Tony Garnock-Jones c0ff69f67e Switch to federated-link-ready 2019-06-11 18:47:56 +01:00
Tony Garnock-Jones be0dc5413b Command-line control of nickname in server-chat-client 2019-06-11 18:34:25 +01:00
Tony Garnock-Jones 052be5c58e Line-based buffering of stdout in server-chat-client 2019-06-11 18:34:14 +01:00
Tony Garnock-Jones 72b4326651 Turn-based federation and client/server protocol 2019-06-11 18:33:37 +01:00
Tony Garnock-Jones be8fefaf4d Bag no longer used in federation 2019-05-23 11:13:47 +01:00
Tony Garnock-Jones 921265d2f3 Repair ws-recv usage; requires rfc6455 package v2.0 or newer 2019-05-22 23:45:15 +01:00
Tony Garnock-Jones 58231b253f Clean up empty entries in subscription-matches 2019-05-20 22:07:02 +01:00
Tony Garnock-Jones e03c8267dd Update federation to match latest paper-journal work: proper propagation of Add/Del 2019-05-20 21:49:19 +01:00
Tony Garnock-Jones 8aaf1d1902 Improve distributed debug output 2019-05-20 21:45:40 +01:00
Tony Garnock-Jones 43a0578f19 Buffer uplink communications to give a chance for stateful entities at each end to initialise themselves before sending messages.
An alternative approach would be to reintroduce flow-control, which was
removed as part of commit 94e27e1.
2019-05-16 23:14:39 +01:00
Tony Garnock-Jones 8daff63e8e Fix (observe (server-envelope A B)) => (server-proposal A (observe B)) 2019-05-16 23:13:56 +01:00
Tony Garnock-Jones 94e27e1cbc Change federation protocol to be transport-neutral, carried via Syndicate itself 2019-05-16 22:28:42 +01:00
Tony Garnock-Jones 84361dcbaf Move away from use of "broker" 2019-05-16 20:14:19 +01:00
Tony Garnock-Jones 6952aec992 Remove federation-prototype 2019-05-16 15:48:51 +01:00
Tony Garnock-Jones cd2d7e428b Close input/output ports in web.rkt once connection is logically over 2019-05-16 14:58:33 +01:00