comp.lang.ada
 help / color / mirror / Atom feed
From: "Norman H. Cohen" <ncohen@watson.ibm.com>
Subject: Re: packages and private parts
Date: 1997/02/07
Date: 1997-02-07T00:00:00+00:00	[thread overview]
Message-ID: <32FB51D8.1C90@watson.ibm.com> (raw)
In-Reply-To: dewar.855276290@merv


Robert Dewar wrote:

> Well it is no surprise that Norman disagrees, he argued strongly during
> the design, but unpersuasively (i.e. not enough people were persauaded),
> that parent units should be allowed to have declarations limiting what
> children they permit.

Actually, what I argued during the design was not that parent units
should be able to declare themselves childless, but that parent units
should be able to stipulate that certain declarations are hidden even
from children.  (We had already bought the new reserved word "protected"
for use in protected objects, and we could easily have amortized its
cost by allowing a package to have both a protected part visible to
children and a private part hidden from children.)

Robert is right that I was unable to persuade enough people (i.e., a set
of people that included Tucker Taft :-) ) of this position, although
concern about this issue was widespread.  My ally in this argument,
David Pogge, was unable to carry the day even with his colorful warnings
about the "Howard Hughes effect"--total strangers declaring themselves
to be your children.  Indeed, Tucker eventually won me over me with his
argument that adding a child to a package should be viewed as the moral
equivalent of modifying the text of the package.

Long after consensus had been achieved that child packages, with their
associated visibility rules, would be a part of Ada 95, I realized that
a far more serious concern than the Howard Hughes effect was the way in
which child visibility into private declarations of the parent muddied
the contractual interface of a library package, restricting the freedom
of the package's author to change the implementation of a private type
in a later version of a fielded package.  (I discussed this concern in
more detail in another post yesterday.)  I wish this argument had
occurred to me earlier.

--
Norman H. Cohen
mailto:ncohen@watson.ibm.com
http://www.research.ibm.com/people/n/ncohen




       reply	other threads:[~1997-02-07  0:00 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <32F170C8.6A88F208@cam.org>
     [not found] ` <dewar.854838063@merv>
     [not found]   ` <32FA4C67.48D9@watson.ibm.com>
     [not found]     ` <dewar.855276290@merv>
1997-02-07  0:00       ` Norman H. Cohen [this message]
1997-02-07  0:00         ` packages and private parts Robert Dewar
1997-02-14  0:00           ` Norman H. Cohen
1997-02-15  0:00             ` Robert Dewar
     [not found]     ` <32FB27FF.794BDF32@innocon.com>
1997-02-07  0:00       ` Tucker Taft
1997-02-08  0:00         ` Ken Garlington
     [not found]       ` <dewar.855326480@merv>
1997-02-10  0:00         ` Jeff Carter
1997-02-10  0:00           ` Robert Dewar
1997-02-10  0:00           ` Larry Kilgallen
1997-02-10  0:00   ` Jon S Anthony
     [not found] <32F1A8AD.6D6C@ehs.ericsson.se>
     [not found] ` <E4wBxD.Jtp.0.-s@inmet.camb.inmet.com>
     [not found]   ` <32FA579B.2496@watson.ibm.com>
     [not found]     ` <E58onv.4zC@world.std.com>
1997-02-07  0:00       ` Mats Weber
1997-02-07  0:00       ` Mats Weber
1997-02-14  0:00       ` Norman H. Cohen
1997-02-16  0:00         ` Tucker Taft
1997-02-17  0:00           ` Norman H. Cohen
replies disabled

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