Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / ocaml-modules / janestreet / 0.14.nix
blob249f9c3115d620ed4829147281e4a35f467891ec
1 { self
2 , fetchpatch
3 , lib
4 , openssl
5 , zstd
6 }:
8 with self;
12   accessor = janePackage {
13     pname = "accessor";
14     version = "0.14.1";
15     minimalOCamlVersion = "4.09";
16     hash = "0wm2081kzd5zsqs516cn3f975bnnmnyynv8fa818gmfa65i6mxm8";
17     meta.description = "A library that makes it nicer to work with nested functional data structures";
18     propagatedBuildInputs = [ higher_kinded ];
19   };
21   accessor_async = janePackage {
22     pname = "accessor_async";
23     version = "0.14.1";
24     minimalOCamlVersion = "4.09";
25     hash = "1193hzvlzm7vcl9p67fs8al2pvkw9n2wz009m2l3lp35mrx8aq1w";
26     meta.description = "Accessors for Async types, for use with the Accessor library";
27     propagatedBuildInputs = [ accessor_core async_kernel ];
28   };
30   accessor_base = janePackage {
31     pname = "accessor_base";
32     version = "0.14.1";
33     minimalOCamlVersion = "4.09";
34     hash = "1xjbvvijkyw4dlys47x4896y3kqm2zn0yg60cqrp57i2dwxg0nsj";
35     meta.description = "Accessors for Base types, for use with the Accessor library";
36     propagatedBuildInputs = [ ppx_accessor ];
37   };
39   accessor_core = janePackage {
40     minimalOCamlVersion = "4.09";
41     pname = "accessor_core";
42     version = "0.14.1";
43     hash = "1cdkv34m6czhacivpbb2sasj83fgcid6gnqk30ig9i84z8nh2gw2";
44     meta.description = "Accessors for Core types, for use with the Accessor library";
45     meta.broken = true; # Not compatible with ppxlib ≥ 0.23
46     propagatedBuildInputs = [ accessor_base core_kernel ];
47   };
49   async = janePackage {
50     pname = "async";
51     hash = "086v93div4h9l02n7wzv3xx3i6xvddazydm9qlfa72ad55x3vzy0";
52     meta.description = "Monadic concurrency library";
53     propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ];
54     doCheck = false; # we don't have netkit_sockets
55   };
57   async_extra = janePackage {
58     pname = "async_extra";
59     hash = "16cnz9h4jkc3b0837s5z0iv92q7n5nw77g8qshq8pwq639y8ail4";
60     meta.description = "Monadic concurrency library";
61     propagatedBuildInputs = [ async_kernel ];
62   };
64   async_find = janePackage {
65     pname = "async_find";
66     hash = "0vlcpdr15bgrwrmixvs6ij88kvk8vzzrijz3zm0svxih0naf8ylx";
67     meta.description = "Directory traversal with Async";
68     propagatedBuildInputs = [ async ];
69   };
71   async_inotify = janePackage {
72     pname = "async_inotify";
73     hash = "0i0hf7nsir316ijixdj43qf0p3b6yapvcm2jzp7bhpf4r2kxislv";
74     meta.description = "Async wrapper for inotify";
75     propagatedBuildInputs = [ async_find inotify ];
76   };
78   async_interactive = janePackage {
79     pname = "async_interactive";
80     hash = "1cnmv9mipa6k6xd303ngdbxmiab2202f3w3pgq8l1970w8hb78il";
81     meta.description = "Utilities for building simple command-line based user interfaces";
82     propagatedBuildInputs = [ async ];
83   };
85   async_js = janePackage {
86     pname = "async_js";
87     hash = "0rld8792lfwbinn9rhrgacivz49vppgy29smpqnvpga89wchjv0v";
88     meta.description = "A small library that provide Async support for JavaScript platforms";
89     buildInputs = [ js_of_ocaml-ppx ];
90     propagatedBuildInputs = [ async_rpc_kernel js_of_ocaml uri-sexp ];
91   };
93   async_kernel = janePackage {
94     pname = "async_kernel";
95     hash = "17giakwl0xhyxvxrkn12dwjdghc53q8px81z7cc3k6f102bsbdy6";
96     meta.description = "Monadic concurrency library";
97     propagatedBuildInputs = [ core_kernel ];
98   };
100   async_rpc_kernel = janePackage {
101     pname = "async_rpc_kernel";
102     hash = "1bwq3gkq057dd1fhrqz9kqq8a956nn87zaxvr0qcpiczzjv3zmvm";
103     meta.description = "Platform-independent core of Async RPC library";
104     propagatedBuildInputs = [ async_kernel protocol_version_header ];
105   };
107   async_sendfile = janePackage {
108     pname = "async_sendfile";
109     hash = "1w3gwwpgfzqjhblxnxh64g64q6kgjzzxx90inswfhycc88pnvdna";
110     meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
111     propagatedBuildInputs = [ async_unix ];
112   };
114   async_shell = janePackage {
115     pname = "async_shell";
116     hash = "1r00z620nqv2jxz2xrp2gsyc30h8dd2w9qsnys2fkqbgpxlbgdc7";
117     meta.description = "Shell helpers for Async";
118     propagatedBuildInputs = [ async shell ];
119   };
121   async_smtp = janePackage {
122     pname = "async_smtp";
123     hash = "1xf3illn7vikdxldpnc29n4z8sv9f0wsdgdvl4iv93qlvjk8gzck";
124     meta.description = "SMTP client and server";
125     propagatedBuildInputs = [ async_extra async_inotify async_sendfile async_shell async_ssl email_message resource_cache re2_stable sexp_macro ];
126   };
128   async_ssl = janePackage {
129     pname = "async_ssl";
130     hash = "0ykys3ckpsx5crfgj26v2q3gy6wf684aq0bfb4q8p92ivwznvlzy";
131     meta.description = "Async wrappers for SSL";
132     buildInputs = [ dune-configurator ];
133     propagatedBuildInputs = [ async ctypes openssl ];
134     # in ctypes.foreign 0.18.0 threaded and unthreaded have been merged
135     postPatch = ''
136       substituteInPlace bindings/dune \
137         --replace "ctypes.foreign.threaded" "ctypes.foreign"
138     '';
139   };
141   async_unix = janePackage {
142     pname = "async_unix";
143     hash = "1wgnr0vdsknqrfnf6irmwnvyngndsnvvl1sfnj3v6fhwk4nswnrs";
144     meta.description = "Monadic concurrency library";
145     propagatedBuildInputs = [ async_kernel core ];
146   };
148   base = janePackage {
149     pname = "base";
150     version = "0.14.1";
151     hash = "1hizjxmiqlj2zzkwplzjamw9rbnl0kh44sxgjpzdij99qnfkzylf";
152     minimalOCamlVersion = "4.07";
153     meta.description = "Full standard library replacement for OCaml";
154     buildInputs = [ dune-configurator ];
155     propagatedBuildInputs = [ sexplib0 ];
156     checkInputs = [ alcotest ];
157   };
159   base_bigstring = janePackage {
160     pname = "base_bigstring";
161     hash = "1ald2m7qywhxbygv58dzpgaj54p38zn0aiqd1z7i95kf3bsnsjqa";
162     minimalOCamlVersion = "4.07";
163     meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
164     propagatedBuildInputs = [ ppx_jane ];
165   };
167   base_quickcheck = janePackage {
168     pname = "base_quickcheck";
169     version = "0.14.1";
170     hash = "0apq3d9xb0zdaqsl4cjk5skyig57ff1plndb2mh0nn3czvfhifxs";
171     minimalOCamlVersion = "4.04.2";
172     meta.description = "Randomized testing framework, designed for compatibility with Base";
173     propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let ppx_sexp_value splittable_random ];
174   };
176   bignum = janePackage {
177     pname = "bignum";
178     hash = "009ygr64q810p9iq4mykzz4ci00i5mzgpmq35jiyaiqm27bjam21";
179     propagatedBuildInputs = [ core_kernel zarith zarith_stubs_js ];
180     meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
181   };
183   bin_prot = janePackage {
184     pname = "bin_prot";
185     hash = "1qyqbfp4zdc2jb87370cdgancisqffhf9x60zgh2m31kqik8annr";
186     minimalOCamlVersion = "4.04.2";
187     meta.description = "A binary protocol generator";
188     propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_optcomp ppx_variants_conv ];
189   };
191   bonsai = janePackage {
192     pname = "bonsai";
193     hash = "0k4grabwqc9sy4shzp77bgfvyajvvc0l8qq89ia7cvlwvly7gv6a";
194     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
195     buildInputs = [ ppx_pattern_bind ];
196     propagatedBuildInputs = [ incr_dom ];
197   };
199   cinaps = janePackage {
200     pname = "cinaps";
201     hash = "0ms1j2kh7i5slyw9v4w9kdz52dkwl5gqcnvn89prgimhk2vmichj";
202     minimalOCamlVersion = "4.07";
203     meta.description = "Trivial metaprogramming tool";
204     propagatedBuildInputs = [ re ];
205     checkInputs = [ ppx_jane ];
206   };
208   core = janePackage {
209     pname = "core";
210     version = "0.14.1";
211     hash = "1isrcl07nkmdm6akqsqs9z8s6zvva2lvg47kaagy7gsbyszrqb82";
212     meta.description = "System-independent part of Core";
213     buildInputs = [ jst-config ];
214     propagatedBuildInputs = [ core_kernel spawn timezone ];
215     doCheck = false; # we don't have quickcheck_deprecated
216   };
218   core_bench = janePackage {
219     pname = "core_bench";
220     hash = "04h6hzxk347pqyrrbgqrw9576sq4yf70fgq9xam3kajrqwdh3dhx";
221     meta.description = "Benchmarking library";
222     propagatedBuildInputs = [ textutils ];
223   };
225   core_extended = janePackage {
226     pname = "core_extended";
227     hash = "1pbm6xbc3h0fhrymyr1yb9b1jk7n88gfi3pylqz2cs8haxr2pb3a";
228     meta.description = "Extra components that are not as closely vetted or as stable as Core";
229     propagatedBuildInputs = [ core ];
230   };
232   core_kernel = janePackage {
233     pname = "core_kernel";
234     version = "0.14.1";
235     hash = "0pikg4ln6177gbs0jfix7xj50zlcm7058h64lxnd7wspnj7mq8sd";
236     meta.description = "System-independent part of Core";
237     buildInputs = [ jst-config ];
238     propagatedBuildInputs = [ base_bigstring sexplib ];
239     doCheck = false; # we don't have quickcheck_deprecated
240   };
242   core_unix = janePackage {
243     pname = "core_unix";
244     hash = "0irfmpx6iksxk2r8mdizjn75h71qh4p2f1s9x2ggckzqj9y904ck";
245     meta.description = "Unix-specific portions of Core";
246     propagatedBuildInputs = [ core ];
247   };
249   csvfields = janePackage {
250     pname = "csvfields";
251     hash = "09jmz6y6nwd96dcx6g8ydicxssi72v1ks276phbc9n19wwg9hkaz";
252     propagatedBuildInputs = [ core num ];
253     meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
254   };
256   delimited_parsing = janePackage {
257     pname = "delimited_parsing";
258     hash = "1dnr5wqacryx1kj38i9iifc3457pchr887xphzz2nhlbizq3d7qa";
259     propagatedBuildInputs = [ async core_extended ];
260     meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
261   };
263   ecaml = janePackage {
264     pname = "ecaml";
265     hash = "052qglpwzrx3c4gy3zr6dmsmfbi5gj4fs2jhx9yrsqb9hj8g36mj";
266     meta.description = "Library for writing Emacs plugin in OCaml";
267     propagatedBuildInputs = [ async expect_test_helpers_core ];
268   };
270   email_message = janePackage {
271     pname = "email_message";
272     hash = "0k8hjkq91ikl7wjxs04k523jbkhl6q4abj6v0lzlbjiybmrpp69n";
273     meta.description = "E-mail message parser";
274     propagatedBuildInputs = [ angstrom async base64 cryptokit magic-mime re2 ];
275   };
277   expect_test_helpers_async = janePackage {
278     pname = "expect_test_helpers_async";
279     hash = "175sjkx3b10d8vacp369rv53nxbiaxw1xhwy832g7ffk1by8l2m1";
280     meta.description = "Async helpers for writing expectation tests";
281     propagatedBuildInputs = [ async expect_test_helpers_core ];
282   };
284   expect_test_helpers_core = janePackage {
285     pname = "expect_test_helpers_core";
286     hash = "1drl15akp4jz4wf26dr2y2nblvnhz14xsnb3ai8dg45y711svs2i";
287     meta.description = "Helpers for writing expectation tests";
288     propagatedBuildInputs = [ core_kernel sexp_pretty ];
289   };
291   fieldslib = janePackage {
292     pname = "fieldslib";
293     hash = "0nxx35lrb4f6zfs5l80a7cg7azf19c6g31vn9qjjpaxf6lgkck2n";
294     minimalOCamlVersion = "4.04.2";
295     meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
296     propagatedBuildInputs = [ base ];
297   };
299   higher_kinded = janePackage {
300     pname = "higher_kinded";
301     version = "0.14.1";
302     minimalOCamlVersion = "4.09";
303     hash = "05jvxgqsx3j2v8rqpd91ah76dgc1q2dz38kjklmx0vms4r4gvlsx";
304     meta.description = "A library with an encoding of higher kinded types in OCaml";
305     propagatedBuildInputs = [ base ppx_jane ];
306   };
308   incr_dom = janePackage {
309     pname = "incr_dom";
310     hash = "0mi98cwi4npdh5vvcz0pb4sbb9j9dydl52s51rswwc3kn8mipxfx";
311     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
312     buildInputs = [ js_of_ocaml-ppx ];
313     propagatedBuildInputs = [ async_js incr_map incr_select virtual_dom ];
314     patches = [ ./incr_dom_jsoo_4_0.patch ];
315   };
317   incr_map = janePackage {
318     pname = "incr_map";
319     hash = "0s0s7qfydvvvnqby4v5by5jdnd5kxqsdr65mhm11w4fn125skryz";
320     meta.description = "Helpers for incremental operations on map like data structures";
321     buildInputs = [ ppx_pattern_bind ];
322     propagatedBuildInputs = [ incremental ];
323   };
325   incr_select = janePackage {
326     pname = "incr_select";
327     hash = "18ril6z57mw89gzc9zhz6p1phwm1xr6phppicvqpqmi0skvvnrg6";
328     meta.description = "Handling of large set of incremental outputs from a single input";
329     propagatedBuildInputs = [ incremental ];
330   };
332   incremental = janePackage {
333     pname = "incremental";
334     hash = "0nyaiy7r2spvn2ij9z5rghd5gbjk1y3ai4jn0i8q81arp7cf6zc7";
335     meta.description = "Library for incremental computations";
336     propagatedBuildInputs = [ core_kernel ];
337   };
339   jane-street-headers = janePackage {
340     pname = "jane-street-headers";
341     hash = "12n40mlgjnc09fxc0hp0npsxdlxja2w828683zpb32nrzqkg6z4c";
342     minimalOCamlVersion = "4.04.2";
343     meta.description = "Jane Street C header files";
344   };
346   jst-config = janePackage {
347     pname = "jst-config";
348     hash = "0hzw0crgj0kjxsvr10wng7gqy948v98hnijh30lgq3v62jdsjra8";
349     meta.description = "Compile-time configuration for Jane Street libraries";
350     buildInputs = [ dune-configurator ppx_assert stdio ];
351   };
353   ocaml-compiler-libs = janePackage {
354     pname = "ocaml-compiler-libs";
355     version = "0.12.4";
356     minimalOCamlVersion = "4.04.1";
357     hash = "sha256-W+KUguz55yYAriHRMcQy8gRPzh2TZSJnexG1JI8TLgI=";
358     meta.description = "OCaml compiler libraries repackaged";
359   };
361   parsexp = janePackage {
362     pname = "parsexp";
363     version = "0.14.1";
364     hash = "1nr0ncb8l2mkk8pqzknr7fsqw5kpz8y102kyv5bc0x7c36v0d4zy";
365     minimalOCamlVersion = "4.04.2";
366     meta.description = "S-expression parsing library";
367     propagatedBuildInputs = [ base sexplib0 ];
368   };
370   patience_diff = janePackage {
371     pname = "patience_diff";
372     hash = "1np88s226ndhbwynpdqygrycahp8m1mx28f1xk54kvds8znnq2i0";
373     meta.description = "Diff library using Bram Cohen's patience diff algorithm";
374     propagatedBuildInputs = [ core_kernel ];
375   };
377   posixat = janePackage {
378     pname = "posixat";
379     hash = "0aana1lzq4514kna7hr301b5iv6gcg6zhgrx8s8vaad1q38yfp6c";
380     minimalOCamlVersion = "4.07";
381     propagatedBuildInputs = [ ppx_optcomp ppx_sexp_conv ];
382     meta.description = "Binding to the posix *at functions";
383   };
385   ppx_accessor = janePackage {
386     pname = "ppx_accessor";
387     version = "0.14.3";
388     minimalOCamlVersion = "4.09";
389     hash = "sha256:1c8blzh2f34vbm1z3mnvh670c6vda70chw805n2hmkd9j46l0cll";
390     meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
391     propagatedBuildInputs = [ accessor ];
392   };
394   ppx_assert = janePackage {
395     pname = "ppx_assert";
396     hash = "03mzgm4smrczp5dg3mpr6zc2v6a54n0r01k4ww820yrr25hcf8ip";
397     minimalOCamlVersion = "4.04.2";
398     meta.description = "Assert-like extension nodes that raise useful errors on failure";
399     propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ];
400   };
402   ppx_base = janePackage {
403     pname = "ppx_base";
404     hash = "1wv3q0qyghm0c5izq03y97lv3czqk116059mg62wx6valn22a000";
405     minimalOCamlVersion = "4.04.2";
406     meta = {
407       description = "Base set of ppx rewriters";
408       mainProgram = "ppx-base";
409     };
410     propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_hash ppx_js_style ];
411   };
413   ppx_bench = janePackage {
414     pname = "ppx_bench";
415     version = "0.14.1";
416     hash = "12r7jgqgpb4i4cry3rgyl2nmxcscs5w7mmk06diz7i49r27p96im";
417     minimalOCamlVersion = "4.04.2";
418     meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
419     propagatedBuildInputs = [ ppx_inline_test ];
420   };
422   ppx_bin_prot = janePackage {
423     pname = "ppx_bin_prot";
424     hash = "1qryjxhyz3kn5jz5wm62j59lhjhd1mp7nbsj0np9qnbpapnnr1zg";
425     minimalOCamlVersion = "4.04.2";
426     meta.description = "Generation of bin_prot readers and writers from types";
427     propagatedBuildInputs = [ bin_prot ppx_here ];
428     doCheck = false; # circular dependency with ppx_jane
429   };
431   ppx_cold = janePackage {
432     pname = "ppx_cold";
433     hash = "0ciqs6f9ab73gq4krj14xzzba4ydcxph214m87i1s0xp25hwxr8v";
434     minimalOCamlVersion = "4.04.2";
435     meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
436     propagatedBuildInputs = [ ppxlib ];
437   };
439   ppx_compare = janePackage {
440     pname = "ppx_compare";
441     hash = "11pj76dimx2f7l8m85myzp6yzx9xcg0bqi97s7ayssvkckm57390";
442     minimalOCamlVersion = "4.04.2";
443     meta.description = "Generation of comparison functions from types";
444     propagatedBuildInputs = [ ppxlib base ];
445     doCheck = false; # test build rule broken
446   };
448   ppx_custom_printf = janePackage {
449     pname = "ppx_custom_printf";
450     version = "0.14.1";
451     hash = "0c1m65kn27zvwmfwy7kk46ga76yw2a3ik9jygpy1b6nn6pi026w9";
452     minimalOCamlVersion = "4.04.2";
453     meta.description = "Printf-style format-strings for user-defined string conversion";
454     propagatedBuildInputs = [ ppx_sexp_conv ];
455   };
457   ppx_enumerate = janePackage {
458     pname = "ppx_enumerate";
459     hash = "1sriid4vh10p80wwvn46v1g16m646qw5r5xzwlymyz5gbvq2zf40";
460     minimalOCamlVersion = "4.04.2";
461     meta.description = "Generate a list containing all values of a finite type";
462     propagatedBuildInputs = [ ppxlib ];
463   };
465   ppx_expect = janePackage {
466     pname = "ppx_expect";
467     version = "0.14.1";
468     hash = "0vbbnjrzpyk5p0js21lafr6fcp2wqka89p1876rdf472cmg0l7fv";
469     minimalOCamlVersion = "4.04.2";
470     meta.description = "Cram like framework for OCaml";
471     propagatedBuildInputs = [ ppx_here ppx_inline_test re ];
472     doCheck = false; # circular dependency with ppx_jane
473   };
475   ppx_fields_conv = janePackage {
476     pname = "ppx_fields_conv";
477     version = "0.14.2";
478     hash = "1zwirwqry24b48bg7d4yc845hvcirxyymzbw95aaxdcck84d30n8";
479     minimalOCamlVersion = "4.04.2";
480     meta.description = "Generation of accessor and iteration functions for ocaml records";
481     propagatedBuildInputs = [ fieldslib ppxlib ];
482   };
484   ppx_fixed_literal = janePackage {
485     pname = "ppx_fixed_literal";
486     hash = "0s7rb4dhz4ibhh42a9sfxjj3zbwfyfmaihr92hpdv5j9xqn3n8mi";
487     minimalOCamlVersion = "4.04.2";
488     meta.description = "Simpler notation for fixed point literals";
489     propagatedBuildInputs = [ ppxlib ];
490   };
492   ppx_hash = janePackage {
493     pname = "ppx_hash";
494     hash = "1zf03xdrg4jig7pdcrdpbabyjkdpifb31z2z1bf9wfdawybdhwkq";
495     minimalOCamlVersion = "4.04.2";
496     meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
497     propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
498   };
500   ppx_here = janePackage {
501     pname = "ppx_here";
502     hash = "09zcyigaalqccs9s0h7n0535clgfmqb9s4p1jbgcqji9zj8w426s";
503     minimalOCamlVersion = "4.04.2";
504     meta.description = "Expands [%here] into its location";
505     propagatedBuildInputs = [ ppxlib ];
506     doCheck = false; # test build rules broken
507   };
509   ppx_inline_test = janePackage {
510     pname = "ppx_inline_test";
511     version = "0.14.1";
512     hash = "1ajdna1m9l1l3nfigyy33zkfa3yarfr6s086jdw2pcfwlq1fhhl4";
513     minimalOCamlVersion = "4.04.2";
514     meta.description = "Syntax extension for writing in-line tests in ocaml code";
515     propagatedBuildInputs = [ ppxlib time_now ];
516     doCheck = false; # test build rules broken
517   };
519   ppx_jane = janePackage {
520     pname = "ppx_jane";
521     hash = "1kk238fvrcylymwm7xwc7llbyspmx1y662ypq00vy70g112rir7j";
522     minimalOCamlVersion = "4.04.2";
523     meta = {
524       description = "Standard Jane Street ppx rewriters";
525       mainProgram = "ppx-jane";
526     };
527     propagatedBuildInputs = [ base_quickcheck ppx_bin_prot ppx_expect ppx_fixed_literal ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_stable ppx_string ppx_typerep_conv ppx_variants_conv ];
528   };
530   ppx_js_style = janePackage {
531     pname = "ppx_js_style";
532     version = "0.14.1";
533     hash = "16ax6ww9h36xyn9acbm8zxv0ajs344sm37lgj2zd2bvgsqv24kxj";
534     minimalOCamlVersion = "4.04.2";
535     meta.description = "Code style checker for Jane Street Packages";
536     propagatedBuildInputs = [ octavius ppxlib ];
537   };
539   ppx_let = janePackage {
540     pname = "ppx_let";
541     hash = "1jq3g88xv9g6y9im67hiig3cfn5anwwnq09mp7yn7a86ha5r9w3i";
542     minimalOCamlVersion = "4.04.2";
543     meta.description = "Monadic let-bindings";
544     propagatedBuildInputs = [ ppxlib ];
545   };
547   ppx_log = janePackage {
548     pname = "ppx_log";
549     hash = "10hnr5lpww3fw0bnidzngalbgy0j1wvz1g5ki9c9h558pnpvsazr";
550     minimalOCamlVersion = "4.08.0";
551     meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
552     propagatedBuildInputs = [ async_unix ppx_jane sexplib ];
553   };
555   ppx_module_timer = janePackage {
556     pname = "ppx_module_timer";
557     hash = "163q1rpblwv82fxwyf0p4j9zpsj0jzvkfmzb03r0l49gqhn89mp6";
558     minimalOCamlVersion = "4.04.2";
559     meta.description = "Ppx rewriter that records top-level module startup times";
560     propagatedBuildInputs = [ time_now ];
561   };
563   ppx_optcomp = janePackage {
564     pname = "ppx_optcomp";
565     version = "0.14.3";
566     hash = "1iflgfzs23asw3k6098v84al5zqx59rx2qjw0mhvk56avlx71pkw";
567     minimalOCamlVersion = "4.04.2";
568     meta.description = "Optional compilation for OCaml";
569     propagatedBuildInputs = [ ppxlib ];
570   };
572   ppx_optional = janePackage {
573     pname = "ppx_optional";
574     hash = "1d7rsdqiccxp2w4ykb9klarddm2qrrym3brbnhzx2hm78iyj3hzv";
575     minimalOCamlVersion = "4.04.2";
576     meta.description = "Pattern matching on flat options";
577     propagatedBuildInputs = [ ppxlib ];
578   };
580   ppx_pattern_bind = janePackage {
581     pname = "ppx_pattern_bind";
582     hash = "0yxkwnn30nxgrspi191zma95bgrh134aqh2bnpj3wg0245ki55zv";
583     minimalOCamlVersion = "4.07";
584     meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
585     propagatedBuildInputs = [ ppx_let ];
586   };
588   ppx_pipebang = janePackage {
589     pname = "ppx_pipebang";
590     hash = "0450b3p2rpnnn5yyvbkcd3c33jr2z0dp8blwxddaj2lv7nzl5dzf";
591     minimalOCamlVersion = "4.04.2";
592     meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
593     propagatedBuildInputs = [ ppxlib ];
594   };
596   ppx_python = janePackage {
597     pname = "ppx_python";
598     hash = "0gk4nqz4i9v3hwjg5mvgpgwj0dfcgpyc7ikba93cafyhn6fy83zk";
599     meta.description = "A [@@deriving] plugin to generate Python conversion functions ";
600     # Compatibility with ppxlib 0.23
601     patches = fetchpatch {
602       url = "https://github.com/janestreet/ppx_python/commit/b2fe0040cc39fa6164de868f8a20edb38d81170e.patch";
603       sha256 = "sha256:1mrdwp0zw3dqavzx3ffrmzq5cdlninyf67ksavfzxb8gb16w6zpz";
604     };
605     propagatedBuildInputs = [ ppx_base ppxlib pyml ];
606   };
608   ppx_sexp_conv = janePackage {
609     pname = "ppx_sexp_conv";
610     version = "0.14.3";
611     minimalOCamlVersion = "4.04.2";
612     hash = "0dbri9d00ydi0dw1cavswnqdmhjaaz80vap29ns2lr6mhhlvyjmj";
613     meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
614     propagatedBuildInputs = [ (ppxlib.override { version = "0.24.0"; }) sexplib0 base ];
615   };
617   ppx_sexp_message = janePackage {
618     pname = "ppx_sexp_message";
619     version = "0.14.1";
620     hash = "1lvsr0d68kakih1ll33hy6dxbjkly6lmky4q6z0h0hrcbd6z48k4";
621     minimalOCamlVersion = "4.04.2";
622     meta.description = "A ppx rewriter for easy construction of s-expressions";
623     propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
624   };
626   ppx_sexp_value = janePackage {
627     pname = "ppx_sexp_value";
628     hash = "1d1c92pyypqkd9473d59j0sfppxvcxggbc62w8bkqnbxrdmvirn9";
629     minimalOCamlVersion = "4.04.2";
630     meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
631     propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
632   };
634   ppx_stable = janePackage {
635     pname = "ppx_stable";
636     version = "0.14.1";
637     hash = "1sp1kn23qr0pfypa4ilvhqq5y11y13xpfygfl582ra9kik5xqfa1";
638     minimalOCamlVersion = "4.04.2";
639     meta.description = "Stable types conversions generator";
640     propagatedBuildInputs = [ ppxlib ];
641   };
643   ppx_string = janePackage {
644     pname = "ppx_string";
645     version = "0.14.1";
646     minimalOCamlVersion = "4.04.2";
647     hash = "0a8khmg0y32kyn3q6idwgh0d6d1s6ms1w75gj3dzng0v7y4h6jx4";
648     meta.description = "Ppx extension for string interpolation";
649     propagatedBuildInputs = [ ppx_base ppxlib stdio ];
650   };
652   ppx_typerep_conv = janePackage {
653     pname = "ppx_typerep_conv";
654     version = "0.14.2";
655     minimalOCamlVersion = "4.04.2";
656     hash = "0yk9vkpnwr8labgfncqdi4rfkj88d8mb3cr8m4gdqpi3f2r27hf0";
657     meta.description = "Generation of runtime types from type declarations";
658     propagatedBuildInputs = [ ppxlib typerep ];
659   };
661   ppx_variants_conv = janePackage {
662     pname = "ppx_variants_conv";
663     version = "0.14.2";
664     minimalOCamlVersion = "4.04.2";
665     hash = "1p11fiz4m160hs0xzg4g9rxchp053sz3s3d1lyciqixad1xi47a4";
666     meta.description = "Generation of accessor and iteration functions for ocaml variant types";
667     propagatedBuildInputs = [ variantslib ppxlib ];
668   };
670   protocol_version_header = janePackage {
671     pname = "protocol_version_header";
672     hash = "0lfblv2yqw01bl074ga6vxii0p9mqwlqw1g9b9z7pfdva9wqilrd";
673     meta.description = "Protocol versioning";
674     propagatedBuildInputs = [ core_kernel ];
675   };
677   pythonlib = janePackage {
678     pname = "pythonlib";
679     hash = "0qr0mh9jiv1ham5zlz9i4im23a1vh6x1yp6dp2db2s4icmfph639";
680     meta.description = "A library to help writing wrappers around ocaml code for python";
681     meta.broken = lib.versionAtLeast ocaml.version "4.13";
682     propagatedBuildInputs = [ ppx_expect ppx_let ppx_python stdio typerep ];
683   };
685   re2 = janePackage {
686     pname = "re2";
687     hash = "1j7dizls6lkz3i9dgf8nq2fm382mfbrmz72ci066zl3hkgdq8xwc";
688     meta.description = "OCaml bindings for RE2, Google's regular expression library";
689     propagatedBuildInputs = [ core_kernel ];
690     prePatch = ''
691       substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
692       substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
693     '';
694   };
696   re2_stable = janePackage {
697     pname = "re2_stable";
698     hash = "0kjc0ff6b3509s3b9n4q8ilb06d5fngdh3z58cm95vg7zkcas9w3";
699     meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
700     propagatedBuildInputs = [ core re2 ];
701   };
703   resource_cache = janePackage {
704     pname = "resource_cache";
705     hash = "197z9s535q74h00365ydhggg7hyzpyqvislgwwyi69sl1vy6dr0j";
706     meta.description = "General resource cache";
707     propagatedBuildInputs = [ async_rpc_kernel ];
708   };
710   sexp = janePackage {
711     pname = "sexp";
712     hash = "1x08pyrkd78233kgj70wxlc79w6jjhfrjdamm2xr7jzdc8ycfigf";
713     propagatedBuildInputs = [
714       async
715       core
716       csvfields
717       re2
718       sexp_diff_kernel
719       sexp_macro
720       sexp_pretty
721       sexp_select
722     ];
723     patches = ./sexp.patch;
724     meta.description = "S-expression swiss knife";
725   };
727   sexp_diff_kernel = janePackage {
728     pname = "sexp_diff_kernel";
729     hash = "1pljcs019hs2ffhhb7rjh3xz7cbrk8vsv967jzmip3rv9w21c9kh";
730     propagatedBuildInputs = [ core_kernel ];
731     meta.description = "Code for computing the diff of two sexps";
732   };
734   sexp_macro = janePackage {
735     pname = "sexp_macro";
736     hash = "1ih1g7vpb1j8vhzm9a5mjrrzgqrhjqdhf6vjrg8kxfqg5i5b8nyx";
737     propagatedBuildInputs = [ async sexplib ];
738     meta.description = "Sexp macros";
739   };
741   sexp_pretty = janePackage {
742     pname = "sexp_pretty";
743     hash = "0dax0wm511zgvr7p6kcd5gygi58118by7hsv7hymy8ldfcky5cwd";
744     minimalOCamlVersion = "4.07";
745     meta.description = "S-expression pretty-printer";
746     propagatedBuildInputs = [ ppx_base re sexplib ];
747   };
749   sexp_select = janePackage {
750     pname = "sexp_select";
751     hash = "1lchhfqw4afw38fnarwylqc2qp7k6xwx3j7m9gy8ygjgd0vgd729";
752     minimalOCamlVersion = "4.07";
753     propagatedBuildInputs = [ base ppx_jane ];
754     meta.description = "A library to use CSS-style selectors to traverse sexp trees";
755   };
757   sexplib0 = janePackage {
758     pname = "sexplib0";
759     hash = "06sb3zqhb3dwqsmn15d769hfgqwqhxnm52iqim9l767gvlwpmibb";
760     minimalOCamlVersion = "4.04.2";
761     meta.description = "Library containing the definition of S-expressions and some base converters";
762   };
764   sexplib = janePackage {
765     pname = "sexplib";
766     hash = "03c3j1ihx4pjbb0x3arrcif3wvp3iva2ivnywhiak4mbbslgsnzr";
767     minimalOCamlVersion = "4.04.2";
768     meta.description = "Library for serializing OCaml values to and from S-expressions";
769     propagatedBuildInputs = [ num parsexp ];
770   };
772   shell = janePackage {
773     pname = "shell";
774     hash = "1c4zmpf6s1lk7nficip32c324if6zhm62h9h03d84zgvhvymi0r1";
775     meta.description = "Yet another implementation of fork&exec and related functionality";
776     buildInputs = [ jst-config ];
777     propagatedBuildInputs = [ textutils ];
778     checkInputs = [ ounit ];
779   };
781   shexp = janePackage {
782     pname = "shexp";
783     hash = "1h6hsnbg6bk32f8iv6kd6im4mv2pjsjpd1mjsfx80p1n9273xack";
784     minimalOCamlVersion = "4.07";
785     propagatedBuildInputs = [ posixat spawn ];
786     meta.description = "Process library and s-expression based shell";
787   };
789   spawn = janePackage {
790     pname = "spawn";
791     version = "0.13.0";
792     minimalOCamlVersion = "4.02.3";
793     hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf";
794     meta.description = "Spawning sub-processes";
795     buildInputs = [ ppx_expect ];
796     doCheck = false; # tests are broken on NixOS (absolute paths)
797   };
799   splay_tree = janePackage {
800     pname = "splay_tree";
801     hash = "1xbzzbqb054hl1v1zcgfwdgzqihni3a0dmvrric9xggmgn4ycmqq";
802     meta.description = "A splay tree implementation";
803     propagatedBuildInputs = [ core_kernel ];
804   };
806   splittable_random = janePackage {
807     pname = "splittable_random";
808     hash = "0ax988b1wc7km8khg4s6iphbz16y1rssh7baigxfyw3ldp0agk14";
809     meta.description = "PRNG that can be split into independent streams";
810     propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
811   };
813   stdio = janePackage {
814     pname = "stdio";
815     hash = "0vv6d8absy4hvjd1babv7avpsdlvjpnd5hq691h39d0h3pvs6l98";
816     minimalOCamlVersion = "4.04.2";
817     meta.description = "Standard IO library for OCaml";
818     propagatedBuildInputs = [ base ];
819   };
821   textutils = janePackage {
822     pname = "textutils";
823     hash = "1ggd0530lc5dkc419y3xw1wb52b4b5j3z78991gn5yxf2s50a8d4";
824     meta.description = "Text output utilities";
825     propagatedBuildInputs = [ core ];
826   };
828   time_now = janePackage {
829     pname = "time_now";
830     hash = "1lyq8zdz93hvpi4hpxh88kds30k5ljil8js9clcqyxrldp5n9mw0";
831     minimalOCamlVersion = "4.04.2";
832     meta.description = "Reports the current time";
833     buildInputs = [ jst-config ppx_optcomp ];
834     propagatedBuildInputs = [ jane-street-headers base ppx_base ];
835   };
837   timezone = janePackage {
838     pname = "timezone";
839     hash = "0zf075k94nk2wxnzpxia7pnm655damwp1b58xf2s9disia1ydxg7";
840     meta.description = "Time-zone handling";
841     propagatedBuildInputs = [ core_kernel ];
842   };
844   topological_sort = janePackage {
845     pname = "topological_sort";
846     hash = "17iz7956zln31p0xnm3jlhj863zi84bcx41jylzf7gk23qsm95m8";
847     meta.description = "Topological sort algorithm";
848     propagatedBuildInputs = [ ppx_jane stdio ];
849   };
851   typerep = janePackage {
852     pname = "typerep";
853     hash = "0wc7h853ka3s3lxxgm61ypidl0lzgc9abdkil6f72anl0c417y90";
854     minimalOCamlVersion = "4.04.2";
855     meta.description = "Typerep is a library for runtime types";
856     propagatedBuildInputs = [ base ];
857   };
859   variantslib = janePackage {
860     pname = "variantslib";
861     hash = "0vy0hpiaawmydh08nqlwjx52pasp74383yi0pshwbdxin99n9mxd";
862     minimalOCamlVersion = "4.04.2";
863     meta.description = "Part of Jane Street's Core library";
864     propagatedBuildInputs = [ base ];
865   };
867   vcaml = janePackage {
868     pname = "vcaml";
869     hash = "0ykwrn8bvwx26ad4wb36jw9xnlwsdpnnx88396laxvcfimrp13qs";
870     meta.description = "OCaml bindings for the Neovim API";
871     propagatedBuildInputs = [ angstrom-async async_extra faraday ];
872   };
874   virtual_dom = janePackage {
875     pname = "virtual_dom";
876     hash = "0vcydxx0jhbd5hbriahgp947mc7n3xymyrsfny1c4adk6aaq3c5w";
877     meta.description = "OCaml bindings for the virtual-dom library";
878     buildInputs = [ js_of_ocaml-ppx ];
879     propagatedBuildInputs = [ core_kernel js_of_ocaml lambdasoup tyxml ];
880   };
882   zarith_stubs_js = janePackage {
883     pname = "zarith_stubs_js";
884     hash = "16p4bn5spkrx31fr4np945v9mwdq55706v3wl19s5fy6x83gvb86";
885     minimalOCamlVersion = "4.04.2";
886     meta.description = "Javascripts stubs for the Zarith library";
887     doCheck = false; # requires workspace with zarith
888   };
890   zstandard = janePackage {
891     pname = "zstandard";
892     hash = "1vf76v5m9wsh5f77w9z4i8sxm05wr5digyi95x4wvzdi7q3qg6m8";
893     meta.description = "OCaml bindings to Zstandard";
894     buildInputs = [ ppx_jane ];
895     propagatedBuildInputs = [ core ctypes zstd ];
896   };