caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Nicolás Ojeda Bär" <nicolas.ojeda.bar@lexifi.com>
To: "caml-list@inria.fr" <caml-list@inria.fr>,
	"David E. Narvaez" <den9562@rit.edu>
Subject: RE: [Caml-list] ocamldep and stdlib
Date: Sat, 11 Dec 2021 11:44:44 +0000	[thread overview]
Message-ID: <PAZP264MB2848F2C265ED77770002B0E7C3719@PAZP264MB2848.FRAP264.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <1801314.tdWV9SEqCh@titanium>

[-- Attachment #1: Type: text/plain, Size: 2526 bytes --]

Dear David,

In general these kinds of questions are better asked in https://discuss.ocaml.org/. You you will get more and faster answers there.

Regarding your question, removing the `-I` flag will probably fix your problem. Very briefly, the standard library is now "wrapped", which means using prefixed filenames for the compilation artifacts in order to implement a form of namespacing. The problem is that `ocamldep` does not have good support for these kinds of libraries. In any case, declaring explicit dependencies to the standard library is not normally necessary as it only changes when OCaml itself is updated.

If you have further questions, I encourage you to ask them at Discuss, as mentioned above.

Cheers,
Nicolas

________________________________
De : caml-list-request@inria.fr <caml-list-request@inria.fr> de la part de David E. Narvaez <den9562@rit.edu>
Envoyé : vendredi 10 décembre 2021 22:37
À : caml-list@inria.fr <caml-list@inria.fr>
Objet : [Caml-list] ocamldep and stdlib

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.


Greetings,

I am fairly inexperienced with OCaml but I have inherited a Makefile from a
project, and it uses ocamldep in a way that is equivalent to the following
example:

$ cat hello.ml
module StringSet = Set.Make(String) ;;
module StringMap = Map.Make(String) ;;
$ ocamldep -I /usr/lib64/ocaml/ hello.ml
hello.cmo : \
    /usr/lib64/ocaml/string.cmi \
    /usr/lib64/ocaml/set.cmi \
    /usr/lib64/ocaml/map.cmi
hello.cmx : \
    /usr/lib64/ocaml/string.cmx \
    /usr/lib64/ocaml/set.cmx \
    /usr/lib64/ocaml/map.cmx

The problem is those dependency files do not exist, instead I have these
files:

$ ls -1 /usr/lib64/ocaml/*{string,set,map}.cm[ix]
/usr/lib64/ocaml/stdlib__map.cmi
/usr/lib64/ocaml/stdlib__map.cmx
/usr/lib64/ocaml/stdlib__set.cmi
/usr/lib64/ocaml/stdlib__set.cmx
/usr/lib64/ocaml/stdlib__string.cmi
/usr/lib64/ocaml/stdlib__string.cmx

I have noticed that I do not get incorrect filenames (in fact, any filenames)
if I do not specify the location of the ocaml libraries:

$ ocamldep hello.ml
hello.cmo :
hello.cmx :

but I was hoping I did not have to change the call in the Makefile.

I have tested this in OCaml 4.09.0 and 4.12.1. Is this a bug? or what is the
correct way of using ocmaldep in this case?

Thanks in advance for your help.

--
David E. Narvaez



[-- Attachment #2: Type: text/html, Size: 5217 bytes --]

      parent reply	other threads:[~2021-12-11 11:44 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-10 21:37 David E. Narvaez
2021-12-10 22:12 ` Sébastien Hinderer
2021-12-11 11:44 ` Nicolás Ojeda Bär [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=PAZP264MB2848F2C265ED77770002B0E7C3719@PAZP264MB2848.FRAP264.PROD.OUTLOOK.COM \
    --to=nicolas.ojeda.bar@lexifi.com \
    --cc=caml-list@inria.fr \
    --cc=den9562@rit.edu \
    /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;
as well as URLs for NNTP newsgroup(s).