Re: branches/leo-ctx5 update

2005-07-08 Thread Leopold Toetsch
Larry Wall wrote: On Fri, Jul 08, 2005 at 03:17:42PM -0400, Chip Salzenberg wrote: : foo('a' => 1) <== ('b' => 2, ...) [ ... ] Plus it settles the whole issue of what to do with multiple pipes into the same function. But I don't think Parrot has to worry about that, Thanks. Again. I

Re: branches/leo-ctx5 update

2005-07-08 Thread Larry Wall
On Fri, Jul 08, 2005 at 03:17:42PM -0400, Chip Salzenberg wrote: : Larry on p6i? I didn't expect some kind of Perlish Exposition! Hey, I'm the chief Lurky Turkey around here... : Incidentally, under the "appropriate amount of fun" topic: An : interesting Parrot/Perl6 intersection problem with na

Re: branches/leo-ctx5 update

2005-07-08 Thread Chip Salzenberg
Larry on p6i? I didn't expect some kind of Perlish Exposition! On Fri, Jul 08, 2005 at 11:18:01AM -0700, Larry Wall wrote: > Even in the absence of a hash representation, the brute force approach > will often beat the finessed approach for a small number of arguments, Well-taken. (Not that the

Re: branches/leo-ctx5 update

2005-07-08 Thread Larry Wall
On Fri, Jul 08, 2005 at 11:13:27AM -0400, Chip Salzenberg wrote: : Tt makes sense to scan the pairs containing named arguments by : iterating through the list of pairs (if any), not by iterating through : the parameters and doing a sequential scan for an appropriately named : pair for each one. Ac

Re: branches/leo-ctx5 update

2005-07-08 Thread Chip Salzenberg
On Fri, Jul 08, 2005 at 03:58:50PM +0200, Leopold Toetsch wrote: > This needs more parsing rules in imcc.y so it's not (yet) implemented. Grammar changes shouldn't be such an issue. It's just yacc. > But I've now implemented :opt_count ... >.param pmc p1 :optional >.param pmc p2 :optio

Re: branches/leo-ctx5 update

2005-07-08 Thread Patrick R. Michaud
On Fri, Jul 08, 2005 at 03:58:50PM +0200, Leopold Toetsch wrote: > Chip Salzenberg wrote: > >Thus, this is probably better: > > > > .sub "foo" > > .param int beta > > .param string gamma :optional(have_gamma) > > .param string delta :optional(have_delta) > > This nee

Re: branches/leo-ctx5 update

2005-07-08 Thread Leopold Toetsch
Chip Salzenberg wrote: And I just realized my proposal fails to address something important. But I'm not entirely sure it's Parrot's job to do the important thing in question. Still, the possibility exists. Thus: On Thu, Jul 07, 2005 at 12:02:40PM -0400, Chip Salzenberg wrote: .sub "foo"

Re: branches/leo-ctx5 update

2005-07-07 Thread Leopold Toetsch
On Jul 7, 2005, at 18:02, Chip Salzenberg wrote: Say a new bit ":opt_count", which means that the given register should be assigned the count? .sub "foo" .param int beta .param string gamma :optional .param string delta :optional .param int optc :opt_co

Re: branches/leo-ctx5 update

2005-07-07 Thread Patrick R. Michaud
On Thu, Jul 07, 2005 at 12:11:53PM -0400, Chip Salzenberg wrote: > Thus, this is probably better: > > .sub "foo" > .param int beta > .param string gamma :optional(have_gamma) > .param string delta :optional(have_delta) > .param pmc epsilon :slurpy As y

Re: branches/leo-ctx5 update

2005-07-07 Thread Chip Salzenberg
And I just realized my proposal fails to address something important. But I'm not entirely sure it's Parrot's job to do the important thing in question. Still, the possibility exists. Thus: On Thu, Jul 07, 2005 at 12:02:40PM -0400, Chip Salzenberg wrote: > .sub "foo" > .param int b

Re: branches/leo-ctx5 update

2005-07-07 Thread Patrick R. Michaud
On Thu, Jul 07, 2005 at 12:02:40PM -0400, Chip Salzenberg wrote: > On Thu, Jul 07, 2005 at 10:43:45AM -0500, Patrick R. Michaud wrote: > > With something like > > > > .sub "foo" > > .param int beta > > .param string gamma :optional > > .param string delta :optional > >

Re: branches/leo-ctx5 update

