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,88e7ef9008757431 X-Google-Attributes: gid103376,public From: "Robert I. Eachus" Subject: Re: Function Calls by Address Date: 1999/09/14 Message-ID: <37DEB6F2.4DF91D2E@mitre.org>#1/1 X-Deja-AN: 525128246 Content-Transfer-Encoding: 7bit References: <37CADE68.6AF06F5D@escmail.orl.lmco.com> <37CEEFFA.7D73F78D@magic.fr> <7qooh7$hbh$1@nnrp1.deja.com> <37CFFEA6.921CBE59@magic.fr> <37D03AA4.D26CF868@pwfl.com> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@news.mitre.org X-Trace: top.mitre.org 937342440 10928 129.83.41.77 (14 Sep 1999 20:54:00 GMT) Organization: The MITRE Corporation Mime-Version: 1.0 NNTP-Posting-Date: 14 Sep 1999 20:54:00 GMT Newsgroups: comp.lang.ada Date: 1999-09-14T20:54:00+00:00 List-Id: Marin David Condic wrote: > I think that the use of child units contributes a lot to better overall > code. If nothing else, it helps with configuration management and change > control issues by better isolating where changes occur. > > I never liked the "is separate" and I'm not sure I could tell you why. I > wasn't fond of inheriting such a large context which was not immediately > visible in the code I was editing. I didn't like the fact that recompiling > the parent package would cause recompilation of all the separate units > because you effectively hit their specs... But that is looking at things upside down. One of the most powerful uses of subunits that a subunit can have a context clause. This allows you to migrate some or all of the context clauses from the library unit or body down to the subunits. Now recompiling that package spec will only result in needing to recompile some of the subunits, not the library unit body and all the subunits. But it is the semantic view of this, ignoring recompilation times that makes subunits so powerful. Instead of one monolithic body with dozens of with clauses, you have a body and subunits with only a few withs on each. Finally you can use subunits to write programs that cannot be easily written without them. The easiest way to see this is to imagine trying to write a tool to remove subunits from a program. It cannot be done textually, and even with ASIS it would be a very difficult problem. -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...