Browse thread
[Caml-list] Meta module in findlib and the need for namespaces
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ 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