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 |