comp.lang.ada
 help / color / mirror / Atom feed
From: csampson@inetworld.net (Charles H. Sampson)
Subject: Need a Wild Library Unit Elaboration Example
Date: Thu, 13 Oct 2005 23:54:28 -0700
Date: 2005-10-13T23:54:28-07:00	[thread overview]
Message-ID: <1h4eaav.1bgg5vt1bfffh6N%csampson@inetworld.net> (raw)

     I'm preparing a talk on elaboration with the ultimate 
goal being an understanding of the problems you can get 
into with library unit elaboration when you make calls 
between packages.  Most of the emphasis is on the common 
stuff: The package's elaboration code or an object's 
initialization using a subprogram from another package.
 
     I like to end the talk with three examples that I 
characterize as pathological; cross-package dependencies 
you likely wouldn't think of on your first encounter with 
the subject.  Unfortunately for me, one of my examples has 
been obsoleted by pragma Elaborate_Body.  I think three 
examples is just the right number, so I'm asking for your 
favorite examples of cross-package dependencies to fill 
out my list again.
 
     Just to avoid duplication, my two remaining examples 
are elaboration code that calls a protected object entry 
whose barrier condition uses a function from another 
package and elaboration code that calls a task entry that 
has a call to a subprogram from another package in its 
rendezvous.  (I'm not promoting this as good coding 
practice, mind you.  I'm just trying to illustrate how 
hairy things can get, theoretically.)  Also, as part of 
the non-pathological stuff, I've covered the elaboration 
of a statically allocated task's declarative part as part 
of the elaboration of a containing package.

               Charlie



             reply	other threads:[~2005-10-14  6:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-14  6:54 Charles H. Sampson [this message]
2005-10-16  1:01 ` Need a Wild Library Unit Elaboration Example Robert A Duff
replies disabled

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