Revert HEARTBEAT-TICKS@ to vm->heartbeat.tick_count; FABRIC-2.md Section R:
find and fix the real ACL-TTL measurement bug (zuse session never authenticated, ACL enforcement never active) Two mistakes corrected in sequence, both documented in full in FABRIC-2.md Section R: 1. HEARTBEAT-TICKS@ was swapped to read heartbeat_ticks() -- a newer, kernel-only ISR hardware-timer counter (src/starkernel/heartbeat.c, the M5 TIME-TRUST engine) -- based on a misreading of which counter "the one clock" law refers to. Reverted to vm->heartbeat.tick_count, Loop #7 "Adaptive Heartrate", the actual year-plus-old counter the whole physics runtime is built on. Removed the now-irrelevant HEARTBEAT-PERIOD-NS@ accessor added to diagnose the wrong counter's adaptive re-arm period. Three-arch QEMU re-acceptance: POST 1012/0/0 on amd64/aarch64/riscv64, HEARTBEAT-TICKS@ confirmed returning 77 (matching the original pre-heartbeat_ticks() acceptance) on all three. 2. The real bug, found after the revert: every "ACL enabled" measurement in this investigation (Section P's 18-cell campaign, Section Q's pilot) loaded ACL.4th and ran EXEC-DOE from the bare `ok>` prompt without ever authenticating a zuse session. repl.c:303 keeps emergency_console=1 until zuse_session=1; vm_core.c:755 skips the entire ACL check block (TTL decrement and acl_recheck()) whenever emergency_console is set. ACL was configured but never armed. capsules/zuse.4th's pre-existing self-pin bug means the documented automatic zuse activation doesn't work either (still flagged, not fixed) -- worked around by invoking the directly-registered ZUSE-AUTHENTICATE word explicitly. Validated pilot (amd64, seed 12345, 30 reps, same build, disabled vs. genuinely zuse-authenticated-enabled): +117 ticks, +0.0448% overhead. Disabled-arm determinism double-confirmed (261064 ticks, exact repeat on a fresh boot) -- the 117-tick difference is real signal, not noise. Reconciles with the original ACL-RWT campaign's own heartbeat-tick result (+0.0054%-0.0088%, same order of magnitude). Section P's wall-clock numbers and Section Q's "instrument blind" conclusion are both marked invalidated/corrected in place, not deleted. n=1 per arm, one architecture -- not yet a full campaign. Scoped as next step, not undertaken in this pass. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
4076a01c35
commit
70c259dad0
@@ -47,7 +47,6 @@
|
||||
#include "../../include/vm.h"
|
||||
#ifdef __STARKERNEL__
|
||||
#include "starkernel/vm/arena.h"
|
||||
#include "starkernel/timer.h"
|
||||
#endif
|
||||
#include "include/vocabulary_words.h"
|
||||
#include "../../include/version.h"
|
||||
@@ -798,23 +797,14 @@ static void starforth_word_zuse_authenticate(VM *vm)
|
||||
* @brief Read-only accessor for the canonical heartbeat tick counter
|
||||
*
|
||||
* Stack effect: ( -- n )
|
||||
* On the kernel build, pushes heartbeat_ticks() -- the ISR-driven hardware
|
||||
* timer tick count (src/starkernel/heartbeat.c), the one real clock in this
|
||||
* project. NOT vm->heartbeat.tick_count, which is a FORTH colon-word-dispatch
|
||||
* counter gated at a fixed cadence -- frozen during idle time and blind to
|
||||
* any cost that doesn't change control flow (see FABRIC-2.md Section Q).
|
||||
* On the hosted build (no ISR timer), falls back to vm->heartbeat.tick_count
|
||||
* since that's the only tick source available there.
|
||||
* Read-only: no corresponding store word exists or should exist.
|
||||
* Pushes vm->heartbeat.tick_count -- Loop #7 "Adaptive Heartrate", the one
|
||||
* clock this project's timing measurements are supposed to read, not host
|
||||
* wall-clock. Read-only: no corresponding store word exists or should exist.
|
||||
* @param vm Pointer to the VM instance
|
||||
*/
|
||||
static void starforth_word_heartbeat_ticks(VM* vm)
|
||||
{
|
||||
#ifdef __STARKERNEL__
|
||||
vm_push(vm, (cell_t)heartbeat_ticks());
|
||||
#else
|
||||
vm_push(vm, (cell_t)vm->heartbeat.tick_count);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user