Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:89922 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 85421 invoked from network); 29 Dec 2015 23:48:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 29 Dec 2015 23:48:24 -0000 Authentication-Results: pb1.pair.com header.from=tomac120@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=tomac120@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.214.174 as permitted sender) X-PHP-List-Original-Sender: tomac120@gmail.com X-Host-Fingerprint: 209.85.214.174 mail-ob0-f174.google.com Received: from [209.85.214.174] ([209.85.214.174:35320] helo=mail-ob0-f174.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 28/3F-51216-8CB13865 for ; Tue, 29 Dec 2015 18:48:24 -0500 Received: by mail-ob0-f174.google.com with SMTP id 18so261936289obc.2 for ; Tue, 29 Dec 2015 15:48:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:cc:content-type; bh=YBowtcWoeA7iLdj+OHEsBIjfvsVPJ2PTr2LSpZng/Fk=; b=rYAy/Jt+kSHDl/J6bthjcc33PJ0QFwNhzLdFNMBGMjFvJaUnWO8tXjkSqp/6d37kpY hfSBGdH20KMB21W+9MPuvz/1Ldmt/G2msxlqo0KudxYNIAPsGgen7PWTbKxWO8fReS5X NIw7IVdguv4APkZUxWkYqwF9ROMr+TWEMqQp5bzx0Cf+cYKDoA5PTLmqrx9DGzgBEUcc ULyW7u3cPKtZwxyA5S5VrPO920omj5xmCfl4MIahCLmipptA9M+abR9nQf6XfMx5nKQ9 WtTzRFD3sVDPSx9GS26/Izai088Pqw7YHqkduLypHJc/PZx8Elm6SGmnrapX8NY/Dm0D x2CA== MIME-Version: 1.0 X-Received: by 10.182.73.225 with SMTP id o1mr40566298obv.80.1451432901739; Tue, 29 Dec 2015 15:48:21 -0800 (PST) Sender: tomac120@gmail.com Received: by 10.202.220.212 with HTTP; Tue, 29 Dec 2015 15:48:21 -0800 (PST) Date: Tue, 29 Dec 2015 18:48:21 -0500 X-Google-Sender-Auth: 1vEru9QY0hmVUomb28aR3pIb_bs Message-ID: To: Yasuo Ohgaki Cc: =?UTF-8?Q?Fran=C3=A7ois_Laupretre?= , "internals@lists.php.net" Content-Type: multipart/alternative; boundary=089e0160b7c68609f70528120e65 Subject: Possible solution to implement type checking hints on stack variables From: ejrx7753@gmail.com (Elijah Johnson) --089e0160b7c68609f70528120e65 Content-Type: text/plain; charset=UTF-8 Hi (all), On Mon, Dec 28, 2015 at 6:23 PM, Elijah Johnson wrote: > Hi (all), > > On Mon, Dec 28, 2015 at 3:40 PM, Yasuo Ohgaki wrote: > >> Hi all, >> >> On Tue, Dec 29, 2015 at 5:28 AM, Yasuo Ohgaki wrote: >> > Object(class) is type, so it makes sense checking class consistency. If >> we >> > check object's class, not only the class but also ancestor classes >> should be >> > checked. This may affect performance. >> > I'm not sure if this worth the effort. >> >> It sounds negative, so I correct this. >> >> Since we have class type hint, it better to support class check. IMO. >> Almost all cases are simple class equality check. So it wouldn't hurt >> performance much, I suppose. >> >> Regards, >> >> -- >> Yasuo Ohgaki >> yohgaki@ohgaki.net >> > > I think that it would be worthwhile to get either a RFC or some test code > on this, the latter depending on how you would assess the difficulty. The > feature itself has a huge demand and goes along the lines of current > development. > > If something could be developed, then we could assess performance. I would > estimate it to be small, however in any case the feature is optional. We're > not anymore considering to increase the size of the z-val. > > The feature has 2 stages, one of which would be drastically easier to > implement and would show us about performance. > > Stage 1 - typing only objects already set by comparing classes upon > assignment, if set a particular mode > > Stage 2 - Adding some form of language hint, which will require a parser > and some method of storing the class hint for null objects. The latter has > a proposed solution not sounding hard to implement, but modifying the > parser sound like a more difficult step. > I'm changing the name of this thread. I'm not sure why the original mailer labeled it "Make strict mode more strict?". This has been a discussion about extending type hinting to stack variables and resulted in a possible/plausible solution that we are looking to evaluate. --089e0160b7c68609f70528120e65--