English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
nonresolved .cma files and errors
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-04-11 (06:58)
From: Martin Jambon <martin.jambon@e...>
Subject: Re: [Caml-list] nonresolved .cma files and errors
On Tue, 10 Apr 2007, Jeff Henrikson wrote:

> Hello caml-list,
> I recently had a shocking realization about why some of my experiments with 
> camlp4 weren't compiling.  I had been linking camlp4.cma, which was the old 
> name of the library.  Now camlp4.cma doesn't exist and there are multiple 
> flavors Camlp4xxx.cma where the xxx is the same flavor notation of the the 
> preprocessor binaries.  So the trouble is, why was linking such a library not 
> a fatal?  Apparently all missing .cma and .cmo files passed on the command 
> line are considered non-errors.  It seems intutive to me that both should be 
> fatals!
> ~/src/camlp4-beta jehenrik$ ocamlc -I +camlp4 -pp camlp4orf junk.cma 
> camlp4orf.cma -c dynamic_functor_example3.ml
> ~/src/camlp4-beta jehenrik$ ocamlc -I +camlp4 -pp camlp4orf junk.cmo 
> camlp4orf.cma -c dynamic_functor_example3.ml
> ~/src/camlp4-beta jehenrik$ ocamlc -I +camlp4 -pp camlp4orf junk.ml 
> camlp4orf.cma -c dynamic_functor_example3.ml
> I/O error: "junk.ml: No such file or directory"
> Preprocessor error

In general, a syntax extension that (like before) uses quotations in the 
revised syntax would be compiled using such a command:

ocamlc -c -I +camlp4 -pp camlp4orf pa_foo.ml

It replaces

ocamlc -c -I +camlp4 -pp 'camlp4o pa_extend.cmo q_MLast.cmo' pa_foo.ml

There might be some slight error in the commands I just wrote (it 
happens). You can have a look at my updated json-static package that 
you'll find on my web site. It supports both the old and the new camlp4, 
and it works for sure with 3.10.0+beta [it uses two different source files 
of course].


Martin Jambon