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 <chip@pobox.com>
Thread Previous
|
Thread Next