TimelyDataflow / TimelyDataflow/timely-dataflow
mdbook Improvements
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 293
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 4
Description
I'm currently reading timely's gitbook, and so far it has been great!
Here are some suggestions on what to improve:
- most examples start with
extern crate timely;, I think this isn't necessary for Rust 2018 anymore - The first code example in the iteration chapter doesn't match its surrounding description: E.g.
LoopVariableis introduced, but the example usesfeedback(), "(i) what is the upper bound on the number of iterations" isn't reflected in the function arguments, and "We've built an upper limit of 100" doesn't exist in the example code - Subsection
Scopesclears this up a little, but perhaps it might make sense to present the difference betweenfeedback&loop_variableearlier (esp. sinceloop_variablejust usesfeedbackunder the hood) - Many concepts are defined independently, but never compared or connected to each other: e.g. how
capability.downgrade()&flushingrelates toinput_handle.advance_to(), howinput_handle.time()relates tofrontier, how thesourcewe wrote relates to providing input via anInputHandle, and what the differences betweenInputHandleoutside of a dataflow (the one with.time()) and the(Frontiered)InputHandlewithin operator closures (the one with.frontier()andfor_each()) are. Maybe a short summary / glossary / comparison of concepts at the end of Chapter 3 could make this clearer? - Lastly, I think it might be confusing that (as far as I saw) it's nowhere mentioned that timely cleans up when dataflows go out of scope. That way, especially when writing small programs, you'll always see some output, even when you never advanced time or called
worker.step(). I've addeduse std::io::stdin; stdin().read_line(&mut String::new()).unwrap();at the end of theexecuteclosure to make sure nothing is cleaned up without me interrupting the program so that I can better observe my changes
Best, Malte
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the mdBook chapters covering Rust 2018 examples, iteration, scopes, and input and time concepts. Review the examples and explanations against the reported mismatches and missing connections. Done means the documentation consistently matches its code and clearly explains the listed concepts, including cleanup when dataflows go out of scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100