On Mon, Feb 27, 2006 at 09:46:42AM -0800, Chip Salzenberg wrote:
> On Fri, Feb 24, 2006 at 12:57:24AM +0100, Leopold Toetsch wrote:
> > On Feb 24, 2006, at 0:23, Patrick R. Michaud wrote:
> > >>[...]
> > >I've just committed an update (r11722) that eliminates PGE's
> > >use of save/restore opcodes in the code it generates -- indeed,
> > >PGE no longer has any save or restore opcodes and thus doesn't
> > >need the user stack at all.
> > 
> > That's indeed an (indirect) answer to the 'do we really need it' part ;)
> 
> Is there any other client of the user stack that can't be easily replaced by
> some kind of *Array?  It'd be nice to lop off such a low-value feature.

As Will Coleda mentioned, the only real advantage of the user stack
over an *Array seems to be that each subroutine wanting to manipulate the
stack doesn't have to first look up a global symbol in order to do it.

Intuitively, it would seem that a user stack, with its specialized parrot 
opcodes, ought to be significantly faster than simply using another 
array-ish object as a stack.  It was this sort of (incorrect) thinking 
that led me to use it over an array in the first place.  Since that
is apparently not the case, I don't see any real use for keeping the
user stack.

(In PGE's case, using an array instead of the userstack is also
superior for a number of other reasons, mostly having to do with
being able to manipulate large parts of the stack in a single
operation.)

Pm

Reply via email to