Browse thread
OSR - "Batteries included" - Standardizing syntax extensions and extra libraries
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Dario Teixeira <darioteixeira@y...> |
| Subject: | Re: [Caml-list] OSR - "Batteries included" - Standardizing syntax extensions and extra libraries |
> If ocamlfind were included as a standard part of the community OCaml
> distribution, then I think it would ease this process significantly.
Hi,
Indeed. I was about to start my own OSR thread concerning the proper
use of ocamlfind with libraries that offer a syntax extension. One
good example is PG'OCaml (by Rich Jones): it ships with a META file
that makes the use of the syntax extension really simple with findlib.
This is the META file: (I just removed the description lines)
name="pgocaml"
version="1.0"
requires="unix,extlib,csv,pcre,calendar"
archive(byte)="pgocaml.cma"
archive(native)="pgocaml.cmxa"
package "statements" (
requires = "pgocaml,camlp4"
version = "1.0"
archive(syntax,preprocessor) = "pa_pgsql.cmo"
archive(syntax,toploop) = "pa_pgsql.cmo"
)
Notice the "statements" subpackage. Suppose you have a "test.ml" file
that uses PG'OCaml's syntax extension. Compiling it with findlib is
as simple as:
ocamlfind ocamlc -package pgocaml.statements -syntax camlp4o -c test.ml
This is of course particularly relevant for GODI, and I noticed that not
all GODI packages ship with camlp4-friendly META files (Sexplib, for one).
Moreover, it would be nice if a standard name could be found for these
subpackages. PG'OCaml uses "statements", but that may be a bit long-winded.
What about just "pp"?
Now, to reach package nirvana, we just need to get Ocamlbuild to be
friendlier to findlib -- including in the use of these syntax extensions.
Cheers,
Dario Teixeira
__________________________________________________________
Sent from Yahoo! Mail.
A Smarter Inbox. http://uk.docs.yahoo.com/nowyoucan.html