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