From: Dario Teixeira <darioteixeira@yahoo.com>
To: Nicolas Pouillard <nicolas.pouillard@gmail.com>
Cc: caml-list <caml-list@yquem.inria.fr>
Subject: Re: [Caml-list] Ocamlbuild plugins
Date: Tue, 6 Nov 2007 16:23:01 +0000 (GMT) [thread overview]
Message-ID: <402653.93475.qm@web54603.mail.re2.yahoo.com> (raw)
In-Reply-To: <1194356522-sup-8476@ausone.inria.fr>
Hi,
And thanks a lot for your reply!
> On my page [1] there is also a plugin example [2] and the API [3],
> where the module signature [4] can be a good starting point about what
> tools we have in an ocamlbuild plugin.
I had seen those; what was missing was an overview of what exactly was
a plugin, and how it was supposed to be called -- the big picture stuff.
> There is certainly some missing pieces. Roughly an ocamlbuild plugin
> is an OCaml module called Myocamlbuild that should take place a
> the root of your project (myocamlbuild.ml). Automatically ocamlbuild
> will take care of it by compiling it and by making a myocamlbuild
> binary that is the classical ocamlbuild plus your module.
Yeap, I kind of assumed something like that was going on, though of course
I wasn't sure about the details. This little piece of information would
have made a huge difference if it was included in the documentation!
Also, when introducing a new library, it is always good practice to fully
qualify values. I know that for people used to a library this might
seem like a waste of time, but for those learning it makes everything
a lot clearer.
> Firstly since you want to use ocamlfind you should start with this plugin
I have looked into it, but it has one huge problem: it assumes that all
files will use the same packages. Though in practice it doesn't hurt
to pass unnecessary packages to the compiler, it's still killing a fly*
with a bazooka. Moreover, while the comment at the bottom of that page
addresses this issue ("A more fine grained version can provide specific
-package options depending on the compiled file. This can be easily
done using the tag system"), I find the use of "this can easily be done"
a bit ironic given the present meagerness of Ocamlbuild's documentation...
> let flags in = S[A"-package"; A"pgocaml.statements"; A"-syntax";
A"camlp4o"] in
> flag ["ocaml"; "compile"; "use_pgocaml_statements"];
> flag ["ocaml"; "ocamldep"; "use_pgocaml_statements"];
>
> You can then tag your files in the _tags file:
>
> "database.ml": use_pgocaml_statements, thread
Yap, that was precisely what I wanted to express. Though I am having
trouble parsing that example you just gave. Is "flag" the function
"flag" from module Flags, or just a misspelling of the "flags" value
you just declared? Also, "let flags in" doesn't seem grammatical.
(This just illustrates the need of always using fully qualified values
when giving examples!).
> I don't know if GODI properly install as many things as ocamlbuild needs.
I would assume it does, but perhaps the GODI folks can enlighten us on that?
Anyway, thanks again for your help, and I hope you'll find the time
to expand a little on the user guide... It seems the biggest obstacle
to a wider adoption of Ocamlbuild is the lack of proper documentation
(a common complaint in the OCaml world, unfortunately).
Kind regards,
Dario
*Note: no flies were actually hurt during the writing of this post.
________________________________________________________
Nervous about who has your email address? Yahoo! Mail can help you win the war against spam.
http://uk.docs.yahoo.com/mail/addressguard2.html
next prev parent reply other threads:[~2007-11-06 16:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-05 20:34 Dario Teixeira
2007-11-06 14:23 ` [Caml-list] " Nicolas Pouillard
2007-11-06 16:23 ` Dario Teixeira [this message]
2007-11-06 19:29 ` Nicolas Pouillard
2007-11-07 13:39 ` Dario Teixeira
2007-11-07 16:01 ` Nicolas Pouillard
2007-11-07 16:07 ` Alan Falloon
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=402653.93475.qm@web54603.mail.re2.yahoo.com \
--to=darioteixeira@yahoo.com \
--cc=caml-list@yquem.inria.fr \
--cc=nicolas.pouillard@gmail.com \
/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