Hi all, On Sat, Feb 14, 2015 at 12:03 PM, François Laupretre <franc...@php.net> wrote: > > > De : yohg...@gmail.com [mailto:yohg...@gmail.com] De la part de Yasuo Ohgaki > > > > We have discussed most of issues for https://wiki.php.net/rfc/dbc2 > > I am not sure anyone except hardly 5 people has the impression that the subject was discussed, as the RFCs were not even officially announced on the list. OK, you discussed with 2 or 3 people about building your RFC. Now, the RFC is here, and the REAL OPEN discussion can start with a new thread prefixed with '[RFC]'. You cannot open a vote before anyone had a chance to give its opinion.
Open discussion is needed, of course. What I meant is discussion for writing up draft RFC is close to finish. > > Actually, I was waiting for the end of the 'scalar type hinting' vote to start the DbC discussion but we can start it now. > Yes, if we can confirm everyone think the draft is ready to be discussed. According to RFC for voting. We must send mail titled "[RFC]" for discussion. > About all the missing stuff you include in your mail, is your RFC really ready to start a discussion if there are still so many missing things ? I'm afraid it is not. Don't worry, we'll have discussion for vote. We had discussion for writing RFC. > > > "These observations shed light on the true significance of inheritance: not just a reuse, > > subtyping and classification mechanism, but a way to ensure compatible semantics by > > other means. They also provide useful guidance as to how to use inheritance properly." > > Do you seriously plan to include such bullshit in your RFC ? I don't care. It's a statement from Eiffel folks. We don't have buy it. > > > For method calls, overridden method should not evaluate parents contract on entry. > > It should be evaluated when parent method is called. > > I already told you : the logic you are using for pre-conditions is NOT compatible with Eiffel and D logic, although this is what you're supposed to mimic. It is actually the opposite. Is it a wanted behavior ? because you should be aware that it does not respect the LS principle. I'll check how your RFC is handling this later. > > > - Consider introduction of static require() as class invariant for static methods > > I probably don't understand the idea correctly. Could you give some explanations? > > He's probably talking about a new set of conditions that couldn't use '$this'. Unlike 'dynamic' invariants, these can also be checked before and after static methods. OK. So it's for invariant. > > > Syntax is not my priority. > > We are better to avoid new keyword whenever it's possible. > > Just my opinion : syntax IS important. I agree that new keywords should be avoided but reusing 'require' and 'return' is too ambiguous. I say that syntax is important because I'm sure that's the only point people will complain about. Right. That's the reason why syntax is not important to me. I just would like to accept whatever syntax that does not have issues. > > > How to manage votes for 2 RFCs > > Your RFC is not even ready for discussion. Anyway, the vote will probably be about your RFC only. Yes, we need to finish draft for discussion. Why? There are many who people like annotation approach. > > > ==Annotation DbC Implementation== > > Dmitry, I guess it wouldn't be too hard for you to implement this RFC. How about annotation > > version? Can it be implemented with reasonable amount of efforts? > > My RFC is not supposed to be implemented in the core. Derick is OK to help me adding the feature to Xdebug. This way, it will be available for every PHP versions supported by Xdebug. > > Actually, I keep the RFC to get people's opinion and to refine what I have in mind after scalar type hints are voted upon but, technically, I don't need it anymore. I see. Xdebug or other annotation would work. I didn't have much time to read/verify your RFC. I'll read it again soon. > > > Native DbC support syntax: > > class Child { > > require($this->age < 18); // Invariant (Class state condition) > > If, after writing the RFC, you keep writing your conditions after the first '{', are you sure your syntax is so intuitive ? ;) Any syntax needs time to getting use to it :) > > And, please, prefix lines with '>' chars when you post a reply. Thanks. Did gmail something wrong? What kind of problem was it? I've removed text formatting, so this time it shouldn't have issues. Regards, -- Yasuo Ohgaki yohg...@ohgaki.net