Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stageless: a complete scheduling overhaul #45

Merged
merged 322 commits into from
Sep 19, 2022
Merged
Changes from 22 commits
Commits
Show all changes
322 commits
Select commit Hold shift + click to select a range
d49ec9e
Further emphasize that flushing constraints are just asserts
alice-i-cecile Jan 16, 2022
15dfcf1
More discussion of changes to state transition timing
alice-i-cecile Jan 16, 2022
22b2213
Clean up explanation of system configuration
alice-i-cecile Jan 16, 2022
b8dfc94
Minor cleanup
alice-i-cecile Jan 16, 2022
1fd9bf6
.in_state(State::Variant) -> .run_in_state(State::Variant)
alice-i-cecile Jan 16, 2022
0dbd487
Commands are not automatically flushed between transitions
alice-i-cecile Jan 16, 2022
541c523
Emphasise unordered nature of Schedule
alice-i-cecile Jan 16, 2022
3f55be5
Store cached ordering constraints on the Schedule
alice-i-cecile Jan 16, 2022
fa335b6
Basic mechanics of if-needed ordering constraints
alice-i-cecile Jan 16, 2022
5517a8a
Revert RawSystem name back to System
alice-i-cecile Jan 16, 2022
a67e1f8
Clarified distinction on types of access
alice-i-cecile Jan 16, 2022
8ed385c
Clarify how Schedules have changed
alice-i-cecile Jan 16, 2022
e9090d7
Labels can be labeled
alice-i-cecile Jan 16, 2022
f39dede
Atomic system groups
alice-i-cecile Jan 16, 2022
9546917
Notes on the transitivity of if-needed ordering
alice-i-cecile Jan 17, 2022
22e3825
Typo fix
alice-i-cecile Jan 17, 2022
fe9c875
Typo fix
alice-i-cecile Jan 17, 2022
3ddd115
Spelling and formatting nits
alice-i-cecile Jan 17, 2022
411e926
Basic tools for working with schedules
alice-i-cecile Jan 17, 2022
7e5c221
If-needed ordering constraints are transitive
alice-i-cecile Jan 17, 2022
c3b72ac
Configure checking of spurious ordering constraints
alice-i-cecile Jan 17, 2022
f946e56
Example for controlling command flushing
alice-i-cecile Jan 17, 2022
7924710
Add system chain example
alice-i-cecile Jan 17, 2022
7faf8c7
Clean up command flushing section
alice-i-cecile Jan 17, 2022
7ba09ab
Migrate meta discussion to PR description
alice-i-cecile Jan 17, 2022
d134fa8
Run criteria are not quite systems; atomicity rule fixes
alice-i-cecile Jan 17, 2022
fafdf93
change detection is still the same
maniwani Jan 18, 2022
2ccf1a4
fix typos + correctness
maniwani Jan 18, 2022
1f0419c
Added section on change detection
alice-i-cecile Jan 18, 2022
b740e9a
Rename on-update systems of States to while-active
alice-i-cecile Jan 19, 2022
aa658bf
Polish per @maniwani's feedback
alice-i-cecile Jan 19, 2022
4f7faf5
Properly bury system sets
alice-i-cecile Jan 19, 2022
2b0b509
Increase clarity of graph-building algorithm
alice-i-cecile Jan 19, 2022
a71ea35
Add WrongShoe's concerns about entanglement to drawbacks
alice-i-cecile Jan 19, 2022
9b8eb13
Future work cleanup
alice-i-cecile Jan 19, 2022
1301352
Swap to a ScheduleCommands design for mutating Schedules
alice-i-cecile Jan 19, 2022
456b462
Add generalization of "per-level schedules" example to future work
alice-i-cecile Jan 19, 2022
f0fe8a3
Swap system group syntax to (system, system) from [system, system])
alice-i-cecile Jan 19, 2022
f738626
Clarify distinction between trivial and system-like run criteria
alice-i-cecile Jan 19, 2022
095d573
Typo fix
alice-i-cecile Jan 19, 2022
4132e9f
Show how queries can be used in run criteria
alice-i-cecile Jan 19, 2022
fa7eb41
Smarter task management for run criteria
alice-i-cecile Jan 19, 2022
624b6a1
Fix heading level
alice-i-cecile Jan 19, 2022
c8be61b
Managing command flushing with `DefaultPlugins`
alice-i-cecile Jan 19, 2022
81869a0
Use system-builder syntax for system chaining
alice-i-cecile Jan 19, 2022
0f59213
Typo fix
alice-i-cecile Jan 19, 2022
42d0326
Clarify system group syntax conclusions
alice-i-cecile Jan 20, 2022
930aaf9
Clarify purpose of `before_and_flush` constraints
alice-i-cecile Jan 20, 2022
807bc97
Added schedule debugging tooling to Future Work
alice-i-cecile Jan 20, 2022
093d050
Improved method names for working with multiple schedules
alice-i-cecile Jan 20, 2022
3b17f10
Typo fix
alice-i-cecile Jan 20, 2022
a00d41d
Commit to timing for ScheduleCommands
alice-i-cecile Jan 20, 2022
a6ae35c
Mention rendering schedule
alice-i-cecile Jan 20, 2022
dc65207
Clarified multiple schedules blurb
alice-i-cecile Jan 20, 2022
dcf4e7b
Removed redundant explanation
alice-i-cecile Jan 20, 2022
a1a0670
Fix broken sentence
alice-i-cecile Jan 20, 2022
982ad5c
Remove dangerous flushed-chain API for now
alice-i-cecile Jan 20, 2022
3b5d234
Clarify timer run criteria example
alice-i-cecile Jan 20, 2022
c64a197
Simplify run criteria execution model
alice-i-cecile Jan 20, 2022
00267fa
Re-rename system chaining / handling to system piping
alice-i-cecile Jan 20, 2022
2101cd7
Remove atomic groups from this RFC
alice-i-cecile Jan 20, 2022
4e4860a
Improved precision of run criteria algorithm
alice-i-cecile Jan 20, 2022
7a02de2
Remove if-needed ordering from the RFC
alice-i-cecile Jan 20, 2022
4cd4f9a
Move change detection to Implementation Strategy
alice-i-cecile Jan 20, 2022
7b8cd4c
Fix up implementation plan to reflect changes
alice-i-cecile Jan 20, 2022
462aff8
Labels cannot be labeled
alice-i-cecile Jan 20, 2022
21719ac
RFC link fixes
alice-i-cecile Feb 6, 2022
6b3e398
Cut system merging / splitting and rendering schedule
alice-i-cecile Feb 7, 2022
15f21f9
Extend list of open questions
alice-i-cecile Feb 7, 2022
4af1d4d
Move schedule commands to Future Work
alice-i-cecile Feb 7, 2022
5de7268
Change ticks must always be updated
alice-i-cecile Feb 7, 2022
1727081
Refined stances on run criteria limitations
alice-i-cecile Feb 7, 2022
41b9b9d
Remove comment about entanglement
alice-i-cecile Feb 7, 2022
dbff92f
update notes about run criteria and labeling labels
maniwani Mar 5, 2022
e15ef56
quick typo fixes
maniwani Mar 5, 2022
6c642d3
Remove dead API
alice-i-cecile Mar 5, 2022
1b79568
update notes about run criteria, labeling labels, and change detection
alice-i-cecile Mar 7, 2022
88c41e8
Fix typo
alice-i-cecile Apr 27, 2022
cb00de4
Simplified schedule storage
alice-i-cecile May 2, 2022
52163de
DefaultSchedule -> CoreSchedule
alice-i-cecile May 2, 2022
cb53112
Resolve merge conflicts
alice-i-cecile May 2, 2022
1ca21e0
Dynamically modifiable schedules yeet
alice-i-cecile May 2, 2022
b01cf49
Label -> Set reframing
alice-i-cecile May 2, 2022
1952cb3
Yeet section on ambiguity tools
alice-i-cecile May 2, 2022
c737168
Multiple worlds are not particularly related
alice-i-cecile May 2, 2022
575831b
Cleanup flow to reflect accumulated changes
alice-i-cecile May 2, 2022
56ab625
Clean up rationale, drawback, questions and future work
alice-i-cecile May 2, 2022
f46f5a8
Wording fixes from @NiklasEi
alice-i-cecile May 2, 2022
04ff5f5
.label -> .to -> .in_set
alice-i-cecile May 2, 2022
a5119fe
Yeet command-flushed ordering constraints
alice-i-cecile May 2, 2022
f86d146
Clarify ordering against empty set
alice-i-cecile May 2, 2022
185de71
Typo fix
alice-i-cecile May 2, 2022
73c1162
Update unresolved questions
alice-i-cecile May 2, 2022
3ceb524
Run criteria syntax updates
alice-i-cecile May 2, 2022
d4bd78d
Share run criteria
alice-i-cecile May 2, 2022
fda55d1
Update executor logic
alice-i-cecile May 2, 2022
8a0127e
Update state syntax
alice-i-cecile May 2, 2022
fd8067d
Typo fix from Indy2222
alice-i-cecile May 3, 2022
167b73b
Typo fix
alice-i-cecile May 3, 2022
67fef89
Remove outdated comment about how run criteria work
alice-i-cecile May 3, 2022
8bc46e3
Revised summary
alice-i-cecile May 3, 2022
f405b68
Fix consruction timer example
alice-i-cecile May 3, 2022
558d451
add_set -> configure_set per @NiklasEi
alice-i-cecile May 3, 2022
38a5971
Apply fix from @TimJentzsch to timer example
alice-i-cecile May 3, 2022
d417f3a
Apply suggestions from code review
alice-i-cecile May 4, 2022
ef353bc
Typo
alice-i-cecile May 5, 2022
4eff758
Yeet yoten
alice-i-cecile May 18, 2022
e5965b9
update to more closely match schedule v3 PR
maniwani May 20, 2022
bf03f87
Cosmetic fixes
alice-i-cecile May 20, 2022
2dbc929
Clarifying notes about run conditions
alice-i-cecile May 20, 2022
78c7eba
Add note on increased compile times for system tuples approach
alice-i-cecile May 20, 2022
1507eed
change macro back to systems!
maniwani May 20, 2022
120f531
Update RFC to more closely match schedule v3 PR
alice-i-cecile May 20, 2022
4420bc1
i.e. to e.g.
hymm Jun 21, 2022
ecc057e
grammar
hymm Jun 21, 2022
712136a
remove terms not used in user facing explanation
Jun 21, 2022
a5ab807
add sentence for when you should add an apply_buffers
Jun 21, 2022
9bb4278
remove extra comment
Jun 21, 2022
9fdea7e
move option 2 for apply buffers into future work
Jun 21, 2022
6b23967
any -> all
Jun 21, 2022
85f4ea3
Typo fix
alice-i-cecile Jun 21, 2022
859d987
Clarity
alice-i-cecile Jun 21, 2022
1482f58
Merge pull request #6 from hymm/revisions-june-20
alice-i-cecile Jun 21, 2022
1488d85
Completed and evaluated are distinct
alice-i-cecile Jun 22, 2022
a20b62e
clarify scheduling errors section
hymm Jun 22, 2022
075fc21
more edits for clarity
hymm Jun 30, 2022
fc9a71a
Cleanup (5)
hymm Jun 30, 2022
948b980
cleanup (4)
hymm Jun 30, 2022
05b91d6
cleanup (7)
hymm Jun 30, 2022
ef818af
add example of an invalid hierarchy
hymm Jun 30, 2022
0faf949
grammer
hymm Jun 30, 2022
9faaae7
Merge pull request #7 from hymm/clarify-scheduling-errors
alice-i-cecile Jun 30, 2022
2833d6b
Wording improvement
alice-i-cecile Jun 30, 2022
1c2151b
"proofreading"
maniwani Aug 10, 2022
8b374fc
fix links
maniwani Aug 10, 2022
4b6ee22
typo, nit, links
maniwani Aug 10, 2022
5947241
typo, nit
maniwani Aug 10, 2022
ce86201
typo
maniwani Aug 10, 2022
98fd799
wording
maniwani Aug 10, 2022
a392312
don't call conditions "systems"
maniwani Aug 10, 2022
f049024
nits
maniwani Aug 10, 2022
314f70c
a word
maniwani Aug 10, 2022
4d31955
more wording
maniwani Aug 10, 2022
db66044
typo
maniwani Aug 10, 2022
4c3e247
nit
maniwani Aug 10, 2022
ecae2a1
wording
maniwani Aug 10, 2022
51c0ffa
more wording
maniwani Aug 10, 2022
79d6e5a
still more wording
maniwani Aug 10, 2022
4798b68
words
maniwani Aug 10, 2022
0e9e658
its not their
maniwani Aug 10, 2022
fd92616
again
maniwani Aug 10, 2022
5ad2ecb
that
maniwani Aug 10, 2022
9fe73b6
nit
maniwani Aug 10, 2022
8151ee1
don't call conditions systems pt3
maniwani Aug 10, 2022
fbbd2cd
let mut
maniwani Aug 10, 2022
04bf739
nit
maniwani Aug 10, 2022
3582114
typo
maniwani Aug 10, 2022
1ff1be9
clarity
maniwani Aug 10, 2022
4c336ba
and plugin
maniwani Aug 10, 2022
17e03cf
typo
maniwani Aug 10, 2022
f5c4c59
common
maniwani Aug 10, 2022
f015e76
new question
maniwani Aug 10, 2022
3eba3ee
summary
maniwani Aug 10, 2022
bcc71dc
wording
maniwani Aug 10, 2022
fdd9e8a
hyphens
maniwani Aug 10, 2022
9890352
nit
maniwani Aug 10, 2022
dbecc9e
one more
maniwani Aug 10, 2022
e6781ca
don't say lock
maniwani Aug 10, 2022
fad8992
wording
maniwani Aug 10, 2022
2520326
mention `bevy_rapier` putting our ideas into practice
maniwani Aug 10, 2022
9c41fcc
small correction
maniwani Aug 10, 2022
a134262
Apply suggestions from code review
maniwani Aug 10, 2022
da3a7b9
complete sentences
maniwani Aug 10, 2022
e93846d
make example more consistent
maniwani Aug 10, 2022
d73f8a7
fix weird formatting that popped up
maniwani Aug 10, 2022
4929a63
remove the one string label
maniwani Aug 10, 2022
5379674
point link to comment directly
maniwani Aug 10, 2022
a8dd8fd
nits
maniwani Aug 11, 2022
3470b16
change list order
maniwani Aug 11, 2022
e6f97c9
link
maniwani Aug 11, 2022
a1ba5cb
nits
maniwani Aug 11, 2022
598d203
their -> these
maniwani Aug 11, 2022
648f196
reword to clarify set and schedule relationship
maniwani Aug 11, 2022
93e8257
grammar
maniwani Aug 11, 2022
19eb189
Apply suggestions from code review
maniwani Aug 11, 2022
62e7b7e
use "you" consistently
maniwani Aug 11, 2022
358974f
wording
maniwani Aug 11, 2022
c0ec01f
nit in last commit
maniwani Aug 11, 2022
8313238
Merge pull request #8 from maniwani/stageless
maniwani Aug 11, 2022
51e2194
wording
maniwani Aug 13, 2022
227933e
signaled
maniwani Aug 13, 2022
5458f18
add hard-hitting questions to rationale
maniwani Aug 13, 2022
d814f43
Wording fixes
alice-i-cecile Aug 15, 2022
63db02b
Wording fixes
alice-i-cecile Aug 15, 2022
61c8847
Remove unhelpful code block
alice-i-cecile Aug 15, 2022
1177376
Simple clarity pass
alice-i-cecile Aug 15, 2022
16cc138
there are no run criteria, just conditions
maniwani Aug 15, 2022
32b5d70
correction
maniwani Aug 15, 2022
580d74c
Line break
alice-i-cecile Aug 16, 2022
d9a4553
fix line breaks
maniwani Aug 17, 2022
28923b9
missed one line break
maniwani Aug 17, 2022
2817b47
make examples used scoped method
maniwani Aug 17, 2022
5612f06
re-add reference to prototype PR
maniwani Aug 17, 2022
15f6e8f
clarify difference between sets and labels
maniwani Aug 17, 2022
8a9de5e
fix typo
maniwani Aug 17, 2022
79a3d52
add comment explaining `named`
maniwani Aug 17, 2022
3ae2308
fix typo: executor should be graph checker
maniwani Aug 17, 2022
b537277
Typo fix
alice-i-cecile Aug 24, 2022
0f37655
Linting
alice-i-cecile Sep 7, 2022
89fe5ff
Clarify migration strategy
alice-i-cecile Sep 7, 2022
656591a
FixedTimestep example
alice-i-cecile Sep 7, 2022
e6c827b
SystemLabel -> SetLabel
alice-i-cecile Sep 7, 2022
565adb2
Revert "SystemLabel -> SetLabel"
alice-i-cecile Sep 7, 2022
59df392
Move Migration Strategy out of Unresolved Questions
alice-i-cecile Sep 7, 2022
2b21b56
add_set -> configure_set plus justification
alice-i-cecile Sep 7, 2022
66850ed
Clarify system ownership model
alice-i-cecile Sep 7, 2022
4627d02
Add OnUpdate system sets for states
alice-i-cecile Sep 7, 2022
0a94fa2
OnUpdate(X) does exist
alice-i-cecile Sep 8, 2022
1ac7bfe
Condense rationale about schedule config
alice-i-cecile Sep 8, 2022
bc1f620
Discuss interaction between system ordering and automatic type labels
alice-i-cecile Sep 8, 2022
fa0848b
reword newly-added rationale
maniwani Sep 8, 2022
d10c5a6
`named` not `label`
maniwani Sep 8, 2022
340c94f
more consistent naming in examples
maniwani Sep 8, 2022
825881d
wording
maniwani Sep 8, 2022
d2ada02
Remove refenerces to Systems in favor of Schedules
alice-i-cecile Sep 14, 2022
bc3eec7
State transitions use schedules, not system sets
alice-i-cecile Sep 14, 2022
0c7b849
some nits
maniwani Sep 14, 2022
c63409b
Yeet "run systems within a schedule"
alice-i-cecile Sep 15, 2022
26c17a6
Organize section on Future Work
alice-i-cecile Sep 15, 2022
ebad20c
Clarify archetypes changing between systems
alice-i-cecile Sep 15, 2022
13a63f0
Clarify all of the things App::add_state does
alice-i-cecile Sep 15, 2022
560b1f1
Use automatic private labels when system chaining
alice-i-cecile Sep 15, 2022
0b1420f
wording
maniwani Sep 15, 2022
9381b01
formatting
maniwani Sep 15, 2022
c10d9c7
Yeet schedule_scope
alice-i-cecile Sep 15, 2022
6ba9954
Rephrase exclusive system warning
cart Sep 16, 2022
2402663
System Sets: the one way to name, group, and order systems
cart Sep 16, 2022
df2f277
Remove the ability to configure system sets in SystemCollections
cart Sep 19, 2022
f283787
Remove configured_with in favor of set membership
cart Sep 19, 2022
5635474
Remove general set-locking in favor of internal validation for System…
cart Sep 19, 2022
92bd7d1
Prefer system tuples instead of macros
cart Sep 17, 2022
5a0351f
in_schedule -> add_systems_to
cart Sep 17, 2022
0b11cea
add_systems everywhere, aggressively merge calls
cart Sep 17, 2022
47b900e
Nested tuples: how far is too far?
cart Sep 17, 2022
41e96ae
Re-add add_system
cart Sep 19, 2022
e2c4420
Code typo
alice-i-cecile Sep 19, 2022
9a86590
Newlines for each sentence
cart Sep 19, 2022
825e31d
Remove outdated comment
alice-i-cecile Sep 19, 2022
cf96eb8
Merge pull request #9 from cart/system-sets-everywhere
alice-i-cecile Sep 19, 2022
d12e5c1
Merge pull request #10 from cart/prefer-macroless
alice-i-cecile Sep 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading