Rhett Aultman wrote: > There is one more problem you need to put in there- under the > current system, there is no mechanism for determining if the > layout instructions in an FO document will produce a document > that cannot exist. At least, there's none I've seen. Most of > the bugs posted regarding infinite loops are caused by the same > thing- the layout is impossible to perform, but FOP does not > detect this and simply continues doing the same thing over and > over again- get a fresh page, try to lay out, get breaks, get a > fresh page... I haven't extensively tried all the infinite loop > bugs on HEAD, but I have tried a few and they continue to have > this problem. This really needs to be addressed from a design > perspective.
Just to be clear, I should point out that there is not a layout that is impossible to perform. The standard allows (and would have to) implementation-specific handling of what they call "over-constrained" requirements. In other words, requirements can be prioritized and allowed to slip when they are contradictory or "impossible". >From a design standpoint, the best ideas I have seen/heard revolve around some scoring system. I think the HZ program, TeX, and Lout all use this approach. To do this, you would need for each break manager to return not just the best break, but a collection of possible breaks with some ranking mechanism. Ideally, somebody at the highest level (page-sequence) decides what is best, based on information that percolates up from the lower levels. This implies to me that we can see the entire page-sequence sub-tree at one time, which may not be true in our SAX event-based model. It seems that the page-sequence would attempt to lay itself out using the "best" breaks that came up from sub-nodes, then adjust if over-constrained, perhaps with the concept of a layout Plan or Proposal. I know it is easier said than done, and may already be done. Please pardon my ignorance of the current design. I would offer it as my $.02 worth, but someone would want a nickel change ($.05). --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]