Front page | perl.perl6.internals |
Postings from February 2001
Re: PDD 2, vtables
Thread Previous
|
Thread Next
From:
Dan Sugalski
Date:
February 7, 2001 12:36
Subject:
Re: PDD 2, vtables
Message ID:
5.0.2.1.0.20010207152429.01a82980@24.8.96.48
At 06:08 PM 2/7/2001 -0200, Branden wrote:
>Dan Sugalski wrote:
> > Splitting the vtable into two pieces, with one piece not tied to a PMC,
> > makes some things impossible. Consider this:
> >
> > @foo = @bar * @baz;
> >
> > where all three arrays are really matrix types.
>
>By the PDD's notion of `key', what would be the `key' of a matrix type ?
Probably an integer, possibly a list for multidimensional matrices. (And I
haven't thought about how to handle that--probably force a series of index
lookups)
>(I think that's actually a -language question, but) What $foo[42] (where
>@foo is matrix) would compile to?
Identically to how $foo[42] would if @foo were a plain array.
> > In the separate load/store
> > and do vtable scheme it means you get the value of @bar and @baz in scalar
> > context, and multiply the results. Two operations, and the resultant
>values
> > are sanitzed. In the single vtable scheme, we'd execute @bar's multiply
> > routine, which would be clever enough (because we wrote it that way) to
>see
> > the second parameter's also a matrix, and do matrix math.
> >
>
>Actually, not necessarily. It depends of what the compiler does... There
>could be special entries for array operations, like +/-/*/... . The problem
>I see with it is what happens when you @a = @b. Actually, if @b is a matrix,
>@a = @b makes @a a matrix or evaluates @b in list context?
That's a language issue. I don't know--I can see it going either way. I'd
prefer a straight assign and let the assignment vtable entry handle it, but
I don't know that we'll have that option.
>What about @a =
>(@b) ?
Good question. I'd like to see it handled the same way as @a=@b, but I'm
not sure that's going to happen. It's Larry's decision. (Mainly because I'd
like to see this:
@a = (@b, @c);
turn into:
@a = @b;
push @a, @c;
but I don't know that we'll be able to)
>What if @a is a tied array?
What if? Larry's call as to whether it makes @a a copy of the data from @b,
or creates a new tied thing, or an alias. Probably @a would be a plain copy
of @b with no magic, but that's not my call.
>This matrix thing is actually getting
>very confusing to me... I think all these proposed additions to the language
>should be carefully examined for possible mis-interpretations like these.
I'm not proposing they go in (well, OK, I am, but I'm not forcing it). What
I am doing is trying to not preclude the possibility if its decided that it
will happen.
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
dan@sidhe.org have teddy bears and even
teddy bears get drunk
Thread Previous
|
Thread Next
-
PDD 2, vtables
by Dan Sugalski
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by Branden
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by David Mitchell
-
Re: PDD 2, vtables
by Dan Sugalski
-
Re: PDD 2, vtables
by Simon Cozens
-
Re: PDD 2, vtables
by Dan Sugalski
-
Re: PDD 2, vtables
by Edwin Steiner
-
Re: PDD 2, vtables
by Dan Sugalski
-
Re: PDD 2, vtables
by Tim Bunce
-
Re: PDD 2, vtables
by Branden
-
Re: require < 6.x
by Brent Dax