Commit Graph

246 Commits

Author SHA1 Message Date
Emery Hemingway 209ae51580 patterns: inject into <bind …> 2023-06-08 14:15:03 +01:00
Emery Hemingway aff3061506 Improve error message for pattern and handler mismatch 2023-06-08 14:14:34 +01:00
Emery Hemingway 1dd197f102 Add unpackLiterals proc to patterns module 2023-05-30 13:15:47 +01:00
Emery Hemingway 81ec3808a6 Adjust to new syndicate-protocols 2023-05-18 12:22:55 +01:00
Emery Hemingway ad076bdfed actors: tweak addCallback(…) and add onStop(…) 2023-05-17 10:42:54 +01:00
Emery Hemingway f1cc7b336b Build different protocol modules 2023-05-11 22:31:57 +01:00
Emery Hemingway f0328b27cd Switch HMAC to BLAKE2s-256 2023-05-07 09:40:17 +01:00
Emery Hemingway 94fa1efd62 Regenerate protocol modules 2023-05-06 20:22:21 +01:00
Emery Hemingway 0923b8abee Export a different runActor proc 2023-05-06 20:09:45 +01:00
Emery Hemingway 74254dd45b relays: reopen stdin asynchronously
This was preventing futures from being completed until the next
packet was received on stdin. This should fix a lot of problems
and bad behavior.
2023-05-06 16:04:20 +01:00
Emery Hemingway 572e3b76ab Regenerate protocol modules 2023-05-03 20:51:07 +01:00
Emery Hemingway 003bfa0a97 Less use of callSoon 2023-05-03 20:51:07 +01:00
Emery Hemingway 90247e19ce Update build metadata 2023-04-12 15:09:11 -05:00
Emery Hemingway cf05845f15 Remove buffer limit on binary protocol decoder
Buffer exhaustion is a problem for the server not the client.
2023-04-10 16:57:34 -05:00
Emery Hemingway 6364db7f69 Export a default capability generator 2023-04-10 16:56:51 -05:00
Emery Hemingway b1ad08e693 Fix patterns examples 2023-04-10 16:56:22 -05:00
Emery Hemingway 53278d8614 Update to latest Preserves API 2023-03-29 17:59:47 -05:00
Emery Hemingway ac81221faa Add grabDict() pattern generator 2023-03-29 17:59:44 -05:00
Emery Hemingway b1627a491a Patterns: refactor 2023-03-26 19:28:31 -05:00
Emery Hemingway 71955f257d Rename proc facet(…) to proc inFacet(…) 2023-03-26 19:28:08 -05:00
Emery Hemingway 6f2adf573a Check the protocol modules 2023-03-23 14:06:05 -05:00
Emery Hemingway 114088bfe6 Tup: check syndicate module 2023-03-23 12:52:38 -05:00
Emery Hemingway 32d8719c84 Adjust for outer build system 2023-03-01 21:02:03 -06:00
Emery Hemingway 00269c04b1 Use "do ():" for compatibility with Nim 2.0.0 2022-12-21 23:01:06 -06:00
Emery Hemingway a5c2d30ec4 Taps now takes multiple endpoints for connect 2022-12-21 23:00:04 -06:00
Emery Hemingway 589b0772e3 Make the Entity methods compatible with mm:orc 2022-12-21 22:59:16 -06:00
Emery Hemingway 47da042671 Add connectNet
Use Taps to connect to Syndicate peers over TCP. Taps is now a
depedency.
2022-12-13 23:03:38 -06:00
Emery Hemingway 0fab80bcf7 Move swaybar_status_actor out to syndicate_utils repo 2022-12-13 23:03:26 -06:00
Emery Hemingway 1234f97f20 Tup: unify protocols group 2022-12-13 23:03:25 -06:00
Emery Hemingway a43a723bb1 Patterns: some bad casting 2022-12-13 22:58:41 -06:00
Emery Hemingway 49b58f5ce1 Patterns: add pattern generator program 2022-12-13 22:58:41 -06:00
Emery Hemingway e24b06d317 Put a sturdyref generator in capabilities module 2022-12-13 22:58:40 -06:00
Emery Hemingway c4dace1eb7 Regenerate protocol modules 2022-12-13 22:58:18 -06:00
Emery Hemingway 17c7328be8 Export terminate for facets 2022-12-08 00:31:01 -06:00
Emery Hemingway e26c718142 Fix import path of swaybar_status_actor 2022-11-02 14:05:45 -05:00
Emery Hemingway 2aeb20e959 Update Preserves dependency 2022-10-31 10:00:33 -05:00
Emery Hemingway 26d88d7208 Cleanup skeletons 2022-10-31 09:57:57 -05:00
Emery Hemingway 0039792e0b replace: don't bother retracting null handles 2022-10-31 09:54:50 -05:00
Emery Hemingway d9a3570d6f Relays: use BufferedDecoder 2022-10-26 20:12:52 -05:00
Emery Hemingway ec60d9c64a Better error message for pattern handler mismatches 2022-10-26 20:12:52 -05:00
Emery Hemingway d69af0a90d Use binary Preserves over Unix sockets 2022-10-26 20:12:52 -05:00
Emery Hemingway 68a742797c Use binary Preserves over stdio 2022-10-26 20:12:52 -05:00
Emery Hemingway fa5a4a9cbc Add swaybar_status_actor as binary 2022-10-26 20:12:52 -05:00
Emery Hemingway 4e424e7ca8 skeletons: fix walking over compound patterns 2022-10-26 20:11:27 -05:00
Emery Hemingway 3fa7d4225e Tidy dataspaces module 2022-10-26 19:26:43 -05:00
Emery Hemingway 535fb93df3 Add initial swaybar_status_actor utility 2022-10-13 23:22:55 -05:00
Emery Hemingway 96d3bbb500 New "addCallback" proc for processing Futures in Turns 2022-09-04 13:13:02 -05:00
Emery Hemingway 9b0437e922 Export asyncCheck from syndicate module 2022-08-31 15:10:50 -05:00
Emery Hemingway 0742665288 Buffer socket reads so long messages come through 2022-08-30 11:46:14 -05:00
Emery Hemingway b0f5ff98e2 Different ?? pattern operator
Make the ?? operator convert a pattern to a pattern of itself and
inject other patterns into it.
2022-08-29 14:49:28 -05:00
Emery Hemingway 831b7194a9 skeletons: only create leaves for additions 2022-08-29 14:49:27 -05:00
Emery Hemingway 6701fdb1c7 Assert that pattern capture count matches handlers 2022-08-29 14:49:27 -05:00
Emery Hemingway ef1290d105 Add run(Ref, TurnAction) convenience proc
Developers shouldn't need to work with Facets directly.
2022-07-08 08:16:33 -05:00
Emery Hemingway 6647aeb83b Use BiggestInt in schemas 2022-07-08 07:49:24 -05:00
Emery Hemingway 6281f5467f membranes: remove broken assertion
Membranes are not ref objects making a copy of one and then
checking it for equality against the original won't work.
2022-06-27 10:40:51 -05:00
Emery Hemingway 7f0277fe85 DSL: bind "turn" symbol in during retract handler 2022-06-16 12:13:28 -05:00
Emery Hemingway 57e4bb6bad Generate literal patterns by preserving values 2022-06-15 22:27:25 -05:00
Emery Hemingway 07cd833e3d Move literal pattern builder to syndicate module 2022-06-12 23:07:38 -05:00
Emery Hemingway 7ca28768d4 DSL support for handler bodies without parameters 2022-06-12 14:09:34 -05:00
Emery Hemingway be22238ca3 addDataspace 2022-06-12 14:07:29 -05:00
Emery Hemingway 68432a204c patterns: add recordPattern(…) 2022-06-12 14:04:07 -05:00
Emery Hemingway b4fd18ffcd Generate literal patterns for values 2022-06-08 20:20:45 -05:00
Emery Hemingway 5d78270bb5 Update readme and chat example 2022-06-08 20:20:45 -05:00
Emery Hemingway 9048506981 Replace mutable handles in-place 2022-06-08 20:20:44 -05:00
Emery Hemingway 9648884997 Move `?` operator to DSL module 2022-04-23 20:06:46 -05:00
Emery Hemingway fd47039ca3 DSL documentation and example 2022-04-23 20:05:00 -05:00
Emery Hemingway 143febc215 Tidy up connectUnix bootProc 2022-04-23 20:04:02 -05:00
Emery Hemingway a437183863 Add proper "during" macro 2022-04-23 20:04:00 -05:00
Emery Hemingway 4454d19b60 Fix incoming Ref rewriting
ehmry/xdg_open_ng#3
2022-03-18 19:10:50 -05:00
Emery Hemingway 4027da4c5f Cleanup dead code and missing imports 2022-03-18 19:09:43 -05:00
Emery Hemingway 76c9a6377d Make `projectPaths` fail without side-effects
Fix ehmry/xdg_open_ng#2
2022-03-18 10:15:14 -05:00
Emery Hemingway fac3002fc8 Export "stop" from syndicate module 2022-03-18 10:09:52 -05:00
Emery Hemingway 1171b238ec Do not quit when stdin hangs up 2022-03-16 15:51:47 -05:00
Emery Hemingway 405f3dd5c2 Patterns: flatten objects without pragmas 2022-03-16 13:00:58 -05:00
Emery Hemingway 829c0bf61a Fix Ref rewriting 2022-03-16 13:00:58 -05:00
Emery Hemingway 3d04ecd2c8 Convert Preserve to simple capture pattern 2022-03-16 13:00:58 -05:00
Emery Hemingway 13fd96420c Export more from syndicate module 2022-03-16 13:00:58 -05:00
Emery Hemingway 67fa320db6 relays: connectStdio 2022-03-16 13:00:58 -05:00
Emery Hemingway 56431ee37b Export more from syndicate module
Applications should only need to import this module
2022-03-16 13:00:58 -05:00
Emery Hemingway ed1fd2d6ef Make spawnActor more idiomatic 2022-03-16 13:00:58 -05:00
Emery Hemingway cec49c33c4 relay: pass packets not buffers 2022-03-16 13:00:58 -05:00
Emery Hemingway aca382e178 Cleanup actors module
Use methods at Entity rather than proc pointers, but use proc
pointers within the DSL in the syndicate module.
2022-03-16 13:00:58 -05:00
Emery Hemingway 231928f243 Rewrite skeletons for new patterns 2022-03-16 13:00:58 -05:00
Emery Hemingway d4442438fa Add Tupfile for generating protocol modules 2022-03-16 13:00:58 -05:00
Emery Hemingway a101a0ecb3 Generate dataspace patterns from Nim types 2022-03-16 13:00:58 -05:00
Emery Hemingway 1912574ed8 Proper dataspaces 2022-03-16 13:00:50 -05:00
Emery Hemingway d8f6d82956 Update protocols and pattern constructors 2022-03-16 12:59:46 -05:00
Emery Hemingway 0bf6b684fe Refactor match and instantiate 2022-03-16 12:59:46 -05:00
Emery Hemingway d1e196f6f0 Move membranes to seperate module 2022-03-16 12:59:46 -05:00
Emery Hemingway d18508371f Remove onRetract macro 2022-03-16 12:59:45 -05:00
Emery Hemingway 83113aea6f Increase size of TCP read buffer 2021-12-28 18:29:48 +01:00
Emery Hemingway f710419ead Generate patterns from ref types 2021-12-11 18:36:31 +00:00
Emery Hemingway a8030cce4d Add proc for minting test capabilities 2021-12-04 11:49:29 +00:00
Emery Hemingway 01469f1b42 Disable protocol tracing by default 2021-11-03 19:22:42 +01:00
Emery Hemingway d6e7add10a Fix pattern constructor 2021-11-03 19:22:33 +01:00
Emery Hemingway 123fb79bbe Mark template within a macros as always used 2021-11-03 19:22:09 +01:00
Emery Hemingway babc58526c Update submodules 2021-11-03 19:21:52 +01:00
Emery Hemingway 515ef22805 Add onRetract sugar to scope of onPublish 2021-11-02 13:11:44 +01:00
Emery Hemingway dc420c1a22 Cleanly break unix socket recv loop 2021-11-02 13:11:44 +01:00
Emery Hemingway 21bdaeb26b Add observe pattern constructor, cleanup imports 2021-11-02 13:11:44 +01:00
Emery Hemingway 55fcbb0754 cleanup 2021-10-29 18:27:22 +02:00
Emery Hemingway 166152cd84 Re-implement onPublish and onMessage 2021-10-29 18:27:22 +02:00
Emery Hemingway 272b6dfcb7 Idiomatic pattern constructor 2021-10-29 18:27:22 +02:00
Emery Hemingway 29b43eaced Pattern constructors 2021-10-29 18:27:22 +02:00
Emery Hemingway 3b9bbdf0fe Reduce methods to proc pointers 2021-10-29 18:27:22 +02:00
Emery Hemingway 8cf7beeb0d Fix nil dereference in message 2021-10-28 17:41:28 +02:00
Emery Hemingway 3f552edde7 Rename sturdy module to capabilities 2021-10-27 18:54:20 +02:00
Emery Hemingway 77a9ea380f Syndicate with caps 2021-10-26 13:09:54 +02:00
Emery Hemingway 8447822243 Move protocols to a submodule
The code generated from the protocols is commited here so the
submodule doesn't need to be checked out to build.
2021-10-06 11:58:43 +02:00
Emery Hemingway 6cd5887b4c DSL: rename "asserting" to "publish"
This should be more legible if there is less confusion with the
Nim "assert" builtin.
2021-09-22 14:39:30 +02:00
Emery Hemingway b0c92ea5de Make DSL blocks callable procedures 2021-09-21 16:39:57 +02:00
Emery Hemingway 62464a0cc1 Update Preserves submodule 2021-09-21 16:39:43 +02:00
Emery Hemingway ed555776fb isNil(Preserve) is now isFalse 2021-09-21 16:38:15 +02:00
Emery Hemingway 6b15fe98a1 HMAC: Accept strings or bytes for messages without a cast 2021-09-20 18:27:05 +02:00
Emery Hemingway 59e2367131 WiP! SturdyRef 2021-09-07 12:01:42 +02:00
Emery Hemingway 9a0b8caeb5 fixup hmacs 2021-09-07 12:01:28 +02:00
Emery Hemingway cd309ceb7d Add private HMAC-SHA256 implementation 2021-09-06 21:55:00 +02:00
Emery Hemingway a23935b3c5 Add Tupfile for generating protocol code 2021-09-06 18:25:35 +02:00
Emery Hemingway 7f7756ef59 Add 'src/syndicate/protocols/' from commit '0ff8c2c872538c35a199846e84eb5f33fbebc5a3'
git-subtree-dir: src/syndicate/protocols
git-subtree-mainline: 7a7a6f7e4e
git-subtree-split: 0ff8c2c872
2021-09-06 14:22:42 +02:00
Emery Hemingway 7a7a6f7e4e Unlicense 2021-09-01 13:47:21 +02:00
Emery Hemingway a5830a4a07 Parameterize Preserve type 2021-09-01 13:44:28 +02:00
Emery Hemingway cfd863fbf9 Test schema code generator 2021-08-28 10:52:26 +02:00
Emery Hemingway 6fd02e74dd DSL: rename assert to asserting
Too much of a clash with the assert builtin.
2021-08-28 10:51:32 +02:00
Emery Hemingway 2a09e61f2b Adapt to non-throwing fromPreserve
Use the new fromPreserve proc that indicates failure with its
return value to test if a handler can process a pattern match.
2021-08-28 10:49:58 +02:00
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
Emery Hemingway 274f0429de macros: inject more getCurrentFacet 2021-06-30 13:36:07 +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
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