TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Reply To:
Date:
Fri, 16 Feb 2001 15:53:38 -0500
Content-Type:
text/plain
Parts/Attachments:
text/plain (27 lines)
Anyway, I do not remember the exact nature of the type.  And I do not
believe the check suppression was done at link time, nor did the vendor
claim it was.

The point was that the LRM said that one of the steps of an assignment is
to check the right-hand value against the constraints of the left-hand
subtype.

The vendor traced the value back to the fact that it entered this program
by unchecked conversion from an interface.  And then said, "Not our
problem."  (which they said a LOT in those days).  And of course, they were
partly right THIS time.  Somebody should have applied a legality check on
receipt.  (The theory was, the other side is Ada, so it's impossible for it
to be out of range.  Obviously, it was possible cause it happened.)

My contention is that it should be illegal for the compiler to do such an
optimization.  To simplify the situation,  let's reduce it to two packages,
X and Y.

Put all the same source code in two libraries.  In one library, compile
spec X, spec Y, body Y, body X, then link.  In the other, compile spex X,
body X, spec Y, body Y, then link.  Is it legal for the two programs
(absent tasking) to have different behavior with the same inputs?

But anyway, this is water under the bridge.  It happened sometime between
1989 and 1993.

ATOM RSS1 RSS2