>Hm, looking at head?, it really looks wrong.  Try replacing it with this:
>
>: head? ( addr -- f )
>\G heuristic check whether addr is a name token; may deliver false
>\G positives; addr must be a valid address
>    dup dup aligned <>
>    if
>       drop false exit \ heads are aligned
>    then
>    name>string dup $1F > if
>       2drop false exit \ realistically the name is short
>    then
>    + cfaligned @ here forthstart within ; \ and the cfa is outside

That does look more straightforward.  But it doesn't eliminate the
problem I was having.   I guess I never gave a good minimal test case.
This should reproduce it for reliably:

        here 32 cells erase  wordlist .voc

Hmm...a zero-length name should always be an invalid header, so I assume
replacing `$1F >` with `$20 1 WITHIN` should be OK?

--Josh

Reply via email to