fix: re-save compiled template to disk when source changes#1
Closed
fix: re-save compiled template to disk when source changes#1
Conversation
When COMPILE_DIR/COMPILE_EXT is configured, the first compile of a template correctly writes the compiled Perl code to disk. However, when the template source file is later modified and _refresh() recompiles it, the call to _compile() was missing the compiled filename argument. This meant the recompiled template was only stored in memory, never persisted to disk. On the next cold start, the stale compiled file would be loaded instead of the updated source, leading to incorrect template output until the compiled file was manually deleted. Fix: pass _compiled_filename() to _compile() in _refresh(), matching the behavior already used in _fetch(). Resolves: abw#98 See also: abw#197 Co-Authored-By: Kōan <noreply@anthropic.com>
Owner
|
merged by abw#334 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
COMPILE_DIR/COMPILE_EXTis configured,_refresh()recompiles templates whose source has changed on disk — but it never persisted the recompiled output back to the compiled file_compiled_filename()to_compile()in_refresh(), matching the pattern already used in_fetch()Analysis of original PR abw#197
The original PR #197 proposed two changes:
_refresh()compiled filename fix — this is the real bug, implemented here_template_modified()in_template_content()— marginal value;_template_contentis inherently file-based (opens$pathdirectly), so overriding just the mtime check without overriding content read is inconsistent. Skipped.Test plan
t/compile6.t— 8 assertions proving the compiled file on disk is updated when source changesResolves: abw#98
See also: abw#197
🤖 Generated by Kōan