[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pb Typol 1.7



In article <1998Jan28.113312.14193@sophia.inria.fr>, Franck.Chalaux@loria.fr (chalaux) writes:
|> Je rencontre un probleme lors de l'execution d'un pg Typol en mode
|> DEBUG, et je m'empresse de vous l'expliquer.
|> Je declare une table de symboles par l'intermediare de METAL, ce qui
|> represente l'environnement dans mon pg Typol. Lors de l'execution (mode
|> Debug) je souhaite examiner la valeur de mon environnement et a ce
|> moment j'ai le message suivant dans la fenetre EXAMINE:
|> 	$strange_tree:$Symtab$table
|> 	Symtab correspond au nom du formalisme et table est l'operateur
|> representant une liste de declaration.
|> 
|> Il semblerait que le formalisme Symtab n'est ete charge a ce moment,
|> qu'en est-il ?

(English abstract follows)

Le diagnostique est correct. Eclipse charge les formalismes à la demande lors de
l'execution d'un programme Typol, pour effectuer des controles de type de facon
dynamique. Il se peut qu'une execution n'ait pas besoin de controle dynamique
(c'est le type-checker qui le decide), dans ce cas les tables ne sont pas
chargees. 

Le dernier protocole de transfert d'arbre utilise dans Centaur n'est ni
re-entrant (comme le precedent), ni interruptible. Ce qui a pour consequence de
ne pas permettre le chargement de tables pendant un transfert de resultat, or
cela peut etre necessaire. Il faudrait alors parcourir la totalite d'un resultat
avant de le transmettre, ce qui multiplie par 2 le temps d'execution.

Pour tourner autour du probleme, on peut forcer le chargement des tables avant
l'execution Typol. Depuis Lisp (dans la fenetre top-level, ou par programme):
({prolog}:direct "'$Symtab'(_)")

---
Eclipse loads the formalism tables only when there are needed. However, as the
last protocol used by Centaur to transmit trees is no more re-entrant and can't
be interrupted, dynamic loading is not possible when a result is transmitted
between Eclipse and Centaur. The "$strange_tree" is a consequence of this.

To turn around the problem, one can forces Eclipse to load tables before the
Typol execution. From Lisp (in the top window or by program):
({prolog}:direct "'$Symtab'(_)") 
where Symtab is the name of a formalism.

-- 
Send contributions and compliments to centaur@sophia.inria.fr. Registration
and administrative matters should be sent to centaur-request@sophia.inria.fr.
---
Thierry Despeyroux - I.N.R.I.A. Sophia-Antipolis - France
http://www.inria.fr/croap/personnel/Thierry.Despeyroux.html
email:Thierry.Despeyroux@inria.fr