Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:65178 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 85156 invoked from network); 25 Jan 2013 17:30:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Jan 2013 17:30:50 -0000 Authentication-Results: pb1.pair.com smtp.mail=zeev@zend.com; spf=unknown; sender-id=unknown Authentication-Results: pb1.pair.com header.from=zeev@zend.com; sender-id=unknown Received-SPF: unknown (pb1.pair.com: domain zend.com does not designate 209.85.219.48 as permitted sender) X-PHP-List-Original-Sender: zeev@zend.com X-Host-Fingerprint: 209.85.219.48 mail-oa0-f48.google.com Received: from [209.85.219.48] ([209.85.219.48:33070] helo=mail-oa0-f48.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 93/01-14132-841C2015 for ; Fri, 25 Jan 2013 12:30:49 -0500 Received: by mail-oa0-f48.google.com with SMTP id h2so730439oag.21 for ; Fri, 25 Jan 2013 09:30:46 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:references:in-reply-to:mime-version:x-mailer :thread-index:date:message-id:subject:to:cc:content-type :x-gm-message-state; bh=/y1p99BZITuPfwbx5fma+EREQuyFyJfu3MCA6OnzUq8=; b=hyfdNWuwCWhYpHb/SojABttecuw4tchJDwlez7qLf0IgZHSweLmqa6DGvnwQzqeoBd pNmmqLhcAoBTxR+qjbGiWs7CCYLyaJ0GnSz0VLNHj/Jby8Mi5KMRjmhHbenIiDh9CN9f dibc3Yo8tNihkx6iFbtbiioGA3Op/teHKhYjRclW70g3SmX30eBrVMOCjXf3vzsuyD9Q +j7VX/uBEsUFIqKdv557fj+odVvZE9IqO191h0D5g5VVrh9PgzpRDbPlbKDUiPMOATLt Mc42Zxf0KvzJtUOv1lXMujFNnEEtIhefz3pTkNGNwtvkVLQsDlm26cd1GE2kJk7aQ2Kj /a4A== X-Received: by 10.60.31.179 with SMTP id b19mr304543oei.16.1359135046490; Fri, 25 Jan 2013 09:30:46 -0800 (PST) References: <51023AB1.2010607@b1-systems.de> <51024016.4010005@lerdorf.com> <5102BDDB.4070506@lerdorf.com> In-Reply-To: <5102BDDB.4070506@lerdorf.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQH5KhtP6VxxLAoJObFXtxoIw+gBzgJTObh3AnFb11YDa6R5KAFZ2VOEAfpcKa4Ci32xQpeTbGxw Date: Fri, 25 Jan 2013 19:30:45 +0200 Message-ID: <0f4aae0765b562c733e9c78fa46495a2@mail.gmail.com> To: Rasmus Lerdorf Cc: Ralf Lang , internals@lists.php.net Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQnPGuiUeuZlxG/ZxmI+dt3gWrBuYkUZ/KoySHlI6GLuSKTVolXaAikDND9X52UMl5JJEFJw3DYJb0qvWkIYg8bwn/A+qRvQhjF1UU6NsbW239V1JFzGe4nrA2rVXeGqpG/fukdq Subject: RE: [PHP-DEV] HEADS UP: Upcoming Feature Freeze for PHP 5.5.0 From: zeev@zend.com (Zeev Suraski) > -----Original Message----- > From: Rasmus Lerdorf [mailto:rasmus@lerdorf.com] > Sent: Friday, January 25, 2013 7:16 PM > To: Zeev Suraski > Cc: Ralf Lang; internals@lists.php.net > Subject: Re: [PHP-DEV] HEADS UP: Upcoming Feature Freeze for PHP 5.5.0 > > On 01/25/2013 08:25 AM, Zeev Suraski wrote: > > > There's another option. We have the Optimizer+ component which is > > current, a bit faster than APC, worked with PHP 5.4 from the get go > > and already fully supports 5.5 - and now that it's been free for use > > for several years, we'd actually be happy to opensource it and make it > > a part of core. An extra benefit would be that we'd commit to > > maintain it, although of course, community contribution will be very > > welcome. > > Here too, it's code with a very long history, some of which even > > predates PHP 4.0. But It Works(tm), and we could put some effort into > > cleaning it up and beautifying it. > > I think we can actually do it on time for 5.5.0, or with a relatively > > minor delay that might be worth it. I'm sure most users would prefer > > the version to take a bit longer if it comes with an opcode cache > > right off the bat. > > There'll most probably be APIs we'd want to merge from APC, but doing > > that should be easy - and we can get the good of both worlds. > > I would be ok with that. The goal here is opcode cacheing in core. How we > get > there is less important. The one thing we can do bringing an old codebase > into > core is to clean it up quite a bit since we'd know the target version. All > the ifdefs > for older versions can go away, and some of the tricks that need to be > done > could be shuffled into the compiler/executor to streamline things. I agree. It would probably make sense to only maintain it for 5.5.0, or perhaps both 5.4.0 and 5.5.0 since those will be the two supported versions for years to come. No real point in supporting 5.3 and earlier, and I bet we can clean things quite a bit with such an assumption. Tighter integration may also prove helpful. > I am also not worried about userspace compatibility for things like > apc_store/fetch. Any software written to make use of that already has > conditional checks around it plus that feature needs a serious re-think > anyway. > Sharing a lock with op_array handling really doesn't scale. Ideally I think we'll want to have some sort of continuity, so we could either keep APC available as a data-cache-only extension (either in core or outside), or merge this code together with Optimizer+. One other thing we may consider is our data caching component, which is already decoupled from Optimizer+, and exposes APC-compatible APIs - we can look into opensourcing it as well (it's already free today). Zeev