2005-07-07 Thread Leopold Toetsch
Patrick R. Michaud wrote: ... get_argc (which perhaps should be called something else) Better names are welcome. So, all we really need is something that can tell us how many :optional arguments were filled in. Sounds reasonable. op optional_count(out INT) Another question: do we want

Re: branches/leo-ctx5 update

2005-07-07 Thread Chip Salzenberg
On Thu, Jul 07, 2005 at 10:43:45AM -0500, Patrick R. Michaud wrote: > With something like > > .sub "foo" > .param int beta > .param string gamma :optional > .param string delta :optional > .param pmc epislon :slurpy > > So, all we really need is something that

Re: branches/leo-ctx5 update

2005-07-07 Thread Patrick R. Michaud
On Thu, Jul 07, 2005 at 10:43:45AM -0500, Patrick R. Michaud wrote: > In fact, this might be greatly preferable, since if > I later decide I need another non-optional parameter > > .sub "foo" > .param int beta > .param int omega > .param string gamma :optional >

Re: branches/leo-ctx5 update

2005-07-07 Thread Patrick R. Michaud
On Thu, Jul 07, 2005 at 11:22:27AM -0400, Chip Salzenberg wrote: > On Thu, Jul 07, 2005 at 10:09:27AM -0500, Patrick R. Michaud wrote: > > On Thu, Jul 07, 2005 at 11:05:00AM -0400, Chip Salzenberg wrote: > > > On Thu, Jul 07, 2005 at 10:57:40AM -0400, Will Coleda wrote: > > > > To manage varargs-st

Re: branches/leo-ctx5 update

2005-07-07 Thread Leopold Toetsch
Chip Salzenberg wrote: On Thu, Jul 07, 2005 at 03:36:01PM +0200, Leopold Toetsch wrote: Instead we have the new opcode: get_argc(out INT) which returns the argument/result count of the recent call/return. Why do we need this? To know, if :optional args where passed in or not. leo

Re: branches/leo-ctx5 update

2005-07-07 Thread Chip Salzenberg
On Thu, Jul 07, 2005 at 10:09:27AM -0500, Patrick R. Michaud wrote: > On Thu, Jul 07, 2005 at 11:05:00AM -0400, Chip Salzenberg wrote: > > On Thu, Jul 07, 2005 at 10:57:40AM -0400, Will Coleda wrote: > > > To manage varargs-style subroutines? > > > > But that's what :slurpy is for. > > But :slurp

Re: branches/leo-ctx5 update

2005-07-07 Thread Patrick R. Michaud
On Thu, Jul 07, 2005 at 11:05:00AM -0400, Chip Salzenberg wrote: > On Thu, Jul 07, 2005 at 10:57:40AM -0400, Will Coleda wrote: > > To manage varargs-style subroutines? > > But that's what :slurpy is for. But :slurpy always pulls things into a PMC (and creates PMCs along the way). We need get_ar

Re: branches/leo-ctx5 update

2005-07-07 Thread Chip Salzenberg
On Thu, Jul 07, 2005 at 10:57:40AM -0400, Will Coleda wrote: > To manage varargs-style subroutines? But that's what :slurpy is for. -- Chip Salzenberg <[EMAIL PROTECTED]>

Re: branches/leo-ctx5 update

2005-07-07 Thread Will Coleda
To manage varargs-style subroutines? On Jul 7, 2005, at 10:55 AM, Chip Salzenberg wrote: On Thu, Jul 07, 2005 at 03:36:01PM +0200, Leopold Toetsch wrote: Instead we have the new opcode: get_argc(out INT) which returns the argument/result count of the recent call/return. Why do we n

Re: branches/leo-ctx5 update

2005-07-07 Thread Chip Salzenberg
On Thu, Jul 07, 2005 at 03:36:01PM +0200, Leopold Toetsch wrote: > Instead we have the new opcode: > get_argc(out INT) > which returns the argument/result count of the recent call/return. Why do we need this? -- Chip Salzenberg <[EMAIL PROTECTED]>

Re: branches/leo-ctx5 update

2005-07-07 Thread Patrick R. Michaud
On Thu, Jul 07, 2005 at 03:36:01PM +0200, Leopold Toetsch wrote: > I've now implement full type conversions, thus making argument passing > strictly positional. This also implies that we don't need separate > argument counts per register type, these are gone now. > > Instead we have the new opco

branches/leo-ctx5 update

2005-07-07 Thread Leopold Toetsch
I've now implement full type conversions, thus making argument passing strictly positional. This also implies that we don't need separate argument counts per register type, these are gone now. Instead we have the new opcode: get_argc(out INT) which returns the argument/result count of the r