Gentoo Archives: gentoo-commits

From: Alexis Ballier <aballier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-ml/ppx_fields_conv/, dev-ml/ppx_fields_conv/files/
Date: Tue, 03 May 2016 17:45:04
Message-Id: 1462297462.50b748d280bb286dd2eadd3fef2fbab67aaf26d5.aballier@gentoo
1 commit: 50b748d280bb286dd2eadd3fef2fbab67aaf26d5
2 Author: Alexis Ballier <aballier <AT> gentoo <DOT> org>
3 AuthorDate: Tue May 3 17:07:27 2016 +0000
4 Commit: Alexis Ballier <aballier <AT> gentoo <DOT> org>
5 CommitDate: Tue May 3 17:44:22 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=50b748d2
7
8 dev-ml/ppx_fields_conv: fix build with ocaml 4.03
9
10 Package-Manager: portage-2.2.28
11 Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org>
12
13 dev-ml/ppx_fields_conv/files/oc43.patch | 223 +++++++++++++++++++++
14 .../ppx_fields_conv-113.33.00.ebuild | 4 +
15 2 files changed, 227 insertions(+)
16
17 diff --git a/dev-ml/ppx_fields_conv/files/oc43.patch b/dev-ml/ppx_fields_conv/files/oc43.patch
18 new file mode 100644
19 index 0000000..f1cc40c
20 --- /dev/null
21 +++ b/dev-ml/ppx_fields_conv/files/oc43.patch
22 @@ -0,0 +1,223 @@
23 +diff -uNr ppx_fields_conv-113.33.00/_oasis ppx_fields_conv-113.33.00+4.03/_oasis
24 +--- ppx_fields_conv-113.33.00/_oasis 2016-03-09 16:44:54.000000000 +0100
25 ++++ ppx_fields_conv-113.33.00+4.03/_oasis 2016-03-22 15:13:50.000000000 +0100
26 +@@ -1,8 +1,8 @@
27 + OASISFormat: 0.4
28 +-OCamlVersion: >= 4.02.3
29 ++OCamlVersion: >= 4.03.0
30 + FindlibVersion: >= 1.3.2
31 + Name: ppx_fields_conv
32 +-Version: 113.33.00
33 ++Version: 113.33.00+4.03
34 + Synopsis: Generation of accessor and iteration functions for ocaml records
35 + Authors: Jane Street Group, LLC <opensource@××××××××××.com>
36 + Copyrights: (C) 2015-2016 Jane Street Group LLC <opensource@××××××××××.com>
37 +diff -uNr ppx_fields_conv-113.33.00/opam ppx_fields_conv-113.33.00+4.03/opam
38 +--- ppx_fields_conv-113.33.00/opam 2016-03-18 12:08:01.000000000 +0100
39 ++++ ppx_fields_conv-113.33.00+4.03/opam 2016-03-22 17:51:36.000000000 +0100
40 +@@ -17,4 +17,4 @@
41 + "ppx_tools" {>= "0.99.3"}
42 + "ppx_type_conv"
43 + ]
44 +-available: [ ocaml-version >= "4.02.3" ]
45 ++available: [ ocaml-version >= "4.03.0" ]
46 +diff -uNr ppx_fields_conv-113.33.00/src/ppx_fields_conv.ml ppx_fields_conv-113.33.00+4.03/src/ppx_fields_conv.ml
47 +--- ppx_fields_conv-113.33.00/src/ppx_fields_conv.ml 2016-03-09 16:44:54.000000000 +0100
48 ++++ ppx_fields_conv-113.33.00+4.03/src/ppx_fields_conv.ml 2016-03-22 15:13:50.000000000 +0100
49 +@@ -18,7 +18,7 @@
50 + module A = struct (* Additional AST construction helpers *)
51 +
52 + let exp_string : (loc:Location.t -> string -> expression) = fun ~loc s ->
53 +- pexp_constant ~loc (Const_string (s,None))
54 ++ pexp_constant ~loc (Pconst_string (s,None))
55 +
56 + let pat_name : (loc:Location.t -> string -> pattern) = fun ~loc name ->
57 + ppat_var ~loc (Location.mkloc name loc)
58 +@@ -115,10 +115,10 @@
59 + let apply_type ~loc ~ty_name ~tps =
60 + ptyp_constr ~loc (A.lid_name ~loc ty_name) tps
61 +
62 +- let label_arg name ty = (name,ty)
63 ++ let label_arg name ty = (Asttypes.Labelled name,ty)
64 +
65 + let field_arg ~loc ~private_ ~record
66 +- (f: field:core_type -> ty:core_type -> 'a) labdec : string * 'a =
67 ++ (f: field:core_type -> ty:core_type -> 'a) labdec : Asttypes.arg_label * 'a =
68 + let {pld_name=name; pld_type=ty; _} = labdec in
69 + label_arg name.txt (
70 + f ~field:(field_t ~loc private_ [record; ty]) ~ty)
71 +@@ -133,7 +133,7 @@
72 + let types = List.mapi labdecs ~f in
73 + let create_record_f = [%type: 'input__ -> ([%t record]) ] in
74 + let t = Create.lambda_sig ~loc
75 +- (types @ [ "", acc 0 ])
76 ++ (types @ [ Nolabel, acc 0 ])
77 + ([%type: ( [%t create_record_f] * [%t acc (List.length labdecs)]) ])
78 + in
79 + A.sig_item ~loc "make_creator" t
80 +@@ -153,7 +153,7 @@
81 + let acc i =
82 + ptyp_var ~loc ("acc__" ^ string_of_int i)
83 + in
84 +- let f i arg : (string * core_type) =
85 ++ let f i arg : (Asttypes.arg_label * core_type) =
86 + field_arg ~loc ~private_ ~record (fun ~field ~ty:_ ->
87 + [%type: [%t acc i] -> [%t field] -> [%t acc (i+1)]]) arg
88 + in
89 +@@ -177,7 +177,7 @@
90 + let types = List.mapi labdecs ~f in
91 + let init_ty = label_arg "init" (acc 0) in
92 + let t =
93 +- Create.lambda_sig ~loc (("",record) :: init_ty :: types) (acc (List.length labdecs))
94 ++ Create.lambda_sig ~loc ((Nolabel,record) :: init_ty :: types) (acc (List.length labdecs))
95 + in
96 + A.sig_item ~loc "fold" t
97 +
98 +@@ -194,7 +194,7 @@
99 + let f = field_arg ~loc ~private_ ~record (fun ~field ~ty:field_ty ->
100 + [%type: [%t field] -> [%t record] -> [%t field_ty] -> bool ] ) in
101 + let types = List.map labdecs ~f in
102 +- let t = Create.lambda_sig ~loc (("",record) :: types) [%type: bool ] in
103 ++ let t = Create.lambda_sig ~loc ((Nolabel,record) :: types) [%type: bool ] in
104 + A.sig_item ~loc fun_name t
105 +
106 + let iter_fun ~private_ ~ty_name ~tps ~loc labdecs =
107 +@@ -210,7 +210,7 @@
108 + let f = field_arg ~loc ~private_ ~record (fun ~field ~ty:field_ty ->
109 + [%type: [%t field] -> [%t record] -> [%t field_ty] -> unit ]) in
110 + let types = List.map labdecs ~f in
111 +- let t = Create.lambda_sig ~loc (("",record) :: types) [%type: unit ] in
112 ++ let t = Create.lambda_sig ~loc ((Nolabel,record) :: types) [%type: unit ] in
113 + A.sig_item ~loc "iter" t
114 +
115 + let to_list_fun ~private_ ~ty_name ~tps ~loc labdecs =
116 +@@ -227,7 +227,7 @@
117 + let f = field_arg ~loc ~private_ ~record (fun ~field ~ty:field_ty ->
118 + [%type: [%t field] -> [%t record] -> [%t field_ty] -> 'elem__ ]) in
119 + let types = List.map labdecs ~f in
120 +- let t = Create.lambda_sig ~loc (("",record) :: types) [%type: 'elem__ list] in
121 ++ let t = Create.lambda_sig ~loc ((Nolabel,record) :: types) [%type: 'elem__ list] in
122 + A.sig_item ~loc "to_list" t
123 +
124 + let map_fun ~ty_name ~tps ~loc labdecs =
125 +@@ -243,7 +243,7 @@
126 + let f = field_arg ~loc ~private_:Public ~record (fun ~field ~ty:field_ty ->
127 + [%type: [%t field] -> [%t record] -> [%t field_ty] -> [%t field_ty] ]) in
128 + let types = List.map labdecs ~f in
129 +- let t = Create.lambda_sig ~loc (("",record) :: types) record in
130 ++ let t = Create.lambda_sig ~loc ((Nolabel,record) :: types) record in
131 + A.sig_item ~loc "map" t
132 +
133 + let map_poly ~private_ ~ty_name ~tps ~loc _ =
134 +@@ -281,7 +281,7 @@
135 + List.fold_right labdecs ~init:[%type: unit] ~f:(fun labdec acc ->
136 + match labdec.pld_mutable with
137 + | Immutable -> acc
138 +- | Mutable -> ptyp_arrow ~loc labdec.pld_name.txt labdec.pld_type acc
139 ++ | Mutable -> ptyp_arrow ~loc (Labelled labdec.pld_name.txt) labdec.pld_type acc
140 + )
141 + in
142 + A.sig_item ~loc "set_all_mutable_fields" [%type: [%t record] -> [%t labels]]
143 +@@ -440,7 +440,7 @@
144 + match label with
145 + | None -> name
146 + | Some n -> n in
147 +- l,
148 ++ (Labelled l),
149 + A.pat_name ~loc name
150 +
151 + let label_arg_fun ~loc name =
152 +@@ -460,7 +460,7 @@
153 + ~expr:[%expr [%e A.exp_name ~loc (field_name ^ "_gen__")] acc__]
154 + ] acc)
155 + in
156 +- Create.lambda ~loc [ ("",[%pat? acc__ ]) ] body
157 ++ Create.lambda ~loc [ (Nolabel,[%pat? acc__ ]) ] body
158 + in
159 + let patterns = List.map names ~f:(label_arg_fun ~loc) in
160 + let body0 = [%expr ([%e f], compile_acc__) ] in
161 +@@ -480,7 +480,7 @@
162 + compile_acc__]
163 + ] acc)
164 + in
165 +- let f = Create.lambda ~loc (patterns @ [ ("",[%pat? compile_acc__ ]) ]) body in
166 ++ let f = Create.lambda ~loc (patterns @ [ (Nolabel,[%pat? compile_acc__ ]) ]) body in
167 + A.str_item ~loc "make_creator" f
168 +
169 + let simple_creation_fun ~loc _record_name labdecs =
170 +@@ -515,7 +515,7 @@
171 + let body = List.fold_left names ~init:[%expr init__ ] ~f:field_fold in
172 + let patterns = List.map names ~f:(label_arg_fun ~loc) in
173 + let init = label_arg ~label:"init" ~loc "init__" in
174 +- let lambda = Create.lambda ~loc ( ("",[%pat? record__ ]) :: init :: patterns ) body in
175 ++ let lambda = Create.lambda ~loc ( (Nolabel,[%pat? record__ ]) :: init :: patterns ) body in
176 + A.str_item ~loc "fold" lambda
177 +
178 + let and_fun ~loc labdecs =
179 +@@ -540,7 +540,7 @@
180 + in
181 + let body = List.fold_left names ~init:(A.exp_true ~loc) ~f:field_fold in
182 + let patterns = List.map names ~f:(label_arg_fun ~loc) in
183 +- let lambda = Create.lambda ~loc (("",[%pat? record__ ]) :: patterns) body in
184 ++ let lambda = Create.lambda ~loc ((Nolabel,[%pat? record__ ]) :: patterns) body in
185 + A.str_item ~loc "for_all" lambda
186 +
187 + let or_fun ~loc labdecs =
188 +@@ -566,7 +566,7 @@
189 + let body =
190 + List.fold_left names ~init:[%expr false ] ~f:field_fold in
191 + let patterns = List.map names ~f:(label_arg_fun ~loc) in
192 +- let lambda = Create.lambda ~loc (("",[%pat? record__ ]) :: patterns) body in
193 ++ let lambda = Create.lambda ~loc ((Nolabel,[%pat? record__ ]) :: patterns) body in
194 + A.str_item ~loc "exists" lambda
195 +
196 + let iter_fun ~loc labdecs =
197 +@@ -599,7 +599,7 @@
198 + ~init:(iter_field (List.hd names))
199 + ~f:(fun acc n -> [%expr ( [%e acc] ; [%e iter_field n] ) ]) in
200 + let patterns = List.map names ~f:(label_arg_fun ~loc) in
201 +- let lambda = Create.lambda ~loc (("",[%pat? record__ ]) :: patterns) body in
202 ++ let lambda = Create.lambda ~loc ((Nolabel,[%pat? record__ ]) :: patterns) body in
203 + A.str_item ~loc "iter" lambda
204 +
205 + let map_fun ~loc labdecs =
206 +@@ -624,7 +624,7 @@
207 + in (field_name, e )))
208 + in
209 + let patterns = List.map names ~f:(label_arg_fun ~loc) in
210 +- let lambda = Create.lambda ~loc (("",[%pat? record__ ]) :: patterns) body in
211 ++ let lambda = Create.lambda ~loc ((Nolabel,[%pat? record__ ]) :: patterns) body in
212 + A.str_item ~loc "map" lambda
213 +
214 + let to_list_fun ~loc labdecs =
215 +@@ -649,7 +649,7 @@
216 + :: [%e tail] ]
217 + in
218 + let body = List.fold_right names ~init:[%expr [ ] ] ~f:fold in
219 +- let lambda = Create.lambda ~loc (("",[%pat? record__ ]) :: patterns) body in
220 ++ let lambda = Create.lambda ~loc ((Nolabel,[%pat? record__ ]) :: patterns) body in
221 + A.str_item ~loc "to_list" lambda
222 +
223 + let map_poly ~loc labdecs =
224 +@@ -658,7 +658,7 @@
225 + [%expr record__.Fieldslib.Field.f [%e A.exp_name ~loc name] :: [%e acc] ]
226 + in
227 + let body = List.fold_right names ~init:[%expr []] ~f:fold in
228 +- A.str_item ~loc "map_poly" (pexp_fun ~loc "" None [%pat? record__] body)
229 ++ A.str_item ~loc "map_poly" (pexp_fun ~loc Nolabel None [%pat? record__] body)
230 +
231 + let sequence_ ~loc xs =
232 + match (List.rev xs) with
233 +@@ -688,10 +688,10 @@
234 + | Immutable -> acc
235 + | Mutable ->
236 + let field_name = labdec.pld_name.txt in
237 +- pexp_fun ~loc field_name None (A.pat_name ~loc field_name) acc)
238 ++ pexp_fun ~loc (Labelled field_name) None (A.pat_name ~loc field_name) acc)
239 + in
240 + A.str_item ~loc "set_all_mutable_fields" (
241 +- pexp_fun ~loc "" None (A.pat_name ~loc record_name) function_)
242 ++ pexp_fun ~loc Nolabel None (A.pat_name ~loc record_name) function_)
243 +
244 + let record ~private_ ~record_name ~loc (labdecs:label_declaration list) : structure =
245 + let getter_and_setters, fields = gen_fields ~private_ ~loc labdecs in
246
247 diff --git a/dev-ml/ppx_fields_conv/ppx_fields_conv-113.33.00.ebuild b/dev-ml/ppx_fields_conv/ppx_fields_conv-113.33.00.ebuild
248 index 67db485..4dc7d72 100644
249 --- a/dev-ml/ppx_fields_conv/ppx_fields_conv-113.33.00.ebuild
250 +++ b/dev-ml/ppx_fields_conv/ppx_fields_conv-113.33.00.ebuild
251 @@ -24,6 +24,10 @@ DEPEND="
252 RDEPEND="${DEPEND}"
253 DEPEND="${DEPEND} dev-ml/opam"
254
255 +src_prepare() {
256 + has_version '>=dev-lang/ocaml-4.03' && epatch "${FILESDIR}/oc43.patch"
257 +}
258 +
259 src_configure() {
260 emake setup.exe
261 OASIS_SETUP_COMMAND="./setup.exe" oasis_src_configure