comp.lang.ada
 help / color / mirror / Atom feed
* Circular Elaboration
@ 1998-11-09  0:00 tgederberg
  1998-11-10  0:00 ` Mark
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: tgederberg @ 1998-11-09  0:00 UTC (permalink / raw)


Hi,
I'm trying to port a program written in Ada 83 on a Dec Alpha to Ada 95 (Gnat)
on windows NT.  During binding I get several circular elaboration error
messages.  One of the messages is like:

"E (spec)" must be elaborated before "A (body)"
"A (spec)" must be elaborated before E (spec)"
"E (body)" must be elaborated before "A (spec)"
reason: Elaborate_All probably needed in unit "A (spec)"
  "E (body)"
    is needed by its spec:
  "E (spec)"
    which is withed by:
  "A (body)"
    which is needed by its spec:
  "A (spec)"
    which is withed by:
  "D (spec)"
    which is withed by:
  "C (body)"
    which is needed by its spec:
  "C (spec)"
    which is withed by:
  "B (body)"
    which is needed by its spec:
  "B (spec)"
    which is withed by:
  "A (spec)"

I tried doing the Elaborate_All in the "A (spec)" as suggested by the
compiler, but get the same error (except it now says the reason is that I am
using the Elaborate_All pragam).

Any ideas or suggestions would be greatly appreciated.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




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

* Re: Circular Elaboration
  1998-11-09  0:00 Circular Elaboration tgederberg
@ 1998-11-10  0:00 ` Mark
  1998-11-12  0:00   ` dewarr
  1998-11-12  0:00 ` dewarr
  1998-11-13  0:00 ` Mats Weber
  2 siblings, 1 reply; 8+ messages in thread
From: Mark @ 1998-11-10  0:00 UTC (permalink / raw)


try using the -f gnatmake qualifier

tgederberg@my-dejanews.com wrote in article
<727kvi$s42$1@nnrp1.dejanews.com>...
> Hi,
> I'm trying to port a program written in Ada 83 on a Dec Alpha to Ada 95
(Gnat)
> on windows NT.  During binding I get several circular elaboration error
> messages.  One of the messages is like:
> Any ideas or suggestions would be greatly appreciated.





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

* Re: Circular Elaboration
  1998-11-09  0:00 Circular Elaboration tgederberg
  1998-11-10  0:00 ` Mark
@ 1998-11-12  0:00 ` dewarr
  1998-11-13  0:00 ` Mats Weber
  2 siblings, 0 replies; 8+ messages in thread
From: dewarr @ 1998-11-12  0:00 UTC (permalink / raw)


In article <727kvi$s42$1@nnrp1.dejanews.com>,
  tgederberg@my-dejanews.com wrote:
> Hi,
> I'm trying to port a program written in Ada 83 on a Dec
Alpha to Ada 95 (Gnat)
> on windows NT.  During binding I get several circular
elaboration error
> messages.  One of the messages is like:
>
> "E (spec)" must be elaborated before "A (body)"
> "A (spec)" must be elaborated before E (spec)"
> "E (body)" must be elaborated before "A (spec)"
> reason: Elaborate_All probably needed in unit "A (spec)"
>   "E (body)"
>     is needed by its spec:
>   "E (spec)"
>     which is withed by:
>   "A (body)"
>     which is needed by its spec:
>   "A (spec)"
>     which is withed by:
>   "D (spec)"
>     which is withed by:
>   "C (body)"
>     which is needed by its spec:
>   "C (spec)"
>     which is withed by:
>   "B (body)"
>     which is needed by its spec:
>   "B (spec)"
>     which is withed by:
>   "A (spec)"
>
> I tried doing the Elaborate_All in the "A (spec)" as
suggested by the
> compiler, but get the same error (except it now says the
reason is that I am
> using the Elaborate_All pragam).
>
> Any ideas or suggestions would be greatly appreciated.
>
> -----------== Posted via Deja News, The Discussion
Network ==----------
> http://www.dejanews.com/       Search, Read, Discuss, or
Start Your Own
>

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




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

