follow up: optimization partially restored

master
Simon McVittie 2015-06-09 00:21:24 +01:00
parent f00ccd0bf6
commit 020a9c8b40
3 changed files with 13 additions and 7 deletions

View File

@ -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 >>>> during the render phase, namely when a page that is rendered
>>>> due to dependencies uses a template that no other page being >>>> due to dependencies uses a template that no other page being
>>>> rendered in this pass was using. I've reverted this optimization, >>>> 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 >>> `%scanned` is likely to be no larger than `%rendered`, which
>>> we already track, and whose useful lifetime does not overlap >>> 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 >>>> decide whether to scan the template page, but would be generally more
>>>> robust for future plugin writing. >>>> 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 >>>> **addendum**: if the new phase state is used to create warnings/errors
>>>> about improper ikiwiki api use of plugins (which is something i'd >>>> 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 >>>> advocate), that should likewise warn if `add_link` actually adds a link in

View File

@ -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 > 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 > 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) > [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 > to your Render.pm. A follow-up commit partially brings back the optimization
> without the correctness impact, but for now, reverting the optimization, > (only for rebuilds). So I think this is [[done]]? (remove that link if
> which I have [[done]], seems like the way forward. --[[smcv]] > not) --[[smcv]]
When I manually re-generate the wiki, it suddenly renders right. As soon as the 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. page gets rebuilt automatically after some git push, it renders the wrong way.

View File

@ -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 >> 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 >> to have been caused by an optimization: please try applying
>> [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2) >> [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 >> to your Render.pm. A follow-up commit partially restores the optimization,
>> without the correctness impact, but for now, reverting the optimization >> only for rebuilds. --[[smcv]]
>> seems like the way forward. --s