Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:89517 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 60164 invoked from network); 1 Dec 2015 20:42:45 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 1 Dec 2015 20:42:45 -0000 Authentication-Results: pb1.pair.com header.from=me@daveyshafik.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=me@daveyshafik.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain daveyshafik.com from 209.85.160.172 cause and error) X-PHP-List-Original-Sender: me@daveyshafik.com X-Host-Fingerprint: 209.85.160.172 mail-yk0-f172.google.com Received: from [209.85.160.172] ([209.85.160.172:36584] helo=mail-yk0-f172.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 66/70-55742-3460E565 for ; Tue, 01 Dec 2015 15:42:44 -0500 Received: by ykdr82 with SMTP id r82so22446293ykd.3 for ; Tue, 01 Dec 2015 12:42:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daveyshafik-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=mLwlV9/j7L1uwCQbSYVPe66zOkSZRDIEVc2WSjoqqJw=; b=bugBO11dIOaSPgrCj9gtXepb4iFe2N7gePY42UL+Wl0OFYrMnAehzp5P3mbJfLx+cZ VqQ0i8Y6jPmF5PlyiJfbUGmitS59vEPC/uLd6G8hXCd8EWzDgbmgSMhzMsUBRoyPSbEq 4i4BKUDL5uvDLp5asQ5R+qFWUuYdUbT7Y73josDUv9ulJ6tdHsk2+ka8VL67FyPCAJwh V9dAxkfRD9Mb64wZPow+Jqcv3dD9DKWJoUJ+VjONz95Awy0kxU9kpTaGnIPOWKWuqvf3 h1PqmEp+F3lO2mQ3W5gu77uuU86pJxOx9iti3+9W3rLyiVrHVlEgMfFYRFd/JZ2jB6rL t8kQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=mLwlV9/j7L1uwCQbSYVPe66zOkSZRDIEVc2WSjoqqJw=; b=CM1UhzfxcnRYn4mIU3HqK+34keZ1uhBKIM1JxN0DOMcTbSWq2EJS60txWqA+7pOO/b ciT7za08qUo1SGmljYttzLtB8fPpsAodvo0tmIjWnFrqLfJHevTUWA1Cht/E4OIEeBPk cMKi/CZvVqaF/emshUmjEMRPOJvQX2vcvAL2sUAzCW/0+u4PYzaVbY0rdV+qHB451jUu mBnRjaLzPgOg/C8cFoiFjz3j87+/Jh9Rv0p+vD4m76SYgFDdNwDmMeogx2SqHRzC8Vae 0aUC3o1aHavBPrVO/y5v4qa56fEBxbRnQ4q57nf9rqIyzg+Zgzu6SX9MI+bGU/eqn9ej ZBcg== X-Gm-Message-State: ALoCoQlZw5Gcg11AMg3XeUvAnyJlAW2yCqawno0t3wZYYjiknZivBKSicRzl22cOkJgV4yw1qOSp MIME-Version: 1.0 X-Received: by 10.129.116.85 with SMTP id p82mr59166509ywc.158.1449002560330; Tue, 01 Dec 2015 12:42:40 -0800 (PST) Sender: me@daveyshafik.com Received: by 10.13.253.130 with HTTP; Tue, 1 Dec 2015 12:42:40 -0800 (PST) In-Reply-To: References: Date: Tue, 1 Dec 2015 15:42:40 -0500 X-Google-Sender-Auth: SsBahEBS1PCFisiJ3frCX_BobRg Message-ID: To: "internals@lists.php.net" Content-Type: multipart/alternative; boundary=001a11473d2ce3800b0525dc321f Subject: Re: [RFC] HTTP/2 Server Push support in ext/curl From: davey@php.net (Davey Shafik) --001a11473d2ce3800b0525dc321f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi all, I wanted to give another update, thanks to the input of Sean DuBois, the patch is now pretty much final. There is one more memory leak, but I believe it's in libcurl itself, I'll follow up over there on that. Sara expressed a desire to get this into HHVM, so I'm going to follow up with her specifically to get an opinion on the implementation. Assuming she has no issues, I'd like to talk about moving forward with a vote soon. On Sun, Nov 22, 2015 at 12:14 PM, Davey Shafik wrote: > On Wed, Nov 18, 2015 at 6:34 PM, Davey Shafik wrote: > >> Forgot to mention, if you'd like to try this patch for yourself, check >> out my Docker container stuff here (with instructions :): >> https://github.com/dshafik/php-http2-push-example >> >> On Wed, Nov 18, 2015 at 5:31 PM, Davey Shafik wrote: >> >>> Hey folks, >>> >>> I'd like to introduce a new RFC for 7.1 that will add support for HTTP/= 2 >>> Server Push to ext/curl. >>> >>> This is exposing new features from libcurl to user land, which means >>> they must have the latest (in fact currently unreleased, due to a bugfi= x) >>> version of libcurl. >>> >>> For those who are not aware, HTTP/2 support is growing rapidly, and is >>> already available in 60% of browsers, Apache 2 (via mod_h2), nginx, and >>> even IIS. >>> >>> The RFC can be seen here: https://wiki.php.net/rfc/curl_http2_push >>> With the patch at: >>> https://github.com/php/php-src/compare/master...dshafik:curl-http2-push >>> >>> The patch still needs some work, possibly a lot of work due to my >>> inexperience with C. Specifically, there are some memory leaks I've man= aged >>> to introduce with the headers array stuff (I'm pretty sure, lines >>> 529-535[1]) and there is some duplicated code from interface.c (lines >>> 454-523[2]) that I was unable to refactor out successfully to it's own >>> function. Plus, on the whole it seems incredibly untidy to me. >>> >>> Feedback welcome! >>> >>> - Davey >>> >>> [1] >>> https://github.com/php/php-src/compare/master...dshafik:curl-http2-push= #diff-ab7a9164033bd55887d45d0a6cb837eeR529 >>> [2] >>> https://github.com/php/php-src/compare/master...dshafik:curl-http2-push= #diff-ab7a9164033bd55887d45d0a6cb837eeR451 >>> >> >> > I have made some further changes to this patch (tidied it up a bit, and > refactored out the duplicate code) and RFC (no longer passing in the numb= er > of headers, this was a holdover from the C API and unnecessary in PHP, ju= st > use count() on the header array). > > If you tried out the Docker container, a simple rebuild (perhaps with > --no-cache) will fetch the latest patch and rebuild. > > The memory leaks are still there, and I'm not much closer to plugging the= m > =E2=80=94 again, any help would be appreciated. > > Thanks, > --001a11473d2ce3800b0525dc321f--