Am Sonntag, 13. November 2011, 07:21:17 schrieb Josh Grams:
> OK, I get it now.  There's junk in unALLOTted memory up to a certain
> point; after that it's all zeroes.  So after that point, then if you
> have a wordlist at the end of the dictionary, `head?` thinks it's is
> followed by a header even though it isn't, and then that causes trouble.
> So compiling anything or putting data there or whatever makes it go
> away.  That's not so bad.  Disconcerting though.  Maybe there should be
> a comment on `.voc` -- it took me a while to think to look at `head?`...

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

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to