comp.lang.ada
 help / color / mirror / Atom feed
* obsolete vs. removed from the library
@ 1987-03-08  7:02 Bryan
  1987-03-11 22:29 ` John B. Goodenough
  0 siblings, 1 reply; 3+ messages in thread
From: Bryan @ 1987-03-08  7:02 UTC (permalink / raw)



Dear Ada Fans (if you're not a fan of Ada, I don't care that you read this),

I'm confused again... is there a difference between "obsolete" compilation
units and units "removed" ("deleted" for you VMS fans) from the library?
Consider:

	package P is end P;

	with P;
	procedure Q is begin null; end;

	package P is end P;

	with P;
	procedure Q is begin null; end;

The second compilation of P makes Q obsolete.  It also makes the implicit
specification of Q (which is in the library) obsolete.  Does this mean
that the second compilation of the body of Q is invalid since it is
a secondary unit of an obsolete spec?

This is related to a question I sent out a while ago, but never received
any replies to.  Are there only two library states associated with a unit,

	1. not in the library; never successfully compiled.
	2. in the library; ready to elaborate

??

Or are there three library states assocaited with a unit?

	1 - 2 as above
	3. obsolete; not ready to elaborate, but was successfully
	   compiled once

doug
-------

^ permalink raw reply	[flat|nested] 3+ messages in thread
* obsolete vs. removed from the library
@ 1987-03-14 16:03 amn
  0 siblings, 0 replies; 3+ messages in thread
From: amn @ 1987-03-14 16:03 UTC (permalink / raw)


According to LRM 10.1:6  a subprogram body is treated as a secondary
unit if the program library already contains a library unit (= a sub-
program declaration) that is a subprogram with the same name.
This means that to recompile a library subprogram the declaration
or context clauses of which have been changed one has to compile
a genuine subprogram specification without the corresponding body
as a separate compilation unit.

LRM 10.3:5 states that obsolete compilation units must be recompiled
unless they are no longer needed.  I think this means you cannot
recompile a subprogram body if its specification is obsolete, as
the recompilation needs the specification.

I am not sure whether there is any need for having obsolete
compilation units in the library.  I think that 10.3:5 means that
obsolete compilation units cannot be utilized.  The only reason
to have obsolete compilation units in a program library could be
that the compilation library tools can decide which compilation
units need to be recompiled after an 'obsoleting' compilation.

Ari Mujunen
Helsinki University of Technology
(mcvax!penet!hut!amn, I suppose)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1987-03-14 16:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1987-03-08  7:02 obsolete vs. removed from the library Bryan
1987-03-11 22:29 ` John B. Goodenough
  -- strict thread matches above, loose matches on Subject: below --
1987-03-14 16:03 amn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox