caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Re: internals of the compiler
@ 1993-05-07 15:02 dicosmo
  1993-05-19  0:56 ` Xavier Leroy
  0 siblings, 1 reply; 3+ messages in thread
From: dicosmo @ 1993-05-07 15:02 UTC (permalink / raw)
  To: caml-list

> Dans le top-level, il me semble que, pour pouvoir acceder aux
> fonctions, par exemple, dans le module "modules", il suffit de copier
> le fichier "modules.zi" dans le repetoire courant?
> 

> Je veux ecrire une fonction qui, par exemple, fait un recurrence sur
> tous les nom exporte's d'un module.
> 

> --chet--
> 


C,a m'interesse aussi... je voudrais porter l'util de recherche en librairie
de CAML en CamlLight, et j'ai besoin de reperer les identificateurs
avec leur type (donc il faut aussi le type des types et des utils
pour les manipuler)

--Roberto






^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: internals of the compiler
  1993-05-07 15:02 internals of the compiler dicosmo
@ 1993-05-19  0:56 ` Xavier Leroy
  0 siblings, 0 replies; 3+ messages in thread
From: Xavier Leroy @ 1993-05-19  0:56 UTC (permalink / raw)
  To: dicosmo; +Cc: caml-list

>> Je veux ecrire une fonction qui, par exemple, fait un recurrence sur
>> tous les nom exporte's d'un module.
>> --chet--

> C,a m'interesse aussi... je voudrais porter l'util de recherche en librairie
> de CAML en CamlLight, et j'ai besoin de reperer les identificateurs
> avec leur type (donc il faut aussi le type des types et des utils
> pour les manipuler)
> --Roberto

Bon, voila la technique: un .zi, c'est juste une valeur du type
modules__module ("modules", c'est un des fichiers de src/compiler dans
la distribution) ecrite avec output_value. Il suffit donc de faire un
truc comme

#open "modules";;
let interface =
  let ic = open_in_bin "foo.zi" in
  let m = (input_value ic : module) in
  close_in ic;
  m;;

Ensuite, pour decrypter les informations contenues dans la valeur lue,
il faut utiliser les types definis dans les modules const et globals.
Les commentaires dans globals.ml expliquent a peu pres ce qui se
passe. La representation des types est documentee la-dedans aussi. Les
fonctions de manipulation sur les types sont dans le module types.ml.
En resume: il faut au moins faire #open "const";; #open"globals";;
#open "modules";; et compiler avec une option -I.....src/compiler. Si
en plus on veut utiliser les fonctions de types.ml, il faut linker
avec types.zo et sans doute quelques autres .zo du compilateur, a
determiner experimentalement.

Enfin, pour Roberto: ton outil de recherche dans les bibliotheques
ferait un excellent "contrib" !

- Xavier




^ permalink raw reply	[flat|nested] 3+ messages in thread

* internals of the compiler
@ 1993-05-07 13:38 murthy
  0 siblings, 0 replies; 3+ messages in thread
From: murthy @ 1993-05-07 13:38 UTC (permalink / raw)
  To: caml-list


Dans le top-level, il me semble que, pour pouvoir acceder aux
fonctions, par exemple, dans le module "modules", il suffit de copier
le fichier "modules.zi" dans le repetoire courant?

Je veux ecrire une fonction qui, par exemple, fait un recurrence sur
tous les nom exporte's d'un module.

--chet--




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1993-05-24  7:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1993-05-07 15:02 internals of the compiler dicosmo
1993-05-19  0:56 ` Xavier Leroy
  -- strict thread matches above, loose matches on Subject: below --
1993-05-07 13:38 murthy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).