On Thu, Jun 23, 2005 at 11:24:10PM +0200, Elizabeth Mattijsen wrote:
> At 10:54 PM +0200 6/23/05, Rafael Garcia-Suarez wrote:
> >On 6/23/05, Elizabeth Mattijsen <[EMAIL PROTECTED]> wrote:
> > > FWIW: I think this nails the coffin on :unique.
> > > I think the safest would be to deprecate ":unique" by making it a
> > > noop.  And be done with it.
> >Strictly speaking, deprecation and removal are not the same thing.
> 
> You're right: I meant ":unique" to become a noop in blead (and 5.10 
> later), and to have it marked "deprecated" in 5.10.

I see no actual harm in making it a no-op everywhere. (For now, pending
a viable implementation)
Or at least a compile time option.

> I think I've introduced a few ":unique"'s in the Perl core modules in 
> my attempts to reduce the memory footprint of perl.  I think the 
> winnings were very small indeed, especially if you compare it with 
> all the other work that has been done recently about reducing memory 
> footprint (Consting and folding of various structures).

That can't go into maint.

However, I think I can see a reasonable efficient way of making unique
value scalars (specifically non-references). References, arrays and hashes
I'm not so sure about.

If a (unique) scalar in one thread is a reference back to a copy in a parent
thread, how does the child stop the parent thread going away. (or at least,
cause it not to globally destruct until the referring child destructs)
?

> > > With the current state of parrot / pugs / perl 6 / ponie I don't
> > > think it is worth the tuits to get ":unique" right.
> >Except if it helps ponie.
> 
> That was something I hadn't considered.  Would it?

I confess that taking out the current implementation would, because it
conflicts with removing the symbol table <=> typeglob reference loop.
(Which is causing big pain with global destruction when you try to do
that properly, which ponie is)

Nicholas Clark

Reply via email to