Notes
This commit is contained in:
parent
0082983809
commit
7b080eacc0
135
TODO.md
135
TODO.md
|
@ -1 +1,136 @@
|
|||
Consider whether a stack or a queue makes most sense for the freelist.
|
||||
|
||||
|
||||
Needed by prospect:
|
||||
|
||||
- `pattern->matcher` with `#t`
|
||||
|
||||
- `matcher-project`
|
||||
- `matcher-project/set`
|
||||
- `matcher-project/set/single`
|
||||
|
||||
- many userland uses
|
||||
- one interesting use in `drop-interests` / `drop-patch`, used in `mux-update-stream`
|
||||
- perhaps this can be replaced with a `matcher-step` combination?
|
||||
- no, it'd be a little awkward, because of the trailing close-paren.
|
||||
|
||||
- `matcher-match-value`
|
||||
|
||||
- used to route messages
|
||||
- once to check that noone has asserted the message in the routing table
|
||||
- and once to actually route it
|
||||
|
||||
- `matcher-match-matcher`
|
||||
|
||||
- used in `compute-affected-pids` to project out PIDs on the
|
||||
right (after a step to get past the struct:observe)
|
||||
- used with a combiner that unions in the PIDs on the right
|
||||
- used with a left-short that steps over the close-paren from the struct:observe
|
||||
|
||||
- `matcher-union` with default and with `\vw.#t`
|
||||
|
||||
- used to create cross-level observations in `observe-at-meta` in core
|
||||
- to compute the "cover" of a patch in compute-affected-pids -
|
||||
union of added & removed
|
||||
- used in `apply-patch` and `patch-union` with default combiner
|
||||
- used in `update-interests` and `compose-patch` with a combiner
|
||||
that ignores the structure of the ok() value
|
||||
- (used in `unapply-patch`, which is not used)
|
||||
|
||||
- `matcher-step` (for removing open-paren and observation marks and
|
||||
skipping the corresponding close-paren)
|
||||
|
||||
- used in `biased-intersection` and `compute-affected-pids` to
|
||||
skip struct:observe
|
||||
|
||||
- `matcher-relabel`
|
||||
|
||||
- used throughout to replace ok() leaf values.
|
||||
|
||||
- `matcher-subtract` with default, `\vw.#f`, `add-combiner` and `rem-combiner`
|
||||
|
||||
- used with always-false in `limit-patch`, `compose-patch` and
|
||||
`update-interests`, ignoring the ok() values
|
||||
- used with default in `compute-patch` (and in `limit-patch/routing-table`, which is not used)
|
||||
- used with both `add-combiner` and `rem-combiner` in `compute-aggregate-patch`
|
||||
- used with default in `apply-patch`
|
||||
- (used in `unapply-patch`, which is not used)
|
||||
|
||||
- `matcher-intersect` with `\vw.v`, `\vw.v∩w`, and `\vw.#t` with a left-short argument.
|
||||
|
||||
- used in `limit-patch` in a way that's tantamount to an explicit simultaneous relabelling
|
||||
- used with an always-true combiner in `biased-intersection`
|
||||
- (used in `limit-patch/routing-table`, which is unused)
|
||||
|
||||
|
||||
digraph Dependencies {
|
||||
graph [rankdir=LR];
|
||||
|
||||
// matcher
|
||||
subgraph xcluster_union {
|
||||
unionUnit;
|
||||
unionPIDs;
|
||||
}
|
||||
project;
|
||||
matchValue;
|
||||
matchMatcher;
|
||||
step;
|
||||
relabel;
|
||||
subgraph xcluster_subtract {
|
||||
subtractUnit;
|
||||
subtractPIDs;
|
||||
subtractCustom;
|
||||
}
|
||||
subgraph xcluster_intersect {
|
||||
intersectAsymmetric;
|
||||
intersectUnit;
|
||||
}
|
||||
|
||||
// patch
|
||||
// composePatch -> subtractUnit;
|
||||
// composePatch -> unionUnit;
|
||||
// computePatch -> subtractUnit; // I guess?
|
||||
// stripInterests -> relabel;
|
||||
// stripPatch -> stripInterests;
|
||||
applyPatch -> subtractPIDs;
|
||||
applyPatch -> unionPIDs;
|
||||
biasedIntersection -> intersectUnit;
|
||||
biasedIntersection -> step;
|
||||
computeAggregatePatch -> subtractCustom;
|
||||
labelInterests -> relabel;
|
||||
limitPatch -> intersectAsymmetric;
|
||||
limitPatch -> subtractUnit;
|
||||
patchUnion -> unionUnit;
|
||||
updateInterests -> subtractUnit;
|
||||
updateInterests -> unionUnit;
|
||||
dropInterests -> project;
|
||||
labelPatch -> labelInterests;
|
||||
|
||||
// mux
|
||||
computeAffectedPIDs -> matchMatcher;
|
||||
computeAffectedPIDs -> step;
|
||||
computeAffectedPIDs -> unionUnit;
|
||||
messageRouting -> matchValue;
|
||||
muxUpdateStream -> applyPatch;
|
||||
muxUpdateStream -> biasedIntersection;
|
||||
muxUpdateStream -> computeAffectedPIDs;
|
||||
muxUpdateStream -> computeAggregatePatch;
|
||||
muxUpdateStream -> dropInterests;
|
||||
muxUpdateStream -> labelPatch;
|
||||
muxUpdateStream -> limitPatch;
|
||||
muxUpdateStream -> patchUnion;
|
||||
|
||||
// core
|
||||
observeAtMeta -> union;
|
||||
|
||||
// user code
|
||||
userCode -> project;
|
||||
userCode -> observeAtMeta;
|
||||
|
||||
// semantics
|
||||
semantics -> muxUpdateStream;
|
||||
semantics -> messageRouting;
|
||||
groundVM -> applyPatch;
|
||||
groundVM -> labelPatch;
|
||||
demandMatcher -> updateInterests;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue