From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,23c0de5a42cf667e X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,UTF8 Path: g2news2.google.com!news3.google.com!feeder.news-service.com!newsfeed.straub-nv.de!noris.net!nntp.ilk.net!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Wed, 12 May 2010 20:15:55 +0200 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: GNAT packages in Linux distributions References: <87mxw9x7no.fsf@ludovic-brenta.org> <16bz9kvbqa8y9$.155ntpwpwl29d.dlg@40tude.net> <4be97bea$0$2966$ba4acef3@reader.news.orange.fr> <1p87qdlnjbufg.127laayhrw9x3$.dlg@40tude.net> <4j73xhgimt6r$.pu55kne2p2w5$.dlg@40tude.net> In-Reply-To: <4j73xhgimt6r$.pu55kne2p2w5$.dlg@40tude.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-ID: <4beaf05b$0$6880$9b4e6d93@newsspool2.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 12 May 2010 20:15:55 CEST NNTP-Posting-Host: 9da0ceac.newsspool2.arcor-online.net X-Trace: DXC=aGDoP^OQoQc_0Po7BmQ3]lA9EHlD;3Ycb4Fo<]lROoRa8kFjLh>_cHTX3jmI6egbRJafDm X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:11567 Date: 2010-05-12T20:15:55+02:00 List-Id: On 12.05.10 19:24, Dmitry A. Kazakov wrote: > On Wed, 12 May 2010 18:06:16 +0200, Yannick DuchĂȘne (Hibou57) wrote: > >> Well, I've noted you do not like runtime-check because it is not [formal] >> proof of anything, but no one said it is formal proof, this is just better >> to catch error the sooner and understand why this was an error. > > Yes, it is better but that is not the point. Which is there is no > substantial difference between Eiffel precondition and C's if statement > beyond syntax sugar, and that if-statement is less misleading. Another important difference between a simple "if" and DbC assertions: The routine conditions must be consistent along the inheritance chain. It seems silly to have the programmer walk up and down the chain and make sure that substitutability isn't violated by manual "if" style preconditions. Hence, Eiffel's require else and ensure then for overriding routines.