Bonsoir,

Je ne sais pas si le titre à ralonge apparaîtra en entier...

Je travaille sur une application delphi qui utilise un système à base de connaissances en prolog avec lequel elle communique aux moyens de fichiers texte.
C'est SWI prolog qui est utilisé pour générer le code prolog et des exécutables prolog auxquels fait appel delphi. Voici, le code prolog pour générer l'exécutable (de tête, c'est peut-être pas exact) :
qsave_program('nomExe', [goal=nomPredicat(nomsParams)]).
Si j'ai bien compris, le lancement de l'exécutable 'nomExe' par delphi fait que celui-ci demande la requête nomPredicat(nomsParams) à prolog.

J'utilise actuellement une version de SWI prolog différente de la (des ?)version(s) utilisée(s) par les précédents développeurs sur ce projet et j'ai un problème lorsque je re-compile l'exécutable prolog après modifications des fichiers prolog (j'ai bien pris garde de copier les dll correspondant à la version de SWI-prolog que j'utilise dans le répertoire où je compile).

Le problème que j'ai avec le nouvel exécutable compilé, c'est qu'il ne se ferme pas alors que la dernière prémisse du but nomPredicat(nomsParams) demandé à prolog lors de l'appel à l'exécutable est 'halt' et que si je lance à la main toutes les prémisses du but nomPredicat(nomsParams), je ne rencontre aucun souci (je suis loin de m'y connaître en prolog, disons que prolog ne tourne pas indéfiniment et m'écrit "yes" 1 seconde après que j'ai lancé ma requête).

Est-ce que quelqu'un sait si le fait de changer de version de SWI-prolog peut-être un problème ? si oui, comment le résoudre (comme je l'ai dit, j'ai copié les dll nécessaires dans le même répertoire que les sources avant la compilation de l'exécutable) ?

Si ça inspire quelqu'un...
Désolée pour le vocabulaire approximatif à propos de prolog

Laurence