feat(v4.0.0): the host node's stacks are 32 deep (D-17)
With the stacks counted and guarded (D-16) their size is a parameter of the node. The host node, which runs the interpreter and the compiler under the user's programme, gets 32 values and 32 return entries; a mesh node keeps the F18's 10 and 9. Nothing else about the mechanism or any word's definition changes. - stack.h: V4_DATA_RING and V4_RET_RING are build parameters; the Makefile sets them for the host-node tests. - tests/test_host_quit.c no longer assumes a size: it fills the stacks to whatever they are, and takes every exit with the return stack full. - Measured on the host node now: 28 values on a line, 29 waiting between lines, words 31 deep from the prompt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
0da7e32a0b
commit
ebffa6082d
+1
-1
@@ -38,7 +38,7 @@
|
||||
#define CGVARS (TOP - 48) /* (CG): codegen.v4, 14 cells */
|
||||
#define CVARS (TOP - 62) /* (C): compile.v4, 10 cells */
|
||||
#define FVARS (TOP - 105) /* (F): forth.v4, 7 cells */
|
||||
#define SVARS (TOP - 180) /* (S): where PICK and ROLL set stack values aside, 10 cells */
|
||||
#define SVARS (TOP - 540 - (v4_cell)V4_DATA_DEPTH) /* (S): where PICK and ROLL set stack values aside, one cell for each cell of the stack */
|
||||
#define QVARS (TOP - 52) /* (Q): quit.v4, 2 cells */
|
||||
|
||||
/* buffers (word addresses; a byte address is four times this) */
|
||||
|
||||
Reference in New Issue
Block a user