Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92891 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 75614 invoked from network); 28 Apr 2016 18:39:10 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Apr 2016 18:39:10 -0000 Authentication-Results: pb1.pair.com smtp.mail=codekestrel@googlemail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=codekestrel@googlemail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain googlemail.com designates 74.125.82.52 as permitted sender) X-PHP-List-Original-Sender: codekestrel@googlemail.com X-Host-Fingerprint: 74.125.82.52 mail-wm0-f52.google.com Received: from [74.125.82.52] ([74.125.82.52:37406] helo=mail-wm0-f52.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A8/F9-28296-DC852275 for ; Thu, 28 Apr 2016 14:39:10 -0400 Received: by mail-wm0-f52.google.com with SMTP id a17so297355wme.0 for ; Thu, 28 Apr 2016 11:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=z7c/dAuK5pKq0BGzbFi8+GAy2UAShtGHoETLEeuEL2c=; b=Kwn64aWQZDDo9jLFdAWmunWJQR/asjT5NHeBEilCQ9npjscTJNJSW5DDjp6Yw/DRH0 1oHB3Lx2hUrSJnL3X9b5khmQrRs3TvuP74AwB5IWOllctkl8/Niplg5ggXPaBD/ZofRt Eoo4XrQqGYJq2IABemm3legR2BEwK4Z7wa027Xq71kLKJfmiD8ugVkQbFfJlJqXNp5uU BFRvA1B8DwpSGuz8jWhzE+Er17s7+5fWTcfh5T6JdUDc4aQ0+OnH5UM5cF3girAAgXsN +2s0f2GUJ05zP/HDS3lD4IhK39hUnGFIYNzaY6HudZ110lA+ybktVZs+Q3wVyxGLA92x ZK4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=z7c/dAuK5pKq0BGzbFi8+GAy2UAShtGHoETLEeuEL2c=; b=YaVgHVsdXhcPelitXTzYN9WbGqXsVcLRhVCxi8zO3fi3Vtp3bNae4aEZBss4gn16+3 /5sm4kzrE11gPVKkxWPe/Z0sMnSzTBfwogHGMW9bYYRwmc8sefqX8LCykwtAmsV/72wD zcfb19qaA0e+Ix1gcCr1BJXmMDUatma5uZxHgbbVRTEVziwrA62dCB5nTQf7QJTAQeSa DMVceh+jLV390xNBgx/gK41WJclTm7A+rxz7J1yInqAovzoRv6JElUA998PFQ+9/t15S Tr+hQFEOtE6yp2yZFuM2XxDbQldoW07KFzfi2jBdm9EbYSUVFT5mJE4Kgd+9uXw+28Qx /KaQ== X-Gm-Message-State: AOPr4FV+ASDNd4HV3JfjJmjOXvRL7LeLj2vvX8d5qxwrlX2/pGCPD1G0oB+Ji0KhUtqYkLRqmDl/MBeQCe7K2Q== MIME-Version: 1.0 X-Received: by 10.28.218.21 with SMTP id r21mr4893185wmg.100.1461868746506; Thu, 28 Apr 2016 11:39:06 -0700 (PDT) Received: by 10.28.140.10 with HTTP; Thu, 28 Apr 2016 11:39:06 -0700 (PDT) Received: by 10.28.140.10 with HTTP; Thu, 28 Apr 2016 11:39:06 -0700 (PDT) In-Reply-To: References: Date: Thu, 28 Apr 2016 19:39:06 +0100 Message-ID: To: Sara Golemon Cc: PHP internals Content-Type: multipart/alternative; boundary=001a1146ddaa58075f05318fd7fb Subject: Re: [PHP-DEV] Inline functions From: codekestrel@googlemail.com (Dominic Grostate) --001a1146ddaa58075f05318fd7fb Content-Type: text/plain; charset=UTF-8 That sounds wicked. I look forward to benchmarking it and seeing how its done. On 28 Apr 2016 6:39 p.m., "Sara Golemon" wrote: > On Thu, Apr 28, 2016 at 1:21 AM, Dominic Grostate > wrote: > > As I understand it, the process by which the call stack is updated and > > scope changed, is quite expensive. And from tests I can see that > function > > calls do actually add a not insignificant overhead to intensive > repetitive > > tasks. > > > > So how difficult would it be to get the engine to determine if an inline > is > > feasible, then skip the fcall init, and dump the a functions opcode emits > > directly into the current scope? > > > I'm actually working on a proof-of-concept of that already. I've > already got basic proxy methods getting inlined, and am working up > through expression methods and trying to resolve scoping with $this > and non-publics. > > I'll publish a branch on github when I have something interesting to share. > > -Sara > --001a1146ddaa58075f05318fd7fb--