Re: gnatbind error: elaboration circularity detected

Thomas De Contes <[email protected]>
Newsgroups gmane.comp.lang.ada.france
Message-ID <[email protected]>
Le 26 janv. 08 à 01:15, Jeffrey R. Carter a écrit :

> Thomas De Contes wrote:
>> private with anneaux;
>> package naturels is
>> 	...
>> private
>> 	type chiffre is ...
>> 	package nb is new anneaux(chiffre);
>
> Dépendence de la "specification" de Naturels sur le "body" d'Anneaux.

ah oui,
D'habitude du code qui fait un "with" ne dépend que de la  
spécification (pas du corps) du paquetage en "with",
Et là, à cause de l'instanciation du paquetage, ça dépend aussi du  
corps,
c'est ça ?

C'est ça qui m'avais échappé, merci :-)

>
>> end naturels;
>> generic
>> 	type element is private;
>> package anneaux is
>> 	...
>> with naturels;
>> package body anneaux is
>
>
> Dépendence du "body" d'Anneaux sur la "specification" de Naturels.
>
> C'est une erreur de votre code.

Bon, ça fiche parterre une partie de ce que j'avais prévu ... :-(

Surtout que quand on a un type accessible par un "limited with", si  
j'ai bien compris on ne peut que faire un pointeur dessus, et  
absolument rien d'autre
Donc on ne peut presque jamais utiliser "limited with"


En attendant mieux, je crois que je vais dupliquer mon paquetage  
anneaux, je vais effacer ce qui concerne les streams (là où j'utilise  
le paquetage naturels), et je vais rebrancher le paquetage naturels  
sur le paquetage anneaux modifié.
Mais c'est sale (énorme duplication de code !!)

Si y en a qui ont un peu de temps, je vous propose de regarder ça  
pour voir si vous avez une meilleure idée (mais c'est touffu, j'ai  
pas tout commenté et j'ai pas pris le temps d'élaguer)
http://dl.free.fr/b7Uzeo1yV/circularity.zip


ps :
Pourquoi dans ce cas c'est seulement au moment du gnatbind que ça  
signale l'erreur,
Alors que quand on fait une boucle directement entre 2  
spécifications, c'est très très rapide et on ne peut même pas tout  
compiler ?


-- 
j'agis contre l'assistanat, je travaille dans une SCOP !


_______________________________________________
Site WWW de l'association Ada-France: http://www.ada-france.org/
[email protected]
http://www.ada-france.org/mailman/listinfo/ada-france
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.