34 lines
1.6 KiB
TeX
34 lines
1.6 KiB
TeX
%% SCRAP: archive/quality/phase-tracking/phase-2a-session-summary
|
|
%% SOURCE: docs/working/archive/quality/phase-tracking/phase-2a-session-summary.md
|
|
%% STATUS: HISTORICAL
|
|
%% FITS: none
|
|
%% EDITORIAL: lifted — prose rewritten to press voice
|
|
|
|
\section*{Phase~2a Session Summary: Linear Decay and Freeze Flag (November 2025)}
|
|
|
|
Phase~2a of the StarForth physics engine implementation was completed in a
|
|
single session on 2025-11-07, delivering two production features under commit
|
|
\texttt{3e87fd4b}.
|
|
|
|
\textbf{Freeze Flag (\texttt{WORD\_FROZEN}).}
|
|
A new dictionary entry flag (bit~0x04) prevents execution heat from decaying,
|
|
enabling system-critical words (\texttt{DUP}, \texttt{DROP}, \texttt{SWAP},
|
|
and eighteen others frozen by \texttt{FREEZE-CRITICAL}) to remain in the
|
|
hotwords cache across OS context switches. The flag operates independently of
|
|
the existing \texttt{WORD\_PINNED} flag.
|
|
|
|
\textbf{Linear Decay Mechanism.}
|
|
The heat decay model $H(t) = \max(0, H_0 - d \cdot t)$ was selected over an
|
|
exponential half-life model on three grounds: integer-only arithmetic (no
|
|
floating-point overhead), deterministic bounded convergence, and compatibility
|
|
with Isabelle/HOL formal verification. Decay is applied lazily at word-lookup
|
|
time, adding fewer than 5~nanoseconds of overhead per execution.
|
|
|
|
\textbf{FORTH Interface.}
|
|
Nine control words were added: \texttt{FREEZE-WORD}, \texttt{UNFREEZE-WORD},
|
|
\texttt{FROZEN?}, \texttt{HEAT!}, \texttt{HEAT@}, \texttt{SHOW-HEAT},
|
|
\texttt{ALL-HEATS}, \texttt{DECAY-RATE@}, and \texttt{FREEZE-CRITICAL}.
|
|
|
|
The implementation modified eleven files and added 2{,}236 lines (less 23
|
|
deletions). All 782 tests passed; zero compiler warnings were produced.
|