comp.lang.ada
 help / color / mirror / Atom feed
From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: Library Level Question
Date: 1999/03/08
Date: 1999-03-08T00:00:00+00:00	[thread overview]
Message-ID: <m3zp5o1gli.fsf@mheaney.ni.net> (raw)
In-Reply-To: wcczp5x9spt.fsf@world.std.com

Robert A Duff <bobduff@world.std.com> writes:

> The explanation below is not quite right.  "Library level" means
> anything whose lifetime is essentially forever -- ie it lasts until the
> end of the whole program.  A variable (or anything else) can be nested
> inside as many packages as you like, and it lasts "forever".  That's
> library level.  OTOH, if it's nested inside a procedure, function, or
> task, then it's not at library level -- its lifetime ends when the
> containing procedure returns, or whatever.
>
> I think "library level" was a poor choice of terms, because it makes
> people think of "library unit", which isn't quite right.


After I posted that response, I regretted it, because I knew it wasn't
right.

I was thinking of a few years back when I was using the VMS Ada
compiler.  They had a restriction about the location of procedures that
could be exported: they had to be at "library level" (DEC's term). 

What that meant to them was that this was legal:

package P is

  procedure Op (O : T);
  pragma Export (Op);

end P;


But this was illegal:

package P is

  package Nested is

    procedure Op (O : T);
    pragma Export (Op);

  end Nested;

end P;


Ada95 has finally solved these problems; I just need to get my terms
straight.







  reply	other threads:[~1999-03-08  0:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-02-15  0:00 Library Level Question Steve Doiel
1999-02-15  0:00 ` Matthew Heaney
1999-02-15  0:00   ` Steve Doiel
1999-02-15  0:00     ` kirk
1999-02-16  0:00       ` Steve Doiel
1999-02-23  0:00         ` Tucker Taft
1999-03-01  0:00   ` Robert A Duff
1999-03-08  0:00     ` Matthew Heaney [this message]
1999-02-15  0:00 ` David C. Hoos, Sr.
replies disabled

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