Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: quick review of References: NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.forth:28079 On Fri, 24 Jan 2014 05:00:31 -0500, Rod Pemberton wrote: > On Fri, 24 Jan 2014 04:28:46 -0500, Mark Wills > wrote: >> I think the RECURSE with :NONAME issue is fairly easy to work around, >> Rod. >> [...] > > [...] > > I think that would be sufficient. I can't attempt this for a while. > I've got to back out and fix all the other stuff... > Ms. Rather recommends *not* using an additional variable because of the impact and/or insignificance. Can't be done with less impact? E.g., save LAST on stack when entering :NONAME, update LAST to HERE (or appropriate value) for use by RECURSE within :NONAME, then restore LAST from stack when exiting :NONAME. Yes? I decided to check to see where LAST is used in my system in case adding LATESTXT or somesuch would cause problems with other words. In my system, it seems LAST is only used within words that modify a dictionary header, except for RECURSE. That could also imply RECURSE shouldn't be useable with :NONAME. The words where I use LAST are IMMEDIATE SMUDGE DOES> COLD WORDS (CREATE) and some custom words. COLD just sets an initial value for LAST. (CREATE) and DOES> modify the header. IMMEDIATE and SMUDGE sets bits in the header. WORDS uses LAST to find the last entry in the dictionary chain. It doesn't need to find :NONAMEs. So, since :NONAME isn't supposed to have a header, then none of those words should be used with :NONAME. I.e., IMMEDIATE shouldn't be used with :NONAME since it modifies a header. Correct? The question is whether it's legal for a :NONAME definition be marked with IMMEDIATE in Forth? Is that valid? If so, that's more indication that a header is needed for :NONAME. I hope the answer to that is: "No." since that would begin to confuse me on things, again... But, then again, it seems odd to me that I couldn't mark a :NONAME definition as IMMEDIATE. Rod Pemberton