The following commit has been merged in the master branch: commit 6691cb8d1cde6fcca4513682b2191c34ffb62f06 Author: Stephane Glondu <st...@glondu.net> Date: Tue Nov 1 22:22:40 2011 +0100
Import upstream patch 6.02.3-1 diff --git a/debian/patches/0001-Upstream-patch-6.02.3-1.patch b/debian/patches/0001-Upstream-patch-6.02.3-1.patch new file mode 100644 index 0000000..0b3a4bc --- /dev/null +++ b/debian/patches/0001-Upstream-patch-6.02.3-1.patch @@ -0,0 +1,808 @@ +From: Stephane Glondu <st...@glondu.net> +Date: Tue, 1 Nov 2011 22:14:37 +0100 +Subject: Upstream patch 6.02.3-1 + +Origin: upstream, http://pauillac.inria.fr/~ddr/camlp5/distrib/src/patch-6.02.3-1 +--- + CHANGES | 2 ++ + etc/pa_o.ml | 8 ++++++-- + etc/pr_o.ml | 13 +++++++++++-- + lib/versdep.ml | 7 ++++--- + main/ast2pt.ml | 12 ++++++++++-- + meta/pa_r.ml | 5 +++-- + meta/q_MLast.ml | 5 +++-- + ocaml_src/lib/versdep/1.06.ml | 2 +- + ocaml_src/lib/versdep/1.07.ml | 2 +- + ocaml_src/lib/versdep/2.00.ml | 2 +- + ocaml_src/lib/versdep/2.01.ml | 2 +- + ocaml_src/lib/versdep/2.02.ml | 2 +- + ocaml_src/lib/versdep/2.03.ml | 2 +- + ocaml_src/lib/versdep/2.04.ml | 2 +- + ocaml_src/lib/versdep/2.99.ml | 2 +- + ocaml_src/lib/versdep/3.00.ml | 2 +- + ocaml_src/lib/versdep/3.01.ml | 2 +- + ocaml_src/lib/versdep/3.02.ml | 2 +- + ocaml_src/lib/versdep/3.03.ml | 2 +- + ocaml_src/lib/versdep/3.04.ml | 2 +- + ocaml_src/lib/versdep/3.05.ml | 2 +- + ocaml_src/lib/versdep/3.06.ml | 2 +- + ocaml_src/lib/versdep/3.07.ml | 2 +- + ocaml_src/lib/versdep/3.08.0.ml | 2 +- + ocaml_src/lib/versdep/3.08.1.ml | 2 +- + ocaml_src/lib/versdep/3.08.2.ml | 2 +- + ocaml_src/lib/versdep/3.08.3.ml | 2 +- + ocaml_src/lib/versdep/3.08.4.ml | 2 +- + ocaml_src/lib/versdep/3.09.0.ml | 2 +- + ocaml_src/lib/versdep/3.09.1.ml | 2 +- + ocaml_src/lib/versdep/3.09.2.ml | 2 +- + ocaml_src/lib/versdep/3.09.3.ml | 2 +- + ocaml_src/lib/versdep/3.09.4.ml | 2 +- + ocaml_src/lib/versdep/3.10.0.ml | 2 +- + ocaml_src/lib/versdep/3.10.1.ml | 2 +- + ocaml_src/lib/versdep/3.10.2.ml | 2 +- + ocaml_src/lib/versdep/3.10.3.ml | 2 +- + ocaml_src/lib/versdep/3.10.ml | 2 +- + ocaml_src/lib/versdep/3.11.0.ml | 2 +- + ocaml_src/lib/versdep/3.11.1.ml | 2 +- + ocaml_src/lib/versdep/3.11.2.ml | 2 +- + ocaml_src/lib/versdep/3.11.3.ml | 2 +- + ocaml_src/lib/versdep/3.11.ml | 2 +- + ocaml_src/lib/versdep/3.12.0.ml | 4 +++- + ocaml_src/lib/versdep/3.12.1.ml | 4 +++- + ocaml_src/lib/versdep/3.13.0-gadt.ml | 4 +++- + ocaml_src/lib/versdep/3.13.0.ml | 4 +++- + ocaml_src/main/ast2pt.ml | 10 +++++++++- + ocaml_src/meta/pa_r.ml | 5 ++++- + ocaml_src/meta/q_MLast.ml | 6 +++++- + 50 files changed, 105 insertions(+), 56 deletions(-) + +diff --git a/CHANGES b/CHANGES +index 839305d..74900c5 100644 +--- a/CHANGES ++++ b/CHANGES +@@ -1,6 +1,8 @@ + Camlp5 Version 6.02.3: + ---------------------- + ++* [20 Sep 11] Added missing syntax "_" in ending patt records (rev: "_ = _"). ++* [20 Sep 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. +diff --git a/etc/pa_o.ml b/etc/pa_o.ml +index e79a0a2..8f5e319 100644 +--- a/etc/pa_o.ml ++++ b/etc/pa_o.ml +@@ -1,5 +1,5 @@ + (* camlp5r *) +-(* $Id: pa_o.ml,v 6.35 2011-03-24 15:31:50 deraugla Exp $ *) ++(* $Id: pa_o.ml,v 6.37 2011-09-20 10:10:25 deraugla Exp $ *) + (* Copyright (c) INRIA 2007-2011 *) + + #load "pa_extend.cmo"; +@@ -771,6 +771,9 @@ EXTEND + | s = V INT_L -> <:patt< $_int64:s$ >> + | s = V INT_n -> <:patt< $_nativeint:s$ >> + | "-"; s = INT -> <:patt< $int:"-" ^ s$ >> ++ | "-"; s = INT_l -> <:patt< $int32:"-" ^ s$ >> ++ | "-"; s = INT_L -> <:patt< $int64:"-" ^ s$ >> ++ | "-"; s = INT_n -> <:patt< $nativeint:"-" ^ s$ >> + | "-"; s = FLOAT -> <:patt< $flo:"-" ^ s$ >> + | s = V FLOAT -> <:patt< $_flo:s$ >> + | s = V STRING -> <:patt< $_str:s$ >> +@@ -812,7 +815,8 @@ EXTEND + | le = lbl_patt -> [le] ] ] + ; + lbl_patt: +- [ [ i = patt_label_ident; "="; p = patt -> (i, p) ] ] ++ [ [ i = patt_label_ident; "="; p = patt -> (i, p) ++ | "_" -> (<:patt< _ >>, <:patt< _ >>) ] ] + ; + patt_label_ident: + [ LEFTA +diff --git a/etc/pr_o.ml b/etc/pr_o.ml +index f43eb3f..beb3fb9 100644 +--- a/etc/pr_o.ml ++++ b/etc/pr_o.ml +@@ -1,5 +1,5 @@ + (* camlp5r *) +-(* $Id: pr_o.ml,v 6.52 2011-03-16 16:52:42 deraugla Exp $ *) ++(* $Id: pr_o.ml,v 6.53 2011-09-20 10:10:25 deraugla Exp $ *) + (* Copyright (c) INRIA 2007-2011 *) + + #directory "."; +@@ -1322,8 +1322,17 @@ EXTEND_PRINTER + pprintf pc "%p.%p" curr x curr y ] + | "simple" + [ <:patt< {$list:lpl$} >> -> ++ let (lpl, closed) = ++ List.fold_right ++ (fun lp (lpl, closed) -> ++ match lp with ++ [ (<:patt< _ >>, <:patt< _ >>) -> (lpl, True) ++ | lp -> ([lp :: lpl], closed) ]) ++ lpl ([], False) ++ in + let lxl = List.map (fun lx -> (lx, ";")) lpl in +- pprintf pc "@[<1>{%p}@]" (plist (binding patt) 0) lxl ++ pprintf pc "@[<1>{%p%s}@]" (plist (binding patt) 0) lxl ++ (if closed then "; _" else "") + | <:patt< [| $list:pl$ |] >> -> + if pl = [] then pprintf pc "[| |]" + else +diff --git a/lib/versdep.ml b/lib/versdep.ml +index e6a80a4..4bf4a81 100644 +--- a/lib/versdep.ml ++++ b/lib/versdep.ml +@@ -1,5 +1,5 @@ + (* camlp5r pa_macro.cmo *) +-(* $Id: versdep.ml,v 6.15 2011-03-15 13:49:11 deraugla Exp $ *) ++(* $Id: versdep.ml,v 6.16 2011-09-20 10:10:25 deraugla Exp $ *) + (* Copyright (c) INRIA 2007-2011 *) + + open Parsetree; +@@ -368,8 +368,9 @@ value ocaml_ppat_lazy = + ELSE None END + ; + +-value ocaml_ppat_record lpl = +- IFDEF OCAML_VERSION >= OCAML_3_12 THEN Ppat_record lpl Closed ++value ocaml_ppat_record lpl closed = ++ IFDEF OCAML_VERSION >= OCAML_3_12 THEN ++ Ppat_record lpl (if closed then Closed else Open) + ELSE Ppat_record lpl END + ; + +diff --git a/main/ast2pt.ml b/main/ast2pt.ml +index 2ab7666..50ba9e2 100644 +--- a/main/ast2pt.ml ++++ b/main/ast2pt.ml +@@ -1,5 +1,5 @@ + (* camlp5r *) +-(* $Id: ast2pt.ml,v 6.34 2011-03-17 16:58:27 deraugla Exp $ *) ++(* $Id: ast2pt.ml,v 6.35 2011-09-20 10:10:25 deraugla Exp $ *) + + #load "q_MLast.cmo"; + +@@ -614,7 +614,15 @@ value rec patt = + mkrangepat loc c1 c2 + | _ -> error loc "range pattern allowed only for characters" ] + | PaRec loc lpl -> +- mkpat loc (ocaml_ppat_record (List.map mklabpat (uv lpl))) ++ let (lpl, closed) = ++ List.fold_right ++ (fun lp (lpl, closed) -> ++ match lp with ++ [ (PaAny _, PaAny _) -> (lpl, True) ++ | lp -> ([lp :: lpl], closed) ]) ++ (uv lpl) ([], False) ++ in ++ mkpat loc (ocaml_ppat_record (List.map mklabpat lpl) closed) + | PaStr loc s -> + mkpat loc + (Ppat_constant (Const_string (string_of_string_token loc (uv s)))) +diff --git a/meta/pa_r.ml b/meta/pa_r.ml +index 34acd55..6bf9841 100644 +--- a/meta/pa_r.ml ++++ b/meta/pa_r.ml +@@ -1,5 +1,5 @@ + (* camlp5r *) +-(* $Id: pa_r.ml,v 6.36 2011-03-15 13:49:12 deraugla Exp $ *) ++(* $Id: pa_r.ml,v 6.37 2011-09-20 10:10:26 deraugla Exp $ *) + (* Copyright (c) INRIA 2007-2011 *) + + #load "pa_extend.cmo"; +@@ -530,7 +530,8 @@ EXTEND + [ p1 = SELF; "."; p2 = SELF -> <:patt< $p1$ . $p2$ >> ] + | "simple" RIGHTA + [ i = V UIDENT -> <:patt< $_uid:i$ >> +- | i = V LIDENT -> <:patt< $_lid:i$ >> ] ] ++ | i = V LIDENT -> <:patt< $_lid:i$ >> ++ | "_" -> <:patt< _ >> ] ] + ; + ipatt: + [ [ "{"; lpl = V (LIST1 label_ipatt SEP ";"); "}" -> +diff --git a/meta/q_MLast.ml b/meta/q_MLast.ml +index 60a551c..0e3db77 100644 +--- a/meta/q_MLast.ml ++++ b/meta/q_MLast.ml +@@ -1,5 +1,5 @@ + (* camlp5r *) +-(* $Id: q_MLast.ml,v 6.33 2011-03-15 13:49:12 deraugla Exp $ *) ++(* $Id: q_MLast.ml,v 6.34 2011-09-20 10:10:26 deraugla Exp $ *) + (* Copyright (c) INRIA 2007-2011 *) + + #load "pa_extend.cmo"; +@@ -903,7 +903,8 @@ EXTEND + [ p1 = SELF; "."; p2 = SELF -> Qast.Node "PaAcc" [Qast.Loc; p1; p2] ] + | "simple" RIGHTA + [ i = SV UIDENT -> Qast.Node "PaUid" [Qast.Loc; i] +- | i = SV LIDENT -> Qast.Node "PaLid" [Qast.Loc; i] ] ] ++ | i = SV LIDENT -> Qast.Node "PaLid" [Qast.Loc; i] ++ | "_" -> Qast.Node "PaAny" [Qast.Loc] ] ] + ; + ipatt: + [ [ "{"; lpl = SV (LIST1 label_ipatt SEP ";"); "}" -> +diff --git a/ocaml_src/lib/versdep/1.06.ml b/ocaml_src/lib/versdep/1.06.ml +index c410ac2..3904423 100644 +--- a/ocaml_src/lib/versdep/1.06.ml ++++ b/ocaml_src/lib/versdep/1.06.ml +@@ -167,7 +167,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/1.07.ml b/ocaml_src/lib/versdep/1.07.ml +index ad2f8ff..21e557c 100644 +--- a/ocaml_src/lib/versdep/1.07.ml ++++ b/ocaml_src/lib/versdep/1.07.ml +@@ -167,7 +167,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/2.00.ml b/ocaml_src/lib/versdep/2.00.ml +index 7ebeac0..e8ae789 100644 +--- a/ocaml_src/lib/versdep/2.00.ml ++++ b/ocaml_src/lib/versdep/2.00.ml +@@ -151,7 +151,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/2.01.ml b/ocaml_src/lib/versdep/2.01.ml +index ed38ceb..e3f2045 100644 +--- a/ocaml_src/lib/versdep/2.01.ml ++++ b/ocaml_src/lib/versdep/2.01.ml +@@ -151,7 +151,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/2.02.ml b/ocaml_src/lib/versdep/2.02.ml +index 6b48c98..87fface 100644 +--- a/ocaml_src/lib/versdep/2.02.ml ++++ b/ocaml_src/lib/versdep/2.02.ml +@@ -151,7 +151,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/2.03.ml b/ocaml_src/lib/versdep/2.03.ml +index 23027d1..a9ce6bd 100644 +--- a/ocaml_src/lib/versdep/2.03.ml ++++ b/ocaml_src/lib/versdep/2.03.ml +@@ -152,7 +152,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/2.04.ml b/ocaml_src/lib/versdep/2.04.ml +index 2ccd7c0..028e00c 100644 +--- a/ocaml_src/lib/versdep/2.04.ml ++++ b/ocaml_src/lib/versdep/2.04.ml +@@ -152,7 +152,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/2.99.ml b/ocaml_src/lib/versdep/2.99.ml +index d309f66..d5bcf8e 100644 +--- a/ocaml_src/lib/versdep/2.99.ml ++++ b/ocaml_src/lib/versdep/2.99.ml +@@ -176,7 +176,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = None;; + +diff --git a/ocaml_src/lib/versdep/3.00.ml b/ocaml_src/lib/versdep/3.00.ml +index 8c6e73d..a75b8c8 100644 +--- a/ocaml_src/lib/versdep/3.00.ml ++++ b/ocaml_src/lib/versdep/3.00.ml +@@ -176,7 +176,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.01.ml b/ocaml_src/lib/versdep/3.01.ml +index 9ef70d8..33790ae 100644 +--- a/ocaml_src/lib/versdep/3.01.ml ++++ b/ocaml_src/lib/versdep/3.01.ml +@@ -143,7 +143,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.02.ml b/ocaml_src/lib/versdep/3.02.ml +index e3d45b9..820fb4d 100644 +--- a/ocaml_src/lib/versdep/3.02.ml ++++ b/ocaml_src/lib/versdep/3.02.ml +@@ -143,7 +143,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.03.ml b/ocaml_src/lib/versdep/3.03.ml +index 78609a1..1d42d74 100644 +--- a/ocaml_src/lib/versdep/3.03.ml ++++ b/ocaml_src/lib/versdep/3.03.ml +@@ -136,7 +136,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.04.ml b/ocaml_src/lib/versdep/3.04.ml +index 30666cc..493e4f6 100644 +--- a/ocaml_src/lib/versdep/3.04.ml ++++ b/ocaml_src/lib/versdep/3.04.ml +@@ -136,7 +136,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.05.ml b/ocaml_src/lib/versdep/3.05.ml +index b188a38..7f4b73b 100644 +--- a/ocaml_src/lib/versdep/3.05.ml ++++ b/ocaml_src/lib/versdep/3.05.ml +@@ -136,7 +136,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.06.ml b/ocaml_src/lib/versdep/3.06.ml +index b188a38..7f4b73b 100644 +--- a/ocaml_src/lib/versdep/3.06.ml ++++ b/ocaml_src/lib/versdep/3.06.ml +@@ -136,7 +136,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.07.ml b/ocaml_src/lib/versdep/3.07.ml +index 6a78441..0c7b4c2 100644 +--- a/ocaml_src/lib/versdep/3.07.ml ++++ b/ocaml_src/lib/versdep/3.07.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.08.0.ml b/ocaml_src/lib/versdep/3.08.0.ml +index 67c4c40..e470781 100644 +--- a/ocaml_src/lib/versdep/3.08.0.ml ++++ b/ocaml_src/lib/versdep/3.08.0.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.08.1.ml b/ocaml_src/lib/versdep/3.08.1.ml +index 67c4c40..e470781 100644 +--- a/ocaml_src/lib/versdep/3.08.1.ml ++++ b/ocaml_src/lib/versdep/3.08.1.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.08.2.ml b/ocaml_src/lib/versdep/3.08.2.ml +index 67c4c40..e470781 100644 +--- a/ocaml_src/lib/versdep/3.08.2.ml ++++ b/ocaml_src/lib/versdep/3.08.2.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.08.3.ml b/ocaml_src/lib/versdep/3.08.3.ml +index 67c4c40..e470781 100644 +--- a/ocaml_src/lib/versdep/3.08.3.ml ++++ b/ocaml_src/lib/versdep/3.08.3.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.08.4.ml b/ocaml_src/lib/versdep/3.08.4.ml +index 67c4c40..e470781 100644 +--- a/ocaml_src/lib/versdep/3.08.4.ml ++++ b/ocaml_src/lib/versdep/3.08.4.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.09.0.ml b/ocaml_src/lib/versdep/3.09.0.ml +index 039983b..cce2728 100644 +--- a/ocaml_src/lib/versdep/3.09.0.ml ++++ b/ocaml_src/lib/versdep/3.09.0.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.09.1.ml b/ocaml_src/lib/versdep/3.09.1.ml +index 039983b..cce2728 100644 +--- a/ocaml_src/lib/versdep/3.09.1.ml ++++ b/ocaml_src/lib/versdep/3.09.1.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.09.2.ml b/ocaml_src/lib/versdep/3.09.2.ml +index 039983b..cce2728 100644 +--- a/ocaml_src/lib/versdep/3.09.2.ml ++++ b/ocaml_src/lib/versdep/3.09.2.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.09.3.ml b/ocaml_src/lib/versdep/3.09.3.ml +index 039983b..cce2728 100644 +--- a/ocaml_src/lib/versdep/3.09.3.ml ++++ b/ocaml_src/lib/versdep/3.09.3.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.09.4.ml b/ocaml_src/lib/versdep/3.09.4.ml +index 039983b..cce2728 100644 +--- a/ocaml_src/lib/versdep/3.09.4.ml ++++ b/ocaml_src/lib/versdep/3.09.4.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.10.0.ml b/ocaml_src/lib/versdep/3.10.0.ml +index 7318ae1..d9bd7fb 100644 +--- a/ocaml_src/lib/versdep/3.10.0.ml ++++ b/ocaml_src/lib/versdep/3.10.0.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.10.1.ml b/ocaml_src/lib/versdep/3.10.1.ml +index 7318ae1..d9bd7fb 100644 +--- a/ocaml_src/lib/versdep/3.10.1.ml ++++ b/ocaml_src/lib/versdep/3.10.1.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.10.2.ml b/ocaml_src/lib/versdep/3.10.2.ml +index 7318ae1..d9bd7fb 100644 +--- a/ocaml_src/lib/versdep/3.10.2.ml ++++ b/ocaml_src/lib/versdep/3.10.2.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.10.3.ml b/ocaml_src/lib/versdep/3.10.3.ml +index 7318ae1..d9bd7fb 100644 +--- a/ocaml_src/lib/versdep/3.10.3.ml ++++ b/ocaml_src/lib/versdep/3.10.3.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.10.ml b/ocaml_src/lib/versdep/3.10.ml +index fc4f48c..52d55a6 100644 +--- a/ocaml_src/lib/versdep/3.10.ml ++++ b/ocaml_src/lib/versdep/3.10.ml +@@ -145,7 +145,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = None;; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.11.0.ml b/ocaml_src/lib/versdep/3.11.0.ml +index df7eed5..6ae168b 100644 +--- a/ocaml_src/lib/versdep/3.11.0.ml ++++ b/ocaml_src/lib/versdep/3.11.0.ml +@@ -143,7 +143,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.11.1.ml b/ocaml_src/lib/versdep/3.11.1.ml +index df7eed5..6ae168b 100644 +--- a/ocaml_src/lib/versdep/3.11.1.ml ++++ b/ocaml_src/lib/versdep/3.11.1.ml +@@ -143,7 +143,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.11.2.ml b/ocaml_src/lib/versdep/3.11.2.ml +index df7eed5..6ae168b 100644 +--- a/ocaml_src/lib/versdep/3.11.2.ml ++++ b/ocaml_src/lib/versdep/3.11.2.ml +@@ -143,7 +143,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.11.3.ml b/ocaml_src/lib/versdep/3.11.3.ml +index df7eed5..6ae168b 100644 +--- a/ocaml_src/lib/versdep/3.11.3.ml ++++ b/ocaml_src/lib/versdep/3.11.3.ml +@@ -143,7 +143,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.11.ml b/ocaml_src/lib/versdep/3.11.ml +index df7eed5..6ae168b 100644 +--- a/ocaml_src/lib/versdep/3.11.ml ++++ b/ocaml_src/lib/versdep/3.11.ml +@@ -143,7 +143,7 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record lpl;; ++let ocaml_ppat_record lpl closed = Ppat_record lpl;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.12.0.ml b/ocaml_src/lib/versdep/3.12.0.ml +index 95eb86d..d7121a2 100644 +--- a/ocaml_src/lib/versdep/3.12.0.ml ++++ b/ocaml_src/lib/versdep/3.12.0.ml +@@ -143,7 +143,9 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record (lpl, Closed);; ++let ocaml_ppat_record lpl closed = ++ Ppat_record (lpl, (if closed then Closed else Open)) ++;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.12.1.ml b/ocaml_src/lib/versdep/3.12.1.ml +index 95eb86d..d7121a2 100644 +--- a/ocaml_src/lib/versdep/3.12.1.ml ++++ b/ocaml_src/lib/versdep/3.12.1.ml +@@ -143,7 +143,9 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record (lpl, Closed);; ++let ocaml_ppat_record lpl closed = ++ Ppat_record (lpl, (if closed then Closed else Open)) ++;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.13.0-gadt.ml b/ocaml_src/lib/versdep/3.13.0-gadt.ml +index 24d1e81..738721d 100644 +--- a/ocaml_src/lib/versdep/3.13.0-gadt.ml ++++ b/ocaml_src/lib/versdep/3.13.0-gadt.ml +@@ -132,7 +132,9 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record (lpl, Closed);; ++let ocaml_ppat_record lpl closed = ++ Ppat_record (lpl, (if closed then Closed else Open)) ++;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/lib/versdep/3.13.0.ml b/ocaml_src/lib/versdep/3.13.0.ml +index e0dc9d3..0d22a41 100644 +--- a/ocaml_src/lib/versdep/3.13.0.ml ++++ b/ocaml_src/lib/versdep/3.13.0.ml +@@ -145,7 +145,9 @@ let ocaml_ppat_construct_args = + + let ocaml_ppat_lazy = Some (fun p -> Ppat_lazy p);; + +-let ocaml_ppat_record lpl = Ppat_record (lpl, Closed);; ++let ocaml_ppat_record lpl closed = ++ Ppat_record (lpl, (if closed then Closed else Open)) ++;; + + let ocaml_ppat_type = Some (fun sl -> Ppat_type sl);; + +diff --git a/ocaml_src/main/ast2pt.ml b/ocaml_src/main/ast2pt.ml +index 7fd9009..22445a6 100644 +--- a/ocaml_src/main/ast2pt.ml ++++ b/ocaml_src/main/ast2pt.ml +@@ -634,7 +634,15 @@ let rec patt = + | _ -> error loc "range pattern allowed only for characters" + end + | PaRec (loc, lpl) -> +- mkpat loc (ocaml_ppat_record (List.map mklabpat (uv lpl))) ++ let (lpl, closed) = ++ List.fold_right ++ (fun lp (lpl, closed) -> ++ match lp with ++ PaAny _, PaAny _ -> lpl, true ++ | lp -> lp :: lpl, closed) ++ (uv lpl) ([], false) ++ in ++ mkpat loc (ocaml_ppat_record (List.map mklabpat lpl) closed) + | PaStr (loc, s) -> + mkpat loc + (Ppat_constant (Const_string (string_of_string_token loc (uv s)))) +diff --git a/ocaml_src/meta/pa_r.ml b/ocaml_src/meta/pa_r.ml +index 29a0e7f..8a25f5f 100644 +--- a/ocaml_src/meta/pa_r.ml ++++ b/ocaml_src/meta/pa_r.ml +@@ -1524,7 +1524,10 @@ Grammar.extend + (loc : Ploc.t) -> + (MLast.PaAcc (loc, p1, p2) : 'patt_label_ident))]; + Some "simple", Some Gramext.RightA, +- [[Gramext.Stoken ("LIDENT", "")], ++ [[Gramext.Stoken ("", "_")], ++ Gramext.action ++ (fun _ (loc : Ploc.t) -> (MLast.PaAny loc : 'patt_label_ident)); ++ [Gramext.Stoken ("LIDENT", "")], + Gramext.action + (fun (i : string) (loc : Ploc.t) -> + (MLast.PaLid (loc, i) : 'patt_label_ident)); +diff --git a/ocaml_src/meta/q_MLast.ml b/ocaml_src/meta/q_MLast.ml +index 2bcbeb3..aa03942 100644 +--- a/ocaml_src/meta/q_MLast.ml ++++ b/ocaml_src/meta/q_MLast.ml +@@ -3660,7 +3660,11 @@ Grammar.extend + (loc : Ploc.t) -> + (Qast.Node ("PaAcc", [Qast.Loc; p1; p2]) : 'patt_label_ident))]; + Some "simple", Some Gramext.RightA, +- [[Gramext.Sfacto ++ [[Gramext.Stoken ("", "_")], ++ Gramext.action ++ (fun _ (loc : Ploc.t) -> ++ (Qast.Node ("PaAny", [Qast.Loc]) : 'patt_label_ident)); ++ [Gramext.Sfacto + (Gramext.srules + [[Gramext.Stoken ("LIDENT", "")], + Gramext.action +-- diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..9d877c1 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +0001-Upstream-patch-6.02.3-1.patch -- camlp5 packaging _______________________________________________ Pkg-ocaml-maint-commits mailing list Pkg-ocaml-maint-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ocaml-maint-commits