Jamie Heilman wrote:
Why make the unlucky user pay the price?
Because the unlucky user (which I read as: author) is the only one who knows the required behavior of their code.
Allow me to clarify -- I meant the end user browsing the website. I hate it when I surf to a less-highly-used portion of a website and have to wait 30 seconds for the page to render. Anyway, after talking this over with my colleague, I realize that the problem of *deriving* dependencies is fundamentally undecidable. We might be able to figure it out in the case of simple acquisition, like <span tal:replace="here/aObject/aMethod"/> But it is hopeless for pure python: <span tal:replace="python:I-can-do-anything-and-you-cant-stop-me(REQUEST)"/> :) One possibility is to add the ability to *declare* dependencies. I thought of doing that for an X-path aware "XML Composite Document" object. It is an object that produces a valid XML document by grabbing parts of other Zope objects via XPath/XPointer/XInclude. Such an object could have an explicit listing of the objects on which it depends, and invalidate the cache appropriately whenever any of the dependent objects changed. http://www.zope.org/Members/faassen/SimpleCache Is a nice beginning along these lines. Thoughts? --Craeg