Sam Caldwell
5434e82299
compiling spin
2020-06-08 16:18:57 -04:00
Sam Caldwell
0999c9b75b
start on an IR for spin compilation
2020-05-29 15:19:09 -04:00
Sam Caldwell
30430c391b
Include assertion information inside role graph states
...
Cleans up a lot of things in the process
2020-05-29 15:18:18 -04:00
Sam Caldwell
060ca752f3
fix several bugs in role graph analysis
2020-05-29 11:15:07 -04:00
Sam Caldwell
af8dbeaa4b
a bit more doc
2020-03-30 17:12:39 -04:00
Sam Caldwell
35d3332698
more docs
2020-03-26 16:04:34 -04:00
Sam Caldwell
9b48e77b6d
more docs
2020-03-25 17:09:33 -04:00
Sam Caldwell
cc8d0fa30b
add flink test input
2020-03-23 09:25:01 -04:00
Sam Caldwell
98c5c96356
omit 7gui examples in tests
2020-03-21 09:35:16 -04:00
Sam Caldwell
026e129de7
work on docs
2020-03-20 16:42:27 -04:00
Sam Caldwell
a2780484be
fixup test
2020-03-11 13:12:16 -04:00
Sam Caldwell
5c8986bddd
floating define test
2020-03-10 11:44:25 -04:00
Sam Caldwell
6c79e5cd5c
track branching for each kind of effect in match
2020-03-10 11:44:25 -04:00
Sam Caldwell
7ceed8e952
typed flink: replace dataflow in job manager with internal events
2020-03-10 11:44:25 -04:00
Sam Caldwell
dca8ea2bad
Allow `define`d expressions to have effects
2020-03-10 11:44:25 -04:00
Sam Caldwell
b8b5a1747a
improve function application error messages
2020-03-10 11:44:24 -04:00
Sam Caldwell
c38a47f5e3
TODO: keep track of match branching
2020-03-10 11:44:24 -04:00
Sam Caldwell
480feb961c
improve spawn error messages
2020-03-10 11:44:24 -04:00
Sam Caldwell
f8c385e31d
cleanup
2020-03-10 11:44:24 -04:00
Sam Caldwell
dee43c7f19
fix typed `or`
2020-03-10 11:44:24 -04:00
Sam Caldwell
18932662de
flink: remove use of dataflow
2020-03-10 11:44:24 -04:00
Sam Caldwell
013ce19e68
flink: replace a lot of dataflow in job manager with internal events
2020-03-10 11:44:23 -04:00
Sam Caldwell
f4701a3f70
fix bugs in internal events
2020-03-10 11:44:23 -04:00
Stephen Chang
056d467402
edit info files to enable raco test typed/
2020-03-10 11:44:23 -04:00
Sam Caldwell
f19d2f3296
new job manager role
2020-03-10 11:44:23 -04:00
Sam Caldwell
f3e2fcdc64
task manager role
2020-03-10 11:44:23 -04:00
Sam Caldwell
2a95420366
fixup format of task performer spec
2020-03-10 11:44:22 -04:00
Sam Caldwell
7cf0757ca6
stuff
2020-03-10 11:44:22 -04:00
Sam Caldwell
5823cf32c3
typed flink: unify task-state and task-assignment, job and job-finished
2020-03-10 11:44:22 -04:00
Sam Caldwell
18fdcdeff7
untyped flink: use interest as request for jobs
2020-03-10 11:44:22 -04:00
Sam Caldwell
90961e57f8
untyped flink: unify task-assignment and task-state assertions
2020-03-10 11:44:22 -04:00
Sam Caldwell
6f8c9563aa
typed flink: streamline ids
2020-03-10 11:44:22 -04:00
Sam Caldwell
14db8ce919
untyped flink: finish streamlining ids, resolve dataflow issue
2020-03-10 11:44:21 -04:00
Sam Caldwell
79277c91d3
untyped flink: work on streamlining ids, demonstrating dataflow issue
2020-03-10 11:44:21 -04:00
Sam Caldwell
e3d9f93eca
untyped flink: fiddle with race in task manager
2020-03-10 11:44:21 -04:00
Sam Caldwell
5f472b5402
typed flink: associate task runners with a particular task manager
2020-03-10 11:44:21 -04:00
Sam Caldwell
35827c970c
add in-range
2020-03-10 11:44:21 -04:00
Sam Caldwell
8bbab5317e
typed flink: task runners don't need a status
2020-03-10 11:44:21 -04:00
Sam Caldwell
ab15f7306f
typed define/dataflow
2020-03-10 11:44:21 -04:00
Sam Caldwell
606dd17e08
associate task runners with a particular task manager
2020-03-10 11:44:21 -04:00
Sam Caldwell
32ebb804fb
flink: task runners don't need a status
2020-03-10 11:44:20 -04:00
Sam Caldwell
3459fc8f71
verify request/response property in leader-and-seller
2020-03-10 11:44:20 -04:00
Sam Caldwell
0a5ea2b920
fix bug in leader-and-seller
2020-03-10 11:44:20 -04:00
Sam Caldwell
e3d746b817
fiddling with spin
2020-03-10 11:44:20 -04:00
Sam Caldwell
ed7c212561
start cleaning up/streamlining flink
2020-03-10 11:44:20 -04:00
Sam Caldwell
4e6b883c17
fix a couple bugs
2020-03-10 11:44:20 -04:00
Sam Caldwell
c9c3b9ec82
Label internal events & handlers with actor-unique IDs
2020-03-10 11:44:20 -04:00
Sam Caldwell
9c0c9b3e77
initial take on supporting spawn actions in role graphs
2020-03-10 11:44:19 -04:00
Sam Caldwell
6ee5aa668b
utilize define-spawns to clean up 7-GUIS examples
2020-03-10 11:44:19 -04:00
Sam Caldwell
ecbfe56163
Modify syndicate's module-begin to capture actions on the RHS of define
...
Example. consider a procedure that spawns an actor and then returns
some value relevant to communicating to that actor:
(define (spawn-an-actor)
(define name (gensym))
(spawn
(on (asserted (... name ...))
...)
...)
name)
And the module top level tries to boot and use this actor with a define:
(define the-name (spawn-an-actor))
(spawn ... use the-name ...)
The new module-begin analyzes (forms that expand to) define-values to
wrap the body with a capture-actor-actions, allowing such spawns to be
detected.
2020-03-10 11:44:19 -04:00
Sam Caldwell
7af6782ea8
7-GUIS port task 7
2020-03-10 11:44:19 -04:00
Sam Caldwell
ce9d563d8c
7-GUIS port task 6
2020-03-10 11:44:19 -04:00
Sam Caldwell
9e88cde0eb
7-GUIS port task 5
2020-03-10 11:44:19 -04:00
Sam Caldwell
e554c797fb
7-GUIS port task 4
2020-03-10 11:44:19 -04:00
Sam Caldwell
89e42ae987
7-GUIS port task 3
2020-03-10 11:44:19 -04:00
Sam Caldwell
161abab986
7-GUIS port task 2
2020-03-10 11:44:18 -04:00
Sam Caldwell
ce0dba8f36
start on racket guis, 7-GUIS task 1
2020-03-10 11:44:18 -04:00
Sam Caldwell
5a5fb74124
consider more potential schedulings of events
2020-03-10 11:44:18 -04:00
Sam Caldwell
9f8469467a
internal event business
2020-03-10 11:44:18 -04:00
Sam Caldwell
123124acb2
compile internal events, compresses job manager graph by a lot
2020-03-10 11:44:18 -04:00
Sam Caldwell
7ba1ecf055
remove self loops, things working better
2020-03-10 11:44:18 -04:00
Sam Caldwell
5a19594fa1
fix bug in flink
2020-03-10 11:44:17 -04:00
Sam Caldwell
2a72f63084
detect cycles when compiling internal events
2020-03-10 11:44:17 -04:00
Sam Caldwell
63c36d7010
first take on inlining internal events
2020-03-10 11:44:17 -04:00
Sam Caldwell
d4b17154eb
rudimentary support for internal events in proto
2020-03-10 11:44:16 -04:00
Sam Caldwell
5da04741f2
add messages to proto
2020-03-10 11:44:16 -04:00
Sam Caldwell
4d6878626c
small cleanup
2020-03-10 11:44:16 -04:00
Sam Caldwell
712dbd12c9
reorganize examples
2020-03-10 11:44:16 -04:00
Sam Caldwell
9cdaf768d8
job manager role
2020-03-10 11:44:16 -04:00
Sam Caldwell
de88dc3c83
more event constructors in proto
2020-03-10 11:44:16 -04:00
Sam Caldwell
5c6b473b62
replace some dataflow with internal events in typed flink
2020-03-10 11:44:16 -04:00
Sam Caldwell
b3cb16192c
allow equal? when there's overlap
2020-03-10 11:44:15 -04:00
Sam Caldwell
945256b567
internal events for typed lang
2020-03-10 11:44:15 -04:00
Sam Caldwell
cefe70c590
Change type names Know -> Asserted, \negKnow -> Retracted
2020-03-10 11:44:15 -04:00
Sam Caldwell
e0d1975e2d
(during (know P) O ...) for internal knowledge
2020-03-10 11:44:15 -04:00
Sam Caldwell
d8516060c4
Create an actor-internal event system oriented around assertions and
...
messges.
internal form ~ external form
(know v) ~ (assert v)
(on (know p) ...) ~ (on (asserted p) ...)
(on (forget p) ...) ~ (on (retracted p) ...)
(realize! v) ~ (send! v)
(on (realize v) ...) ~ (on (message v) ...)
2020-03-10 11:44:15 -04:00
Sam Caldwell
a1ca2372a5
minor printing stuff in examples
2020-03-10 11:44:15 -04:00
Sam Caldwell
426b0899ac
subgraph stuff working better
2020-03-10 11:44:15 -04:00
Sam Caldwell
1cd46da9d0
some work on checking/finding subgraphs
2020-03-10 11:44:15 -04:00
Sam Caldwell
1450665dc0
task assigner spec and task manager type
2020-03-10 11:44:14 -04:00
Sam Caldwell
9893f4dea1
provide Branch and Effs types
2020-03-10 11:44:14 -04:00
Sam Caldwell
7dd9700c99
extract some code from verify body
2020-03-10 11:44:14 -04:00
Sam Caldwell
a41cee09bf
task performer spec and task runner type
2020-03-10 11:44:14 -04:00
Sam Caldwell
0d4f8df3b4
During type abbreviation
2020-03-10 11:44:14 -04:00
Sam Caldwell
116dcefc1a
support for dataflow, misc fixes and improvements
2020-03-10 11:44:14 -04:00
Sam Caldwell
9b4f76b0ac
more accurate job manager type
2020-03-10 11:44:14 -04:00
Sam Caldwell
989c6af818
add container types to proto
2020-03-10 11:44:13 -04:00
Sam Caldwell
d9da970742
print types different
2020-03-10 11:44:13 -04:00
Sam Caldwell
5d922fe030
cleanups and improvements
2020-03-10 11:44:13 -04:00
Sam Caldwell
c1190958bd
remove stop-when abomination
2020-03-10 11:44:13 -04:00
Sam Caldwell
57d641dcc3
initial support for on start and on stop
2020-03-10 11:44:13 -04:00
Sam Caldwell
397bebe4a3
small cleanup
2020-03-10 11:44:13 -04:00
Sam Caldwell
b0ff2e8620
parse quoted turnstile types
2020-03-10 11:44:13 -04:00
Sam Caldwell
6230ed577e
tweak how types are printed
2020-03-10 11:44:12 -04:00
Sam Caldwell
7994bfb9c6
cleanup
2020-03-10 11:44:12 -04:00
Sam Caldwell
227768efd8
forgot to add maybe.rkt and either.rkt
2020-03-10 11:44:12 -04:00
Sam Caldwell
f20adacfde
typed flink working!
2020-03-10 11:44:12 -04:00
Sam Caldwell
67e0eebdc2
priorities for query handlers, on-add, on-remove
2020-03-10 11:44:12 -04:00
Sam Caldwell
7445626d0b
client and jobs (not working)
2020-03-10 11:44:12 -04:00
Sam Caldwell
6778417639
map list op
2020-03-10 11:44:12 -04:00
Sam Caldwell
b7ec18e52d
resolve mutual dependency in flink via dataflow
2020-03-10 11:44:11 -04:00
Sam Caldwell
89ce5dca28
fancify patterns in flink
2020-03-10 11:44:11 -04:00
Sam Caldwell
b1d14d8559
fancify the patterns in book-club
2020-03-10 11:44:11 -04:00
Sam Caldwell
7026d6908d
Use the communication type (via a turnstile `mode`) when elaborating
...
patterns in facets
2020-03-10 11:44:11 -04:00
Sam Caldwell
292e16f8b8
clean up patterns in flink
2020-03-10 11:44:11 -04:00
Sam Caldwell
60c58d2b7b
elaborate more patterns
2020-03-10 11:44:10 -04:00
Sam Caldwell
d91f13bd2c
some work towards a better pattern language
2020-03-10 11:44:10 -04:00
Sam Caldwell
5965115611
typed flink getting closer
2020-03-10 11:44:10 -04:00
Sam Caldwell
adc0819be0
limited support for effect polymorphism
2020-03-10 11:44:09 -04:00
Sam Caldwell
49b34268ad
more flink
2020-03-10 11:44:09 -04:00
Sam Caldwell
d5a8d27ae3
progress on flink
2020-03-10 11:44:09 -04:00
Sam Caldwell
4e335f8049
first take on match-define-like form
2020-03-10 11:44:09 -04:00
Sam Caldwell
d236d99d47
stop-when derived form
2020-03-10 11:44:09 -04:00
Sam Caldwell
a0a30c719a
positive? primitive
2020-03-10 11:44:09 -04:00
Sam Caldwell
cf2162797a
for/first
2020-03-10 11:44:09 -04:00
Sam Caldwell
7b9595a22a
zero? primitive
2020-03-10 11:44:09 -04:00
Sam Caldwell
667231d3e8
examples/flink.rkt: work on job manager and utilities
2020-03-10 11:44:08 -04:00
Sam Caldwell
6b58c20832
Use a mutable, compile-time table for type metadata
2020-03-10 11:44:08 -04:00
Sam Caldwell
b9e99fc8af
Make inference slightly more lenient wrt unions
...
some tests not working because of syntax-property failure
2020-03-10 11:44:08 -04:00
Sam Caldwell
45e7ea609d
add error form
2020-03-10 11:44:08 -04:00
Sam Caldwell
f6976c0281
improve handling of type variables
2020-03-10 11:44:08 -04:00
Sam Caldwell
0752089101
tweak how pattern types are handled
2020-03-10 11:44:08 -04:00
Sam Caldwell
ad4b94422d
flink-support
2020-03-10 11:44:08 -04:00
Sam Caldwell
b56319042c
query-hash
2020-03-10 11:44:07 -04:00
Sam Caldwell
f4f517cd02
require&provide maybe,either
2020-03-10 11:44:07 -04:00
Sam Caldwell
c9378d057d
move patterns to core expressions
2020-03-10 11:44:07 -04:00
Sam Caldwell
9cb884a490
more primitive operations
2020-03-10 11:44:07 -04:00
Sam Caldwell
e7f792e624
more hash operations
2020-03-10 11:44:07 -04:00
Sam Caldwell
f1be0fdfac
more list operations
2020-03-10 11:44:06 -04:00
Sam Caldwell
93e1fea202
typed-flink: task manager
2020-03-10 11:44:06 -04:00
Sam Caldwell
16ce86c6c9
make sure begin always has a definition context
2020-03-10 11:44:06 -04:00
Sam Caldwell
c097e218d0
more set operations
2020-03-10 11:44:06 -04:00
Sam Caldwell
12fd4ad756
more hash functions
2020-03-10 11:44:06 -04:00
Sam Caldwell
f460011a5d
typed flink - task runner
2020-03-10 11:44:06 -04:00
Sam Caldwell
51e26efda6
fix output type for actors without interests
2020-03-10 11:44:06 -04:00
Sam Caldwell
122f7629c3
fix argument order bug in hash-update
2020-03-10 11:44:05 -04:00
Sam Caldwell
c96725b8e3
typed flink data definitions
2020-03-10 11:44:05 -04:00
Sam Caldwell
1feab5d174
assertion-struct macro
2020-03-10 11:44:05 -04:00
Sam Caldwell
530c17ff32
split out core-expressions with #%app, which is now more explicit
2020-03-10 11:44:05 -04:00
Sam Caldwell
ed01517c8c
Improve scoping structure of for-clauses
2020-03-10 11:44:05 -04:00
Sam Caldwell
10ae47c26c
make list operations polymorphic functions
2020-03-10 11:44:05 -04:00
Sam Caldwell
6f52c7fc61
fix ty-var bug
2020-03-10 11:44:05 -04:00
Sam Caldwell
9d5453ff5b
first take on local inference
2020-03-10 11:44:05 -04:00
Sam Caldwell
f00ec81e48
move definition of primitive base types
2020-03-10 11:44:04 -04:00
Sam Caldwell
b1cca8f377
subtyping for effect-free functions
2020-03-10 11:44:04 -04:00
Sam Caldwell
cf17ae28a5
fixup fold in book club
2020-03-10 11:44:04 -04:00
Sam Caldwell
f6cd87394e
start on for loops
2020-03-10 11:44:04 -04:00
Sam Caldwell
39d81686fd
hash tables
2020-03-10 11:44:04 -04:00
Sam Caldwell
2ddafb240a
add sequences
2020-03-10 11:44:04 -04:00
Sam Caldwell
e88b64f5c1
allow polymorphic function definitions
2020-03-10 11:44:04 -04:00
Sam Caldwell
82705763b4
type abstractions
2020-03-10 11:44:04 -04:00
Sam Caldwell
581319eacb
split out primitives
2020-03-10 11:44:03 -04:00
Sam Caldwell
3c800a92db
split out files
2020-03-10 11:44:03 -04:00
Sam Caldwell
29c446df39
Attach useful metadata as syntax properties to some types
...
In order to make defining judgments like subytping and intersection
more extensible, introduce a form for defining type constructors that
describes:
- how it behaves wrt intersction (product-like or container-like)
- variances for subtyping
- the type constructor transformer, for making new instances
This eliminates a lot of very repetitive code, and should make things
much more extensible
2020-03-10 11:44:03 -04:00
Sam Caldwell
006e5e0bf5
simplify implementation of overlaps?
2020-03-10 11:44:03 -04:00
Sam Caldwell
f9dcad855e
examples/flink: implement task delegation roles in terms of abstract
...
templates
2020-03-10 11:44:03 -04:00
Sam Caldwell
fa7af3444c
look more at book club roles
2020-03-10 11:44:03 -04:00
Sam Caldwell
58c1b52ac4
More leader-related role finangling
2020-03-10 11:44:03 -04:00
Sam Caldwell
d5ac65007e
Keep track of branches for role effects in turnstile lang
2020-03-10 11:44:02 -04:00
Sam Caldwell
572be6b45d
look into leader impl simulating spec a bit
2020-03-10 11:44:02 -04:00
Sam Caldwell
5752c9299c
some more simulation tests
2020-03-10 11:44:02 -04:00
Sam Caldwell
7dfc4a93da
leader-spec simulates itself!
2020-03-10 11:44:02 -04:00
Sam Caldwell
ff81748848
simplest simulation example passes
2020-03-10 11:44:02 -04:00
Sam Caldwell
f0c52f6eaa
subtyping
2020-03-10 11:44:02 -04:00
Sam Caldwell
e141abd678
remember initial state when compiling
2020-03-10 11:44:02 -04:00
Sam Caldwell
d285de5bb2
small improvements
2020-03-10 11:44:01 -04:00
Sam Caldwell
04f4acbda3
incorporate branching!
2020-03-10 11:44:01 -04:00
Sam Caldwell
abce2d6046
More on facet states, including graphviz view
2020-03-10 11:44:01 -04:00
Sam Caldwell
d35495029b
prototyping interpretation of roles as state machines
2020-03-10 11:44:01 -04:00
Tony Garnock-Jones
38f6351d43
Cosmetic (sort-lines) [2/2]
2020-01-17 14:15:20 +01:00
Tony Garnock-Jones
cd98c3048d
Cosmetic [1/2]
2020-01-17 14:14:55 +01:00
Tony Garnock-Jones
d1fbe26bc1
Fix Racket package deps
2020-01-17 14:14:35 +01:00
Sam Caldwell
a3380ea403
fixups for package installation
2019-08-26 11:08:30 -04:00
Sam Caldwell
3957f031c1
declare turnstile deps
2019-08-23 10:05:11 -04:00
Sam Caldwell
f85203ac73
examples/flink: small cleanups
2019-03-05 10:53:30 -05:00
Sam Caldwell
0da903e438
examples/flink: merge task assignment and delegation protocols
2019-02-26 15:48:26 -05:00
Sam Caldwell
22bd143025
examples/flink: rename map and reduce structs for slightly less overloading on task
2019-02-26 13:34:12 -05:00
Sam Caldwell
a6d6ceaa7c
examples/flink: tidy up a bit
2019-02-26 12:13:37 -05:00
Sam Caldwell
abc8669b74
examples/flink: describe the protocol
2019-02-26 10:50:00 -05:00
Sam Caldwell
a98ba7baab
examples/flink: avoid asking the task manager to do more than it is
...
capable of
2019-02-21 15:10:42 -05:00
Sam Caldwell
702c53f7d1
examples/flink: Split lines to words in job runner; trim punctuation on words
2019-02-18 16:03:27 -05:00
Sam Caldwell
bb028b1af8
examples/flink: create a job from a file
...
Doesn't handle punctuation properly
2019-02-18 15:45:10 -05:00
Sam Caldwell
fb778ab1ee
examples/flink: create tasks & jobs from an input string rather than
...
manually
2019-02-18 15:21:24 -05:00
Sam Caldwell
5cb0462ec4
examples: adapt Jonathan's flink exceprt to syndicate
2019-02-13 15:53:04 -05:00
Sam Caldwell
0897036557
Don't use syndicate's action-collecting module-begin
...
Implicitly starting a dataspace with top-level actions is a hole for
the type system, which needs to know the type of possible assertions.
Instead, provide `run-ground-dataspace` for kicking off the program.
2019-01-25 11:16:07 -05:00
Sam Caldwell
d363bd0c46
typed chat server example
2019-01-25 11:16:07 -05:00
Sam Caldwell
0c37b4e0b7
tcp driver shim module
2019-01-25 11:16:07 -05:00
Sam Caldwell
c7cc84302e
Instead of attaching syntax properties during expansion, generate code
...
that does so
This resolves the "namespace mismatch: cannot locate module instance"
error.
2019-01-25 11:16:07 -05:00
Sam Caldwell
3a06e2324c
Useful primitives: symbols, bytestrings
2019-01-25 11:16:06 -05:00
Sam Caldwell
36420274cb
send newlines in tcp2 chat client
2019-01-25 11:16:06 -05:00
Sam Caldwell
c7d78159e3
require/typed - no contracts
2019-01-25 11:16:06 -05:00
Sam Caldwell
7c3d87eeb2
require-struct
2019-01-25 11:16:06 -05:00
Sam Caldwell
221a550aed
rename effect keys to not break with updated turnstile
2019-01-25 11:16:06 -05:00
Sam Caldwell
d8df2beb3e
small cleanup
2019-01-25 11:16:06 -05:00
Sam Caldwell
817e292760
Revert "begin splitting up roles.rkt"
...
This reverts commit da1263dc97
.
2019-01-25 11:16:05 -05:00
Sam Caldwell
7117816a74
Revert "more splitting up"
...
This reverts commit 49e7ba1b0e
.
2019-01-25 11:16:05 -05:00
Sam Caldwell
1b0f41f465
more splitting up
2019-01-25 11:16:05 -05:00
Sam Caldwell
c11d719f20
begin splitting up roles.rkt
2019-01-25 11:16:05 -05:00
Sam Caldwell
70aafc8bdf
re-finangle `define/intermediate` to allow require & provides
...
Needed to change from `make-rename-transformer` to
`make-variable-like-transformer` because apparently rename transformers
are treated differently when referred to from another model, hiding the
syntax properties on the target.
2019-01-25 11:16:05 -05:00
Sam Caldwell
dcc6bbcbe7
file system roles w messages
2019-01-25 11:16:05 -05:00