Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:79321 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 26450 invoked from network); 30 Nov 2014 16:25:54 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 30 Nov 2014 16:25:54 -0000 Authentication-Results: pb1.pair.com header.from=tyra3l@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=tyra3l@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.214.171 as permitted sender) X-PHP-List-Original-Sender: tyra3l@gmail.com X-Host-Fingerprint: 209.85.214.171 mail-ob0-f171.google.com Received: from [209.85.214.171] ([209.85.214.171:54649] helo=mail-ob0-f171.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 0C/80-22137-0154B745 for ; Sun, 30 Nov 2014 11:25:53 -0500 Received: by mail-ob0-f171.google.com with SMTP id uz6so6890509obc.30 for ; Sun, 30 Nov 2014 08:25:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=pWvbxTb/kFt7aROH0f1otsouUoKlkvOBk2PHhLdMtOI=; b=eK6+YtfWaCQxoLWPgwiH/X/yiCcMc2a7/+YZOnYb3qx9pFHiX4jDqq5GdbBDtIEtnX 1JuvlUv7wBcGzd7orLVSqS9EwIR1PVe94kejH2DmJSUflZF1NpzhCZOgLvwq1WMFwCZ1 sRpMIf8uHb5hxX58lDYeqPeooOcVLadwhR2V1sOzcCj0zmYzMps/bvc43DiBZh6UBFk6 HtdEv3vvN++P9fj0v+GQo2s+BqnOyxNtaO01AbS8edqWAMbHd9fi2KBolLr+n/vJk1oG fnKsXCZYWtEWUDHGde5fllniYevxivsmb7GlrFpj2l5yQenu9Q8iM2KXO7giRQM9eJ/F 02aA== MIME-Version: 1.0 X-Received: by 10.182.166.106 with SMTP id zf10mr8499440obb.69.1417364748945; Sun, 30 Nov 2014 08:25:48 -0800 (PST) Received: by 10.60.37.103 with HTTP; Sun, 30 Nov 2014 08:25:48 -0800 (PST) Received: by 10.60.37.103 with HTTP; Sun, 30 Nov 2014 08:25:48 -0800 (PST) In-Reply-To: References: Date: Sun, 30 Nov 2014 17:25:48 +0100 Message-ID: To: Dmitry Stogov Cc: PHP Internals , Matteo Beccati , Xinchen Hui , Nikita Popov Content-Type: multipart/alternative; boundary=e89a8ff1cdf660d07f050915f260 Subject: Re: [PHP-DEV] Re: EX(scope) removing From: tyra3l@gmail.com (Ferenc Kovacs) --e89a8ff1cdf660d07f050915f260 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 2014.11.30. 11:14 ezt =C3=ADrta ("Dmitry Stogov" ): > > Sorry, I'll try to fix it on Monday. > is it a compilation problem, or how can reproduce it? I've fixed it already. There were two references to scope in phpdbg, you probably missed it because phpdbg tests are not part of make test (but could be). > > Thanks. Dmitry. > > On Sat, Nov 29, 2014 at 1:01 AM, Ferenc Kovacs wrote: >> >> 2014.11.28. 9:24 ezt =C3=ADrta ("Dmitry Stogov" ): >> >> >> > >> > On Fri, Nov 28, 2014 at 7:33 AM, Xinchen Hui wrote: >> > >> > > Hey: >> > > >> > > On Fri, Nov 28, 2014 at 1:27 AM, Dmitry Stogov wrote: >> > > > Hi, >> > > > >> > > > I'm working on call/return sequence optimization. As part of this work >> > > I'm >> > > > minimizing the size of call frame (zend_execute_data) and number o= f >> > > > read/write operations on call/return. >> > > > >> > > > Could you please take a look into the patch that removes EX(scope) >> > > > https://gist.github.com/dstogov/5ad50d582346385d587e >> > > >> > >> > committed. >> > >> > > All phpt tests are passed, but I'm not completely sure about one line - >> > > > >> > > https://gist.github.com/dstogov/5ad50d582346385d587e#file-ex_scope-05-diff-= L193 >> > > > >> > > > On the other hand I can't imagine what it may break. >> > > neither do I. >> > > >> > > > >> > > > Matteo, can you please run your test suites with this patch. >> > > > >> > > > PS: I'm also going to: >> > > > - pack EX(num_args) into reserved space of EX(This) >> > > >> > >> > done. >> > >> > >> > > > - try to get rid of EX(frame_info) >> > > >> > >> > done. >> > >> > >> > > > - try to merge EX(called_scope) and EX(This). Only one of them matters. >> > > > - try to replace zval EX(This) with a pointer to zend_object EX(object) >> > > >> > > Hmm, EX(This) is not like EX(object), it will be accessed by vm >> > > handler: get_obj_zval_ptr_unused >> > > >> > > it suppores to return a zval * there. if EX(This) became a zend_object >> > > *, then we may face different handlers for IS_UNUSED and other type= s >> > > :< >> > > >> > >> > Yes, I know. After the latest changes it doesn't make a lot of sense t= o >> > replace ZVAL with ZEND_OBJECT*, because other data is already packed into >> > the same ZVAL and it won't save any memory. >> > >> > Also zend_execute_data structure is aligned on zval boundary (16 bytes), so >> > it makes sense to save another 16 bytes, but saving 8 bytes won't affect VM >> > stack memory consumption. >> > >> > Thanks. Dmitry. >> > >> >> Fyi this change broke phpdbg in master. > > --e89a8ff1cdf660d07f050915f260--