[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.