comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Don't use the "use" clause
Date: Wed, 25 Jan 2006 15:49:10 +0100
Date: 2006-01-25T15:49:10+01:00	[thread overview]
Message-ID: <jhy2wes1y8jp$.17t7iu2n10zu1$.dlg@40tude.net> (raw)
In-Reply-To: 6NCdnfd8BcbcJEveRVn-pQ@megapath.net

On Tue, 24 Jan 2006 17:38:12 -0600, Randy Brukardt wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
> news:1wq3tkzfwt0bw.1ad4zqlgln451$.dlg@40tude.net...
> ...
>> But Standard cannot be declared within itself, even conceptually! (:-))
>> Anyway nested declarations are equivalent to "use"-ing.
> 
> Not really, direct visibility is a hiding relationship (new items hide old
> ones); use is a canceling relationship.

Well, let's consider a better (IMO) design, which would make "use" illegal
when it would cause any name conflict. The question is: will such
"safe-use" be OK?

>> I must admit, that I never managed to understand the point of use-haters.
>> (Probably because they don't have any (:-)) The packages comprise a tree.
>> With "use"-ing it is levered to a DAG. I would *really* like to be able to
>> do it without "use" as well, i.e. to have children of multiple parents. But
>> that's aside. Is the point that all nodes along any path need to be
>> mentioned? If so, then "use" or not is quite irrelevant. If not then what?
>> To keep it a tree, then "with" must be outlawed as well. I don't get it.
> 
> For me at least, it is about being able to find declarations sensibly -
> without having to rely on fancy tools which necessarily require the code to
> be complete and compilable.

I agree with this.

> Thus, strict limits on use clauses. Moreover,
> nested (direct) visibility is for the birds, in all of its forms. I want
> (and write) prefixes on *all* non-local declarations (with the exception of
> operators, which I consider a property more than a separate entity). That
> means that I do generally write Parent.operation for things declared in the
> parent of a child package. I hate it that the compiler will not allow me to
> enforce this.

Then you should answer the question above as no. Then also it is no matter
whether "use" hides anything. In my view it matters.

> Does this mean that I don't want child packages? Not at all; child packages
> are about extending the parent package. They give access to the entities of
> the private part that are otherwise not visibility in any way. I don't want
> any direct visibility on the parent, and think it is a mistake that it is
> there (it causes various anomolies that we've spent a lot of work
> eliminating from packages with just context clause relationships). Indeed, I
> probably would have modeled the child unit as a special kind of context
> clause, rather than using nesting.

I fully agree with this.

> Remember the difference between "visibility" (the ability to use an entities
> name) and "direct visibility" (the ability to an entities name without
> qualification). I want the former (of course), and only want the latter for
> local declarations.
> 
> Summary: "visibility" == good; "direct visibility" == bad (well, at least if
> not strictly limited).

No. Both are bad because they couple things. I think that access should not
be equivalent to visibility, either direct or indirect.

As for visibility, ideally, there should be only direct one, provided that
the language would ensure consistency of all views and that it would have
tools to control it. For example,

- transitive "use",
- an ability to "use" things visible to another package,
- to merge declaration areas of several packages,
- to export the declaration area of a nested package (especially of an
instantiated generic package)
- proper renaming of objects.
- proper renaming of types,
- tools to prevent naming space contamination by generics.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2006-01-25 14:49 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-15 16:03 Request for comments on simple Ada program Maciej Sobczak
2005-11-15 17:43 ` Samuel Tardieu
2005-11-15 17:47   ` Samuel Tardieu
2005-11-15 21:28   ` Jacob Sparre Andersen
2005-11-15 21:53     ` Samuel Tardieu
2005-11-16  9:10       ` Anders Wirzenius
2005-11-15 21:55     ` Samuel Tardieu
2005-11-16  9:03     ` Niklas Holsti
2005-11-16 14:21       ` Jacob Sparre Andersen
2005-11-16 17:08         ` Niklas Holsti
2005-11-16  7:11   ` Brian May
2005-11-15 18:29 ` jimmaureenrogers
2005-11-15 19:33   ` tmoran
2005-11-16 14:46     ` jimmaureenrogers
2005-11-16 18:05       ` Martin Dowie
2005-11-16 19:54       ` tmoran
2005-11-15 18:52 ` Martin Krischik
2005-11-15 19:33 ` tmoran
2005-11-16  3:10   ` Ada Quality and Style book discussion Anonymous Coward
2005-11-16  4:09     ` tmoran
2005-11-16  5:49     ` Simon Wright
2005-11-16  7:03       ` Martin Dowie
2005-11-17  4:49         ` Anonymous Coward
2005-11-17  6:48           ` Martin Dowie
2005-11-17 11:45           ` Georg Bauhaus
2005-11-17 12:37             ` Stephen Leake
2005-11-17 13:24               ` Georg Bauhaus
2005-11-17 23:15                 ` Stephen Leake
2005-11-19 20:28                   ` Don't use the "use" clause Anonymous Coward
2005-11-19 20:35                     ` Ed Falis
2005-11-21 17:36                       ` David Emery
2005-11-21 19:20                         ` Ed Falis
2005-11-21 22:21                           ` David Trudgett
2005-11-21 22:51                             ` Ed Falis
2005-11-22  0:15                           ` Anonymous Coward
2005-11-23  4:09                             ` Ed Falis
2005-11-23 19:26                               ` tmoran
2005-11-19 21:48                     ` Dmitry A. Kazakov
2005-11-19 22:33                       ` Simon Wright
2005-11-19 23:40                       ` Anonymous Coward
2005-11-20 11:07                         ` Dmitry A. Kazakov
2005-11-20 19:50                       ` Jeffrey R. Carter
2005-11-20  2:53                     ` Stephen Leake
2005-11-20  3:57                       ` Anonymous Coward
2005-11-20 10:44                     ` Pascal Obry
2005-11-20 19:48                     ` Jeffrey R. Carter
2005-11-22  5:11                     ` greptree lou
2005-11-22  6:08                       ` greptree Simon Wright
2005-11-25  1:00                       ` greptree Björn Persson
2006-01-23 12:51                     ` Don't use the "use" clause adaworks
2006-01-23 20:21                       ` Jeffrey R. Carter
2006-01-24  2:27                         ` Stephen Leake
2006-01-24  3:32                           ` Ed Falis
2006-01-24  4:44                           ` Jeffrey R. Carter
2006-01-24 22:53                             ` Stephen Leake
2006-01-24  8:54                           ` Dmitry A. Kazakov
2006-01-24  9:48                             ` Martin Dowie
2006-01-24 10:28                               ` Dmitry A. Kazakov
2006-01-24 13:30                                 ` brian.b.mcguinness
2006-01-24 20:03                                   ` Simon Wright
2006-01-24 23:00                                   ` Stephen Leake
2006-01-25  4:58                                     ` Jeffrey R. Carter
2006-01-24 23:38                                 ` Randy Brukardt
2006-01-25 14:49                                   ` Dmitry A. Kazakov [this message]
2006-01-25 21:46                                     ` Randy Brukardt
2006-01-26  9:14                                       ` Dmitry A. Kazakov
2006-01-27  1:04                                         ` Randy Brukardt
2006-01-27 15:23                                           ` Dmitry A. Kazakov
2006-01-27 16:35                                             ` Georg Bauhaus
2006-01-27 23:09                                               ` Randy Brukardt
2006-01-27 23:18                                             ` Randy Brukardt
2006-01-28 10:41                                               ` Dmitry A. Kazakov
2006-01-24 22:55                             ` Stephen Leake
2006-01-24  9:42                           ` Martin Dowie
2006-01-24 23:02                             ` Stephen Leake
2006-01-25  9:14                               ` Martin Dowie
2006-01-25 11:01                             ` Peter Amey
2006-01-25 11:06                               ` Martin Dowie
2006-01-25 20:07                               ` Jeffrey R. Carter
2006-01-31  2:24                               ` Stephen Leake
2006-02-09  5:13                       ` Anonymous Coward
2005-11-17 20:55           ` Ada Quality and Style book discussion Simon Wright
2005-11-18  0:44             ` Larry Kilgallen
2005-11-19 20:56             ` Anonymous Coward
2005-11-19 22:41               ` Simon Wright
2005-11-20  0:03                 ` Anonymous Coward
2005-11-17  4:23       ` Ada Quality and Style book discussion ("_Type" suffix) Anonymous Coward
2005-11-17 10:51         ` Martin Dowie
2005-11-19 21:52           ` Anonymous Coward
2005-11-20 15:50             ` Martin Dowie
2005-11-17 11:34         ` Georg Bauhaus
2005-11-17 11:53           ` Martin Dowie
2005-11-17 13:26             ` Georg Bauhaus
2005-11-17 12:26           ` Brian May
2005-11-17 13:45             ` Martin Dowie
2005-11-17 14:22               ` Marc A. Criley
2005-11-17 14:50                 ` Martin Dowie
2005-11-18  3:04                 ` Brian May
2005-11-18  9:23                   ` Maciej Sobczak
2005-11-18 14:00                     ` Marc A. Criley
2005-11-18 11:48                   ` Java exception model. Was: " Peter C. Chapin
2005-11-18 13:18                     ` Dmitry A. Kazakov
2005-11-19 18:06                       ` Peter C. Chapin
2005-11-19 18:58                         ` Dmitry A. Kazakov
2005-11-21 22:38                           ` Brian May
2005-11-21 23:27                           ` Brian May
2005-11-18 22:33                   ` Simon Wright
2005-11-17 14:03             ` Hyman Rosen
2005-11-20 19:41         ` Jeffrey R. Carter
2005-11-20 20:43           ` Dmitry A. Kazakov
2005-11-21  0:00             ` Simon Wright
2005-11-16 13:51     ` Ada Quality and Style book discussion Marc A. Criley
replies disabled

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