Skip to content

Fennel cache poisoning during hot-reload

Where

assets/lua/ — Fennel compiler cache

Problem

When modules were hot-reloaded, the compiled Fennel bytecode cache held stale versions. Code changes on disk were invisible at runtime because the cache returned the old compiled form. This meant hot-reload appeared to succeed (no errors) but actually ran the old code.

Why it matters

Hot-reload is useless if the old code keeps running. During the June 2026 Windows cross-compile sprint, this was compounded by path separator issues (cached paths used / but Windows paths used \, causing cache misses that silently loaded old code).

Plan

Fixed in June 2026: fix(fennel-cache): clear compiled Fennel caches during hot-reload and module unload. The hot-reload sequence now explicitly clears the Fennel compiler cache before loading new code. Per-module cache keys were also hardened to handle both path separators.