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,45abc3b718b20aa3 X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Two ideas for the next Ada standard Date: 1996/09/05 Message-ID: #1/1 X-Deja-AN: 178627262 references: <5009h5$ir4@netline-fddi.jpl.nasa.gov> <503sbo$j45@goanna.cs.rmit.edu.au> <507akg$t9u@krusty.irvine.com> <322D0803.3E5E@iag.net> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-09-05T00:00:00+00:00 List-Id: T.E.D. asked, replying to me: "> Two things we have considered adding as options to GNAT, which are not > extensions, merely source representation issues, are to allow the > private part to appear in a separate file, or to allow it to appear > in the body. Wouldn't that make package bodies dependant on the BODIES of every package that they "with" (even indirectly)? It seems like that could really balloon compilation times. How would the inevitable circular dependancies be handled?" Well you are dependent on bodies anyway if there is any inlining or any generic subprograms. The GNAT sourced based model COMPLETELY eliminates the problems of circular dependencies. That's something important that you have missed. Indeed one of the big advantages of GNAT is that inline dependencies do not have this problem. Consider: package A with's B, and inlines from it package B with's A, and inlines from it In a traditional library model you can only get inlining in one direction, depending on the order of compilation. With the GNAT sourced based approach, you get inlining in both directions, regardless of the order of the compilation. Dependencies can never be circular, because in GNAT, dependencies are of objects on sources, not, as in a library model, of units on other units.