[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