On 2013/12/21 21:29:13, Devon Schudy wrote:
dak wrote:
Doing start_translation_timestep in mid-timestep is unclean, though, and may confuse translators that expect it to be called at the beginning.
How would they know the difference? There is nothing sent to an implicit context before it is created. If it did not miss any piece of the action, where is the problem?
It passes the tests, but I wouldn't be surprised if it introduces bugs. I don't think it's an improvement.
I don't see how we could do anything better.
Some possibilities to make iteration more maintainable: * Call start/stop_translation_timestep directly from run_iterator_on_me, not through translators. Remove the Prepare and OneTimeStep events.
Part of the reason to use events for about anything is the ability to _record_ them and reply them, like the quote iterator does.
* Create contexts in advance by calling create_children before each
timestep.
* Warn when contexts are created in mid-timestep. * Figure out other context invariants and write them down.
I think I find the "start_translation_timestep will occur before process_music" invariant pretty important, even if it is reduced to "start_translation_timestep will occur before my own and any subcontext's process_music", and not making a guarantee about _higher_ contexts process_music timing. https://codereview.appspot.com/42600043/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel