On Sat, Aug 30, 2008 at 10:40 AM, Allison Randal <[EMAIL PROTECTED]> wrote:

> Klaas-Jan Stol wrote:
>
>> On Sat, Aug 30, 2008 at 11:04 AM, Allison Randal <[EMAIL PROTECTED]>
>> wrote:
>>
>>>
>>>>  Yes, it will be deprecated, or at least renamed. The C<.return>
>>> directive
>>> without parentheses is an old convention for passing a single return
>>> result,
>>> and must always be sandwiched between  C<.begin_return> and
>>> C<.end_return>.
>>>
>>
>> Do you mean this one? (see next)
>>
>> .begin_return
>> .return "hi"
>> .return 42
>> .return 3.14
>> .end_return
>>
>> (which is the same as:   .return ("hi", 42, 3.14)       )
>> Is the purpose of renaming this to make a clear distinction between the
>> '.return' directive in this long style of returning and the short one
>> ('.return ()' )   ?
>>
>
> Yes. That whole set of directives would benefit from clearer naming.
> Perhaps:
>
>  .set_return "hi" # return value passed, between .begin_return
>                   # and .end_return
>  .set_arg "foo"   # argument passed, between .begin_call and .end_call
>  .get_result      # result retrieved, between .call and .end_call
>
>  And, there's another C<.return> without parentheses that performs a
>>> tail-call, invoking a sub or method reusing the same return continuation.
>>>  This should also be renamed.
>>>
>>
>> Is the purpose to be more explicit on being a tailcall? (in that case, it
>> could be renamed as ".tailcall" or whatever -- but that's obvious)
>>
>
> Obvious is good.
>
>  The only directive that should be named C<.return> is the one that returns
>>> a value or values (i.e. it's syntactic sugar for a whole collection of
>>> low-level directives/opcodes).
>>>
>>
>> and this would be:     .return ("hi", 42, 3.14)
>> right?
>>
>
> Yes.
>
> Allison


Allison:

I made the following changes in pirc/new:

.arg -> .set_arg
.result -> .get_result
.return -> .tailcall (in context of .return foo() , which thus is now:
.tailcall foo() )
.return -> .set_return (in long-style returning : .begin/end_return
.yield -> .set_yield ( in long-style yielding : .begin/end_yield)

>From your answers in your previous reply I deduce you support such changes.
Can you reconfirm, then I'll make the appropriate changes in  PDD19.

thanks,
kjs

Reply via email to