From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id QAA15871 for caml-redistribution; Mon, 8 Mar 1999 16:10:09 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA22652 for ; Mon, 8 Mar 1999 09:38:16 +0100 (MET) Received: from talbot.inria.fr (talbot.inria.fr [128.93.8.119]) by concorde.inria.fr (8.8.7/8.8.7) with ESMTP id JAA11450; Mon, 8 Mar 1999 09:38:12 +0100 (MET) Received: (from lefessan@localhost) by talbot.inria.fr (8.8.7/8.8.7) id JAA14128; Fri, 5 Mar 1999 09:41:01 +0100 From: Fabrice Le Fessant Message-ID: <14047.39068.614583.233409@talbot.inria.fr> Date: Fri, 5 Mar 1999 09:41:00 +0100 (CET) To: Nicolas Ollinger Cc: caml-list@inria.fr Subject: Re: [Caml-List] Dynlink + Marshaling... References: X-Mailer: VM 6.62 under Emacs 19.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=iso-8859-1 Sender: weis 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