From f0df40ac5ad4353b2583efb00f222ec9eff386b8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Thu, 7 Apr 2011 12:03:10 +0000 Subject: [PATCH 1/1] - rel 2 - added official patches Changed files: camlp5.spec -> 1.5 patch-6.02.2-1 -> 1.1 patch-6.02.2-2 -> 1.1 patch-6.02.2-3 -> 1.1 --- camlp5.spec | 9 ++- patch-6.02.2-1 | 126 +++++++++++++++++++++++++++++ patch-6.02.2-2 | 216 +++++++++++++++++++++++++++++++++++++++++++++++++ patch-6.02.2-3 | 41 ++++++++++ 4 files changed, 391 insertions(+), 1 deletion(-) create mode 100644 patch-6.02.2-1 create mode 100644 patch-6.02.2-2 create mode 100644 patch-6.02.2-3 diff --git a/camlp5.spec b/camlp5.spec index 6f9852a..507a4d1 100644 --- a/camlp5.spec +++ b/camlp5.spec @@ -2,7 +2,7 @@ Summary: Objective Caml Preprocessor Summary(pl.UTF-8): Preprocesor OCamla Name: camlp5 Version: 6.02.2 -Release: 1 +Release: 2 License: distributable Group: Development/Languages Source0: http://pauillac.inria.fr/~ddr/camlp5/distrib/src/%{name}-%{version}.tgz @@ -10,6 +10,10 @@ Source0: http://pauillac.inria.fr/~ddr/camlp5/distrib/src/%{name}-%{version}.tgz #Source1: http://pauillac.inria.fr/~ddr/camlp5/doc/pdf/%{name}-%{version}.pdf Source1: http://pauillac.inria.fr/~ddr/camlp5/doc/pdf/%{name}-6.00.pdf # Source1-md5: b241eabfeb48f22b0fbd3e497198a76a +# http://pauillac.inria.fr/~ddr/camlp5/distrib/src/ +Patch0: patch-6.02.2-1 +Patch1: patch-6.02.2-2 +Patch2: patch-6.02.2-3 URL: http://caml.inria.fr/ BuildRequires: db-devel >= 4.1 BuildRequires: ocaml @@ -58,6 +62,9 @@ Preprocesor OCamla - dokumentacja HTML. %prep %setup -q +%patch0 -p0 +%patch1 -p0 +%patch2 -p0 cp %{SOURCE1} doc/camlp4.pdf %build diff --git a/patch-6.02.2-1 b/patch-6.02.2-1 new file mode 100644 index 0000000..2cc27f6 --- /dev/null +++ b/patch-6.02.2-1 @@ -0,0 +1,126 @@ +Index: CHANGES +=================================================================== +retrieving revision 6.36 +retrieving revision 6.38 +diff -c -r6.36 -r6.38 +*** CHANGES 15 Mar 2011 12:36:08 -0000 6.36 +--- CHANGES 16 Mar 2011 16:52:42 -0000 6.38 +*************** +*** 1,3 **** +--- 1,11 ---- ++ Camlp5 Version 6.02.3: ++ ---------------------- ++ ++ * [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: + ---------------------- + +Index: etc/pr_o.ml +=================================================================== +retrieving revision 6.51 +diff -c -r6.51 pr_o.ml +*** etc/pr_o.ml 15 Mar 2011 13:49:10 -0000 6.51 +--- etc/pr_o.ml 16 Mar 2011 15:18:58 -0000 +*************** +*** 1363,1369 **** + | <:patt< _ >> -> pprintf pc "_" + | <:patt:< ?{$_$} >> | <:patt:< ?{$_$ = $_$} >> | <:patt:< ?{$_$} >> | + <:patt:< ?{$_$ = ?{$_$ = $_$}} >> | <:patt:< ?{$_$ = $_$} >> | +! <:patt:< ~{$_$} >> | <:patt:< ~{$_$ = $_$} >> -> + error loc "labels not pretty printed (in patt)" + | <:patt< `$s$ >> -> + failwith "polymorphic variants not pretty printed; add pr_ro.cmo" +--- 1363,1369 ---- + | <:patt< _ >> -> pprintf pc "_" + | <:patt:< ?{$_$} >> | <:patt:< ?{$_$ = $_$} >> | <:patt:< ?{$_$} >> | + <:patt:< ?{$_$ = ?{$_$ = $_$}} >> | <:patt:< ?{$_$ = $_$} >> | +! <:patt:< ~{$list:_$} >> -> + error loc "labels not pretty printed (in patt)" + | <:patt< `$s$ >> -> + failwith "polymorphic variants not pretty printed; add pr_ro.cmo" +Index: main/ast2pt.ml +=================================================================== +retrieving revision 6.32 +diff -c -r6.32 ast2pt.ml +*** main/ast2pt.ml 15 Mar 2011 12:36:08 -0000 6.32 +--- main/ast2pt.ml 16 Mar 2011 15:57:40 -0000 +*************** +*** 1326,1341 **** + [ Some pcl_fun -> + match uv lppo with + [ [(p, po)] -> do { +- let _ = +- match uv po with +- [ Some _ -> error loc "label not implemented in that case 1" +- | None -> None ] +- in + let lab = + match p with + [ PaLid _ s -> uv s + | p -> error loc "label not implemented in that case 2" ] + in + mkpcl loc (pcl_fun lab None (patt p) (class_expr ce)) + } + | [] | [_ :: _] -> error ploc "case class multi lab not yet impl" ] +--- 1326,1341 ---- + [ Some pcl_fun -> + match uv lppo with + [ [(p, po)] -> do { + let lab = + match p with + [ PaLid _ s -> uv s + | p -> error loc "label not implemented in that case 2" ] + in ++ let p = ++ match uv po with ++ [ Some p -> p ++ | None -> p ] ++ in + mkpcl loc (pcl_fun lab None (patt p) (class_expr ce)) + } + | [] | [_ :: _] -> error ploc "case class multi lab not yet impl" ] +Index: ocaml_src/main/ast2pt.ml +=================================================================== +retrieving revision 6.32 +diff -c -r6.32 ast2pt.ml +*** ocaml_src/main/ast2pt.ml 15 Mar 2011 12:36:09 -0000 6.32 +--- ocaml_src/main/ast2pt.ml 16 Mar 2011 16:05:41 -0000 +*************** +*** 1522,1537 **** + Some pcl_fun -> + begin match uv lppo with + [p, po] -> +- let _ = +- match uv po with +- Some _ -> error loc "label not implemented in that case 1" +- | None -> None +- in + let lab = + match p with + PaLid (_, s) -> uv s + | p -> error loc "label not implemented in that case 2" + in + mkpcl loc (pcl_fun lab None (patt p) (class_expr ce)) + | [] | _ :: _ -> error ploc "case class multi lab not yet impl" + end +--- 1522,1537 ---- + Some pcl_fun -> + begin match uv lppo with + [p, po] -> + let lab = + match p with + PaLid (_, s) -> uv s + | p -> error loc "label not implemented in that case 2" + in ++ let p = ++ match uv po with ++ Some p -> p ++ | None -> p ++ in + mkpcl loc (pcl_fun lab None (patt p) (class_expr ce)) + | [] | _ :: _ -> error ploc "case class multi lab not yet impl" + end diff --git a/patch-6.02.2-2 b/patch-6.02.2-2 new file mode 100644 index 0000000..8cc8e15 --- /dev/null +++ b/patch-6.02.2-2 @@ -0,0 +1,216 @@ +Index: main/ast2pt.ml +=================================================================== +retrieving revision 6.33 +diff -c -r6.33 ast2pt.ml +*** main/ast2pt.ml 16 Mar 2011 16:52:42 -0000 6.33 +--- main/ast2pt.ml 17 Mar 2011 16:55:32 -0000 +*************** +*** 725,730 **** +--- 725,737 ---- + | t -> t ] + ; + ++ value label_of_patt = ++ fun ++ [ PaLid _ s -> uv s ++ | PaTyc _ (PaLid _ s) _ -> uv s ++ | p -> error (MLast.loc_of_patt p) "label_of_patt; case not impl" ] ++ ; ++ + value rec expr = + fun + [ ExAcc loc x <:expr< val >> -> +*************** +*** 856,867 **** + [ [(PaLab ploc lppo, w, e)] -> + List.fold_right + (fun (p, po) e -> do { +! let lab = +! match p with +! [ PaLid _ lab -> uv lab +! | PaTyc _ (PaLid _ lab) _ -> uv lab +! | _ -> error loc "not impl label for that patt 1" ] +! in + let p = + match uv po with + [ Some p -> p +--- 863,869 ---- + [ [(PaLab ploc lppo, w, e)] -> + List.fold_right + (fun (p, po) e -> do { +! let lab = label_of_patt p in + let p = + match uv po with + [ Some p -> p +*************** +*** 878,889 **** + | None -> mkexp loc (newtype (uv s) (expr e)) ] + | None -> error loc "(type ..) not in this ocaml version" ] + | [(PaOlb loc p eo, w, e)] -> +! let lab = +! match p with +! [ PaLid _ lab -> uv lab +! | PaTyc _ (PaLid _ lab) _ -> uv lab +! | _ -> error loc "not impl label for that patt 2" ] +! in + let (p, eo) = + match uv eo with + [ Some (ExOlb _ p eo) -> (p, eo) +--- 880,886 ---- + | None -> mkexp loc (newtype (uv s) (expr e)) ] + | None -> error loc "(type ..) not in this ocaml version" ] + | [(PaOlb loc p eo, w, e)] -> +! let lab = label_of_patt p in + let (p, eo) = + match uv eo with + [ Some (ExOlb _ p eo) -> (p, eo) +*************** +*** 1326,1336 **** + [ Some pcl_fun -> + match uv lppo with + [ [(p, po)] -> do { +! let lab = +! match p with +! [ PaLid _ s -> uv s +! | p -> error loc "label not implemented in that case 2" ] +! in + let p = + match uv po with + [ Some p -> p +--- 1323,1329 ---- + [ Some pcl_fun -> + match uv lppo with + [ [(p, po)] -> do { +! let lab = label_of_patt p in + let p = + match uv po with + [ Some p -> p +*************** +*** 1343,1353 **** + | CeFun loc (PaOlb _ p eo) ce -> + match ocaml_pcl_fun with + [ Some pcl_fun -> +! let lab = +! match p with +! [ PaLid _ s -> uv s +! | p -> error loc "label not implemented in that case 4" ] +! in + let (p, eo) = + match uv eo with + [ Some (ExOlb _ p eo) -> (p, eo) +--- 1336,1342 ---- + | CeFun loc (PaOlb _ p eo) ce -> + match ocaml_pcl_fun with + [ Some pcl_fun -> +! let lab = label_of_patt p in + let (p, eo) = + match uv eo with + [ Some (ExOlb _ p eo) -> (p, eo) +Index: ocaml_src/main/ast2pt.ml +=================================================================== +retrieving revision 6.33 +diff -c -r6.33 ast2pt.ml +*** ocaml_src/main/ast2pt.ml 16 Mar 2011 16:52:42 -0000 6.33 +--- ocaml_src/main/ast2pt.ml 17 Mar 2011 16:56:42 -0000 +*************** +*** 881,886 **** +--- 881,893 ---- + loop + ;; + ++ let label_of_patt = ++ function ++ PaLid (_, s) -> uv s ++ | PaTyc (_, PaLid (_, s), _) -> uv s ++ | p -> error (MLast.loc_of_patt p) "label_of_patt; case not impl" ++ ;; ++ + let rec expr = + function + ExAcc (loc, x, MLast.ExLid (_, "val")) -> +*************** +*** 1015,1026 **** + [PaLab (ploc, lppo), w, e] -> + List.fold_right + (fun (p, po) e -> +! let lab = +! match p with +! PaLid (_, lab) -> uv lab +! | PaTyc (_, PaLid (_, lab), _) -> uv lab +! | _ -> error loc "not impl label for that patt 1" +! in + let p = + match uv po with + Some p -> p +--- 1022,1028 ---- + [PaLab (ploc, lppo), w, e] -> + List.fold_right + (fun (p, po) e -> +! let lab = label_of_patt p in + let p = + match uv po with + Some p -> p +*************** +*** 1038,1049 **** + | None -> error loc "(type ..) not in this ocaml version" + end + | [PaOlb (loc, p, eo), w, e] -> +! let lab = +! match p with +! PaLid (_, lab) -> uv lab +! | PaTyc (_, PaLid (_, lab), _) -> uv lab +! | _ -> error loc "not impl label for that patt 2" +! in + let (p, eo) = + match uv eo with + Some (ExOlb (_, p, eo)) -> p, eo +--- 1040,1046 ---- + | None -> error loc "(type ..) not in this ocaml version" + end + | [PaOlb (loc, p, eo), w, e] -> +! let lab = label_of_patt p in + let (p, eo) = + match uv eo with + Some (ExOlb (_, p, eo)) -> p, eo +*************** +*** 1522,1532 **** + Some pcl_fun -> + begin match uv lppo with + [p, po] -> +! let lab = +! match p with +! PaLid (_, s) -> uv s +! | p -> error loc "label not implemented in that case 2" +! in + let p = + match uv po with + Some p -> p +--- 1519,1525 ---- + Some pcl_fun -> + begin match uv lppo with + [p, po] -> +! let lab = label_of_patt p in + let p = + match uv po with + Some p -> p +*************** +*** 1540,1550 **** + | CeFun (loc, PaOlb (_, p, eo), ce) -> + begin match ocaml_pcl_fun with + Some pcl_fun -> +! let lab = +! match p with +! PaLid (_, s) -> uv s +! | p -> error loc "label not implemented in that case 4" +! in + let (p, eo) = + match uv eo with + Some (ExOlb (_, p, eo)) -> p, eo +--- 1533,1539 ---- + | CeFun (loc, PaOlb (_, p, eo), ce) -> + begin match ocaml_pcl_fun with + Some pcl_fun -> +! let lab = label_of_patt p in + let (p, eo) = + match uv eo with + Some (ExOlb (_, p, eo)) -> p, eo diff --git a/patch-6.02.2-3 b/patch-6.02.2-3 new file mode 100644 index 0000000..620ec27 --- /dev/null +++ b/patch-6.02.2-3 @@ -0,0 +1,41 @@ +Index: CHANGES +=================================================================== +retrieving revision 6.38 +diff -c -r6.38 CHANGES +*** CHANGES 16 Mar 2011 16:52:42 -0000 6.38 +--- CHANGES 24 Mar 2011 15:22:59 -0000 +*************** +*** 1,6 **** +--- 1,7 ---- + Camlp5 Version 6.02.3: + ---------------------- + ++ * [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 +Index: etc/pa_o.ml +=================================================================== +retrieving revision 6.34 +diff -c -r6.34 pa_o.ml +*** etc/pa_o.ml 15 Mar 2011 13:49:08 -0000 6.34 +--- etc/pa_o.ml 24 Mar 2011 15:19:05 -0000 +*************** +*** 720,726 **** + in + loop <:expr< $_uid:i$ >> j + | i = V UIDENT; "."; "("; j = operator_rparen -> +! <:expr< $_uid:i$ . $lid:j$ >> ] ] + ; + (* Patterns *) + patt: +--- 720,728 ---- + in + loop <:expr< $_uid:i$ >> j + | i = V UIDENT; "."; "("; j = operator_rparen -> +! <:expr< $_uid:i$ . $lid:j$ >> +! | i = V UIDENT; "."; "("; e = expr; ")" -> +! <:expr< $_uid:i$ . ( $e$ ) >> ] ] + ; + (* Patterns *) + patt: -- 2.43.0