'Kay, here's the proposed changes:

1) Return conventions die. Chopped entirely out of the list
2) The hash for the sub/method name goes, though we may later regret that.
3) The return type info that was in I3 is gone. It's really "calling
context" and I think we may need a better way for things in the system to
figure out what context they're being called in.
4) The parameter list count that was in I1 is dead. If you care, ask the
damn array
5) We 'fess up and admit there's no difference between call and return
6) Note that non-PMC counts only need to be filled in if we're marked
"prototyped"

The call section is as follows. It's not checked in -- I want some list
abuse^Wdiscussion first, since it's Yet Another Damn Call Overhaul.

=head2 Calling conventions

The following registers are used in calling all subs and methods

=over 4

=item P0

Holds the object representing the subroutine.

=item P1

Holds the return continuation for the caller.

=item P2

Holds the object the sub was called on. (For method calls)

=item P3

The overflow parameters. Everything that wouldn't fit in a register
is in here. This PMC should act as an array, and belongs to the
called sub/function/method. The caller should not assume anything
about the state of the PMC passed in here after the call is made.

=item S0

The fully qualified name of the method or sub being called

=item I0

True if the sub is being called with prototyped parameters.

=item I1

The number of params in integer registers

=item I2

The number of parameters in PMC registers.

=item I3

The number of string parameters

=item I4

The number of numeric parameters



                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to