Commit Graph

246 Commits

Author SHA1 Message Date
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