From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=AWL,DNS_FROM_RFC_POST, HTML_00_10,HTML_MESSAGE,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 76AD7BBC4 for ; Sun, 29 Mar 2009 23:17:55 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvoBAGuCz0nRVZK3m2dsb2JhbACCITOScD8BAQEBAQgJCgkRog+BB40UAQMBA4N3Bg X-IronPort-AV: E=Sophos;i="4.38,442,1233529200"; d="lock'?scan'208,49,50?gz'208,49,50,50?tar'208,49,50,50,49?ml'208,49,50,50,49";a="37450407" Received: from wa-out-1112.google.com ([209.85.146.183]) by mail4-smtp-sop.national.inria.fr with ESMTP; 29 Mar 2009 23:17:54 +0200 Received: by wa-out-1112.google.com with SMTP id m38so1267262waf.27 for ; Sun, 29 Mar 2009 14:17:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=xax+bXdw+QhmELKDZJKLx6dEzW0koattIKTRot6xHVA=; b=KgmK2y5wQCvhZVGnT+Y8EPQWuwFbsh3nFfH8IkdILWQ9W21BaModpYpmJSBcVSoQUJ jyuuu8z6oEyK4lfrnP5T3X+a13ceLDHPlG2++DNA0MOQfbz4iQE+u2IxRybdhgmdZT4A oB5m+zVvPo6Jf64v/gJR+HivKgU6E7JivpJ0c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=oEbeIMhJryDiExlAjkG9kGYPGR4zE3zG12EZ+HGqpfgvAW8t+rwabguX9XqA4jTXAm FcJQKt1XgUWqG4bI3bGJn/AQApaOi9RUQ+EHuI/G9sVj7tyrJEm3amxnXKGiO/BvjDbY D7EQwyyRHAxHNAwCbrFutnWcedjJ4WmhO7Toc= MIME-Version: 1.0 Received: by 10.115.33.1 with SMTP id l1mr3074379waj.168.1238361472977; Sun, 29 Mar 2009 14:17:52 -0700 (PDT) Date: Sun, 29 Mar 2009 17:17:52 -0400 Message-ID: Subject: packed packages From: Jacques Le Normand To: caml-list caml-list Content-Type: multipart/mixed; boundary=0016364573b8b34aff0466487fbc X-Spam: no; 0.00; findlib:01 foo:01 cmi:01 foo:01 cmx:01 cmx:01 findlib:01 ocamlfind:01 cmi:01 ocamlfind:01 modules:02 modules:02 caml:02 caml:02 renaming:02 X-Attachments: type="application/x-gzip" name="test_case.tar.gz" name="test_case.tar.gz" --0016364573b8b34aff0466487fbc Content-Type: multipart/alternative; boundary=0016364573b8b34af60466487fba --0016364573b8b34af60466487fba Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Dear Caml list, I'm posting here because I don't know where else to post. I've packed a small library using findlib. The package contains 2 files: Test.ml and Foo.ml, with only Test.cmi being exported. If I try to use this package in a project with a file called Foo.ml, I get the following error: Files Main.cmx and Foo.cmx make inconsistent assumptions over interface Foo how can I fix this? renaming the modules in my library would help, but I have no way of ensuring that the user will never use those names. I've attached a small test case demonstrating what I've just said. This is how you'd use it: unzip go into findlib directory type make install go into the omake directory type make you should get the error at this point. Note that this will install a package called test (which you can remove later on with the command ocamlfind remove test) --0016364573b8b34af60466487fba Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Dear Caml list,
I'm posting here because I don't know where else= to post. I've packed a small library using findlib. The package contai= ns 2 files: Test.ml and Foo.ml, with only Test.cmi being exported.
If I = try to use this package in a project with a file called Foo.ml, I get the f= ollowing error:

Files Main.cmx and Foo.cmx make inconsistent assumptions over interface= Foo

how can I fix this?
renaming the modules in my library would= help, but I have no way of ensuring that the user will never use those nam= es.
I've attached a small test case demonstrating what I've just said. = This is how you'd use it:

unzip
go into findlib directory
= type make install
go into the omake directory
type make

you sh= ould get the error at this point. Note that this will install a package cal= led test (which you can remove later on with the command ocamlfind remove t= est)


--0016364573b8b34af60466487fba-- --0016364573b8b34aff0466487fbc Content-Type: application/x-gzip; name="test_case.tar.gz" Content-Disposition: attachment; filename="test_case.tar.gz" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fsw8dbtd0 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 i4uLi4uLi4uLi4uLi+uR0v8AmzXDkwCgAAA= --0016364573b8b34aff0466487fbc--