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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: spec/body/rep (Was: Compilation error (GNAT bug?)) Date: Tue, 27 May 2014 19:03:23 +0200 Organization: cbb software GmbH Message-ID: <1a5b6te5t9j0q.71cfoecksczw$.dlg@40tude.net> References: <537bd591$0$6621$9b4e6d93@newsspool4.arcor-online.net> <5384b302$0$6663$9b4e6d93@newsspool3.arcor-online.net> <1loe63h8q0q1g.r9u22ub67h47.dlg@40tude.net> <5384c2db$0$6666$9b4e6d93@newsspool3.arcor-online.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: AuYlnUSfTZrfhAkRjyySpQ.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:20073 Date: 2014-05-27T19:03:23+02:00 List-Id: On Tue, 27 May 2014 18:52:44 +0200, in comp.lang.ada you wrote: > On 27.05.14 18:41, Dmitry A. Kazakov wrote: >> It never matters if post-condition you wrote was meant proper >> post-condition = checked at compile time. > > I meant to refer to the effects of the rep aspects: > > Import can surely break contracts, practically, if > the external entity has no notion of Natural'Last? No, it cannot. The contract proper is checked at compile-, latest static linkage-time. You cannot state a contract in terms of Natural'Last if you don't have Natural'Last. The thing you used to call "contract" is merely behavior. It can be any if unspecified => it does not matter => nothing broken. If specified, then the only way to do so formally is per a contract proper. (Informal contract are not a language issue. They are enforced through code reviews, testing etc.) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de