Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:82052 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 70810 invoked from network); 6 Feb 2015 15:39:25 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 6 Feb 2015 15:39:25 -0000 Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.220.181 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.220.181 mail-vc0-f181.google.com Received: from [209.85.220.181] ([209.85.220.181:37345] helo=mail-vc0-f181.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F8/27-45146-C20E4D45 for ; Fri, 06 Feb 2015 10:39:25 -0500 Received: by mail-vc0-f181.google.com with SMTP id im6so676825vcb.12 for ; Fri, 06 Feb 2015 07:39:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Dk6q6KJr7qc16Qvs4p8M9vFKxwDa0vQBLy9Mdp4KRHI=; b=hWmAtsDZIeW0x/LFXtjh8ODJFvyQc2UIXWTQEGRvk2SAiXHYkmxEeN+6HovKooypIv SL4Ub2NtTx2IbHLMi6UPk5wpfo9gnMrlnc/4hRjNsBnv9eDxsxMyhEw3/uGYT+zvFYbw dKSDo4q1D4+kR6RVROJ6MHUwuHymExA/bVxbZkuIAXCg0pqmNjtPTLx/i+eWOQYtlPIJ lZ+fh2ZtLD8vLMznLBMNeghRvyGVk++ybEQSp2frfkZofR6AHSgKMQR0E4IKXzcXe1mn NgLsnk/0WQbTuXhrPPqSG1PI76H64j9up5CkI1HY47apOxFn4jN6pHDBa9wcZXYm7qli xRwQ== X-Gm-Message-State: ALoCoQlgacgU7o6Q8KGC7oHRNwva+EY1rKSHMwxT5TRVznMYrh+bZDBomarU3JdE99bZSZZty/a0q/s/zpTInEIDcc78xnhyGiWMUa0Nx9D1pcE9VFQDbOuyFot5fj15EjpJoSXgqHcZkc8cjpeaSSOhrS1Md4H1HA== MIME-Version: 1.0 X-Received: by 10.221.21.131 with SMTP id qs3mr2443213vcb.33.1423237162452; Fri, 06 Feb 2015 07:39:22 -0800 (PST) Received: by 10.52.74.73 with HTTP; Fri, 6 Feb 2015 07:39:22 -0800 (PST) In-Reply-To: References: <54D37D41.2030706@hoa-project.net> <54D470FA.6000303@hoa-project.net> <02d301d041f3$0c5f3990$251dacb0$@tekwire.net> <031501d04217$b393bff0$1abb3fd0$@tekwire.net> Date: Fri, 6 Feb 2015 19:39:22 +0400 Message-ID: To: "guilhermeblanco@gmail.com" Cc: =?UTF-8?Q?Fran=C3=A7ois_Laupretre?= , Yasuo Ohgaki , Pierre Joye , "Ivan Enderlin @ Hoa" , PHP Internals Content-Type: multipart/alternative; boundary=001a11339f8a7ff2b1050e6d392d Subject: Re: [PHP-DEV] Design by Contract From: dmitry@zend.com (Dmitry Stogov) --001a11339f8a7ff2b1050e6d392d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I think the original proposal is more consistent then the simple one. Most probably, it just came not in right time. In case @internals really like annotations and we came to consensus how it should look like, I may take care about efficient implementation. Thanks. Dmitry. On Fri, Feb 6, 2015 at 6:19 PM, guilhermeblanco@gmail.com < guilhermeblanco@gmail.com> wrote: > Hi Dmitry, > > Actually the RFC was approved by 1 or 2 votes more than needed, but the > overall response from core maintainers was that it was overly complex, > adding features the language did not support until that point (named > parameters, short array syntax as examples), it was broken with the > proposed opcache merge (was not a trivial fix IIRC) and memory expensive. > > I think a simpler approach could work now as I suggested in previous > messages. It does not add new features besides annotations itself. > We'd still have to discuss about the memory usage and where the metadata > class instances should be placed. > > []s, > > On Fri, Feb 6, 2015 at 10:12 AM, guilhermeblanco@gmail.com < > guilhermeblanco@gmail.com> wrote: > >> Dmitry, >> >> Doc comments are terrible. I really want you to spend some time looking >> at what we had to do inside of Doctrine Annotations to make it work. We >> have to token_get_all() the file to be processed and track for "use"s to >> allow importing inside of doc blocks. We also had to build a top-down >> recursive parser to make it work... don't you think it's too much? As on= e >> of the library maintainers, I do, by heart. >> >> We have until Mar 15 to work on something and propose. I can work on it >> without any problems, but as an enthusiast of PHP, it's very frustrating >> that I spend time to make PHP better and none even care to review PRs or >> simply ignore messages on php-internals. If anyone compromise to review, >> I'd do my best to get it ready yesterday if it was possible! >> >> Thanks, >> >> On Fri, Feb 6, 2015 at 9:40 AM, Dmitry Stogov wrote: >> >>> I see your point, and, of course, it makes sense, but it also means tha= t >>> no >>> new PHP7 features might not be used in these frameworks and libraries >>> for a >>> long time. Should we stop add new features in major releases? >>> >>> As I said, according to DbC, I'm not sure if it should be defined on >>> language level. Doc comments or annotations with external tools might b= e >>> good enough. >>> >>> Thanks. Dmitry. >>> >>> On Fri, Feb 6, 2015 at 5:17 PM, Fran=C3=A7ois Laupretre >> > >>> wrote: >>> >>> > > De : yohgaki@gmail.com [mailto:yohgaki@gmail.com] De la part de >>> Yasuo >>> > Ohgaki >>> > >>> > > Personally, backward compatibility is not too important. >>> > > PHP5 is dead by PHP 7.2 release... This is the reason why. >>> > > It's only 3 years later, only 2 years later after PHP 7.0 release. >>> > >>> > That's where we disagree, as I think it's most important. >>> > >>> > Thinking that PHP 5 is dead in 3 years is extremely na=C3=AFve IMO. Y= ou >>> > probably didn't live the PHP 4/5 migration but I guess we won't have >>> more >>> > than 30 % of production servers under PHP 7 in 2018, just due to the >>> delays >>> > of distros, hosting companies, and others. >>> > >>> > Now, suppose you're distributing a library or a framework, like >>> Symfony, >>> > Doctrine, etc. Someone tells you : "Here's the new DbC feature. You >>> can use >>> > it but this implies splitting your code to two independent branches a= nd >>> > maintain them in parallel until you have no PHP 5 customer anymore.". >>> What >>> > do you think you'll do (or won't do) ? >>> > >>> > @Pierre,@Dmitry : you have a better vision than mine on the migration >>> > process. What's your opinion on forcing software developers to >>> maintain two >>> > separate branches ? >>> > >>> > Once again, the conditions in @assert lines ARE PHP code. There's no >>> new >>> > syntax. There is no real difference between writing >>> 'assert()' >>> > and '@assert ', especially if the require/ensure blocks >>> should >>> > contain 'assert' statements only. >>> > >>> > > What I believe is not important to you. I could be wrong. >>> > >>> > It is important. As I may be wrong too. >>> > >>> > Cheers >>> > >>> > Fran=C3=A7ois >>> > >>> > >>> >> >> >> >> -- >> Guilherme Blanco >> MSN: guilhermeblanco@hotmail.com >> GTalk: guilhermeblanco >> Toronto - ON/Canada >> > > > > -- > Guilherme Blanco > MSN: guilhermeblanco@hotmail.com > GTalk: guilhermeblanco > Toronto - ON/Canada > --001a11339f8a7ff2b1050e6d392d--