On Mon, Feb 01, 2016 at 02:38:03AM -0500, James Gere wrote: > Now perplexed. "see get-stack" gives: > > : get-stack > noop swap @ noop >r cells bounds swap > ?do i @ noop <cell> > -loop > r> ; > > . recognizer.fs source gives: > > : get-stack ( rec-addr -- xt1 .. xtn n ) > dup swap @ dup >r cells bounds swap ?DO > I @ > cell -LOOP r> ; > > . I realize "see" can't always keep up with "c," and recognize > that the cached tos needn't be dup'ed, but where does the last noop come > from? (They all optimize out.)
The decompiler is currently not so great when dealing with the code produced by gforth-fast, and lots of code is decompiled as noop, even though it is not a noop; e.g., the last "noop" is really a "lit@". I guess I should do something about this. > Is the "nonce" swap, in the source, there to trigger this behavior, > or just > an oversight? My guess is that it is just an oversight, but I did not write it. - anton