Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:32703 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 51799 invoked by uid 1010); 8 Oct 2007 17:04:31 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 51784 invoked from network); 8 Oct 2007 17:04:31 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 8 Oct 2007 17:04:31 -0000 Authentication-Results: pb1.pair.com smtp.mail=tony@tonybibbs.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=tony@tonybibbs.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain tonybibbs.com from 209.191.119.231 cause and error) X-PHP-List-Original-Sender: tony@tonybibbs.com X-Host-Fingerprint: 209.191.119.231 web706.biz.mail.mud.yahoo.com FreeBSD 4.7-5.2 (or MacOS X 10.2-10.3) (2) Received: from [209.191.119.231] ([209.191.119.231:21783] helo=web706.biz.mail.mud.yahoo.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B9/84-22438-D136A074 for ; Mon, 08 Oct 2007 13:04:30 -0400 Received: (qmail 70089 invoked by uid 60001); 8 Oct 2007 17:04:26 -0000 X-YMail-OSG: qzN4hTcVM1kaJlCxw8_tIgpqpAPGKDN0ZAjsmGJwe_tvP6gj56O3sA4PEaF5H6mPYbVLpd8IqiLRC.D7Oe.dPBeeL2eenQB2N.WOzQqSm7MYDI023kGF9pqNCoWHe1d2rLlekZox Received: from [216.51.246.190] by web706.biz.mail.mud.yahoo.com via HTTP; Mon, 08 Oct 2007 10:04:26 PDT X-Mailer: YahooMailRC/651.50 YahooMailWebService/0.7.134 Date: Mon, 8 Oct 2007 10:04:26 -0700 (PDT) To: internals@lists.php.net MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Message-ID: <339257.69263.qm@web706.biz.mail.mud.yahoo.com> Subject: Re: [PHP-DEV] Reference cycle collector patch From: tony@tonybibbs.com (Tony Bibbs) For the untrained eye, would this then fix these bugs?=0A=0Ahttp://bugs.php= .net/bug.php?id=3D33595=0Ahttp://bugs.php.net/bug.php?id=3D33487=0A=0A--Ton= y=0A=0A----- Original Message ----=0AFrom: David Wang =0ATo: internals@lists.php.net=0ASent: Monday, October 8, 2007 2:12:31 AM= =0ASubject: [PHP-DEV] Reference cycle collector patch=0A=0AHey all,=0A=0ANo= w that macros for manipulating refcount and is_ref have been implemented, I= =E2=80=99m ready to submit patches for the GC. I know you all have been wai= ting for this for a long time =E2=98=BA.=0A=0AI have made two sets of patch= es, one for HEAD and one for PHP_5_3 (note that I had to rearrange the orde= r of definitions and #includes in zend.h to get around a recursive dependen= cy problem):=0A=0Ahttp://zoo.cs.yale.edu/~yw226/gc/gc6.diff.txt=0Ahttp://zo= o.cs.yale.edu/~yw226/gc/gc5_3.diff.txt=0A=0AAfter applying those, these two= files should be placed in the Zend subdirectory:=0A=0Ahttp://zoo.cs.yale.e= du/~yw226/gc/zend_gc.c=0Ahttp://zoo.cs.yale.edu/~yw226/gc/zend_gc.h=0A=0AFo= r those who were following the progress of the GC through the incubator SVN= , the GC implemented with these patches is DIFFERENT than the one currently= in the SVN tree. They are from an =E2=80=9Cexperimental=E2=80=9D branch th= at I believed was more tolerant of the zval juggling PHP and its extensions= sometimes like to do. It turned out to be very successful, but I hadn=E2= =80=99t bothered remerging it.=0A=0AI highly recommend these two patches in= addition (but they are optional for GC functioning):=0A=0Ahttp://zoo.cs.ya= le.edu/~yw226/gc/alwaysinline6.diff.txt=0Ahttp://zoo.cs.yale.edu/~yw226/gc/= alwaysinline5_3.diff.txt=0A=0AThese are meant to be applied after the previ= ous patches. These simply change all the inline functions in the Zend engin= e to =E2=80=9Calways_inline=E2=80=9D. Zend object files can become seriousl= y oversized and this makes the compiler silently ignore the inline keyword.= Changing this to always_inline (defined in zend.h) forces the compiler to = inline the function or at least give a warning if it cannot.=0A=0AThe reaso= n I bring up the issue here is that my patch is known to sometimes push obj= ect files that were just under the internal compiler limit over the edge an= d make the compiler refuse to inline. This has the effect of making the who= le Zend engine disproportionately slower.=0A=0AAnyway, please try these out= and tell me how it goes!=0A=0A=0ADavid=0A=0AP.S. This patch has the GC ena= bled by default.=0A=0A--=0APHP Internals - PHP Runtime Development Mailing = List=0ATo unsubscribe, visit: http://www.php.net/unsub.php=0A=0A=0A=0A