Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:54863 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 96179 invoked from network); 24 Aug 2011 11:23:19 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Aug 2011 11:23:19 -0000 Authentication-Results: pb1.pair.com header.from=pierre.php@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=pierre.php@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.213.170 as permitted sender) X-PHP-List-Original-Sender: pierre.php@gmail.com X-Host-Fingerprint: 209.85.213.170 mail-yx0-f170.google.com Received: from [209.85.213.170] ([209.85.213.170:34830] helo=mail-yx0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 80/49-48631-62FD45E4 for ; Wed, 24 Aug 2011 07:23:18 -0400 Received: by yxk30 with SMTP id 30so1001980yxk.29 for ; Wed, 24 Aug 2011 04:23:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=M/QZA+xkLkFLqX+40hS7AWjsmT7vexs5rdeD+8AfTC8=; b=E0YbGMnjMdFfdNSmaEbxnQOxrm15YLlNGm/bo5gsjnrwMOUdoamQKtSczIAmADxLzn XUptuSwH5H+an2UcB6HPx4cFqbNbaBj0JwLf3ug8cXSJWieA8inSGMBq5fcVf4jxjyy6 wSwzV29eAlObtIAViWiJ5SdLlwDJ9zoG4GdVY= MIME-Version: 1.0 Received: by 10.236.136.196 with SMTP id w44mr29035271yhi.56.1314184995170; Wed, 24 Aug 2011 04:23:15 -0700 (PDT) Received: by 10.147.168.5 with HTTP; Wed, 24 Aug 2011 04:23:15 -0700 (PDT) In-Reply-To: <887FE7CFF6F8DE4BB3A9535F53AFD06A495AAA2F@il-ex2.zend.net> References: <1314115682.2635.98.camel@guybrush> <4E545A6C.60704@akbkhome.com> <4E54C658.6070209@akbkhome.com> <887FE7CFF6F8DE4BB3A9535F53AFD06A495AAA2F@il-ex2.zend.net> Date: Wed, 24 Aug 2011 13:23:15 +0200 Message-ID: To: Zeev Suraski Cc: "alan@akbkhome.com" , "internals@lists.php.net" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [PHP-DEV] PHP 5.3.8 Released! From: pierre.php@gmail.com (Pierre Joye) On Wed, Aug 24, 2011 at 12:43 PM, Zeev Suraski wrote: > I think there are two ways to look at it: > > - As a new feature. =A0If I understand you correctly, the fact that befor= ehand is_a() was documented to only return TRUE in case the first argument = was an instance of the second argument, means that if we do anything beyond= that - e.g. support strings as the first argument - this means we break co= mpatibility (please correct me if I misunderstood). =A0IMHO that's not a re= alistic way to look at retaining compatibility, and I'm saying that as some= one who's almost religious about maintain compatibility. =A0With that view = of the world, almost every bug fix and literally every feature we add - bre= aks compatibility. > > - As a bug fix. =A0Strings were supported even before this change, but th= ey weren't working properly or consistently with the way classes work every= where else in PHP. =A0That was fixed. =A0Just so that we feel good about ou= rselves, we also changed undocumented behavior. =A0In case it's not clear, = a situation where is_a("bar", "foo") returns FALSE, even though bar extends= foo, but bar simply doesn't happen to be loaded in memory at the time of t= he call - can lead to very real world bugs. No matter what it is or how it is defined by us, it breaks existing code and that should be avoided in bug fixes releases like 5.3.7/8. Cheers, --=20 Pierre @pierrejoye | http://blog.thepimp.net | http://www.libgd.org