Bug des compilos Gnat ou d'Ada en général

Bug des compilos Gnat ou d'Ada en général - Ada - Programmation

Marsh Posté le 17-12-2006 à 13:41:36    

Bonjour  :hello: ,
 
Ca fait plusieur "anomalies" que je relève quant à l'utilisation de compilateur Gnat ou d'Ada en général et je propose dans ce topic de les recencer.
 
 
Voila ce qu'il m'arrive aujourd'hui, ce n'est peut-etre pas un bug mais comme je ne comprend pas ce qu'il m'arrive ....
j'utilise un terminal 25 lignes 80 colonnes et je fait une text_io.set_col(80); et voila qu'il m'affiche les données au environs de la 70ieme colonne, j'ai donc entrée text_io.set_col(90);  et il m'affiche maintenant les données à la 80ieme colonne.  :ouch:  :cry:  :heink:  :kaola:  :(  :??:  :pfff:  
 
Si vous avez des explications sur le comportement de Gnat ou d'Ada en général, n'esité pas à nous les poster ... merci !  :jap:  
 

Reply

Marsh Posté le 17-12-2006 à 13:41:36   

Reply

Marsh Posté le 17-12-2006 à 13:51:42    

Et j'avais cette ligne aussi, pas male, ça complile, je doute que ça tourne par contre !

Code :
  1. Count_Mal_Places : T_Borne_2 := T_Borne_2'Last+1;

Reply

Marsh Posté le 19-12-2006 à 18:44:39    

T'as surement un warning là non?

Reply

Marsh Posté le 19-12-2006 à 18:57:58    

Ben, même pas .....  :hello: apprentitux !

Reply

Marsh Posté le 27-12-2006 à 08:31:07    

J'ai cette erreur aussi ... pas rigolotte du tout  :heink:  


gnatgcc -c main.adb
main.adb:1975:59: invalid prefix in selected component "R1133b"


 
Si en fait elle l'est  [:dawa_neowen]


Message édité par Profil supprimé le 27-12-2006 à 08:35:58
Reply

Marsh Posté le 27-12-2006 à 10:31:52    


T_Borne_2 est défini comment ?

Reply

Marsh Posté le 27-12-2006 à 10:42:58    

Bonjour nraynaud,  

Code :
  1. package P_Les_Types_Taquin is
  2.   subtype T_Borne_1 is Positive range 1 .. positive'Last/2;
  3. end P_Les_Types_Taquin;


Code :
  1. with P_Les_Types_Taquin;
  2. use P_Les_Types_Taquin;
  3. with Ada.Finalization;
  4. generic
  5.   N,M : T_Borne_1; -- taille du jeu
  6.   K,L : T_Borne_1; -- position initiale du vide;
  7.   type T_Item is private;
  8.  
  9. package P_Taquin is
  10.   type T_Jeu_Du_Taquin is limited private;
  11.   subtype T_Borne_2 is natural range 0..((N*M)-1);
  12. ...
  13. ...

Reply

Marsh Posté le 27-12-2006 à 10:57:09    

bingo, T_Borne_2 a bien un opérateur '+' défini dessus, et vérifier que les valeurs sont bien dans le range défini ne peut dans le cas général n'être fait qu'à l'exécution.
 
Ils n'ont simplement pas fait de vérif statique dans le compilateur car ça ne détecte que très peu de cas.

Reply

Marsh Posté le 27-12-2006 à 11:02:37    


 
c'est quoi la police de ton terminal ?

Reply

Marsh Posté le 27-12-2006 à 11:07:07    

kadreg a écrit :

c'est quoi la police de ton terminal ?


 
Alors la ? , je peut te dire que je suis sur Gnu/Linux Debian Sarge en TERM=Linux mais je ne sais pas ou trouver l'info sur la police.

Reply

Marsh Posté le 27-12-2006 à 11:07:07   

Reply

Marsh Posté le 27-12-2006 à 11:10:51    

Parce que si tu n'utilises pas une police à taille fixe, la taille des caractère est variable. Donc 70 espaces seront plus petits que 70 'm'.
 
Ca donne typiquement ce genre de symptomes.

Reply

Marsh Posté le 27-12-2006 à 11:16:12    

Ben moi, je pense pas que ce soit un problème de ma police puisque, malgrès le fait que je n'ai rien fait de spécial, tout est rentré dans l'ordre.

Reply

Marsh Posté le 27-12-2006 à 12:08:40    

nraynaud a écrit :

bingo, T_Borne_2 a bien un opérateur '+' défini dessus, et vérifier que les valeurs sont bien dans le range défini ne peut dans le cas général n'être fait qu'à l'exécution.
 
Ils n'ont simplement pas fait de vérif statique dans le compilateur car ça ne détecte que très peu de cas.


 
 
je vois pas pourquoi on ne peut pas detecter S'Last+1 ... à moins que ce soit parce que la borne est générique, et que le parametre effectif soit un argument en ligne de commande ... je l'avais pas vu  [:dawa_neowen]

Reply

Marsh Posté le 03-10-2013 à 15:11:58    

Bonjour, je travail actuellement avec des Containers.Vectors, j'ai un doute sur la sémantique observée pour les opérateur d'affectation, mais surtout de concaténation avec la fonction "&".
 
En effet, à l'utilisation des cette fonction la quantité de mes élements contenu dans le vecteur résultant est erroné ou alors, c'est l'affectation, je cherche plus, j'ai utilisé insert, mais voilà, j'ai bien galéré avec les vecteur ces jours ci.

Reply

Marsh Posté le 03-10-2013 à 15:59:12    

bon mais non, ça marche toujours pas, je traine un bug dans mon code.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed