From: Ashish Agarwal <agarwal1975@gmail.com>
To: Gerd Stolpmann <info@gerd-stolpmann.de>
Cc: Caml List <caml-list@inria.fr>
Subject: Re: [Caml-list] findlib gives warning that compiler doesn't
Date: Thu, 6 Aug 2015 15:03:11 -0400 [thread overview]
Message-ID: <CAMu2m2KwF4YLeWCZyd5Ou137NAbF=+mfnWtfjWdC6g81sUD9Uw@mail.gmail.com> (raw)
In-Reply-To: <1438788990.9319.23.camel@zotac>
[-- Attachment #1: Type: text/plain, Size: 2775 bytes --]
> It is a little bit unclear to me how the check could be made better. Any
ideas?
I'm not sure. I'm working around the problem by putting the output of
packing in a different directory, which gives this layout:
├── liba
│ ├── a.cmi
│ ├── a.cmo
│ ├── a.ml
│ ├── b.cmi
│ ├── b.cmo
│ └── b.ml
├── liba.cma
├── liba.cmi
├── liba.cmo
└── libb
├── a.cmi
└── a.ml
Now I can do
$ ocamlfind ocamlc -I .. -c a.ml
thereby avoiding reference to the liba/ directory entirely.
On Wed, Aug 5, 2015 at 11:36 AM, Gerd Stolpmann <info@gerd-stolpmann.de>
wrote:
> Am Dienstag, den 04.08.2015, 16:49 -0400 schrieb Ashish Agarwal:
> > With the file structure shown below, assume you're in directory libb.
> > Then:
> >
> >
> > $ ocamlc -I ../liba -c a.ml
> > (* no warnings *)
> >
> >
> > $ ocamlfind ocamlc -I ../liba -c a.ml
> > findlib: [WARNING] Interface a.cmi occurs in several
> > directories: ., ../liba
> >
> >
> > Why does findlib do an extra check that the compiler is okay with?
> > This is causing problems in a project where I'd like to build several
> > packed libraries, and one reason for doing so is precisely to reuse
> > module names. Am I going about this wrong? My goal is that within
> > libb, the only module from liba that should be visible is Liba.
>
> The compiler has always been okay with multiple cmis in different
> directories because the assumption is that you have full control over
> the directories, and that the search path resolves any conflicts. This
> is different when you use findlib. Typically you use libraries from
> third parties, and cmi conflicts would remain unnoticed if findlib
> didn't check.
>
> This feature, however, is older than packed modules, and findlib doesn't
> take packed modules into account. It is a little bit unclear to me how
> the check could be made better. Any ideas?
>
> Gerd
>
> >
> >
> > ├── liba
> > │ ├── a.cmi
> > │ ├── a.cmo
> > │ ├── a.ml
> > │ ├── b.cmi
> > │ ├── b.cmo
> > │ ├── b.ml
> > │ ├── liba.cma
> > │ ├── liba.cmi
> > │ └── liba.cmo
> > └── libb
> > ├── a.cmi
> > ├── a.cmo
> > └── a.ml
> >
> >
> >
>
> --
> ------------------------------------------------------------
> Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de
> My OCaml site: http://www.camlcity.org
> Contact details: http://www.camlcity.org/contact.html
> Company homepage: http://www.gerd-stolpmann.de
> ------------------------------------------------------------
>
[-- Attachment #2: Type: text/html, Size: 5610 bytes --]
prev parent reply other threads:[~2015-08-06 19:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-04 20:49 Ashish Agarwal
2015-08-05 15:36 ` Gerd Stolpmann
2015-08-06 19:03 ` Ashish Agarwal [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMu2m2KwF4YLeWCZyd5Ou137NAbF=+mfnWtfjWdC6g81sUD9Uw@mail.gmail.com' \
--to=agarwal1975@gmail.com \
--cc=caml-list@inria.fr \
--cc=info@gerd-stolpmann.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox