caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: David Allsopp <dra-news@metastack.com>
To: SF Markus Elfring <elfring@users.sourceforge.net>,
	"caml-list@inria.fr" <caml-list@inria.fr>
Subject: RE: [Caml-list] Development status of the dependency generator for OCaml
Date: Fri, 21 Jul 2017 09:19:10 +0000	[thread overview]
Message-ID: <E51C5B015DBD1348A1D85763337FB6D9014D51BFC0@Remus.metastack.local> (raw)
In-Reply-To: <8e0dbe2f-3ff2-5f56-7d81-89f1eaad041b@users.sourceforge.net>

Markus Elfring wrote:
> Hello,
> 
> I took a closer look at data which the tool “ocamldep” can provide.
> 
> 
> * Compiled module interfaces (CMI files) do not depend on interface
>   descriptions (MLI files) there.
>   Is such dependency information interpreted as an optional detail?

It surprises me to find that ocamldep -all foo.mli doesn't generate `foo.cmi: foo.mli`, but including these dependencies in the output of ocamldep seems of limited use to me - at some point you need a rule to compile the file, e.g.

%.cmi: %.mli
	ocamlc -c $^

and ocamldep will *never* generate that.

> * Compiled modules do also not depend on OCaml sources (ML files) there.
>   Some of the generated make specifications indicate only a dependency on
>   a single compiled module interface.

You can get the .ml (and .o files) included by using ocamldep -all

What are you regarding as erroneous about the entries with "only a dependency on a single compiled module interface" (for bytecode, that sounds correct to me).

> Do you expect that dependency data should be exported completely?

Depends on your definition of completely - the -all flag seems to do most of what you're after, and the part which is missing looks to be of limited value.

> Another view:
> It is usually expected that some dependencies can be handled by implicit
> make rules. So I imagine that the provided data should only contain
> extensions for the desired software build rules.
> https://www.gnu.org/software/make/manual/html_node/Multiple-Rules.html
> 
> It seems that a bit of data is written too much so far according to this
> usage.
> How would you like to improve the software situation further?

You mean that you'd like simple cases eliminated? For example:

foo.cmi:
foo.cmo: foo.cmi

should simply not be printed, and be assumed to work with implicit rules? When one takes the maintenance burden into account, I'm not sure I'd see that as an improvement...


David

  reply	other threads:[~2017-07-21  9:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-18 19:21 SF Markus Elfring
2017-07-21  9:19 ` David Allsopp [this message]
2017-07-21 11:30   ` SF Markus Elfring
2017-07-21 13:01     ` David Allsopp
2017-07-21 15:50       ` SF Markus Elfring
2017-07-21 16:16         ` David Allsopp
2017-07-21 17:07           ` SF Markus Elfring
2017-07-25 18:13           ` [Caml-list] Addition of a data export variant containing only required extensions for build dependency specifications SF Markus Elfring

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=E51C5B015DBD1348A1D85763337FB6D9014D51BFC0@Remus.metastack.local \
    --to=dra-news@metastack.com \
    --cc=caml-list@inria.fr \
    --cc=elfring@users.sourceforge.net \
    /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).