On Sat, Aug 30, 2008 at 11:04 AM, Allison Randal <[EMAIL PROTECTED]> wrote:
> Klaas-Jan Stol (via RT) wrote: > >> >> The parentheses surrounding the arguments are mandatory. Besides making >> sequence break more conspicuous, this is necessary to distinguish this >> syntax from other uses of the C<.return> directive that will be probably >> deprecated. >> >> >> The open issue of the 'probably deprecation' should be decided on; what >> return directive is meant here that supposedly would be deprecated? >> Will it? (any need?) >> > > 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 ()' ) ? > > 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) > > > 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? > > > Allison kjs