Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

ank (5971)

ank
  (email not shown publicly)

Journal of ank (5971)

Wednesday June 23, 2010
10:42 PM

PHP 5.3 includes garbage collection for circular references

[ #40414 ]

Now, this is what I'm talking about. I haven't done PHP in ages, but today I needed to do some quick scripting and I realized there's been a new major release sometime after my last contact with the language. Quick look at new features includes garbage collection for circular references, something that perl still doesn't include.

You see? This is the sort of things that we lose by allowing Wall and his minions to have his way. A few years ago it would have been laughable to think that PHP was somehow more advanced than perl, but that's not the case anymore.

Of course, PHP has this garbage collection disabled by default, and seems quite experimental, in a very PHP-ish way. But still, at least there's an evolution.

What's really sad is that GC algorithms are very well known and quite easy to use; the Boehm GC comes to mind immediately.

See what happens when you dream of a pluggable, perfect GC scheme for a language that's been in development for 12 years instead of finishing something that's better than perl 5 and can be done now?

Cross posted to my blog

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • allowing Wall and his minions to have his way.

    You seem to be implying that you can somehow disallow it.

    What's really sad is that GC algorithms are very well known and quite easy to use; the Boehm GC comes to mind immediately.

    It sounds you're upset because your patches to Perl 5 that implemented this GC were rejected?

    --

    --
    xoa

  • What's really sad is that GC algorithms are very well known and quite easy to use; the Boehm GC comes to mind immediately.

    What you're missing from this analysis is that swapping to mark & sweep GC, particularly a conservative GC such as Boehm, means that you no longer have any guarantee of the timing of destruction of objects, or even that they'll be (formally) destroyed at all, before program exit. So many of the existing uses of DESTROY in Perl would go out of the window, and the paradigm of Resource [wikipedia.org]

    • Hence it's easy to do something "obvious" and get it very wrong.

      Some hybrid systems use simple refcounting but occasionally run a full GC to reclaim circular references. As well, it's certainly possible to use a mortalize scheme for simple escape analysis to catch the majority of cases where you want timely destruction; most objects tend to have reference counts of zero or one.

    • What you're missing from this analysis

      Using the word "analysis" here gives far too much credit. It is not "analysis" to say "Can't you just do a new GC?"

      --

      --
      xoa

  • This is the sort of things that we lose by allowing Wall and his minions to have his way.

    Uhm, the development effort for Perl 5 never ceased (although it bled momentum for a time for a long list of disparate reason), nor has Larry been involved in a very long time. In fact there is something of a schism and sometimes outright hostility between the 5 and 6 communities. It’s a convenient to identify a corrupt leader to project all problems onto, but it has little to do with reality.

    • I did not know there was outright hostility. Why would that be?

      I am ignoring the original post by "ank" as tripe.