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/07 Message-ID: #1/1 X-Deja-AN: 179140420 references: <5009h5$ir4@netline-fddi.jpl.nasa.gov> <503sbo$j45@goanna.cs.rmit.edu.au> <507akg$t9u@krusty.irvine.com> <322D0803.3E5E@iag.net> <322F94E9.28C6@iag.net> <3231C6E2.678A@iag.net> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-09-07T00:00:00+00:00 List-Id: Ted Dennison said You're right. I am confused. Let's try an example. Supose unit A withs spec B. Spec B withs units C and D, and body B withs units E-K (7 extra units). Now with private parts in the spec, the only time A has to be recompiled is when A, the spec of B, C or D changes. But if B has a private part in the BODY, it seems to me that A would have to be recompiled whenever A, the spec of B, the body of B, or C, D, E, F, H, I, J, or K change. Thus this change (assuming even distribution) makes A nearly 3 times more likely to be obsoleted by a source change. If we start adding with's to units C-K, the odds get even worse. So what am I missing here? What you are missing is that the spec of A is not dependent on the body that is stored in the body file, so it does not transitively pick up the source dependencies of the body. Indeed the compiler won't even look at the body, it will look at the private part. It is just for packaging convenience that one would even consider having the private part in the body, simply to avoid yet another file, but there is no implication that the compiler would look at the body, just because it is in the same file! The upside is that you have one less file, and the private part is simply part of the implementation. Indeed think of the adb file now as an implementation file which contains two items, the private part and the body. The downside, not nearly so severe as you worry about above, is that if you modify the body, then you have to recompile specs, but you do not have to recompile if all you changed was a package on which the body depended (except in the inline case, where of course it is inevitable that this be the case). Obviously this could only happen if a recompile of the entire system took that long. Admittedly, the most extreme I have ever seen was 1 day. But if they hadn't used a dedicated VAX with 2 processors, it could easily have taken twice as long. Well what model of VAX? These are pretty slow machines by todays standards. After all the VAX/780 has a spec marc of 1 by definition, and you can't buy a PC with a spec marc less than about 50!