comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@cs.nyu.edu (Robert Dewar)
Subject: Re: Ada.strings.bounded problems?
Date: 21 Jan 1995 13:57:46 -0500
Date: 1995-01-21T13:57:46-05:00	[thread overview]
Message-ID: <3frlfa$rp2@gnat.cs.nyu.edu> (raw)
In-Reply-To: 3fomrv$7i9@disunms.epfl.ch

Magnus may not like the fact that you can legitimately override equality
for non-limited types in Ada 83, but you can, and it is well known how
to do it.

Upwards compatibility means that existing code must work, it does not mean
that existing code that meets Magnus' criterion for what he thinks is OK
must work!

Also, as Norm points out, the incompatibility extends beyond the use of
the Goodneough tecnnique for redefinition of equality.

It's easy to get heated up over minor things in the environment of suitable
heated statements, but in practice I think this is a fairly small issue.
After all it is up to an Ada 95 programmer whether to take advantage
of the new capability or not. It will often mean that the proper decision
is to either make the type limited or tagged. 

It is important to realize the hit on shared generics. THe design of Ada 95
has been carefully done to preserve the practicality of using shared
generics, as is currently done by at least two implementations. In particular,
suppose we have a simple generic with some discrete types as arguments. It
seems unfortunate (both in terms of implementation complexity, and in 
efficiency) to require all equality operations to be done with thunks.

Note that in the case of tagged types, the comparison operations are complex
in any case, and often dispatching, so it is not a significant additional
burden (just always dispatch inside the shared generic).

As is so often the case in language design, delicate compromises are the
order of the day. THis is particularly true when upwards compatibility
must be maintained. It is true that the upwards compatibility criterion 
can result in some compromises that one might prefer not to settle for
(look after all at C and C++!) Some during the ADa 95 felt that we were
not adventurous enough in being incompatible, and some thought we should
have been much MORE compatible. I think that the middle path steered was
about right.

Note incidentally that the non-upwards compatibilities here are of the
worst possible kind: old code compiles fine and executes giving wrong
results.




  reply	other threads:[~1995-01-21 18:57 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <TARJEIJ.95Jan11183331@ulrik.uio.no>
1995-01-12 14:24 ` Ada.strings.bounded problems? Robert Dewar
1995-01-12 15:59 ` Norman H. Cohen
1995-01-13 19:33   ` Mats Weber
     [not found] ` <EACHUS.95Jan11170317@spectre.mitre.org>
1995-01-12 18:10   ` Robert Dewar
     [not found] ` <D29L78.J9@nntpa.cb.att.com>
1995-01-12 18:16   ` Norman H. Cohen
1995-01-13 10:52     ` Tarjei Jensen
1995-01-13 19:29     ` Mats Weber
     [not found]       ` <3fduto$ta7@watnews1.watson.ibm.com>
     [not found]         ` <Mats.Weber-1701951908250001@mlma11.matrix.ch>
1995-01-18 14:27           ` Norman H. Cohen
1995-01-19 16:49             ` Mats Weber
1995-01-21  5:28               ` Robert Dewar
     [not found]             ` <1995Jan19.124412@lglsun.epfl.ch>
1995-01-19 21:59               ` Norman H. Cohen
1995-01-23 15:56                 ` Mats Weber
1995-01-24 18:49                   ` Robert A Duff
1995-01-24 19:24                   ` Robert Dewar
1995-01-25 17:26                     ` Norman H. Cohen
     [not found]                     ` <Mats.Weber-2701952307410001@mlma11.matrix.ch>
1995-01-30 14:15                       ` David Emery
1995-02-01 14:02                         ` William Brennan
1995-02-01 14:28                           ` William Brennan
1995-02-01 20:46                           ` Robert Firth
     [not found]                             ` <3gr5b4$1eq2@info4.rus.uni-stuttgart.de>
     [not found]                               ` <D3H6qD.AD6@inmet.camb.inmet.com>
1995-02-07 20:22                                 ` Norman H. Cohen
1995-02-11 15:58                                   ` David Weller
1995-02-01 21:48                           ` Mark A Biggar
     [not found]                           ` <3grvi1$jvm@gnat.cs.nyu.edu>
1995-02-08 15:22                             ` Passive tasks (was: bounded strings) Schilling J.
1995-02-10  1:51                               ` Robert Dewar
1995-01-20 17:00               ` Ada.strings.bounded problems? Robert Dewar
1995-01-18 16:23           ` Cyrille Comar
1995-01-18 17:48           ` Robert Dewar
1995-01-19  1:36           ` Keith Thompson
1995-01-19 17:53             ` Jacob Sparre Andersen
1995-01-20 11:12               ` Robb Nebbe
1995-01-20 16:03                 ` Magnus Kempe
1995-01-21 18:57                   ` Robert Dewar [this message]
1995-01-23 13:37                     ` Robb Nebbe
1995-01-24 14:38                       ` Robert Dewar
1995-01-24 19:24                       ` Tucker Taft
1995-01-25 10:25                         ` Robb Nebbe
     [not found]                         ` <Mats.Weber-2701952308000001@mlma11.matrix.ch>
1995-01-29  5:29                           ` Robert Dewar
     [not found]           ` <1995Jan18.164836.2222@nbivax.nbi.dk>
1995-01-22 18:05             ` Tucker Taft
1995-01-12 22:17   ` Robert Dewar
     [not found]     ` <D2D8DC.JvM@nntpa.cb.att.com>
     [not found]       ` <3fja22$fab@source.asset.com>
1995-01-18 18:02         ` Norman H. Cohen
1995-01-20  5:12         ` Robert Dewar
     [not found]   ` <D2J8H0.DMu@aplcenmp.apl.jhu.edu>
1995-01-18  5:01     ` Robert Dewar
1995-01-22 18:09     ` Tucker Taft
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox