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,6161bc9aa025a9a3 X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Subunits of packages vs. subunits of subprograms Date: 1996/07/11 Message-ID: #1/1 X-Deja-AN: 167939161 references: organization: Courant Institute of Mathematical Sciences keywords: separate, subunit, stub newsgroups: comp.lang.ada Date: 1996-07-11T00:00:00+00:00 List-Id: Tuck said "In any case, our AdaMagic(tm) front end implements the approach Robert mentions, namely that subunits nested only in packages are "truly" separately compiled, whereas subunits nested in any non-package are "inlined" at the point of the stub. If the subunit is not available when this "inlining" would take place, we issue a warning that the enclosing unit will need to be recompiled when the subunit is available. We don't consider this an error, and the (pre)linker will by default perform the needed recompilation if necessary." OK, so interesting that we both agree on not trying to handle subunits nested in non-packages truly separately. One can imagine programs that would be badly affected by this (I know of one, the old Alsys front end technology which used a separate procedure for each pass (remember that in that compiler, all local access types were automatically cleaned up on scope exit, so this arrangement makes reasonable sense), but in practice there don't seem to be other examples like this. As to the procedures, GNAT would be very similar. I am not sure about the proper default, I am not sure I like the recompilation structure being affected by what happens to be around when you compile, but in any case gnatmake would work as Tuck describes their prelinker working, it would complete any required compilations.