Re: Patches that will come...
[email protected] (Tim Bunce) Wed, 1 Sep 2004 23:16:41 +0100
| Newsgroups | perl.ponie.dev |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Sep 01, 2004 at 10:29:08PM +0100, Nicholas Clark wrote: > On Sat, Aug 28, 2004 at 08:21:40PM +0200, Mattia Barbon wrote: > > > 2) switch to GC: > > kill the refcount field, making SvREFCNT* no-ops and adding mark() methods > > to compound data structures. This will break a lot of existing XS, and has > > a deep impact on Perl code relying on the current refcount implementation. > > > > The option 2 requires further discussion about the guarantees for object > > finalization (Perl5 is "as soon as the SV is not referenced", Perl6 > > (IIRC) is "at the end of a scope", other languages have "eventually" and "maybe"). > > And about its feasibility, of course. > > My/Arthur's thoughts were that SvREFCNT* is a no-op in the core (with > marking etc as you describe). But outside the core (and the default > for XS passed through xsubpp) is that SvREFCNT* isn't a no-op and marks > by calling the parrot API for marking an external reference to a PMC. > > (plus all the AV, HV and RV API calls also need to change into something > that knows to release the external refcount as that "reference" is now > "owned" by core that is garbage collected.) > > This is complicated. It may be too complicated. It maybe that the gains achieved from implementing Perl5 types as PMCs, and other planned changes, may be sufficient to raise performance to the point where the presumed gains from removing ref-counting are less important. Is there any reason it can't be moved further down the priority list? Seems more like a nice-to-have than being truely essential to ponie. (And may well end up being a can of worms.) Tim.