Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:104402 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 30462 invoked from network); 14 Feb 2019 15:12:22 -0000 Received: from unknown (HELO tbjjbihbhebb.turbo-smtp.net) (199.187.174.11) by pb1.pair.com with SMTP; 14 Feb 2019 15:12:22 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=php.net; s=turbo-smtp; x=1550750145; h=DomainKey-Signature:Received: Received:MIME-Version:References:In-Reply-To:From:Date: Message-ID:Subject:To:Cc:Content-Type; bh=bQRHnzL1Qeq/2YDXbq91PS L6rYg2WDPaIyASx5mXwCo=; b=ZQQekYGZ0phvxQGrrA30CIdG/s+Wu6NhiW9ycc Yiqd+Q2TfcuBUauH5rfKOlKFiPWNgukLG9QSqBVw+W4l0mgphxrR5nTKzFWfZ6cx 9lQxacx1/b7cMei/5JhSpdL+TfQ4JiIbh8RIMjmREU2osyx/6I+r2GMrWNmXBDQw 0N3Xw= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=turbo-smtp; d=php.net; h=Received:Received:X-TurboSMTP-Tracking:X-Gm-Message-State:X-Google-Smtp-Source:X-Received:MIME-Version:References:In-Reply-To:From:Date:X-Gmail-Original-Message-Id:Message-ID:Subject:To:Cc:Content-Type; b=b7RMYCh01fEzgRwj9eqh/kiqrmOhZ9hKvgc8jllpNDTaHIBwr4ZkxchPd6DRv6 X2+BP9NmYsDehXQIE7oACfROaWJkaOObNLq2TBSXP1UKuRNYLmmd1gi+tgsBd09f upfKAIld06nWyukzzK8Whssg5BakBR4TA15eA+newrtnQ=; Received: (qmail 9834 invoked from network); 14 Feb 2019 11:55:44 -0000 Received: X-TurboSMTP-Tracking: 4852414570 X-Gm-Message-State: AHQUAuZ1HB3FFBk82hyZqJismO8E++9F2TeFGMkYjmqqSiKaMvizfn7D TTD6MRS8AqjIK9+TpVNgnG+/AkA1M43hHS8zOLw= X-Google-Smtp-Source: AHgI3IbJ426K2YxRuouQ0OnN9v7uZPIv2JIoTiw23rk+P7I6Abje2PxCy1EFpZ4qP6IF1pr9Qz8o5s5XuzgiTA/gpi4= X-Received: by 2002:ac8:d86:: with SMTP id s6mr2579226qti.324.1550145344525; Thu, 14 Feb 2019 03:55:44 -0800 (PST) MIME-Version: 1.0 References: <01178c69-e021-3865-689c-00c3a1902574@php.net> In-Reply-To: Date: Thu, 14 Feb 2019 13:55:32 +0200 X-Gmail-Original-Message-Id: Message-ID: To: Rowan Collins Cc: Internals Content-Type: multipart/alternative; boundary="0000000000009c59610581d95624" Subject: Re: [PHP-DEV] [RFC] JIT From: zeev@php.net (Zeev Suraski) --0000000000009c59610581d95624 Content-Type: text/plain; charset="UTF-8" On Thu, Feb 14, 2019 at 12:17 PM Rowan Collins wrote: > On Thu, 14 Feb 2019 at 09:43, Zeev Suraski wrote: > >> Does it mean that when PHP 8.0 comes out (in roughly two years' time most >> probably), we'd be saying this is experimental? Or that only in the >> meantime, for the brave folks that want to experiment PHP 8.0 ~2yrs before >> it's released, we'd say it's experimental but will remove that tag by the >> time 8.0 is released? >> > > > The latter. Every new feature is experimental until it's released; scalar > type hints were experimental in master until 7.0 was released; typed > properties are experimental until 7.4 is released; I don't see why this > should be any different. > I'm pretty sure we've had experimental features in released versions. To me tagging something as experimental in master while it's in early development stages is somewhat superfluous - the whole of master should be considered pre-alpha / alpha until it goes to beta. That's why I was asking. > Offering it as >> something experimental (i.e. not for production) in 7.4 can help us with >> that goal, as it will make it easier for a wider range of people to >> experiment with it and provide feedback. >> > > > As I mentioned in a previous e-mail, I'm not clear who these extra users > are, or what value their feedback will be. > I'm not sure who they are either, but much like we've had several folks here on internals report back their experimentation with JIT, I think casting a wider net will likely result in more feedback. On one hand, if someone tests their application on a stale version of the > JIT engine released with 7.4.0, and says "it segfaults when I foo" or "I'm > surprised it doesn't optimise bar", the answer is likely to be "we fixed > that 6 months ago in master". > And that could be a very reasonable answer; Given that it's an experimental feature that someone purposely decided to build and enable, telling them that they can get a more recent version of JIT by using master is not an unreasonable response. > On the other hand, if someone is confident enough to enable an > experimental JIT feature on a server, they're probably fine with running a > pre-alpha snapshot, or building it from source (e.g. by downloading > Rasmus's vagrant box). > We seem to agree, but there's no doubt in my mind that 7.4 will reach a much wider audience than folks who are here on internals. In a nutshell, the fact that they can get a pre-alpha PHP 8 that has JIT, doesn't mean they know it even exists. Including it in 7.4 can help advertise that - of course, other than the fact that I'm sure in many cases it will actually work, enabling them to provide us with real world feedback without having to upgrade to master/8. If we thought that all of them would be bumping into trouble, we wouldn't be proposing it as an option. > If the feature was "mostly finalised but needs more testing", then an > experimental release might make sense; but that's not the impression I get > here, as it's been said over and over that deeper changes are needed to get > the full advantage, and that's why we need PHP 8 in the first place. > Actually, I think it's closer to being "mostly finalized' than it is to requiring a major overhaul. It's our 3rd attempt at it after spending the better part of a decade working on it, and while there's always room for improvement - and there are some specific areas that aren't yet done (platform support, ZTS, etc.) - I don't think we're likely to see fundamental ground-breaking changes. The most common PHP use case - Linux x86/x86_64 single threaded - is probably fairly close to what it will be. Again, like I told Nikita I think that whether or not we include it in 7.4 is a tactical decision (and I'm not sure myself where I stand on it), but I do think there's a reasonable case for both directions. Zeev --0000000000009c59610581d95624--