Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Meta module in findlib and the need for namespaces
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alessandro Baretta <alex@b...>
Subject: [Caml-list] Meta module in findlib and the need for namespaces
There seems to be an incompatibility between dynlink.cma and 
findlib. The following text shows a sample toplevel session 
where you can see how linking to "dynlink.cma" is rendered 
impossible by the presence of the findlib module.

         Objective Caml version 3.06

# #use "topfind";;
Findlib has been successfully loaded. Additional directives:
   #require "package";;      to load a package
   #list;;                   to list the available packages
   #camlp4o;;                to load camlp4 (standard syntax)
   #camlp4r;;                to load camlp4 (revised syntax)
   Topfind.reset();;         to force that packages will be 
reloaded

- : unit = ()
# #require "afo";;
Loading /usr/lib/ocaml/site-lib/pcre/pcre.cma
Loading /usr/lib/ocaml/unix.cma
Loading /usr/lib/ocaml/site-lib/netstring/netstring.cma
Loading /usr/lib/ocaml/site-lib/netstring/netmappings_iso.cmo
Loading /usr/lib/ocaml/site-lib/netstring/netmappings_other.cmo
Loading /usr/lib/ocaml/site-lib/netstring/netstring_top.cmo
Loading /usr/lib/ocaml/site-lib/pxp-engine/pxp_engine.cma
Loading /usr/lib/ocaml/site-lib/pxp-engine/pxp_top.cmo
Loading 
/usr/lib/ocaml/site-lib/pxp-lex-iso88591/pxp_lex_iso88591.cma
Loading 
/usr/lib/ocaml/site-lib/pxp-lex-iso88591/pxp_lex_link_iso88591.cmo
Loading /usr/lib/ocaml/site-lib/pxp-lex-utf8/pxp_lex_utf8.cma
Loading 
/usr/lib/ocaml/site-lib/pxp-lex-utf8/pxp_lex_link_utf8.cmo
*Loading /usr/lib/ocaml/dynlink.cma*
Files /usr/lib/ocaml/dynlink.cma
and /usr/lib/ocaml/site-lib/findlib/findlib.cma
make inconsistent assumptions over interface Meta

This seems to imply that a Meta module is already defined in 
  dynlink.cma, and that such module is different from that 
referenced by findlib. I have no evidence to prove this 
point though, for I have not found in the Ocaml sources 
where a Meta module is defined.

***

This incompatibility between findlib and dynlink is the 
first example I have encountered of a nameclash bug in Ocaml 
software. Of course, Gerd could easily solve the problem by 
renaming his Meta to Findlib_meta, or something like that, 
but it would be a lot easier to have a namespace construct 
to allow Gerd to distinguish *his* Meta from the one in the 
standard library.

Cheers to everyone,
Alex

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners