Transition flow control commands to a more push-down automaton-based implementation
In !5401 (merged), we enforced proper nesting of flow control statements by using a push-down automaton, eliminating a few corner cases that were not detected by the existing implementation. In !5409 (merged), we prohibited the override of these flow control commands. Together, these two merge requests paved the way for us to move away from the current messy implementation of function blockers and command replays. However, we haven't yet changed this implementation in case the new checks break some major project like KDE. If such a break was found, it would be easy to revert the current checks or turn them into a policy to allow projects time to adjust. Changing the implementation would make this impossible.
That being said, I think we should discuss a timeline for changing the implementation. We have not received any complaints about the new checks yet, but I'd like to wait for a version of CMake with these checks to make it into an Ubuntu LTS release (April 2022), plus some amount of time after that as people use the new CMake in Ubuntu. The question is, how much time? I propose one year (April 2023) to start.