----- Original Message -----
From: "Jos Visser" <[EMAIL PROTECTED]>
To: "Leopold Toetsch" <[EMAIL PROTECTED]>
Cc: "P6I" <[EMAIL PROTECTED]>
Sent: Friday, August 29, 2003 4:35 AM
Subject: Re: [CVS ci] exit opcode


> On Fri, Aug 29, 2003 at 01:29:18PM +0200 it came to pass that Leopold
Toetsch wrote:
> > I'd like to change the startup parameters too: move the ARGV array from
> > P0 to P5. This would allow main to be:
> >
> > .pcc_sub _main prototyped
> >    .param SArray ARGV
> >    .local int ARGC
> >    ARGC = ARGV
> >      ...
>
> This seems a quite logical thing to do (to me)...
>
Also, this way a Parrot program is somewhat like a subroutine call from the
shell (just like in C : main() ). I occurred to me that one could do the
exact same thing when returning to the shell (which means the Parrot program
exits: "end" ). (does anyone agree?)
It *then* occurred to me that this returning to the shell (or exiting the
program, whatever name you'd call it) could be written as:

.pcc_sub _main prototyped    # something like
    .param SArray ARGV       #   int main(int argc, char *argv[])
    .local int ARGC                 #   {
    ARGC = ARGV                #

    #
    # do your stuff here
    #
    #

    $I0 = 0                                #
    .pcc_begin_return                #
     .return $I0;                         #      return 0; /* return to
shell */
    .pcc_end_return                  #  }
.end

(I don't know for sure if I got the syntax right)

Just an idea.

Klaas-Jan



Reply via email to