* Re: Circular Elaboration
  1998-11-10  0:00 ` Mark
@ 1998-11-12  0:00   ` dewarr
  1998-11-19  0:00     ` News
  0 siblings, 1 reply; 8+ messages in thread
From: dewarr @ 1998-11-12  0:00 UTC (permalink / raw)


In article <01be0cca$1eca8af0$0f010180@nc84c>,
  "Mark" <mark@lourow.demon.co.uk> wrote:
> try using the -f gnatmake qualifier


This is completely unhelpful advice, the -f qualifier for
gnatmake forces recompilation which is of course completely
irrelevant.


-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




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

* Re: Circular Elaboration
  1998-11-09  0:00 Circular Elaboration tgederberg
  1998-11-10  0:00 ` Mark
  1998-11-12  0:00 ` dewarr
@ 1998-11-13  0:00 ` Mats Weber
  2 siblings, 0 replies; 8+ messages in thread
From: Mats Weber @ 1998-11-13  0:00 UTC (permalink / raw)


tgederberg@my-dejanews.com wrote:

> I tried doing the Elaborate_All in the "A (spec)" as suggested by the
> compiler, but get the same error (except it now says the reason is that I am
> using the Elaborate_All pragam).
> 
> Any ideas or suggestions would be greatly appreciated.

You really want to carefully read the section on elaboration in the GNAT
User's manual.




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

* Re: Circular Elaboration
  1998-11-12  0:00   ` dewarr
@ 1998-11-19  0:00     ` News
  1998-11-21  0:00       ` dewar
  0 siblings, 1 reply; 8+ messages in thread
From: News @ 1998-11-19  0:00 UTC (permalink / raw)


Sorry the -f is a gnatbind qualifier to sort out an elaboration order that
should work.






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

* Re: Circular Elaboration
  1998-11-19  0:00     ` News
@ 1998-11-21  0:00       ` dewar
  1998-11-21  0:00         ` Corey Ashford
  0 siblings, 1 reply; 8+ messages in thread
From: dewar @ 1998-11-21  0:00 UTC (permalink / raw)


In article
<911516032.13995.0.nnrp-02.d4e42992@news.demon.co.uk>,
  "News" <news@lourow.demon.co.uk> wrote:
> Sorry the -f is a gnatbind qualifier to sort out an
elaboration order that
> should work.
>


This is bad advice. Please read the relevant lengthy
section in the GNAT users guide. If you just can't stand
reading documentation (a malady that seems to affect a
growing number of programmers), then at least read the
summary recommendations at the end of this section.

Robert Dewar
Ada Core Technologies

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




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

* Re: Circular Elaboration
  1998-11-21  0:00       ` dewar
@ 1998-11-21  0:00         ` Corey Ashford
  0 siblings, 0 replies; 8+ messages in thread
From: Corey Ashford @ 1998-11-21  0:00 UTC (permalink / raw)



<dewar@gnat.com> wrote in message news:7358ju$ptj$1@nnrp1.dejanews.com...
>In article
><911516032.13995.0.nnrp-02.d4e42992@news.demon.co.uk>,
>  "News" <news@lourow.demon.co.uk> wrote:
>> Sorry the -f is a gnatbind qualifier to sort out an
>elaboration order that
>> should work.
>
>This is bad advice. Please read the relevant lengthy
>section in the GNAT users guide. If you just can't stand
>reading documentation (a malady that seems to affect a
>growing number of programmers), then at least read the
>summary recommendations at the end of this section.

The only documentation I'll read is this email that
I'm writing now... and I'll only skim it!

:-)

- Corey






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

end of thread, other threads:[~1998-11-21  0:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-11-09  0:00 Circular Elaboration tgederberg
1998-11-10  0:00 ` Mark
1998-11-12  0:00   ` dewarr
1998-11-19  0:00     ` News
1998-11-21  0:00       ` dewar
1998-11-21  0:00         ` Corey Ashford
1998-11-12  0:00 ` dewarr
1998-11-13  0:00 ` Mats Weber

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