caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Mikkel Fahnøe Jørgensen" <mikkel@dvide.com>
To: "O'Caml Mailing List" <caml-list@yquem.inria.fr>
Subject: camlp4 compilation model
Date: Sat, 24 Jan 2009 21:15:43 +0100	[thread overview]
Message-ID: <caee5ad80901241215kf0b684aj6d70d3337f74ec5c@mail.gmail.com> (raw)

Hi,

I've put camlp4 on the backburner, but I think it is useful to know it
a bit better, especially because several libraries are using it.

a) I understand you can write a cryptic ocaml program that effectively
builds and AST from whatever grammar you decide by applying camlp4.
b) I also understand that camlp4 it has a built in ocaml syntax that
you can extend, and therefore use as camlp4 as a prepreprocessor to
the ocaml compiler as part of the build process.

In a) it makes sense that a library can embed (link with) camlp4 logic
to parse strings without the enduser needing to refer to camlp4 in the
build process.

In b) you would normally require the user to apply the preprocessor to
the source code as part of the build process.

But know my question:

It seems that an enduser program can link with a camlp4 enhanced
library and magically have its syntax extended without adding camlp4
to the build process (once the library has been built). For example
the bitstring library introduces the bitmatch syntax.

Is this correct understood, and how does that work?

One reason I put camlp4 on hold was precisely that added compilation
complexity, but if it can be hidden in a library, it is an entirely
different situation.


Regards,
Mikkel


             reply	other threads:[~2009-01-24 20:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-24 20:15 Mikkel Fahnøe Jørgensen [this message]
2009-01-24 20:34 ` [Caml-list] " blue storm
2009-01-25  9:49 ` Richard Jones
2009-01-25  9:55   ` Mikkel Fahnøe Jørgensen

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=caee5ad80901241215kf0b684aj6d70d3337f74ec5c@mail.gmail.com \
    --to=mikkel@dvide.com \
    --cc=caml-list@yquem.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).