As a followup to my previous early opinions:

I've done some [more] reading up on value types.  I'm now more sure now than
ever that my initial decision was the right one: Parrot 1.0 will _not_ have
native support for anything like value types.  Parrot 1.0's type universe
will consist entirely of [ISNP].

Thus, any implementation (emulation?) of value semantics will be built on
PMCs like other types, and will thus continue to live in the GC universe,
all a la JValue.

On Sun, Mar 12, 2006 at 02:35:11AM +0800, Audrey Tang wrote:
> The easy workaround for now is to have a "does readonly" interface in
> addition to the current "does scalar", which forbids all self-mutable
> vmethods.

That's a good hack.

Perhaps unrelated, perhaps not: Parrot will soon have a flyweight read-only
proxy PMC, which will address the use case of "sub foo($a)", in which $a
must be a read-only alias of the passed argument.  Language implementors may
find this useful in some otherwise value-oriented situations.

PS: Rant against the annoying introduction of scalar containers in Perl 6
    elided here, partly for brevity, but mostly for blood pressure.
-- 
Chip Salzenberg <[EMAIL PROTECTED]>

Reply via email to