Remove Notificator, FrontierNotificator, unary_notify, and binary_notify - #819
Merged
Merged
Conversation
They held one capability per requested time and delivered it once the input frontiers passed it: a convenience for the one-capability-per-message world that no library operator uses since #818, that differential-dataflow does not use, and whose one downstream user must leave it anyway. An operator that wants the same holds its capabilities in a map keyed by time and checks them against the frontiers, which is what the bfs and barrier examples, the barrier test, the operator doctests, and the book now do directly. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012k2GSwxmvD2LvckkoXi6GK
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #818. The notificator held one
Capabilityper requested time and handed it back once the input frontiers had passed that time, andunary_notifyandbinary_notifyexisted only to supply one.Why remove it. It is a convenience for the one-capability-per-message world:
notify_attakes a single capability, so a message stamped by a set of times cannot be waited on without the caller splitting the set, and the delivery order it promises is the total order of times. After #818 no library operator uses it. Differential-dataflow does not use it (three stale comments mention the pattern over frontier-driven code). Materialize has one use, the top-k intra-time thinning operator, which is the removedaggregatepattern and is already being rewritten because #817 stopped it compiling.What replaces it. What differential-dataflow has always done: hold capabilities in a map keyed by time, and each invocation check them against the input frontiers. The bfs and barrier examples, the barrier test, the
unary_frontierandbinary_frontierdoctests, and the book's "frontiers" section now do this directly; the book section that introduced the notificator and then re-derived it without one keeps only the direct version, with the explanation folded into its closing paragraph.Full workspace tests and doctests, including the book, pass.
🤖 Generated with Claude Code
https://claude.ai/code/session_012k2GSwxmvD2LvckkoXi6GK