caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Török Edwin" <edwin+ml-ocaml@etorok.net>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Preferred layout for new packages
Date: Wed, 14 Nov 2012 16:41:19 +0200	[thread overview]
Message-ID: <50A3AD8F.7020301@etorok.net> (raw)
In-Reply-To: <20121114124355.7e8ca762@xivilization.net>

On 11/14/2012 01:43 PM, Marek Kubica wrote:
> Hi,
> 
> I'm kinda new to the OCaml eco system and therefore a bit confused on a
> number of issues:
> 
> 1. Build system: what to use? I have tried OMake some time ago and
> liked the automatic recompilation, but writing the OMakefiles was quite
> awful and it does not seem popular.

OMake has some nice features for more complex projects, for example
polling the FS for changes and automatically rebuilding.

However it requires your users to have OMake installed too, so
ocamlbuild has an advantage here (it is installed together with the compiler).

> What is the state of the art
> solution?

Try oasis, it provides a good starting point:
http://oasis.forge.ocamlcore.org/

You can later extend it with custom rules in _tags/myocamlbuild.ml if needed.

> 
> 2. Unit tests: I used OUnit which was okay, but maybe there are better
> solutions? I've seen that there is Kaputt and I have seen that there is
> https://github.com/camlunity/ocaml-quickcheck as well as
> https://github.com/vincent-hugot/iTeML which was extracted from
> batteries recently.

Kaputt seems to be a superset of OUnit feature-wise, don't know about the others.
I've only used OUnit.

> 
> 3. Stdlib: I don't mind depending on batteries and/or core, are there
> any reasons against? Especially in the unit tests it drove me nuts that
> I wasn't able to display results without writing printers, and I know
> batteries has at least a generic printer.

Are you writing an application or a library?
If you're writing a library it is probably better to avoid unneeded dependencies, or provide optional
subpackages (see the recent thread about pgocaml.batteries).
That way people who don't use batteries/core can still use your package.

Best regards,
--Edwin

  reply	other threads:[~2012-11-14 14:41 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-14 11:43 Marek Kubica
2012-11-14 14:41 ` Török Edwin [this message]
2012-11-14 16:36   ` Marek Kubica
2012-11-15  1:20   ` Francois Berenger
2012-11-14 14:42 ` Edgar Friendly
2012-11-14 17:00   ` Marek Kubica
2012-11-14 18:00     ` forum
2012-11-15  9:00       ` Philippe Veber
2012-11-14 18:17     ` Martin Jambon
2012-11-14 18:48       ` Markus Mottl
2012-11-14 19:35         ` Martin Jambon
2012-11-15  6:36     ` Cedric Cellier
2012-11-15  7:24       ` Marek Kubica
2012-11-15  9:17         ` rixed
     [not found] <fa.38rAsBvHd+quECbtcbTH9HW+J6U@ifi.uio.no>
     [not found] ` <fa.YCrkHurCi6yY5s0Qg1r6uLWNQdY@ifi.uio.no>
     [not found]   ` <fa.oeqp0ymFFL+o76ut/LjBeQhUcjQ@ifi.uio.no>
     [not found]     ` <fa.pEDV80ILnW8x1YQyKuF3NBsK3Kw@ifi.uio.no>
     [not found]       ` <fa.LQofvqHUt8xj1kM1rvmQZF+Z7rw@ifi.uio.no>
2012-11-15  8:13         ` vincent.hugot
2012-11-15  8:31           ` Francois Berenger
2012-11-15  9:20           ` rixed
2012-11-15 17:22             ` Aleksey Nogin

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=50A3AD8F.7020301@etorok.net \
    --to=edwin+ml-ocaml@etorok.net \
    --cc=caml-list@inria.fr \
    /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).