Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:82954 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 497 invoked from network); 17 Feb 2015 12:55:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Feb 2015 12:55:50 -0000 Authentication-Results: pb1.pair.com smtp.mail=lisachenko.it@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=lisachenko.it@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.45 as permitted sender) X-PHP-List-Original-Sender: lisachenko.it@gmail.com X-Host-Fingerprint: 74.125.82.45 mail-wg0-f45.google.com Received: from [74.125.82.45] ([74.125.82.45:58737] helo=mail-wg0-f45.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A8/C2-19463-55A33E45 for ; Tue, 17 Feb 2015 07:55:50 -0500 Received: by mail-wg0-f45.google.com with SMTP id k14so32217749wgh.4 for ; Tue, 17 Feb 2015 04:55:46 -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=bCCSbAD0mdkFBZjycpuCl7xxYRVg7S1KKlJnPHD6nLk=; b=d5JDSemgT3l3sML9qvwWsrP71IrOd+oKEURkwAkT8zAQmDlZ9CjSDb1xUehyYf6KGu emuM3zg7KKG3rvwBhMZbgHJ4hsb95u9hl+EeRRQYtfTHz1RjX3SbnMfn7msO7TjRJ5OV wIH8sDE46Pxiqkk9TtforFYowcfObbKdrQFKIP6ItVXv86GJ9UCAz1qIbD2NsyW9QDoI uVYjkq+wL3TR6SgEWXn7ai2G3h//hVvfQi6ag4wz4wE6QjMOV7qU5+bqyYOEX+5XpGlQ BT7lzmTJkHGdPnXOWj1gLzKyI1eB6zwSmge89d7qbik5hVFwdRqNhliVTEGzm1zQkXk4 h2hQ== MIME-Version: 1.0 X-Received: by 10.194.75.193 with SMTP id e1mr47112468wjw.126.1424177746546; Tue, 17 Feb 2015 04:55:46 -0800 (PST) Received: by 10.194.154.229 with HTTP; Tue, 17 Feb 2015 04:55:46 -0800 (PST) In-Reply-To: References: Date: Tue, 17 Feb 2015 15:55:46 +0300 Message-ID: To: Leigh Cc: Benjamin Eberlei , PHP internals list Content-Type: multipart/alternative; boundary=047d7bb03ea8ae177c050f483858 Subject: Re: [PHP-DEV] [RFC][Discussion] Parser extension API From: lisachenko.it@gmail.com (Alexander Lisachenko) --047d7bb03ea8ae177c050f483858 Content-Type: text/plain; charset=UTF-8 2015-02-17 15:48 GMT+03:00 Leigh : > So: Internal Parse AST -> Extension Parse AST -> Generate OpCodes -> > OpCache? > Yes, it's correct flow. 2015-02-17 15:48 GMT+03:00 Leigh : > So if the parser extension does anything dynamic, then OpCache will > have the wrong version cached. > This restriction is intended by design, no dynamic changes are allowed. However, if you need, then you can disable an opcode cacher and do anything you want. Your example is actual for production mode of PHP too, when opcache.validate_timestamps=0 or apc.stat=off. Parsing will be performed only once, then you need to clear cache manually to reload changes from the file system. So, parser extension works transparently and used only when needed to process an AST. --047d7bb03ea8ae177c050f483858--