4.3 KiB
4.3 KiB
Consider whether a stack or a queue makes most sense for the freelist.
Consider a naming convention to indicate grab'd vs ungrab'd results.
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 inmux-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.
- perhaps this can be replaced with a
-
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
- used in
-
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
andpatch-union
with default combiner - used in
update-interests
andcompose-patch
with a combiner that ignores the structure of the ok() value - (used in
unapply-patch
, which is not used)
- used to create cross-level observations in
-
matcher-step
(for removing open-paren and observation marks and skipping the corresponding close-paren)- used in
biased-intersection
andcompute-affected-pids
to skip struct:observe
- used in
-
matcher-relabel
- used throughout to replace ok() leaf values.
-
matcher-subtract
with default,\vw.#f
,add-combiner
andrem-combiner
- used with always-false in
limit-patch
,compose-patch
andupdate-interests
, ignoring the ok() values - used with default in
compute-patch
(and inlimit-patch/routing-table
, which is not used) - used with both
add-combiner
andrem-combiner
incompute-aggregate-patch
- used with default in
apply-patch
- (used in
unapply-patch
, which is not used)
- used with always-false in
-
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 // computePatch -> subtractUnit; // I guess? // stripInterests -> relabel; // stripPatch -> stripInterests; applyPatch -> subtractPIDs; applyPatch -> unionPIDs; biasedIntersection -> intersectUnit; biasedIntersection -> step; composePatch -> subtractUnit; composePatch -> unionUnit; computeAggregatePatch -> subtractCustom; labelInterests -> relabel; limitPatch -> intersectAsymmetric; limitPatch -> subtractUnit; patchUnion -> unionUnit; updateInterests -> subtractUnit; updateInterests -> unionUnit; dropInterests -> project; labelPatch -> labelInterests; patchSeq -> composePatch; // 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 -> unionUnit; // user code userCode -> project; userCode -> observeAtMeta; userCode -> patchSeq; // semantics semantics -> muxUpdateStream; semantics -> messageRouting; groundVM -> applyPatch; groundVM -> labelPatch; demandMatcher -> updateInterests;
}
- used in