[LispM-Hackers] Re: [Lispm-cvs] CVS update: e3

James A. Crippen james@unlambda.com
07 Oct 2001 22:50:44 -0800


jm@kappa.unlambda.com writes:

> Date:	Friday September 21, 2001 @ 7:35
> Author:	jm
> Modified Files:
> 	mainops.cc memobj.cc memobj.h 
> Log Message:
> 
> Finished laying out the stack group array header in
> memStackGroupArrayHeader so that I can find the various stack group
> things like the various PDLs.  I have only written accessor methods,
> not mutator methods yet.  I can now find the initial stack group.
> Most of the things seem to be of the right data type as per SSDN2.
> However, the calling args pointer looks weird.

You're speaking of

  e->myCurrentStackGroup = e004405d = e004405d = CDR_CODE=NEXT [...]
    Name                 0678c67c = CDR_CODE=NORMAL;DTP=SYMBOL [...]
  [...]
    CallingArgsPointer   06000000 = CDR_CODE=NORMAL;DTP=SYMBOL [...]

from the initial stack group, right?  Isn't the special because if it
is flushed a new one gets created in its place?  So perhaps the
calling args pointer isn't going to contain any useful args?

Considering

  CallingArgsNumber    0a000014 = CDR_CODE=NORMAL;DTP=FIX [...]

this is somewhat curious, although I think the DTP-SYMBOL at 0 is NIL,
so maybe the number of args is required to be 14, but they're all NIL.
Unsupplied args are defaulted to NIL for just about every CALL
function, IIRC.

Anyway, that's a thought.  Curious, though.

I'd like to know what all those damned accumulators are supposed to
contain and what the first SG uses them for...

'james

-- 
James A. Crippen <james@unlambda.com> ,-./-.  Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us   |  |/  | USA, 61.2069 N, 149.766 W,
Y = \f.(\x.f(xx)) (\x.f(xx))         |  |\  | Earth, Sol System,
Y(F) = F(Y(F))                        \_,-_/  Milky Way.