[wg-camlp4] Structured comments, shallow embeddings and deep quasiquotations
alain.frisch at lexifi.com
Tue Feb 5 16:17:15 GMT 2013
On 02/05/2013 04:57 PM, Leo White wrote:
> There is no fundamental difference between the two ideas. There are
> problems with trying to use functions within modules as extensions. My
> proposal is simply that we can get around this by attaching the
> functions to namespaces.
I don't see why this notion of quotation expander is linked to
namespaces. The problem is not that the code for expanders is attached
to module, but simply that it this code needs to run during compilation,
and must thus have been compiled in an early stage of the build process
(and then linked statically/dynamically in the compiler or pre-processor
driver). I don't think we need namespaces nor a new file extension to
do that. Quotations expander are just regular OCaml code, with the full
expressive power of the language, and as any OCaml code to be compiled,
they need to be part of some module. I don't see any problem here.
> I'm not suggesting any notion of staged compilation. The whole point of
> separating functions for extensions from modules is to avoid this issue.
The OCaml code in .mlq files need to be compiled before any unit which
uses this expander, and it will be run somehow during the compilation of
that unit. "User-land" code executed during compilation of another
piece of code look like staged compilation.
More information about the wg-camlp4