From 020a9c8b4089b04d3daf353e213a0a9892edc6c1 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Tue, 9 Jun 2015 00:21:24 +0100 Subject: [PATCH] follow up: optimization partially restored --- doc/bugs/template_creation_error.mdwn | 9 ++++++++- doc/bugs/wrong_rendering_of_templatebody.mdwn | 6 +++--- doc/templates/discussion.mdwn | 5 ++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/doc/bugs/template_creation_error.mdwn b/doc/bugs/template_creation_error.mdwn index 81b8a5c58..9d6915b09 100644 --- a/doc/bugs/template_creation_error.mdwn +++ b/doc/bugs/template_creation_error.mdwn @@ -239,7 +239,9 @@ same logic as IkiWiki itself. I don't think that's serious. --[[smcv]] >>>> during the render phase, namely when a page that is rendered >>>> due to dependencies uses a template that no other page being >>>> rendered in this pass was using. I've reverted this optimization, ->>>> to fix [[wrong rendering of templatebody]]. --[[smcv]] +>>>> to fix [[wrong rendering of templatebody]], and applied a more +>>>> limited version which only optimizes rebuilds (the worst case +>>>> of this memory consumption). --[[smcv]] >>> >>> `%scanned` is likely to be no larger than `%rendered`, which >>> we already track, and whose useful lifetime does not overlap @@ -270,6 +272,11 @@ same logic as IkiWiki itself. I don't think that's serious. --[[smcv]] >>>> decide whether to scan the template page, but would be generally more >>>> robust for future plugin writing. >>>> +>>>>> At the moment templatebody really does need to re-scan templates in +>>>>> the render phase, unfortunately. Not scanning in the render phase +>>>>> seems to be precisely how [[wrong rendering of templatebody]] +>>>>> happened. --s +>>>> >>>> **addendum**: if the new phase state is used to create warnings/errors >>>> about improper ikiwiki api use of plugins (which is something i'd >>>> advocate), that should likewise warn if `add_link` actually adds a link in diff --git a/doc/bugs/wrong_rendering_of_templatebody.mdwn b/doc/bugs/wrong_rendering_of_templatebody.mdwn index 93a687ab8..1a9377b68 100644 --- a/doc/bugs/wrong_rendering_of_templatebody.mdwn +++ b/doc/bugs/wrong_rendering_of_templatebody.mdwn @@ -21,9 +21,9 @@ description) and ignores the body itself (which is inside \[[!templatebody]]). > With a hint from [[kjs]] on [[templates/discussion]], I was able to reproduce > this bug. It seems to have been caused by an optimization: please try applying > [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2) -> to your Render.pm. I'll try to work out a way to have the optimization -> without the correctness impact, but for now, reverting the optimization, -> which I have [[done]], seems like the way forward. --[[smcv]] +> to your Render.pm. A follow-up commit partially brings back the optimization +> (only for rebuilds). So I think this is [[done]]? (remove that link if +> not) --[[smcv]] When I manually re-generate the wiki, it suddenly renders right. As soon as the page gets rebuilt automatically after some git push, it renders the wrong way. diff --git a/doc/templates/discussion.mdwn b/doc/templates/discussion.mdwn index 612cced44..bf262ee20 100644 --- a/doc/templates/discussion.mdwn +++ b/doc/templates/discussion.mdwn @@ -59,6 +59,5 @@ album and img plugins. --[[kjs]] >> Thanks, that was the hint I needed to be able to reproduce this bug. It seems >> to have been caused by an optimization: please try applying >> [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2) ->> to your Render.pm. I'll try to work out a way to have the optimization ->> without the correctness impact, but for now, reverting the optimization ->> seems like the way forward. --s +>> to your Render.pm. A follow-up commit partially restores the optimization, +>> only for rebuilds. --[[smcv]]