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/
signature.asc
Description: This is a digitally signed message part.
