Unsorted entries in PLIST files have generated a pkglint warning for at
least 12 years. Somewhat more recently, pkglint has learned to sort
PLIST files automatically. Since pkglint 5.4.23, the sorting is only
done in obvious, simple cases. These have been applied by running:
pkglint -Cnone,PLIST -Wnone,plist-sort -r -F
Camlp5 Version 6.06:
--------------------
* [01 Jun 12] Added compatibility with OCaml 4.00.0 and (incoming) 4.01.0.
* [18 Mar 12] Fixed bug in pr_o: [(let module M = ... in x); y] was
displayed without parentheses.
* [14 Mar 12] Added compatibility with OCaml 3.12.2.
* [02 Mar 12] Added compatibility with JoCaml 3.12.0 and 3.12.1.
* [02 Mar 12] Completed with all JoCaml statements in ocaml syntax.
Todo: pretty print.
Camlp5 Version 6.05:
--------------------
* [02 Mar 12] Added compatibility with JoCaml trunk.
* [02 Mar 12] Added option -oname in configure to change ocaml
command name. The bytecode compiler, native compiler and bytecode
runtime are respectively <oname>c, <oname>opt and <oname>run.
The default is 'ocaml', implying that the executables are ocamlc,
ocamlopt and ocamlrun. Setting it to 'jocaml', fo example, use
jocamlc, jocamlopt and jocamlrun.
Camlp5 Version 6.04:
--------------------
* [01 Mar 12] Added option -name in configure to change command name
useful to have transitional and strict versions installed with
different names. Default: camlp5.
* [01 Mar 12] The default mode at configuration time is now 'strict'.
Camlp5 Version 6.03:
--------------------
* [09 Jan 12] Updated compatibility with OCaml trunk version (3.13.0).
Camlp5 Version 6.02.3:
----------------------
* [20 Oct 11] Updated compatibility with OCaml current version 3.13.0.
* [20 Sep 11] Added missing syntax "_" in ending patt records (rev: "_ = _").
ep 11] Fixed bug pattern -1L was refused in normal syntax.
* [21 May 11] Fixed bug impacting files using q_ast.cmo extension (bad ast).
* [03 May 11] Fixed bug: lexeme errors in revised syntax + utf8.
* [24 Mar 11] Fixed bug: M.(a+b) was refused in normal syntax.
* [16 Mar 11] Fixed bug: incorrect compilation of label patterns of the
form ~a:b (or ~{a = b} in revised syntax) in class declarations.
* [16 Mar 11] Fixed bug: error while printing label patterns ~a:b with
pr_o.cmo (error message "labels not pretty printed (in patt)").
Camlp5 Version 6.02.2:
----------------------
* [15 Mar 11] Fixed bug: bad AST generated for class identifier prefixed
by a module.
* [15 Mar 11] Fixed differences of locations between OCaml and camlp5o (e.g.
in .annot files)
* [17 Feb 11] Pretty module now considers strings as utf8 encoded (impacts
computation of strings lengths).
* [04 Feb 11] Revised syntax: completed syntax multi labels, ~{x=y; z=t}
(equivalent to ~{x=y} ~{z=t}) in patterns (in 6.02.1 was implemented
only in expressions).
* [28 Jan 11] Added installed module 'Reloc': relocations and equalities
over syntax trees.
* [26 Jan 11] Fixed bug in camlp5o.opt: did not accept '$' as token.
* [18 Jan 11] Fixed bug: private flags in type manifest were not correctly
treated.
* [06 Dec 10] Fixed bug in pr_o.cmo: label expressions were not correctly
pretty printed: f ~a gave f a.
Camlp5 Version 6.02.1:
----------------------
* [05 Dec 10] In module Grammar.Entry.print, added extra parameter ppf
to print in other formatter than (the default) stdout.
* [21 Nov 10] Revised syntax: added syntax multi labels, ~{x=y; z=t}
equivalent to ~{x=y} ~{z=t}
* [16 Nov 10] Updated compatibility with OCaml version 3.13.0-gadt.
Camlp5 Version 6.02:
--------------------
* [12 Nov 10] Added compatibility with OCaml GADT version.
* [12 Nov 10] pa_macro: added ability to use ELSIFDEF in match cases (the
ending ELSE part being still optional).
* [08 Nov 10] Fixed bugs 1/ in pa_o: !Foo.bar was interpreted as (!Foo).bar
instead of !(Foo.bar) 2/ in top/camlp5_top.cma: the file ast2pt.cmo was
missing.
Camlp5 Version 6.01:
--------------------
* [03 Nov 10] Added in revised syntax for labels ~{lab x = y} as shortcut
for ~{lab = fun x -> y}.
* [30 Oct 10] Fixed bug in 'configure': option -libdir did not work.
Camlp5 Version 6.00:
--------------------
* [28 Oct 10] Updated compatibility with OCaml trunk version (3.13.0).
* [01 Oct 10] Make compilation with "make -j" (parallel make) work.
* [29 Sep 10] Fixed bug when using constructors named 'True' and 'False'.
* [24 Sep 10] Fixed many bugs of parsing comments (typically about quotes).
* [23 Sep 10] Fixed bug in pretty printing comments containing '"'.
* [22 Sep 10] Fixed bug bad result of unary minus functions.
* [22 Sep 10] Fixed bug in printing parameters of types of 'with constraint'.
* [22 Sep 10] Fixed bug in revised syntax for class_types. Now application.
does not need parenthesis any more (like for other entries of that kind).
* [19 Sep 10] In grammars, added list with separator with optional ending
separator (LIST0 .. SEP OPT_SEP and LIST1 .. SEP OPT_SEP).
* [19 Sep 10] Completed missing statements in particular in objects,
classes, and first class modules.
* [08 Sep 10] Added option '-flag O' of pr_r.cmo and pr_o.cmo which
add location comments in the output.
* [08 Sep 10] Added new chapters in the documentation:
- Directives
- Redefining OCaml syntax
* [08 Sep 10] Fixed option '-flag E' (equilibrate cases) of pr_r.cmo and
pr_o.cmo which did not work.
* [06 Sep 10] Changed revised syntax of 'inherit something [params]'
into 'inherit [params] something' (like in normal syntax).
* [06 Sep 10] Added missing statements:
- 'module type of' as module type,
- '(module ... : ...)' as expression,
- '(val ...)' ('value' in revised syntax) as module expression.
* [02 Sep 10] Added directive "#option" (in files, not in toplevel).
* [02 Sep 10] pa_macro.cmo: phrases inside IFDEF statements now are
implementation or interface items, which means:
- ability to use directives which are, therefore, conditional.
- in revised syntax must end with semicolon (incompatibility with
previous versions of Camlp5 where these semicolons are syntax
errors).
- in revised syntax, ability to put several phrases without having
to use "declare .. end".
* [30 Aug 10] pa_macro.cmo: added ability to use ELSIFDEF and ELSIFNDEF
in expressions, structure items and signature items.
* [27 Aug 10] Fixed bug in pa_macro.cmo A AND B computed B AND B.
* [26 Aug 10] Fixed wrong behaviour: char '"' was printed '\"'.
* [25 Aug 10] Added option -no-opt in configure, not to use .opt versions
of OCaml compilers.
* [20 Aug 10] Added compatibility for OCaml version 3.11.3.
* [18 Aug 10] Added function "get" in library module "Ploc", and a
statement "lprintf" similar to "pprintf" added by the syntax
extension kit "pa_pprintf.cmo".
Changes:
* [05 Jun 08] Changed all '#!/bin/bash" in shells scripts into '#!/bin/sh'
and changed all $(...) into `...` because there are compatibilities
problems according to Unix versions.
* [31 Mar 08] Fixed bug: "let f ~_x () = ()" generated syntax error.
* [31 Mar 08] Fixed bug: "x $ y" generated syntax error (normal syntax).
* [02 Jan 08] Added compatibility with OCaml 3.10.3.
Camlp5 Version 5.08:
--------------------
* [08 Feb 08] Fixed bug in normal syntax: a.{x,y} (access to big array) was
interpreted as a.{(x,y)}.
* [22 Jan 08] Added missing cases in printers pr_o and pr_r which displayed
the message "unable to print ...".
* [02 Jan 08] Added compatibility with OCaml 3.09.4 and 3.10.2.
* [21 Jan 08] Fixed bug under windows: the file META could not be build
if the library path name contained colons.
* [13 Jan 08] Added missing man page for camlp5sch (link to the same man
page as camlp5).
* [05 Jan 08] Added "pr_extprint.cmo", printer rebuilding EXTEND_PRINTER
statements in their original syntax.
* [05 Jan 08] Fixed bug in EXTEND_PRINTER statement: the match cases with
"when" did not work.
Camlp5 Version 5.07:
--------------------
* [02 Jan 08] Added "pprintf" statement to use the Camlp5 pretty print
system more easily and shortly.
* [27 Dec 07] Added function [Grammar.Entry.parse_all] returning the
list of all solutions when using the parsing algorithm [Backtracking].
Camlp5 Version 5.06:
--------------------
* [19 Dec 07] Upgraded to add compatibilitly with OCaml version 3.10.1.
Camlp5 Version 5.05:
--------------------
* [17 Dec 07] Added function [Pcaml.quotation_location] returning the
location of the quotation in the source in the context of a quotation
expander.
* [04 Dec 07] Added generation of file META for ocamlfind in directory
etc (built but not installed).
* [28 Nov 07] Upgraded to reflect changes done in parse tree in current
OCaml (version 3.11+dev6).
* [27 Nov 07] Fixed bug in installation. Some files where installed in
the bin directory instead of lib directory.
* [27 Nov 07] Fixed bug in parsing comments: comments containing '\' where
incorrectly parsed.
Camlp5 Version 5.04:
--------------------
* [24 Nov 07] Fixed bug in install under MSVC Windows: object and library
files were not installed (using wrong extensions).
* [24 Nov 07] Fixed bug under Windows: line numbers in error messages were
wrong (twice the normal value).
* [24 Nov 07] Added ability to change the parsing algorithm of extensible
grammars, with the function "Grammar.set_algorithm" whose parameter can
be "predictive" or "backtracking".
* [22 Nov 07] Added backtracking parsers. Functions defined in the module
Fstream (already containing functional streams and parsers). Syntax
added in pa_fstream.cmo (already containing syntax for functinal streams
and parsers). The new syntax uses "bparser" instead of "fparser" and
a backtracking parser returns, together with its result and its
remaining stream, the continuation to compute the next solution.
Camlp5 Version 5.03:
--------------------
* [20 Nov 07] Added commands mkcamlp5 and mkcamlp5.opt to build camlp5
executables with predefined loaded modules. Added installation of ocpp
with name ocpp5, instead of just ocpp.
* [19 Nov 07] Added more installed cmx and cmxa files to allow building
native code linking of all combinations of Camlp5.
* [14 Nov 07] Fixed bug in pr_o.cmo: failed with printing "{a.(i) with ...}".
* [14 Nov 07] Fixed bug under Windows for the printers (pr_o.cmo, pr_r.cmo
and pr_scheme.cmo): extra return character '\r' was added at end of
lines.
* [09 Nov 07] Fixed bug in camlp5o.opt in strict mode: did not parse
correctly, in particular type expression (the version "camlp5o" without
".opt" however worked).
* [29 Oct 07] Added [Pcaml.inter_phrases], a way to set, by program,
the value of the "-sep" option of the printers kits.
* [28 Oct 07] Fixed bug in pa_fstream.cmo (functional parsers): the
keyword after "match with" was "parser" instead of "fparser" and
its code was wrong.
* [27 Oct 07] Added a default lexing buffer (in module [Plexing]) for
pa_lexer.cmo: then, the programmer does not need to write it any
more.
Camlp5 Version 5.02:
--------------------
* [14 Oct 07] Changed 'pa_lex.cmo' into 'pa_lexer.cmo' with a different
syntax (see the documentation).
* [14 Oct 07] In the EXTEND statement, added "LIKE s" as possible
level position to specify a level containing a rule containing "s"
in its keywords or tokens.
* [11 Oct 07] Rewritten parsers and printers in Scheme syntax. Deleted
old module Spretty.
Camlp5 is a preprocessor and pretty-printer for OCaml programs. It also
provides parsing and printing tools.
As a preprocessor, it allows to:
- extend the syntax of OCaml,
- redefine the whole syntax of the language.
As a pretty printer, it allows to:
- display OCaml programs in an elegant way,
- convert from one syntax to another,
- check the results of syntax extensions.
Camlp5 also provides some parsing and pretty printing tools:
- extensible grammars
- extensible printers
- stream parsers and lexers
- pretty print module
It works as a shell command and can also be used in the OCaml toplevel.