caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Magnus Therning <magnus@therning.org>
To: Gabriel Scherer <gabriel.scherer@gmail.com>
Cc: Anil Madhavapeddy <anil@recoil.org>,
	OCaml List <caml-list@yquem.inria.fr>,
	Sylvain Le Gall <sylvain@le-gall.net>
Subject: Re: [Caml-list] oasis building out-of-src and camlp4
Date: Wed, 23 Sep 2015 11:44:14 +0200	[thread overview]
Message-ID: <20150923094414.GB25229@sobel.cipherstone.com> (raw)
In-Reply-To: <CAPFanBFY_k9Gz9pQe6o8EPYNxs9uR2wz+nM2eb+QWVJzDgr_vA@mail.gmail.com>

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

On Wed, Sep 23, 2015 at 11:19:57AM +0200, Gabriel Scherer wrote:
> > Indeed, the goal is to not contaminate the source directory *at all*.
> 
> You could, in the "external build" command passed to CMake, wrap the
> build invocation with code to create the symlinks before the build,
> and remove them after the build.

Yes, CMake lets me do pretty much anything, but it does make the build a
little more complex and I'm already sneaking in OCaml without telling ;)

> That said, If I understand oasis' philosophy correctly (but I'm far
> from an expert), the file that are generated by the oasis setup are
> not to be understood as "generated files never to be looked at", but
> rather *source* files that you may want to modify and customize
> yourself, and just contain some snippets produced by oasis. I would
> understand this as a kind of "we created the basic boilerplate
> structure of your project for you", rather than "those are hidden
> files only used during the build". In particular, you may be expected
> to include these files in your version-control repository (something I
> have been a bit reluctant to do myself; I think that the newish
> "dynamic" setup mode of oasis avoids versioning any cruft).

Yes, I am aware of that, and with "dynamic" mode `oasis` seems to
generate little enough that I wouldn't mind putting it in VCS.

> > Since the steps work on "simple"
> > code, but doesn't on code using `camlp4` I'm leaning towards calling
> > this a bug.
> 
> I'll let oasis developers triage this issue, but it is not as clear as
> you describe. It's not that this oasis setup works in simple cases and
> breaks in other, but rather than oasis does not support this setup at
> all, yet sometimes ocamlbuild can do what it needs without any help
> whatsoever.

I tend to land in the camp of "if the behaviour is surprising (without
delighting) to a user, then it's a bug".  I'm fully aware that what I'm
trying to do might not have been a scenario the `oasis` devs ever
considered.

> <src/...>). But I like the idea and created a feature request to track
> it:
>   http://caml.inria.fr/mantis/view.php?id=6997

Thanks, I'll keep an eye on that request.

> But if you go this route, it means that you would have to wait for the
> next ocamlbuild release, so an oasis-level solution or workaround
> would currently be more helpful for you.

For the time being I get by with using `ocamlbuild` (via `corebuild`)
and its `-build-dir` option.  Hopefully there'll be more support for
out-of-source building when I get to the point of replacing all C code
with OCaml ;)

/M

-- 
Magnus Therning                      OpenPGP: 0xAB4DFBA4 
email: magnus@therning.org   jabber: magnus@therning.org
twitter: magthe               http://therning.org/magnus

You do not examine legislation in the light of the benefits it will
convey if properly administered, but in the light of the wrongs it
would do and the harms it would cause if improperly administered.
     -- Lyndon Johnson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 163 bytes --]

  reply	other threads:[~2015-09-23  9:44 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22 21:12 Magnus Therning
2015-09-23  7:48 ` Anil Madhavapeddy
2015-09-23  8:19   ` Magnus Therning
2015-09-23  8:38     ` Gabriel Scherer
2015-09-23  8:54       ` Magnus Therning
2015-09-23  9:19         ` Gabriel Scherer
2015-09-23  9:44           ` Magnus Therning [this message]
2015-09-29 22:59             ` Sylvain Le Gall
2015-09-30 11:49               ` Magnus Therning
2015-10-01  6:46                 ` Sylvain Le Gall
2015-10-01  7:23                   ` Magnus Therning
2015-10-02  9:32                     ` Sylvain Le Gall
2015-10-02  9:38                       ` Magnus Therning
2015-09-23  7:56 ` Anil Madhavapeddy

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=20150923094414.GB25229@sobel.cipherstone.com \
    --to=magnus@therning.org \
    --cc=anil@recoil.org \
    --cc=caml-list@yquem.inria.fr \
    --cc=gabriel.scherer@gmail.com \
    --cc=sylvain@le-gall.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).