Commit Graph

147 Commits

Author SHA1 Message Date
Emery Hemingway 4f7f7e7780 Add `withFacet` template
Simplifies the injection of `getCurrentFacet`.
2021-07-12 12:17:13 +02:00
Emery Hemingway 8c02bf807e Rename sendMessage to send 2021-07-12 12:10:11 +02:00
Emery Hemingway 9b97f1135e Use monotonic time for the timer driver
Use the arbitrary monotonic timer which supports higher resolution.
This avoids Epochalypse problems (even if we are going to be mostly
dead by 2038).
2021-07-09 17:45:44 +02:00
Emery Hemingway 6920c26183 Add timer driver 2021-07-09 17:08:19 +02:00
Emery Hemingway 6a4eb032ad Simplify EndpointSpec type 2021-07-09 17:06:16 +02:00
Emery Hemingway 262a8d7452 Track external tasks that will drive dataspace 2021-07-09 17:06:16 +02:00
Emery Hemingway 3dfafd925d Add react and during to DSL 2021-07-09 17:06:16 +02:00
Emery Hemingway c85c809bef Use % operator for constructing records from classes 2021-07-09 17:06:16 +02:00
Emery Hemingway 99fb0a9cff Simplify event handling 2021-07-09 17:06:15 +02:00
Emery Hemingway 86b2dfbdab Pass only a single preserves value to assert 2021-07-09 17:06:01 +02:00
Emery Hemingway 3de97c5cf1 macros: take multiple arguments at assert
The assertion record may have multiple fields, so take multiple
arguments.
2021-07-09 16:10:17 +02:00
Emery Hemingway 50afa0107f macros: add onStart and onStop
The onStart and onStop macros will be called as actors start and
stop. This can be used to call `quit`, since the async dispatcher
will run empty and raise an error otherwise.
2021-07-09 16:10:17 +02:00
Emery Hemingway 300f0169bb Move syndicate/macros module to syndicate 2021-07-09 16:10:17 +02:00
Emery Hemingway f695092ae8 Fix lost handlers in skeleton index 2021-07-09 16:10:16 +02:00
Tony Garnock-Jones f7c6e7d164 Specify embedded type for sturdy.prs 2021-07-03 09:00:58 +02:00
Tony Garnock-Jones e7ddfdf311 EntityRef.Ref in dataspacePatterns 2021-07-02 16:51:21 +02:00
Tony Garnock-Jones dab79020f4 Variations on protocol for internal and external use 2021-07-02 16:48:15 +02:00
Tony Garnock-Jones a6639b5380 Error packets 2021-07-02 10:11:53 +02:00
Tony Garnock-Jones 06e922c511 Compiled schema bundle 2021-07-01 10:04:26 +02:00
Tony Garnock-Jones 93c196acaa Move schemas into subdirectory after subtree split 2021-07-01 09:51:53 +02:00
Emery Hemingway 274f0429de macros: inject more getCurrentFacet 2021-06-30 13:36:07 +02:00
Emery Hemingway 1e78cd600d Require Preserves >= 0.3.0
Importing preserves/records does not work otherwise.
2021-06-29 18:46:31 +02:00
Emery Hemingway 77e32a214e Initial Syndicate DSL 2021-06-29 17:44:03 +02:00
Emery Hemingway f745e8b53f Simplifications at dataspaces and skeletons 2021-06-29 17:14:27 +02:00
Emery Hemingway 0e493d0696 Improved declareField 2021-06-29 17:14:25 +02:00
Emery Hemingway e156335d9a Adjust imports for RecordClass 2021-06-29 16:59:30 +02:00
Emery Hemingway 637d3b3d76 Move syndicate.nim to syndicate/dataspaces.nim 2021-06-27 16:11:18 +02:00
Emery Hemingway ff27285cff Allow multiple fields
Fix the declareField template to append fields without
deduplication, which was not working because I cannot find a way
to convert indentifiers to strings.
2021-06-25 15:02:54 +02:00
Tony Garnock-Jones e034486aaa Update schemas to match new identifier restrictions. 2021-06-25 09:45:38 +02:00
Emery Hemingway dd977991ad Initial commit
A mostly verbatim translation of syndicate-js.

https://git.syndicate-lang.org/syndicate-lang/syndicate-js
2021-06-24 17:50:27 +02:00
Tony Garnock-Jones 824b078eac Simpler stream connection protocol. 2021-06-18 13:48:12 +02:00
Tony Garnock-Jones cf93327ed6 Services and service activation 2021-06-17 14:57:06 +02:00
Tony Garnock-Jones 6cfe8c2ba4 `when` -> `on`; StreamConnection API; better `this-target`; tcp-listen errors
- spec-generic StreamConnection translators, for simple TCP API
 - `when` -> `on`, better use for event-expanders
 - Removal of special processing of `at`, making `this-target` properly lexically scopeable
 - TcpListenError and handling of tcp-listen errors
 - SYNDICATE_COLUMNS for pretty-printing of dataspace traces
 - Repair driver-support.rkt thread shutdown turn-taking
 - Refinements to stream protocols and implementation
 - Improvements to syntax location preservation in syntax.rkt
2021-06-17 13:38:30 +02:00
Tony Garnock-Jones b6bc816daf Split out experimental "stream" protocols; make tcp.rkt use them; more inertness checks
Also, a few other important changes:
 - Better printing of entity-ref structs
 - Inertness checks on assertion retraction (!) and preventer-disarm
 - Correct selection of active facet during dataflow recomputations
 - Repair silly omission in turn-assert/dataflow!
2021-06-16 21:44:07 +02:00
Tony Garnock-Jones a73b6a9f4a Whole-packet flow credit 2021-06-15 12:46:09 +02:00
Tony Garnock-Jones f6cb595709 Add ConnectionPeer assertions; rename TcpOutbound -> TcpRemote and TcpInbound -> TcpLocal 2021-06-15 12:37:14 +02:00
Tony Garnock-Jones afe36c630d Refactor/repair tcp.prs and tcp.rkt 2021-06-11 15:29:12 +02:00
Tony Garnock-Jones 5850c5b06d Credit-based flow control on tcp driver; line mode 2021-06-11 14:18:53 +02:00
Tony Garnock-Jones b0d0eb3a11 drivers/racket-event.rkt 2021-06-10 13:34:18 +02:00
Tony Garnock-Jones 21d09f81e5 ActiveSocket-close now gets a string, not an embedded exn 2021-06-10 13:33:16 +02:00
Tony Garnock-Jones 8b5e74048e Beginnings of a TCP driver 2021-06-10 10:00:43 +02:00
Tony Garnock-Jones 201f5433e1 Port timer driver from older syndicate/rkt implementation 2021-06-09 23:08:06 +02:00
Tony Garnock-Jones 8cbe2475e3 TAttenuate 2021-06-09 15:06:58 +02:00
Tony Garnock-Jones 930f7eda00 Move box-protocol to a #lang preserves-schema module 2021-06-03 23:22:46 +02:00
Tony Garnock-Jones a932fa1428 Pattern decomposition 2021-06-03 15:58:48 +02:00
Tony Garnock-Jones 3412eabcff Update schemas for new embedded syntax; steps toward pattern support 2021-06-02 06:57:48 +02:00
Tony Garnock-Jones e47a37e3f0 First steps to an actual novy implementation 2021-05-27 10:36:35 +02:00