[Pkg-ocaml-maint-commits] [SCM] camlp5 packaging branch, master, updated. debian/6.02.2-1-7-g186ad48

Stephane Glondu steph at glondu.net
Tue Nov 1 21:28:42 UTC 2011


The following commit has been merged in the master branch:
commit 6691cb8d1cde6fcca4513682b2191c34ffb62f06
Author: Stephane Glondu <steph at 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 <steph at 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



More information about the Pkg-ocaml-maint-commits mailing list