Re: Utilisation de JVM-GNAT GPL 2010.

Jean-Pierre Rosen <[email protected]>
Newsgroups gmane.comp.lang.ada.france
Message-ID <[email protected]>
Le 21/11/2010 22:02, Pascal a écrit :
[...]
> Dans sa version GPL 2010, un certain nombres de restrictions ont été
> apportées au compilateur.
> Notamment, une erreur est maintenant levée dans le cas d'un pragma
> import sur un sous-programme abstrait.
> Ce qui en soit est plutôt logique.
> Néanmoins, l'utilitaire jvm2ada génère systématiquement un pragma
> import
> avec une méthode astraite.
> Il suffit alors simplement de supprimer le prama import...
> Bin non, pas si simple, car une méthode peut être surchargée avec une
> forme abstraite et l'autre pas !!!
> Voir le source en PJ, la méthode Read est dans ce cas:
>
> Ada est-il prévu pour prendre en charge ce genre de cas ?

Le problème vient de ce qu'un pragma qui nomme une procédure s'applique
à toutes les procédures surchargées portant ce nom.

Comme c'est lié au nom, il suffit de passer par un rename. Le code
ci-dessous compile en important P_Bis, et non (comme prévu) en important P:

package Abc is
   type T is abstract tagged null record;

   procedure P (X : T) is abstract;
   procedure P (X : T; I : Integer);
private
   procedure P_Bis (X : T; I : Integer) renames P;
-- pragma Import (C, P);       -- ne compile pas
   pragma Import (C, P_Bis);   -- OK
end Abc;

En Ada 2012, la notion d'aspect permettra de régler ce problème plus
élégamment.
-- 
---------------------------------------------------------
           J-P. Rosen ([email protected])
Adalog a déménagé / Adalog has moved:
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
_______________________________________________
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.