Sam Caldwell
03285824c7
two buyer example
2019-01-25 11:16:02 -05:00
Sam Caldwell
ddff1c800c
on start and stop, spawned actors
2019-01-25 11:16:02 -05:00
Sam Caldwell
c66b62cf46
simple example
2019-01-25 11:16:01 -05:00
Sam Caldwell
e7e8f5e174
fix pattern compilation
2019-01-25 11:16:01 -05:00
Sam Caldwell
938d3c519d
fix bugs, null-ary stops
2019-01-25 11:16:01 -05:00
Sam Caldwell
35b3811462
cond, match
2019-01-25 11:16:01 -05:00
Sam Caldwell
af91b669b7
lambdas
2019-01-25 11:16:01 -05:00
Sam Caldwell
5130197e27
utilities
2019-01-25 11:16:01 -05:00
Sam Caldwell
3705d95856
stop statement
2019-01-25 11:16:00 -05:00
Sam Caldwell
33af13016b
dataspace form
2019-01-25 11:16:00 -05:00
Sam Caldwell
1a4fc4dd4f
check input and output safety in spawn rule
2019-01-25 11:16:00 -05:00
Sam Caldwell
e79237b1d3
small adjustment to Role type
2019-01-25 11:16:00 -05:00
Sam Caldwell
4bd8d20b0b
refactor effect checking
2019-01-25 11:16:00 -05:00
Sam Caldwell
5803b8f9b0
refactor how effects are checked & propagated
2019-01-25 11:16:00 -05:00
Sam Caldwell
5bd391dd77
rename facet effect key from e to f
2019-01-25 11:16:00 -05:00
Sam Caldwell
71c2846a93
roles for bank account facets
2019-01-25 11:15:59 -05:00
Sam Caldwell
29e09ff3ef
start on facet role types
2019-01-25 11:15:59 -05:00
Sam Caldwell
1e66554b8e
note on performance
2019-01-25 11:15:59 -05:00
Sam Caldwell
8808b5aca9
typed book club
2019-01-25 11:15:59 -05:00
Sam Caldwell
5124b8e715
parse action types in transition,quit to allow empty lists
2019-01-25 11:15:59 -05:00
Sam Caldwell
ceb0c60d20
start on typed book club
2019-01-25 11:15:58 -05:00
Sam Caldwell
fb675a850c
add tuple and patch utilities and set datatype
2019-01-25 11:15:58 -05:00
Sam Caldwell
46a833a66e
typed bank account
2019-01-25 11:15:58 -05:00
Sam Caldwell
5934c1626f
typed box and client
2019-01-25 11:15:58 -05:00
Sam Caldwell
9a3d921de3
starter for typed/syndicate/core
2019-01-25 11:15:58 -05:00
Sam Caldwell
cff784384a
add constructor types
2019-01-25 11:15:58 -05:00
Sam Caldwell
b1c000e12e
more wip on TS
2019-01-25 11:15:58 -05:00
Sam Caldwell
82e5c8504c
wip on typed syndicate
2019-01-25 11:15:57 -05:00
Tony Garnock-Jones
47094c11c4
Responsibility transfer during outbound websocket connection establishment
2018-08-14 17:38:36 +01:00
Tony Garnock-Jones
cb351eee09
Repair current-ground-dataspace initialization, to allow override in e.g. graphical programs
2018-06-01 09:12:39 +01:00
Sam Caldwell
e402725d7f
note
2018-05-01 13:55:34 -04:00
Sam Caldwell
f1c51661c7
Re-finagle module-begin to a more incremental style
...
Fixes 33
2018-05-01 13:55:34 -04:00
Tony Garnock-Jones
f64ad8389a
Update example-during-criterion-snapshotting.rkt
2018-04-29 21:48:49 +01:00
Tony Garnock-Jones
1fa5167e20
Fix a design flaw in Syndicate-HLL for syndicate/rkt.
...
If:
- a field is used in an assertion of interest in facet A
- and that field changes
- to a value that causes the assertion of interest to overlap
with some facet B's assertion of interest
- and an assertion matching that interest was already known to the actor,
Then:
- previously, facet A would not be informed of the matching assertion
- but now, it is informed of the matching assertion.
This more or less only affects "on asserted" endpoints.
The change here should be written up as an erratum to chapter 5 in my
dissertation. Also, syndicate/js needs to be checked for the bug and
probably fixed in an analogous way.
2018-03-27 21:58:57 +13:00
Tony Garnock-Jones
55e1f09484
New "bug" (?)
2018-03-22 13:49:16 +13:00
Tony Garnock-Jones
af150712e0
example-memoized.rkt
2018-03-06 17:35:40 +00:00
Tony Garnock-Jones
57a40e9576
Asynchronously send UDP packets.
...
Switch from synchronous to asynchronous UDP transmission, in case DNS
resolution takes a long time or fails. Specifically, in case of failure,
previously the UDP actor would crash, whereas now the packet is just
"dropped".
2018-03-06 11:12:57 +00:00
Tony Garnock-Jones
1ab4f0f525
Alternate approach to caching
2017-12-06 09:13:28 +00:00
Tony Garnock-Jones
f11f4fd054
tcp-relay2.rkt
2017-12-05 17:38:49 +00:00
Tony Garnock-Jones
eb44003317
New examples
2017-12-05 17:32:12 +00:00
Tony Garnock-Jones
eb564fdb7c
More general tcp-connect error catching.
2017-12-05 17:22:28 +00:00
Tony Garnock-Jones
c9ec9f6be9
Special printer for seals. Fixes #27 .
2017-12-05 17:22:13 +00:00
Tony Garnock-Jones
75093d0e1a
Fullscreen big-bang
2017-11-25 12:03:32 -05:00
Tony Garnock-Jones
53e26b08a1
Many improvements to the netstack TCP implementation.
...
- New timestate `on-timeout` complementing `stop-when-timeout`
- IP layer avoids spurious reordering
- Demo HTTP server sends 4kB responses, for testing
- TCP now has something closer to proper sliding-window behavior
- TCP RTT estimator
- TCP now uses timestate driver rather than raw timer driver
- Many small TCP bugs found and fixed
2017-11-13 20:02:07 +00:00
Sam Tobin-Hochstadt
87495bdc37
Fix missing dependency.
2017-11-12 14:04:36 +00:00
Tony Garnock-Jones
710e75dffa
cleanup.rkt
2017-10-31 17:00:09 +00:00
Tony Garnock-Jones
d51a513f8b
add1-simple.rkt
2017-10-21 14:56:46 +01:00
Tony Garnock-Jones
bf0eb16643
syndicate-render-msd: --number, --no-number, --number-gap
2017-10-21 14:55:28 +01:00
Tony Garnock-Jones
8999b8446d
Use tcp-in-line in chat-tcp2.rkt
2017-10-21 14:54:53 +01:00
Tony Garnock-Jones
fa82634868
ceu-leds.rkt
2017-10-20 16:25:16 +01:00
Tony Garnock-Jones
45eee62fc2
chat-bot.rkt
2017-10-20 11:54:04 +01:00
Tony Garnock-Jones
5904a2f956
Tweak chat-tcp2.rkt
2017-10-19 17:12:01 +01:00
Tony Garnock-Jones
32d1274a8d
Expose field-ref/field-set!, for the f-to-c examples I committed just previously
2017-10-17 21:21:58 +01:00
Tony Garnock-Jones
18b3ab0d97
Two equations are better than one blob
2017-10-17 21:21:27 +01:00
Tony Garnock-Jones
fc0e900485
New variations on f-to-c
2017-10-17 18:49:26 +01:00
Tony Garnock-Jones
0526364698
web-request-send!
2017-10-13 13:52:45 +01:00
Tony Garnock-Jones
70a56e6457
Allow stop-current-facet to take scripts to execute, like stop-facet
2017-10-12 13:59:11 +01:00
Tony Garnock-Jones
22998de0dc
tcp2 line-reader
2017-10-11 22:22:29 +01:00
Tony Garnock-Jones
801470ebaa
tcp2
2017-10-11 14:45:54 +01:00
Tony Garnock-Jones
66e2e8b1a7
Fix race condition (!) in timer driver
2017-10-03 10:49:48 +01:00
Tony Garnock-Jones
14f1cbd4fa
Remove obsolete call to current-inexact-milliseconds
2017-10-03 10:08:44 +01:00
Tony Garnock-Jones
275b60310f
Positively assert detected failures during continuous interest
2017-10-02 14:31:58 +01:00
Tony Garnock-Jones
ca0de7d52f
running-total.rkt
2017-10-01 15:27:58 +01:00
Tony Garnock-Jones
16bd0155cc
Terminal-based IRC client
2017-10-01 11:08:46 +01:00
Tony Garnock-Jones
eb07be548e
Bug fix: retract names on part
2017-10-01 11:08:36 +01:00
Tony Garnock-Jones
5254feb4de
rpc-with-error.rkt
2017-09-30 21:24:43 +01:00
Tony Garnock-Jones
db333a266f
Tweaks to udp-echo.rkt
2017-09-29 17:34:40 +01:00
Tony Garnock-Jones
d96477b9db
udp-echo.rkt
2017-09-29 17:23:07 +01:00
Tony Garnock-Jones
0599f974b9
all-pairs-shortest-paths3.rkt
2017-09-29 15:43:02 +01:00
Tony Garnock-Jones
4f52ebf108
Simplify make.rkt slightly
2017-09-29 13:13:57 +01:00
Tony Garnock-Jones
fa257a1d16
Avoid accidental n^2 in filesystem driver; make.rkt example
2017-09-28 19:28:38 +01:00
Tony Garnock-Jones
7a4d528dc0
Another timestate example
2017-09-28 17:41:17 +01:00
Tony Garnock-Jones
4a51141500
Simplify timestate driver
2017-09-28 17:07:32 +01:00
Tony Garnock-Jones
51ab2921c2
New examples
2017-09-28 16:26:01 +01:00
Tony Garnock-Jones
e41290c509
simple-cross-layer.rkt
2017-09-25 23:56:03 +01:00
Tony Garnock-Jones
6c4ae38499
Make HLL `dataspace` no longer automatically `quit-dataspace`. Fixes #20 .
2017-09-25 23:52:29 +01:00
Tony Garnock-Jones
903ed5deaa
Omit empty patches in render-msd
2017-09-18 16:14:22 +01:00
Tony Garnock-Jones
96331e0cfd
More flip-flop tweaks
2017-09-15 21:46:39 +01:00
Tony Garnock-Jones
e124983e05
Print differently in flip-flop
2017-09-15 21:45:54 +01:00
Tony Garnock-Jones
a82b428f44
racket/syndicate/examples/actor/flip-flop.rkt
2017-09-15 20:34:16 +01:00
Tony Garnock-Jones
516f6a5cd2
message-struct and assertion-struct
2017-09-13 19:08:01 +01:00
Tony Garnock-Jones
6a436f4c12
Fiddle with spacing of MSD renders
2017-09-03 11:44:21 +01:00
Tony Garnock-Jones
5ce1cec2ea
Better comments.
2017-08-27 08:18:11 -04:00
Tony Garnock-Jones
d0e803ac41
Update renders
2017-08-27 07:50:17 -04:00
Tony Garnock-Jones
0acd504d05
Demonstrate the general insufficiency of the approach of commit 2a0197b
2017-08-27 07:50:09 -04:00
Tony Garnock-Jones
e0dc583f51
Improve MSD rendering
2017-08-27 07:46:01 -04:00
Tony Garnock-Jones
2a0197b711
Fix responsibility-handoff for TCP listener.
...
Similar problems likely still exist elsewhere that the LLL
demand-matcher is used.
2017-08-22 16:53:57 -04:00
Tony Garnock-Jones
930e4270b4
Better defaults; print defaults accurately
2017-08-22 16:44:07 -04:00
Tony Garnock-Jones
88d324929d
Command-line tool, syndicate-render-msd
2017-08-14 17:20:36 -04:00
Tony Garnock-Jones
8cbabafbab
Fix #21 , long-standing mismatch in assumptions in LLL demand-matcher.
...
The LLL demand-matcher has two pieces: a `default-task-supervisor`
which does the work of figuring out what to do for a given change in
an instance of demand, and a driver which computes demand instances
and calls `default-task-supervisor` for each.
An `actions` accumulator is threaded through the
`default-task-supervisor` calls. However, the driver code mistakenly
believed that the result of `default-task-supervisor` calls was a
collection of fresh actions only, and therefore consed together the
previous collection of actions with the "new" ones. Because the
`default-task-supervisor` was returning an unmodified accumulator from
time to time, any actions in the accumulator across a call to
`default-task-supervisor` would end up duplicated.
This change favours the thread-the-accumulator-through perspective,
and changes the way the driver uses `new-actions` to match.
2017-08-14 17:17:49 -04:00
Tony Garnock-Jones
cb3eee64dc
Avoid serialization problems for exceptions
2017-08-13 22:40:28 -04:00
Tony Garnock-Jones
b2e2674f44
Support opening/closing the MSD trace file with SIGUSR1
2017-08-13 22:14:45 -04:00
Tony Garnock-Jones
3db51ffda5
Track quits differently
2017-08-13 22:13:44 -04:00
Tony Garnock-Jones
fdcd9b9388
Remove unused commented-out code
2017-08-13 20:52:52 -04:00
Tony Garnock-Jones
e2d1ae853c
Avoid (cdr '()) for patches from drivers - for msd.rkt this time
2017-08-13 20:52:29 -04:00
Tony Garnock-Jones
af30c19ee0
Remove unused debug
2017-08-13 20:47:47 -04:00
Tony Garnock-Jones
f3b5fd6cd1
Avoid (cdr '()) for patches from drivers
2017-08-13 20:47:40 -04:00
Tony Garnock-Jones
6728fcf10d
Extra knobs
2017-08-13 20:08:09 -04:00
Tony Garnock-Jones
09d0fb620d
Much improved tracing
2017-08-13 19:58:48 -04:00
Tony Garnock-Jones
84ec153a1e
Extract utilities for tracing
2017-08-12 00:40:10 -04:00
Tony Garnock-Jones
4efe18bfe0
Trace action production as well as interpretation
2017-08-12 00:08:09 -04:00
Tony Garnock-Jones
9009fb5ec7
Stay rational
2017-08-10 17:40:15 -04:00
Tony Garnock-Jones
40961e7893
f-to-c3.rkt
2017-08-10 17:08:31 -04:00
Tony Garnock-Jones
b3a745dbcb
Make #lang syndicate equivalent to #lang syndicate/actor. Fixes #17 .
2017-08-10 15:17:28 -04:00
Tony Garnock-Jones
c9996d53ae
Avoid premature termination of parent facet.
...
Scenario:
- In script of facet X, (react (stop-when E (react ...)))
- This creates facet Y, child of X.
- Facet X has no endpoints, only its child facet Y.
- When the stop-when fires, without this patch, facet X
will be terminated because the *inner* react above hasn't executed yet.
- With this patch, the check for a useless X is done after the stop-when
has had a chance to run; and so X will survive for now.
2017-08-10 15:08:48 -04:00
Tony Garnock-Jones
837ab77002
#lang syndicate -> #lang syndicate/core; first half of fix for #17 .
2017-08-10 15:04:45 -04:00
Tony Garnock-Jones
6b3f8d920a
Key debouncer
2017-08-07 13:41:01 -04:00
Tony Garnock-Jones
61b683fc94
double-click "debouncing" example
2017-08-07 13:04:10 -04:00
Tony Garnock-Jones
4f8bc6e5af
Ugh, forgot to git-add this
2017-08-07 11:21:09 -04:00
Tony Garnock-Jones
4f21e9ab46
Elide spurious detail in patch actions and events
2017-08-05 19:38:35 -04:00
Tony Garnock-Jones
5bff630547
Support t and T SYNDICATE_TRACE flags, for control over state display
2017-08-05 19:38:17 -04:00
Tony Garnock-Jones
f83f286e28
Name the line-reader-factory
2017-08-05 19:37:34 -04:00
Tony Garnock-Jones
11de40ce98
Change spawn processing to include initial-assertions
2017-08-05 19:36:40 -04:00
Tony Garnock-Jones
f9a477832a
Avoid identifier clash
2017-08-05 19:36:40 -04:00
Tony Garnock-Jones
75aee96e1a
query-count
2017-08-01 17:45:19 -04:00
Tony Garnock-Jones
6b2ee53fa8
Give line-reader instances a debug-name
2017-08-01 09:30:53 -04:00
Sam Caldwell
5f621b098e
trie-step-wild
2017-07-31 11:39:50 -04:00
Tony Garnock-Jones
81a0351828
Cope with potential interference in query-sets (etc) from outside the official event handlers
2017-07-30 18:48:33 -04:00
Tony Garnock-Jones
6e399dd1dd
Experimental Racket GUI driver.
2017-07-29 23:17:55 -04:00
Tony Garnock-Jones
28f6b8acf8
Finally committing the f-to-c examples of Sep 23, 2016
2017-07-27 10:40:11 -04:00
Tony Garnock-Jones
a090ed8330
*gc-priority* has been unused since factoring away cross-facet restrictions on fields
2017-07-12 14:25:42 -04:00
Tony Garnock-Jones
8a2ace112b
Handle additional cases: children present, and obsolescent parent. Additional fix for #18
2017-07-12 11:38:27 -04:00
Tony Garnock-Jones
f6c145b4a7
Fix poor on-stop/post-stop separation. Additional fix for #23 .
2017-07-12 11:36:20 -04:00
Tony Garnock-Jones
46e5922dc8
Stop a new facet with no endpoints. Fixes #18 .
2017-07-12 11:12:10 -04:00
Tony Garnock-Jones
6db1e67a7e
Beginnings of test case for termination order
2017-07-12 11:03:23 -04:00
Tony Garnock-Jones
76c1a5b347
Tentative repair to startup/shutdown ordering problems
2017-07-12 11:02:26 -04:00
Tony Garnock-Jones
990ad4ca72
Pretty-print struct process instances
2017-07-12 10:29:26 -04:00
Tony Garnock-Jones
3073d8b614
Avoid some stop-when/rising-edge/flag combinations, and some rising-edge uses generally
2017-07-05 07:13:36 -04:00
Tony Garnock-Jones
37cee0c937
(stop-current-facet)
2017-07-05 06:28:06 -04:00
Tony Garnock-Jones
ac5c5d2e5f
First steps toward correct facet-termination.
...
- Facet IDs are now lists so arbitrary ancestors can be computed with
repeated application of cdr
- `stop-facet` is new and untested, other than that `stop-when` is
refactored to use `stop-facet`
- *all* matching stop-when instances run now; the limitation that
exactly one instance should match is lifted.
- roughly, (stop-when E X ...) === (on E (stop (current-facet-id) X ...))
Remaining to be done: fix `terminate-facet!` to do the right things in
the right order.
2017-07-04 22:03:32 -04:00
Tony Garnock-Jones
1fdd62d56d
Remove enforcement of field scoping rules dating back to separate-actor implementation of HLL
2017-07-04 16:31:46 -04:00
Tony Garnock-Jones
46fd5e2b92
Remove/unprovide a few unneeded utilities from patch.rkt
2017-06-23 17:57:35 -04:00
Tony Garnock-Jones
9b54069ecd
chat-multiroom-topic-persist.rkt
2017-05-12 19:21:41 -04:00
Tony Garnock-Jones
42742fe8ac
chat-multiroom-topic.rkt
2017-05-12 18:55:32 -04:00
Tony Garnock-Jones
966cd2ed17
Comment
2017-05-12 17:14:18 -04:00
Tony Garnock-Jones
4be0a8cb59
chat-multiroom.rkt
2017-05-12 15:45:38 -04:00
Tony Garnock-Jones
b9dfd79f34
example-bug-rising-edge-true.rkt
2017-05-04 09:08:47 -04:00
Sam Caldwell
6448188e82
Create test harness & lang for contrasting big & little actor langs
2017-04-20 13:50:01 -04:00
Tony Garnock-Jones
425a5abac3
Default to empty-string to avoid crash when header entirely absent
2017-03-25 15:19:21 -04:00
Sam Caldwell
d4f95d3a7b
Allow creation of facets at the parent level when shutting down a facet
...
Behavior is fairly different from big implementation
2017-03-17 13:50:33 -04:00
Sam Caldwell
460d72d69e
Run new facets with current knowledge
2017-03-17 13:50:33 -04:00
Sam Caldwell
a8421f3929
actor -> spawn
2017-03-17 13:50:33 -04:00
Sam Caldwell
36ff30c289
No longer need to say `react` right after `actor`
2017-03-17 13:50:33 -04:00
Sam Caldwell
da422ff117
update field declaration syntax to match full impl
2017-03-17 13:50:32 -04:00
Sam Caldwell
88f515a98f
Change syntax of field accesses to match full implementation
2017-03-17 13:50:32 -04:00
Sam Caldwell
fb3918404c
fix exception handling for booting actors
2017-03-17 13:50:32 -04:00
Sam Caldwell
6ee97839fa
use racket functions to represent lambdas
2017-03-17 13:50:32 -04:00
Sam Caldwell
e57af91698
reorganize
2017-03-17 13:50:32 -04:00
Sam Caldwell
318363f4be
cleanup
2017-03-17 13:50:32 -04:00
Sam Caldwell
c8cc8051a1
don't run new facets asap
2017-03-17 13:50:32 -04:00
Sam Caldwell
34c3b6bf3a
fix ft-assertions
2017-03-17 13:50:32 -04:00
Sam Caldwell
90bf07f6d4
fixups
2017-03-17 13:50:32 -04:00
Sam Caldwell
079e2da53d
sort out relaying in hll interperter
2017-03-17 13:50:31 -04:00
Sam Caldwell
df40cc7ba9
fix race in trace testing
2017-03-17 13:50:31 -04:00
Sam Caldwell
3986f4d0ea
add trace testing
2017-03-17 13:50:31 -04:00
Sam Caldwell
e1671ce878
add on-stop
2017-03-17 13:50:31 -04:00
Sam Caldwell
da1f9d4b6d
MONADS
2017-03-17 13:50:31 -04:00
Sam Caldwell
5544052488
add lambda to hll interp
2017-03-17 13:50:31 -04:00
Sam Caldwell
7b1c102224
add dataspaces to hll interp
2017-03-17 13:50:31 -04:00
Sam Caldwell
1be415eb45
cleanup
2017-03-17 13:50:31 -04:00
Sam Caldwell
53cd60f196
run hll actors in two steps
...
first: run facets/endpoints to determine the new facet tree and any
actions (messages, spawns)
second: use new facet tree to determine assertions and subscriptions
This makes sure that all field updates are visible to
assertions/subscriptions.
2017-03-17 13:50:31 -04:00
Sam Caldwell
f19a02e859
catch exceptions from hll actors
2017-03-17 13:50:30 -04:00
Sam Caldwell
5a87428f62
partially working hll interpreter
2017-03-17 13:50:30 -04:00
Tony Garnock-Jones
118cdef4c6
Refactor other chat servers to match
2017-03-14 18:29:45 -04:00
Tony Garnock-Jones
689d410bda
Rearrange chat-simplified-internals2.rkt
2017-03-14 18:06:02 -04:00
Sam Caldwell
e0e7baed46
Keep ground dataspace running while subscriptions are present
2017-03-08 18:00:45 -05:00
Tony Garnock-Jones
dc83d33afb
Cosmetic
2017-03-08 06:45:40 -05:00
Tony Garnock-Jones
c51f18efc2
Compile lambda calculus into Syndicate
2017-03-08 06:37:27 -05:00
Sam Caldwell
921b84e056
Add upside-down relays
2017-03-07 12:59:39 -05:00
Tony Garnock-Jones
ea1b1bc072
Allow run-ground to return the active set of assertions at the time of its exit.
2017-02-28 18:44:01 -05:00
Tony Garnock-Jones
ee52520a13
spawn-dataspace --> dataspace-actor
2017-02-25 11:16:25 -05:00
Sam Caldwell
783d132f25
Fix upside-down spawn translations
2017-02-23 22:22:43 -05:00
Sam Caldwell
99ccc12fee
typo
2017-02-22 17:46:55 -05:00
Sam Caldwell
27cb9ba983
Add a way of sepcifying and checking upside-down traces
2017-02-22 17:44:07 -05:00
Sam Caldwell
1f4bf075b7
Take actors to ... the upside down [1]
...
Actors in the upside down may communicate with each other, but not the outside
world. However, the outside world can see what actors in the upside-down are
saying. The intention is to use this facility for testing.
[1] (http://strangerthings.wikia.com/wiki/Upside_Down ).
2017-02-22 17:42:06 -05:00
Tony Garnock-Jones
1bfc4bbdad
Log port number in SMTP driver startup/shutdown messages
2017-02-21 15:12:47 -05:00
Tony Garnock-Jones
6d8ced489c
Accept toplevel action-producing expressions yielding 0 values.
...
A recent change to Racket must have changed the way `for` expands,
because now in conjunction with `local-expand`, we see *effectively* a
`(begin (values) (void))`. This isn't a problem usually, but in
`#lang syndicate`'s `module-begin` context, we split apart `begin`s
and examine their constituents, leading to examination of something
that will ultimately yield 0 values.
The change accepts either 0 or 1 values when collecting actions for
the module's main boot actor to execute. More than 1 value yielded by
such an expression is still considered an error. Currently, it gives
unhelpful error location information; a future refinement might be to
make the error reporting for this (rare) situation more helpful.
2017-02-20 17:04:39 -05:00
Tony Garnock-Jones
deefa251d9
Missed one.
2017-02-20 13:29:19 -05:00
Tony Garnock-Jones
1f8bb56c69
Update examples
2017-02-20 12:54:52 -05:00
Sam Caldwell
9c1e9719ba
swap the meaning of spawn and actor in racket syndicate
2017-02-15 18:18:19 -05:00
Tony Garnock-Jones
413840382b
Better crash-handling for simplified TCP protocol sketch
2017-02-09 19:24:02 -05:00
Sam Caldwell
2b19064960
Update FAQ.md
2017-01-27 15:22:06 -05:00
Tony Garnock-Jones
25729454a6
Tweak
2017-01-23 17:38:38 -05:00
Tony Garnock-Jones
36459c5942
Even simpler chat server
2017-01-23 16:40:01 -05:00
Tony Garnock-Jones
e593cf768b
Cosmetic
2017-01-08 14:10:15 -05:00
Tony Garnock-Jones
19bebc9881
Handle IRC QUIT
2017-01-07 01:46:09 -05:00
Tony Garnock-Jones
eb4a228c73
Crude IRC driver and example.
2017-01-07 01:14:14 -05:00
Tony Garnock-Jones
038ea39b30
Fix deps
2016-12-19 10:15:15 +13:00
Tony Garnock-Jones
b946bbec3c
Glitching example
2016-12-12 11:09:39 +13:00
Tony Garnock-Jones
4940c0b372
Many animated sprites
2016-12-12 10:46:19 +13:00
Tony Garnock-Jones
6a2163bce9
Avoid accidental shadowing of field-names in query-value* and friends
2016-12-12 10:26:50 +13:00
Tony Garnock-Jones
c7db9f2543
Reload when hash of file has changed; stop using a naive counter
2016-12-07 10:10:36 +13:00
Tony Garnock-Jones
b87639b7a4
Split out reloader-mixin and reloader-mixin*
2016-12-07 09:47:53 +13:00
Tony Garnock-Jones
d9905df4e5
Add #:linkage for during/actor and the new supervise/actor to communicate properly
2016-12-07 09:47:39 +13:00
Tony Garnock-Jones
f440911e7f
Sort process table by PID
2016-12-07 09:47:03 +13:00
Tony Garnock-Jones
c019a61c18
Improvements in error-handling for websocket connections re: deadlock, closed ports etc.
2016-12-06 05:55:00 +13:00
Tony Garnock-Jones
64cfce2472
Work around limitations in the way the OS supports filesystem-change-evt
2016-12-06 05:54:17 +13:00
Tony Garnock-Jones
4ee234f118
Remove egregious lack of support for reading directory contents in filesystem driver
2016-12-04 17:33:12 +13:00
Tony Garnock-Jones
c2ece35bf9
Add #:hook to spawn-broker-server-connection
2016-11-30 10:19:56 +13:00
Tony Garnock-Jones
78cb6f0c02
Add #:hook to spawn-configuration
2016-11-29 18:22:00 +13:00
Tony Garnock-Jones
97b194487b
Remove unneeded definitions
2016-11-29 18:05:06 +13:00
Tony Garnock-Jones
ae6c5a409f
Abstract broker over spatial separation syntax used
2016-11-29 16:29:54 +13:00
Tony Garnock-Jones
97bb848611
Always supervise reloaders
2016-11-29 15:04:13 +13:00
Tony Garnock-Jones
d0d7e677fe
Reevaluate supervisor name expression for each supervisee
2016-11-29 14:59:14 +13:00
Tony Garnock-Jones
d9cc478e6c
Use a gensym if no supervisor name is supplied
2016-11-29 14:53:46 +13:00
Tony Garnock-Jones
8cd60417c4
Reimplement supervise.rkt to use spawn->process+transition at each reboot.
2016-11-29 14:48:28 +13:00
Tony Garnock-Jones
726b936ed3
Example of supervision
2016-11-29 13:45:43 +13:00
Tony Garnock-Jones
02c0af4c75
Remove noisy logging
2016-11-29 13:45:23 +13:00
Tony Garnock-Jones
885a1d05d6
Initial stab at a general supervisor
2016-11-29 12:28:08 +13:00
Tony Garnock-Jones
9bb831cac5
Avoid stomping on current-actor-state if it is changed in patch-fn
2016-11-29 12:24:31 +13:00
Tony Garnock-Jones
f677c3a888
current-action-transformer must be a store, not a parameter, else it sticks around for (e.g.) supervision of children of supervised actors
2016-11-29 12:23:33 +13:00
Tony Garnock-Jones
3a3d216908
Only act when we know a positive fact about the state of our watched file
2016-11-29 12:19:34 +13:00
Tony Garnock-Jones
bde2d833bd
Clean up internal interfaces to actor.rkt
2016-11-29 10:34:37 +13:00
Tony Garnock-Jones
f638923c6f
`current-action-transformer`
2016-11-29 10:19:52 +13:00
Tony Garnock-Jones
05c57ec05d
`perform-actions!`
2016-11-29 10:19:06 +13:00
Tony Garnock-Jones
c77513e838
Improve actor-state pretty-printing
2016-11-29 10:18:38 +13:00
Tony Garnock-Jones
e7402e4387
example-multiple-suspension-resumption.rkt
2016-11-29 10:16:39 +13:00
Tony Garnock-Jones
260a99e08b
Track lexical information through analyze-pattern
2016-11-28 14:08:46 +13:00
Tony Garnock-Jones
bab5aba083
Crude steps toward reloadable Syndicate modules
2016-11-28 12:27:10 +13:00
Tony Garnock-Jones
8202220fec
`schedule-actions!`
2016-11-28 11:39:38 +13:00
Tony Garnock-Jones
2f7313a489
Use web-request-header-websocket-upgrade?.
2016-11-26 11:27:14 +13:00
Tony Garnock-Jones
ad2874f463
`web-request-header-websocket-upgrade?`
2016-11-26 11:25:44 +13:00
Tony Garnock-Jones
8f181f5b4d
Hoist broker startup into a module+ main
2016-11-26 11:19:31 +13:00
Tony Garnock-Jones
b72fca51b0
Export spawn-broker-server-connection
2016-11-26 11:19:17 +13:00
Tony Garnock-Jones
f1a7e10fbf
Change syndicate-broker to use web.rkt instead of websocket.rkt
2016-11-26 11:09:23 +13:00
Tony Garnock-Jones
7b5b866a6d
web-request-peer-details
2016-11-26 11:08:45 +13:00
Tony Garnock-Jones
16d9dd27c9
... Oops.
2016-11-26 10:02:59 +13:00
Tony Garnock-Jones
990ae8ea9a
Oops.
2016-11-26 09:59:24 +13:00
Tony Garnock-Jones
0a585d7842
More uniform treatment of resource-path functions
2016-11-26 09:54:26 +13:00
Tony Garnock-Jones
4af472f7ff
Log smtp-account startup and shutdown
2016-11-24 10:38:36 +13:00
Tony Garnock-Jones
a3335800f6
Make immediate-query able to yield multiple values
2016-11-24 10:36:38 +13:00
Tony Garnock-Jones
f201bea5c6
immediate-query
2016-11-23 22:11:35 +13:00
Tony Garnock-Jones
f0f29007df
Very basic inbound cookie support
2016-11-23 22:05:49 +13:00
Tony Garnock-Jones
257c0bf628
#:headers for `web-redirect!`.
2016-11-23 17:21:01 +13:00
Tony Garnock-Jones
0d34e3280e
web-redirect/temporary! -> web-redirect!
2016-11-23 15:39:11 +13:00
Tony Garnock-Jones
3ce8bc380b
web-redirect/temporary!
2016-11-23 15:32:44 +13:00
Tony Garnock-Jones
4b99b629df
syndicate/drivers/config
2016-11-23 13:49:24 +13:00
Tony Garnock-Jones
97a843ccec
SMTP driver
2016-11-23 13:42:10 +13:00
Tony Garnock-Jones
c302e35024
Properly shut down tcp-listener
2016-11-22 11:45:53 +13:00
Tony Garnock-Jones
0102a7d1cd
append-url-path
2016-11-22 11:08:11 +13:00
Tony Garnock-Jones
6497cc5185
Use utility sleep instead of repeating it in one of the examples
2016-11-22 09:16:23 +13:00
Tony Garnock-Jones
4d6a2986d5
web-response-successful?
2016-11-22 09:16:08 +13:00
Tony Garnock-Jones
c8b7be22cc
Use SSL on outbound HTTPS connections properly
2016-11-21 17:38:55 +13:00
Tony Garnock-Jones
9d34ffea4f
Log websocket connection starts
2016-11-21 17:38:41 +13:00
Tony Garnock-Jones
b2c795c57a
Sleep utility
2016-11-21 11:51:48 +13:00
Tony Garnock-Jones
c595c638b2
Make ground a little quieter
2016-11-21 11:46:31 +13:00
Tony Garnock-Jones
a7a2a5c492
Log HTTP server startup and shutdown
2016-11-21 10:57:43 +13:00
Tony Garnock-Jones
c6ca757a7e
Useful web utilities
2016-11-21 10:57:35 +13:00
Tony Garnock-Jones
08f1e7506b
filesystem driver
2016-11-20 22:33:07 +13:00
Tony Garnock-Jones
bc346ff38a
Use logger named syndicate/drivers/web
2016-11-20 18:18:43 +13:00
Tony Garnock-Jones
594bb3989b
Log web requests
2016-11-20 18:11:08 +13:00
Tony Garnock-Jones
c77793f7fd
Ticker
2016-10-31 17:42:38 -04:00
Tony Garnock-Jones
15504cccab
timestate
2016-10-31 17:36:59 -04:00
Tony Garnock-Jones
490e414904
Add #:let to during/actor
2016-10-31 17:27:46 -04:00
Tony Garnock-Jones
d442f4890f
summarise-ground-state with SIGUSR2
2016-10-31 13:46:53 -04:00
Tony Garnock-Jones
4a39a03a0a
Log failures of outbound web requests
2016-10-30 20:30:58 -04:00
Tony Garnock-Jones
c9eddfa0b7
web-response-header-code-type
2016-10-30 20:30:49 -04:00
Tony Garnock-Jones
2d1ad8a62d
Add #:on-crash to during/actor
2016-10-30 20:30:38 -04:00
Tony Garnock-Jones
37af1e8726
Cope with transient pulses of demand in during/actor
2016-10-25 16:59:00 -04:00
Tony Garnock-Jones
ea997539a2
WIP exploration of problems with demand transients
2016-10-25 12:38:19 -04:00
Tony Garnock-Jones
e90c0e580e
Check once for unix-signal support, rather than every (!) time (!)
2016-10-25 12:37:57 -04:00
Tony Garnock-Jones
acd9dde2b8
Remove mistaken require
2016-10-25 12:37:35 -04:00
Tony Garnock-Jones
cd83b5f5d8
Minor fixes
2016-10-24 22:01:17 -04:00
Tony Garnock-Jones
171a51d68c
Fix package deps
2016-10-14 16:33:30 -04:00
Tony Garnock-Jones
e0ce5eb5b4
clock-face.rkt
2016-10-08 17:34:55 -04:00
Tony Garnock-Jones
0f3db4eac6
Rotations had the wrong sign
2016-10-08 17:34:48 -04:00
Tony Garnock-Jones
d1c858a7ae
Fix deps
2016-09-27 18:18:09 -04:00
Tony Garnock-Jones
773d1e953b
Support coordinate-map in syndicate-gl/2d
2016-09-27 17:08:24 -04:00
Tony Garnock-Jones
d00f0cbf13
Fix bug where #:when-disabled on-message endpoints were processing
...
events even when "disabled".
2016-09-25 15:06:22 -04:00
Tony Garnock-Jones
4ea2586666
Support texture clipping
2016-09-25 15:06:07 -04:00
Tony Garnock-Jones
be7cf7417d
Repair error in hsv->color
2016-09-25 15:05:07 -04:00
Tony Garnock-Jones
39e46c1cfa
Support hierarchical parent/child relationship between sprites.
2016-09-24 13:31:13 -04:00
Tony Garnock-Jones
8f28ae0e9c
Minor refactoring
2016-09-19 21:26:38 -04:00
Tony Garnock-Jones
694de50bc0
Illustrate bounds on observation too
2016-09-19 21:21:43 -04:00
Tony Garnock-Jones
c1681f7804
Another firewall-demo example case
2016-09-19 21:19:17 -04:00
Tony Garnock-Jones
e7dc36f126
syndicate/firewall
2016-09-19 21:14:08 -04:00
Tony Garnock-Jones
9a62eb6076
sandbox-os.rkt
2016-09-19 20:24:51 -04:00
Tony Garnock-Jones
aab25684b8
Fancy process table display on SIGUSR1 (if SYNDICATE_TRACE envt var nonempty)
2016-09-13 17:35:12 -04:00
Tony Garnock-Jones
7be8eb6d60
Oops -- I had forgotten udp-handle support in the UDP driver.
2016-09-13 13:21:04 -04:00
Tony Garnock-Jones
9080396bc5
Environment variable for convenient redirection of stdout to stderr
2016-09-13 12:24:53 -04:00
Tony Garnock-Jones
bb889542fc
Track process names in trace/stderr.rkt
2016-09-13 12:24:16 -04:00
Tony Garnock-Jones
9ee7e677ad
Give names to udp-driver and udp-socket processes
2016-09-06 16:46:14 +01:00
Tony Garnock-Jones
c844c0d596
Make sure spawn tracing happens before initial-patch tracing
2016-09-06 16:45:59 +01:00
Tony Garnock-Jones
02828d8356
syndicate/profile
2016-09-05 11:22:27 +01:00
Tony Garnock-Jones
0ef2a621d1
Support #:exit? on ide-dataspace
2016-09-05 11:22:13 +01:00
Tony Garnock-Jones
497b63699c
Avoid consing up a fresh 1x1 rectangle each time
2016-09-05 11:22:01 +01:00
Tony Garnock-Jones
550bb12c4a
Workable first stab at visualization of running configuration
2016-09-02 17:56:07 +01:00
Tony Garnock-Jones
7880b2ba28
current-trace-procedures needs to be a store, not a parameter, because spawns capture the parameterization too early and the scoping of tracing should be hierarchy-based
2016-09-02 17:55:46 +01:00
Tony Garnock-Jones
7d52e24a35
Support rotation of simple-sprites
2016-09-02 17:54:41 +01:00
Tony Garnock-Jones
74b768044f
actor-view tooltip
2016-09-02 13:09:41 +01:00
Tony Garnock-Jones
9f333345fc
Add actor-view for ground dataspace
2016-09-02 13:09:28 +01:00
Tony Garnock-Jones
92ae08b24e
Better dataspace detection
2016-09-02 13:09:16 +01:00
Tony Garnock-Jones
c459dbe684
Render dataspaces a little differently
2016-09-02 13:02:20 +01:00
Tony Garnock-Jones
c758c0d79c
Use `signal-background-activity!` to prevent blocking of the main user thread
2016-09-02 13:00:32 +01:00
Tony Garnock-Jones
9451c6ca54
Fix vertical alignment of tooltip
2016-09-02 12:59:42 +01:00
Tony Garnock-Jones
01013ea372
Tooltip
2016-09-02 11:32:10 +01:00
Tony Garnock-Jones
82e4b64168
Make frame counter transparent wrt touching
2016-09-02 11:15:22 +01:00
Tony Garnock-Jones
bd40ca3c62
Simplify `touching` notifications
2016-09-02 11:11:56 +01:00
Tony Garnock-Jones
386df02fd0
Fix comment.
2016-09-02 10:36:40 +01:00
Tony Garnock-Jones
b56f559f45
draggable-mixin in syndicate-gl/examples/basic.rkt
2016-09-02 10:36:26 +01:00
Tony Garnock-Jones
45c12bacf0
Permit #:when in stop-when.
2016-09-02 10:36:03 +01:00
Tony Garnock-Jones
e50ab77b53
`#:touchable-predicate`
2016-09-02 10:08:02 +01:00
Tony Garnock-Jones
a6f002c27d
Simplify transform composition
2016-09-02 09:50:48 +01:00
Tony Garnock-Jones
b60fa8c755
First steps toward mouse-based picking in syndicate-gl
2016-09-01 19:50:03 +01:00
Tony Garnock-Jones
1ae40c1ff1
`install-ide-dataspace!`
2016-09-01 11:34:38 +01:00
Tony Garnock-Jones
b69c3b3778
First sketch of "IDE" for Syndicate
2016-08-31 19:12:40 +01:00
Tony Garnock-Jones
8249993a86
Use lists rather than conses, since they travel through dataspaces better
2016-08-31 19:12:05 +01:00
Tony Garnock-Jones
4685d6af46
extract-patch-pids and tset/set-union
2016-08-31 19:11:43 +01:00
Tony Garnock-Jones
bf3b2a5a36
Expose current-ground-event-async-channel
2016-08-31 19:11:16 +01:00
Tony Garnock-Jones
e76ccd31a2
Add #:label parameter to 2d-dataspace
2016-08-31 19:10:59 +01:00
Tony Garnock-Jones
fb3ed65831
trace-logger --> current-trace-procedures
2016-08-31 15:12:52 +01:00
Tony Garnock-Jones
ca1c0f6645
Add a way of loading trace modules at startup time
2016-08-25 18:15:39 +01:00
Tony Garnock-Jones
2a6061bd97
Revamp tracing
2016-08-25 18:07:27 +01:00
Tony Garnock-Jones
0bc775a89f
First commit moving from (actor (react ...)) to (actor ...)
2016-08-24 17:35:38 +01:00
Tony Garnock-Jones
56e893fac4
Use field instead of set!.
2016-08-21 08:42:45 -04:00
Tony Garnock-Jones
3240f20d90
Allow ($ v) bindings
2016-08-21 08:27:56 -04:00
Tony Garnock-Jones
426a38b17f
Silence redefinition warning
2016-08-15 10:45:23 -04:00
Tony Garnock-Jones
fe47abd540
Cosmetic
2016-08-10 19:14:01 -04:00
Tony Garnock-Jones
a890a7147b
Queue implementations without credit tracking
2016-08-10 19:04:08 -04:00
Tony Garnock-Jones
956a940480
Cosmetic
2016-08-10 19:03:52 -04:00
Tony Garnock-Jones
6684c9e883
queue-remove in functional-queue.rkt
2016-08-10 19:03:40 -04:00
Tony Garnock-Jones
0bc370beec
A Queue with credit-based flow control.
2016-08-10 18:42:19 -04:00
Tony Garnock-Jones
a828334b2f
Cosmetic
2016-08-10 18:41:46 -04:00
Tony Garnock-Jones
2b29e817a5
Add *idle-priority*, and allow #:priority on begin/dataflow
2016-08-10 18:41:41 -04:00
Tony Garnock-Jones
f20d1a2ad7
Invariant checking via begin/dataflow
2016-08-10 17:09:24 -04:00
Tony Garnock-Jones
d7a594e2b9
Counting-semaphore-like mutex, and dining philosophers.
2016-08-10 17:03:21 -04:00
Tony Garnock-Jones
eaade6e4fd
Treat synthetic patches differently wrt previousKnowledge
2016-08-07 21:58:19 -04:00
Tony Garnock-Jones
02c66c4bab
Fix deps
2016-08-04 13:05:54 -04:00
Sam Caldwell
73f180d90a
fix bug in LLL two-buyer
2016-08-03 14:19:18 -04:00
Tony Garnock-Jones
e22f608109
Now that we capture parameterization for actors, current-actor-path-rev has to be a store rather than a parameter
2016-07-31 22:19:59 -04:00
Tony Garnock-Jones
4e1bab4b90
Introduce make-spawn to capture parameterizations. Closes #10 .
2016-07-31 17:24:48 -04:00
Tony Garnock-Jones
1fa50e4e6a
file-system-during2.rkt
2016-07-31 12:22:15 -04:00
Tony Garnock-Jones
628b7b2356
Remove superfluous begin0; reindent
2016-07-31 12:19:54 -04:00
Tony Garnock-Jones
e2897d37f4
Factor out commonality from file-system*.rkt examples
2016-07-31 12:17:12 -04:00
Tony Garnock-Jones
463dd48577
Always pick the highest-priority script to run next.
...
This means that `*gc-priority*` scripts will now reliably run last.
Prior to this change, if some higher-priority script X ran while a
`*gc-priority*` script Y was queued, and it enqueued a high-priority
script Z, then Y would run before Z.
2016-07-31 12:02:11 -04:00
Tony Garnock-Jones
f34924bc6d
Leave a "tombstone" so we can see the process's name while any record of it remains.
2016-07-31 11:36:25 -04:00
Tony Garnock-Jones
4dad3e9661
Process retractions before asserts in the query forms
2016-07-30 17:05:54 -04:00
Tony Garnock-Jones
9e3f804aae
I don't understand how elapsed-ms can end up negative, but I was seeing it in the platformer at frame 0
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
b6a03bdd9b
Tweak scribblings to silence errors. Still need to update docs.
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
3edd184242
Update syndicate-gl for split mux and relay.
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
c7dae47210
inbound* and outbound* are now match-expanders
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
07eb91b0d9
Update big-bang for split relay and mux.
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
17db697690
spawn->process+transition
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
c0786c86ca
Introduce struct process.
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
68ba2f74a6
Split dataspaces in to relay and mux sublayers.
...
This is a major change to the previous design, and also a change with
respect to the semantics in the ESOP 2016 paper. All the complexity of
echo-cancellation is stripped out of the core dataspace semantics, and
the relaying protocol is changed from one constructor, `at-meta`, to
two, `inbound` and `outbound`. The relay connecting a dataspace to its
container is now completely symmetric with the contained actors: it
initially asserts interest in what it is to relay, just like any other
actor would. Dataspaces no longer treat relaying specially.
This commit has updated all (I think) of the non-graphical examples. The
graphical code remains to be done in a following commit.
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
b8c109d82b
pretty-print-actor-state
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
2a2d363c5e
Improve printing of patches
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
129dd23b84
Remove obsolete endpoint.rkt and its example
2016-07-30 14:49:05 -04:00
Tony Garnock-Jones
7a3973a097
Move syndicate-monolithic to new historical directory.
2016-07-30 14:48:59 -04:00
Tony Garnock-Jones
56d2fc2c0d
Support #:when conditional (on ...) clauses.
2016-07-28 15:45:45 -04:00