comp.lang.ada
 help / color / mirror / Atom feed
From: Frode Tenneboe <ft@alne.edh.ericsson.se>
Subject: Elaboration circularity
Date: 2000/02/02
Date: 2000-02-02T00:00:00+00:00	[thread overview]
Message-ID: <949502026.152029@edh3> (raw)

I am currently looking into some legacy code which is heavily nested
with cirular dependencies. Compiling with gnat give the following message:

gnatbind -x client.ali
error: elaboration circularity detected
info:    "edhipc (body)" must be elaborated before "edhipc (body)"
info:       reason: Elaborate_All probably needed in unit "edhipc (body)"
info:       recompile "edhipc (body)" with -gnatwl for full details
info:          "edhipc (body)"
info:             is needed by its spec:
info:          "edhipc (spec)"
info:             which is withed by:
info:          "edhipclog (spec)"
info:             which is withed by:
info:          "edhipc (body)"
gnatmake: *** bind failed.
*** Error code 4
make: Fatal error: Command failed for target `client'

As you can see edhipc.adb is referring back to itself. So - I have
to unroll this mess. Are there any handy tricks when doing this?
The exact approach depends of course on the actual software, but
is it generally better to move the code out into new package(s) or
remove the circularity?

 -Frode

-- 
^ Frode Tenneb�                    | email: ft@edh.ericsson.se      ^
| Ericsson Radar AS. N-1788 Halden |                                |
| Phone: +47 69 21 41 47           | Frode@IRC                      |
| with Standard.Disclaimer; use Standard.Disclaimer;                |




             reply	other threads:[~2000-02-02  0:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-02-02  0:00 Frode Tenneboe [this message]
2000-02-02  0:00 ` Elaboration circularity Jeff Carter
2000-02-05  0:00   ` Robert Dewar
2000-02-07  0:00     ` Frode Tenneboe
2000-02-07  0:00       ` Larry Kilgallen
2000-02-07  0:00       ` Robert Dewar
2000-02-02  0:00 ` Matthew Heaney
replies disabled

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