Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-List] Dynlink + Marshaling...
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Fabrice Le Fessant <lefessan@t...>
Subject: Re: [Caml-List] Dynlink + Marshaling...

Le reponse est toute simple: Marshal ne permet de sauver que les
fonctions presentes au debut de l'execution (voir le code dans
byterun/interp.c). Donc, les fonctions ajoutees par Dynlink et par le
toplevel ne peuvent pas etre conservees.

Neanmoins, il est possible dans ton cas de conserver les bindings du
type "let h = f o exp" et de les executer a chaque debut de
session, apres chargement des modules necessaires. 

Cela dit, il faut bien faire attention que tu n'a pas d'acces direct
aux noms des fonctions presentes dans les modules (les noms utilises
dans les sources des modules). Les fonctions que tu veux utiliser
doivent donc s'enregistrer dans une table des fonctions offertes a
l'utilisateur avec un nouveau nom pour que tu puisses les retrouver
lorsque l'utilisateur va te demander la fonction "exp", etc ... 
(mais tu risques alors d'avoir des problemes de typage car cette table
sera mal typee si elle contient des fonctions de types differents
!!!!). Bien sur, il existe un module Obj ...

- Fabrice

Homepage: http://pauillac.inria.fr/~lefessan