Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:80353 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 40226 invoked from network); 11 Jan 2015 05:33:58 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Jan 2015 05:33:58 -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.217.180 as permitted sender) X-PHP-List-Original-Sender: pierre.php@gmail.com X-Host-Fingerprint: 209.85.217.180 mail-lb0-f180.google.com Received: from [209.85.217.180] ([209.85.217.180:49085] helo=mail-lb0-f180.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id EB/DD-48183-54B02B45 for ; Sun, 11 Jan 2015 00:33:58 -0500 Received: by mail-lb0-f180.google.com with SMTP id l4so13493614lbv.11 for ; Sat, 10 Jan 2015 21:33:55 -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=NeIfcVZThB0ScuKGrGobyYO9rot/pJos864e2dS72nw=; b=lJBlvZAyxqQ9o+zFLRp/dsZ8HiR9TwVzWDwPnTOPSwhfkBV+BQAY2HJDEVdhfgmQCu tRZLltCKj890nDiL14BL1MF3cDKXgsWa56hp0VdStlZYWbFNFekL/OzjBBLEKeW9zOqW 1QuUkxUVZtsd8qCYuP1ARbFX5nSX06Q1ztKhm1h4Gka56xjmylZzCiVH7w73k8UKhHpX tN3noVdfQ7hODnEfSGAs0aVIlh0e6svw9EUvpOcAyP35VgxG1oVJqVC6/VaZZzH8u/c/ GBH9GoNngGO1+9kOE1fTMXYeAtaY8ghG1kdYQa17doX9ertFif4bSn0tSyeMeP2iEuOk M/9g== MIME-Version: 1.0 X-Received: by 10.112.151.4 with SMTP id um4mr30581873lbb.50.1420954435200; Sat, 10 Jan 2015 21:33:55 -0800 (PST) Received: by 10.112.154.133 with HTTP; Sat, 10 Jan 2015 21:33:54 -0800 (PST) Received: by 10.112.154.133 with HTTP; Sat, 10 Jan 2015 21:33:54 -0800 (PST) In-Reply-To: <003c01d02d58$731d0cc0$59572640$@tekwire.net> References: <001501d02ccc$574a6bf0$05df43d0$@tekwire.net> <000a01d02cf8$ab090130$011b0390$@tekwire.net> <003c01d02d58$731d0cc0$59572640$@tekwire.net> Date: Sat, 10 Jan 2015 21:33:54 -0800 Message-ID: To: =?UTF-8?Q?Fran=C3=A7ois_Laupretre?= Cc: Dmitry Stogov , Sara Golemon , Laruence , Derick Rethans , PHP internals , Benjamin Eberlei Content-Type: multipart/alternative; boundary=047d7b3a829e5a2f48050c59bc37 Subject: RE: [PHP-DEV] [RFC] Extension Prepend Files From: pierre.php@gmail.com (Pierre Joye) --047d7b3a829e5a2f48050c59bc37 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Jan 11, 2015 11:38 AM, "Fran=C3=A7ois Laupretre" = wrote: > > > De : Pierre Joye [mailto:pierre.php@gmail.com] > > > > > Sorry, I am not sure I understand how the opcode cache, as it exists now, > > can understand this. Do you mean that opcode cache code would need to b= e > > modified ? > > > > Yes and no. Yes if we want them to do not even try to update files > > that are statically built in extensions. And yes, if we want that (for > > whatever reasons I cannot think about right now). > > Sorry, it must be too late :) > > AFAIR, the opcode cache attempts a stat() call on the filename it receives to get its mtime and use it to determine if file was modified since it was cached. I don't understand how an opcode cache can do a stat() on the filename you provide as, without a stream wrapper, there is no way to access such information (which doesn't even have any sense here). Your filename will be recognized as a plain filename, the libc stat() call will look for this filename in the current directory, it won't be found, and opcode caching will fail. If the file doesn't have an associated stream-wrapped path, you cannot issue a stat() on it and I don't see how it can be cached. Where am I wrong ? Say we do support builtin scripts, an opcache will simply load them on minit or on the first request and flag them as permanent. Yes, it means we need to change opcache but could be way easier than trying to hack the engine to support persistent Opcodes without ending with ... an opcache. > > That's PHP7, we can and have already broken BC internally. > > So, you confirm that opcache is the only supported opcode cache in PHP 7 ? That's a good thing. I know that PHP7 breaks BC, I just wanted to know if developments in this branch had to remain compatible with APC and friends. It is almost already the case for 5.5+, apc is dead for anything >=3D 5.5 --047d7b3a829e5a2f48050c59bc37--