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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,d10596e187e90822 X-Google-Attributes: gid103376,public From: dale@cs.rmit.edu.au (Dale Stanbrough) Subject: Re: Private Children Date: 1999/06/21 Message-ID: #1/1 X-Deja-AN: 491906581 References: X-Complaints-To: abuse@cs.rmit.edu.au X-Trace: emu.cs.rmit.edu.au 929923352 218 144.205.16.58 (21 Jun 1999 00:02:32 GMT) Organization: RMIT NNTP-Posting-Date: 21 Jun 1999 00:02:32 GMT Newsgroups: comp.lang.ada Date: 1999-06-21T00:02:32+00:00 List-Id: Matthew Heaney wrote: " Can a public child package with its private sibling? According to my compiler, the answer is no. When I try to compile the unit below (P.C2), I get the following error message: gcc -c -gnatc /home/matt/p-c2.ads p-c2.ads:1:06: current unit must also be private descendant of "P" Public child P.C2 only uses the entity provided by its private sibling P.C1 in its private region. What is the rationale for making this illegal?" Tucker Taft once explained that this allows for "compilation privacy" (my description). This guarentees that if a private package spec changes, you don't have to do any recompilation of any public packages (just relinking). Personally I don't care for it, and would have much preferred "implementation privacy" where changes to a spec of a private package could still mean that public clients may have to be recompiled, but not updated in any other way. Dale