|
From: | Chip Seraphine |
Subject: | Re: Executing a file only on later passes |
Date: | Mon, 03 Nov 2003 11:55:22 -0600 |
User-agent: | Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.2.1) Gecko/20030121 |
Mark.Burgess@iu.hio.no wrote:
It is possible to prove that the most rudimentary dependency can always be solved in a convergent manner in 2 iterations, so time is spent trying to resolve suvh things so that any "unsafe" states can be eliminated over long times.
OK. It does cause things to sometimes (rarely) be executed in an unexpected order, however. Life might be made easier if we made this a bit more user-accessible; for example, define a 'laterpass' class (or something similar) after the first pass is done. This would aid in debugging (add a !laterpass condition and see if the problem persists and the like) and allow for some clever hacks.
This is only an issue for me rarely, but when it happens it can be rather trying as this is something that is difficult to play with. (And, as this discussion shows, most of us understand it only poorly.)
The second pass is only executed by cfengine if there is a possiblity that it might be required. (That is not practical to evaluate exactly)
Was not aware of that. I'd like to learn more about that, since it seems that arranging my cf files in such a way as to discourage the second pass might be a path to optimization.
Nothing will be executed twice, so I cannot understand how this "clutters"things.
Can't speak for John, but the only clutter I've experienced has been some occasional suprises when things happen at a time I did not expect. I can generally find a workaround, but sometimes the workaround is a tad ugly (find out what is executing in the later pass, have that something define a class, make that class a prerequisite of later actions) and runs counterintuitive to what the actionsequence would seem to indicate is going on.
This isn't a major problem, but it can be frustrating. No doubt this frustration is exacerbated by a lack of grokking on my own part.
M
[Prev in Thread] | Current Thread | [Next in Thread] |