./lang/camlp5, Camlp5 is a preprocessor-pretty-printer of ocaml

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 6.13, Package name: camlp5-6.13, Maintainer: tonio

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.

Required to run:

Master sites:

SHA1: 47fb47947e6e053d192b29ae72105c7adfdd6ed3
RMD160: cfea137e8a92e48fe51a15a816a6333477e86e43
Filesize: 703.039 KB

Version history: (Expand)

CVS history: (Expand)

   2015-06-30 13:10:15 by Jaap Boender | Files touched by this commit (3) | Package updated
Log message:
Updated lang/camlp5 to newest version 6.13 (to work with ocaml 4.02.2).
There is one other change:
* [20 Apr 15] Accept 'fun/try' case list like the change of 22nd Apr 13
  on 'match' in revised syntax, allowing them to write "|" .. \ 
"end" or
  "[" .. "]", both being accepted.
   2015-01-20 15:24:38 by Jaap Boender | Files touched by this commit (55) | Package updated
Log message:
Revbump associated with update of lang/ocaml.
   2014-10-09 23:42:03 by Jaap Boender | Files touched by this commit (5) | Package updated
Log message:
Updated package to latest version, 6.12. Package uses ocaml.mk.
Minor fixes for compatibility with ocaml 4.02.
   2013-11-01 12:30:24 by Jaap Boender | Files touched by this commit (47) | Package updated
Log message:
Revision bump associated with the update of lang/ocaml to version 4.01.
   2013-08-22 17:25:01 by Jaap Boender | Files touched by this commit (3) | Package updated
Log message:
Updated lang/camlp5 to latest version, 6.11 (discussed with tonio@).
Changes from 6.07 are:
* Updated for ocaml version 4.01.0
* Added 'MLast.loc_of_with_constr'.
* Fixed bug toplevel with revised syntax; "= 'a" was missing
  in output in that example:
   # module type A = sig module type S = 'a; end;
     module type A = sig module type S; end
* Now accept lowercase ident for module types, like ocaml does.
  Accepted also in revised syntax.
* (experimental) Now, in revised syntax, a "." followed by
  a newline is interpreted as a ";", allowing to end phrases with \ 
  Drawback: will syntax error when writing a record/module access in two
  lines ending the first one with "." like:
* Accept now "match with | | ... end" in revised syntax, with
  a required "|" in the first case, as alternative syntax for match.
* Added function 'Pcaml.value greek_ascii_equiv' giving
  an ascii equivalent to a greek (utf8) letter representing a type
  parameter. E.g. 'a' for 'α', 'b' for 'β', and so on.
* Fixed bug no locations built in some cases of constructors.
* Fixed bug: in toplevel, the highlighting of errors did not work.
* Added option '-dquot' to specify the default quotation name.
  and the ability to use "#option" directive with two parameters. \ 
  we can use either (e.g.):
    -dquot "expr"
  in the command line of camlp5 or
    #option "-dquot" "expr"
  inside a file.
* Now 'make' displays a message how to compile, instead
  of doing 'make out'. Old behaviour of 'make' must be now 'make out'.
* Now accept identifiers starting with a greek letter as variable names.
* Fixed bug: DEFINE FOO=32 while using pa_macro.cmo did not work
  due to a bad order in grammar insertion.
* Fixed bug: parsing greek letters as type variable in
  constructor declaration did not work when building Camlp5.
   2012-10-09 12:24:44 by Jaap Boender | Files touched by this commit (2) | Package updated
Log message:
Updated camlp5 to 6.07, for compatibility with current ocaml version. Changes

* [12 Sep 12] Added compatibility with OCaml 4.00.1.
* [06 Jun 12] Fixed bug: open record patterns {a=b;c=d;_} did not work.
   2012-10-09 03:41:59 by Krister Walfridsson | Files touched by this commit (1)
Log message:
Correct BUILDLINK_ABI_DEPENDS.camlp5 to say 6.06 instead of 6.06nb1.
   2012-10-08 17:31:14 by Jaap Boender | Files touched by this commit (5) | Package updated
Log message:
Updated lang/camlp5 to its latest version. Changes from the old version include:

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
* [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

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
    - 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".