perlPackages.NetAsyncWebSocket: 0.13 -> 0.14 (#352432)
[NixPkgs.git] / pkgs / development / ocaml-modules / janestreet / 0.14.nix
blobc6210a966312a15d52e777e42b87178d2037c643
2   self,
3   fetchpatch,
4   lib,
5   openssl,
6   zstd,
7 }:
9 with self;
13   accessor = janePackage {
14     pname = "accessor";
15     version = "0.14.1";
16     minimalOCamlVersion = "4.09";
17     hash = "0wm2081kzd5zsqs516cn3f975bnnmnyynv8fa818gmfa65i6mxm8";
18     meta.description = "A library that makes it nicer to work with nested functional data structures";
19     propagatedBuildInputs = [ higher_kinded ];
20   };
22   accessor_async = janePackage {
23     pname = "accessor_async";
24     version = "0.14.1";
25     minimalOCamlVersion = "4.09";
26     hash = "1193hzvlzm7vcl9p67fs8al2pvkw9n2wz009m2l3lp35mrx8aq1w";
27     meta.description = "Accessors for Async types, for use with the Accessor library";
28     propagatedBuildInputs = [
29       accessor_core
30       async_kernel
31     ];
32   };
34   accessor_base = janePackage {
35     pname = "accessor_base";
36     version = "0.14.1";
37     minimalOCamlVersion = "4.09";
38     hash = "1xjbvvijkyw4dlys47x4896y3kqm2zn0yg60cqrp57i2dwxg0nsj";
39     meta.description = "Accessors for Base types, for use with the Accessor library";
40     propagatedBuildInputs = [ ppx_accessor ];
41   };
43   accessor_core = janePackage {
44     minimalOCamlVersion = "4.09";
45     pname = "accessor_core";
46     version = "0.14.1";
47     hash = "1cdkv34m6czhacivpbb2sasj83fgcid6gnqk30ig9i84z8nh2gw2";
48     meta.description = "Accessors for Core types, for use with the Accessor library";
49     meta.broken = true; # Not compatible with ppxlib ≥ 0.23
50     propagatedBuildInputs = [
51       accessor_base
52       core_kernel
53     ];
54   };
56   async = janePackage {
57     pname = "async";
58     hash = "086v93div4h9l02n7wzv3xx3i6xvddazydm9qlfa72ad55x3vzy0";
59     meta.description = "Monadic concurrency library";
60     propagatedBuildInputs = [
61       async_rpc_kernel
62       async_unix
63       textutils
64     ];
65     doCheck = false; # we don't have netkit_sockets
66   };
68   async_extra = janePackage {
69     pname = "async_extra";
70     hash = "16cnz9h4jkc3b0837s5z0iv92q7n5nw77g8qshq8pwq639y8ail4";
71     meta.description = "Monadic concurrency library";
72     propagatedBuildInputs = [ async_kernel ];
73   };
75   async_find = janePackage {
76     pname = "async_find";
77     hash = "0vlcpdr15bgrwrmixvs6ij88kvk8vzzrijz3zm0svxih0naf8ylx";
78     meta.description = "Directory traversal with Async";
79     propagatedBuildInputs = [ async ];
80   };
82   async_inotify = janePackage {
83     pname = "async_inotify";
84     hash = "0i0hf7nsir316ijixdj43qf0p3b6yapvcm2jzp7bhpf4r2kxislv";
85     meta.description = "Async wrapper for inotify";
86     propagatedBuildInputs = [
87       async_find
88       inotify
89     ];
90   };
92   async_interactive = janePackage {
93     pname = "async_interactive";
94     hash = "1cnmv9mipa6k6xd303ngdbxmiab2202f3w3pgq8l1970w8hb78il";
95     meta.description = "Utilities for building simple command-line based user interfaces";
96     propagatedBuildInputs = [ async ];
97   };
99   async_js = janePackage {
100     pname = "async_js";
101     hash = "0rld8792lfwbinn9rhrgacivz49vppgy29smpqnvpga89wchjv0v";
102     meta.description = "A small library that provide Async support for JavaScript platforms";
103     buildInputs = [ js_of_ocaml-ppx ];
104     propagatedBuildInputs = [
105       async_rpc_kernel
106       js_of_ocaml
107       uri-sexp
108     ];
109   };
111   async_kernel = janePackage {
112     pname = "async_kernel";
113     hash = "17giakwl0xhyxvxrkn12dwjdghc53q8px81z7cc3k6f102bsbdy6";
114     meta.description = "Monadic concurrency library";
115     propagatedBuildInputs = [ core_kernel ];
116   };
118   async_rpc_kernel = janePackage {
119     pname = "async_rpc_kernel";
120     hash = "1bwq3gkq057dd1fhrqz9kqq8a956nn87zaxvr0qcpiczzjv3zmvm";
121     meta.description = "Platform-independent core of Async RPC library";
122     propagatedBuildInputs = [
123       async_kernel
124       protocol_version_header
125     ];
126   };
128   async_sendfile = janePackage {
129     pname = "async_sendfile";
130     hash = "1w3gwwpgfzqjhblxnxh64g64q6kgjzzxx90inswfhycc88pnvdna";
131     meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
132     propagatedBuildInputs = [ async_unix ];
133   };
135   async_shell = janePackage {
136     pname = "async_shell";
137     hash = "1r00z620nqv2jxz2xrp2gsyc30h8dd2w9qsnys2fkqbgpxlbgdc7";
138     meta.description = "Shell helpers for Async";
139     propagatedBuildInputs = [
140       async
141       shell
142     ];
143   };
145   async_smtp = janePackage {
146     pname = "async_smtp";
147     hash = "1xf3illn7vikdxldpnc29n4z8sv9f0wsdgdvl4iv93qlvjk8gzck";
148     meta.description = "SMTP client and server";
149     propagatedBuildInputs = [
150       async_extra
151       async_inotify
152       async_sendfile
153       async_shell
154       async_ssl
155       email_message
156       resource_cache
157       re2_stable
158       sexp_macro
159     ];
160   };
162   async_ssl = janePackage {
163     pname = "async_ssl";
164     hash = "0ykys3ckpsx5crfgj26v2q3gy6wf684aq0bfb4q8p92ivwznvlzy";
165     meta.description = "Async wrappers for SSL";
166     buildInputs = [ dune-configurator ];
167     propagatedBuildInputs = [
168       async
169       ctypes
170       ctypes-foreign
171       openssl
172     ];
173     # in ctypes.foreign 0.18.0 threaded and unthreaded have been merged
174     postPatch = ''
175       substituteInPlace bindings/dune \
176         --replace "ctypes.foreign.threaded" "ctypes.foreign"
177     '';
178   };
180   async_unix = janePackage {
181     pname = "async_unix";
182     hash = "1wgnr0vdsknqrfnf6irmwnvyngndsnvvl1sfnj3v6fhwk4nswnrs";
183     meta.description = "Monadic concurrency library";
184     propagatedBuildInputs = [
185       async_kernel
186       core
187     ];
188   };
190   base = janePackage {
191     pname = "base";
192     version = "0.14.1";
193     hash = "1hizjxmiqlj2zzkwplzjamw9rbnl0kh44sxgjpzdij99qnfkzylf";
194     minimalOCamlVersion = "4.07";
195     meta.description = "Full standard library replacement for OCaml";
196     buildInputs = [ dune-configurator ];
197     propagatedBuildInputs = [ sexplib0 ];
198     checkInputs = [ alcotest ];
199   };
201   base_bigstring = janePackage {
202     pname = "base_bigstring";
203     hash = "1ald2m7qywhxbygv58dzpgaj54p38zn0aiqd1z7i95kf3bsnsjqa";
204     minimalOCamlVersion = "4.07";
205     meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
206     propagatedBuildInputs = [ ppx_jane ];
207   };
209   base_quickcheck = janePackage {
210     pname = "base_quickcheck";
211     version = "0.14.1";
212     hash = "0apq3d9xb0zdaqsl4cjk5skyig57ff1plndb2mh0nn3czvfhifxs";
213     minimalOCamlVersion = "4.04.2";
214     meta.description = "Randomized testing framework, designed for compatibility with Base";
215     propagatedBuildInputs = [
216       ppx_base
217       ppx_fields_conv
218       ppx_let
219       ppx_sexp_value
220       splittable_random
221     ];
222   };
224   bignum = janePackage {
225     pname = "bignum";
226     hash = "009ygr64q810p9iq4mykzz4ci00i5mzgpmq35jiyaiqm27bjam21";
227     propagatedBuildInputs = [
228       core_kernel
229       zarith
230       zarith_stubs_js
231     ];
232     meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
233   };
235   bin_prot = janePackage {
236     pname = "bin_prot";
237     hash = "1qyqbfp4zdc2jb87370cdgancisqffhf9x60zgh2m31kqik8annr";
238     minimalOCamlVersion = "4.04.2";
239     meta.description = "A binary protocol generator";
240     propagatedBuildInputs = [
241       ppx_compare
242       ppx_custom_printf
243       ppx_fields_conv
244       ppx_optcomp
245       ppx_variants_conv
246     ];
247   };
249   bonsai = janePackage {
250     pname = "bonsai";
251     hash = "0k4grabwqc9sy4shzp77bgfvyajvvc0l8qq89ia7cvlwvly7gv6a";
252     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
253     buildInputs = [ ppx_pattern_bind ];
254     propagatedBuildInputs = [ incr_dom ];
255   };
257   cinaps = janePackage {
258     pname = "cinaps";
259     hash = "0ms1j2kh7i5slyw9v4w9kdz52dkwl5gqcnvn89prgimhk2vmichj";
260     minimalOCamlVersion = "4.07";
261     meta.description = "Trivial metaprogramming tool";
262     propagatedBuildInputs = [ re ];
263     checkInputs = [ ppx_jane ];
264   };
266   core = janePackage {
267     pname = "core";
268     version = "0.14.1";
269     hash = "1isrcl07nkmdm6akqsqs9z8s6zvva2lvg47kaagy7gsbyszrqb82";
270     meta.description = "System-independent part of Core";
271     buildInputs = [ jst-config ];
272     propagatedBuildInputs = [
273       core_kernel
274       spawn
275       timezone
276     ];
277     doCheck = false; # we don't have quickcheck_deprecated
278   };
280   core_bench = janePackage {
281     pname = "core_bench";
282     hash = "04h6hzxk347pqyrrbgqrw9576sq4yf70fgq9xam3kajrqwdh3dhx";
283     meta.description = "Benchmarking library";
284     propagatedBuildInputs = [ textutils ];
285   };
287   core_extended = janePackage {
288     pname = "core_extended";
289     hash = "1pbm6xbc3h0fhrymyr1yb9b1jk7n88gfi3pylqz2cs8haxr2pb3a";
290     meta.description = "Extra components that are not as closely vetted or as stable as Core";
291     propagatedBuildInputs = [ core ];
292   };
294   core_kernel = janePackage {
295     pname = "core_kernel";
296     version = "0.14.1";
297     hash = "0pikg4ln6177gbs0jfix7xj50zlcm7058h64lxnd7wspnj7mq8sd";
298     meta.description = "System-independent part of Core";
299     buildInputs = [ jst-config ];
300     propagatedBuildInputs = [
301       base_bigstring
302       sexplib
303     ];
304     doCheck = false; # we don't have quickcheck_deprecated
305   };
307   core_unix = janePackage {
308     pname = "core_unix";
309     hash = "0irfmpx6iksxk2r8mdizjn75h71qh4p2f1s9x2ggckzqj9y904ck";
310     meta.description = "Unix-specific portions of Core";
311     propagatedBuildInputs = [ core ];
312   };
314   csvfields = janePackage {
315     pname = "csvfields";
316     hash = "09jmz6y6nwd96dcx6g8ydicxssi72v1ks276phbc9n19wwg9hkaz";
317     propagatedBuildInputs = [
318       core
319       num
320     ];
321     meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
322   };
324   delimited_parsing = janePackage {
325     pname = "delimited_parsing";
326     hash = "1dnr5wqacryx1kj38i9iifc3457pchr887xphzz2nhlbizq3d7qa";
327     propagatedBuildInputs = [
328       async
329       core_extended
330     ];
331     meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
332   };
334   ecaml = janePackage {
335     pname = "ecaml";
336     hash = "052qglpwzrx3c4gy3zr6dmsmfbi5gj4fs2jhx9yrsqb9hj8g36mj";
337     meta.description = "Library for writing Emacs plugin in OCaml";
338     propagatedBuildInputs = [
339       async
340       expect_test_helpers_core
341     ];
342   };
344   email_message = janePackage {
345     pname = "email_message";
346     hash = "0k8hjkq91ikl7wjxs04k523jbkhl6q4abj6v0lzlbjiybmrpp69n";
347     meta.description = "E-mail message parser";
348     propagatedBuildInputs = [
349       angstrom
350       async
351       base64
352       cryptokit
353       magic-mime
354       re2
355     ];
356   };
358   expect_test_helpers_async = janePackage {
359     pname = "expect_test_helpers_async";
360     hash = "175sjkx3b10d8vacp369rv53nxbiaxw1xhwy832g7ffk1by8l2m1";
361     meta.description = "Async helpers for writing expectation tests";
362     propagatedBuildInputs = [
363       async
364       expect_test_helpers_core
365     ];
366   };
368   expect_test_helpers_core = janePackage {
369     pname = "expect_test_helpers_core";
370     hash = "1drl15akp4jz4wf26dr2y2nblvnhz14xsnb3ai8dg45y711svs2i";
371     meta.description = "Helpers for writing expectation tests";
372     propagatedBuildInputs = [
373       core_kernel
374       sexp_pretty
375     ];
376   };
378   fieldslib = janePackage {
379     pname = "fieldslib";
380     hash = "0nxx35lrb4f6zfs5l80a7cg7azf19c6g31vn9qjjpaxf6lgkck2n";
381     minimalOCamlVersion = "4.04.2";
382     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";
383     propagatedBuildInputs = [ base ];
384   };
386   higher_kinded = janePackage {
387     pname = "higher_kinded";
388     version = "0.14.1";
389     minimalOCamlVersion = "4.09";
390     hash = "05jvxgqsx3j2v8rqpd91ah76dgc1q2dz38kjklmx0vms4r4gvlsx";
391     meta.description = "A library with an encoding of higher kinded types in OCaml";
392     propagatedBuildInputs = [
393       base
394       ppx_jane
395     ];
396   };
398   incr_dom = janePackage {
399     pname = "incr_dom";
400     hash = "0mi98cwi4npdh5vvcz0pb4sbb9j9dydl52s51rswwc3kn8mipxfx";
401     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
402     buildInputs = [ js_of_ocaml-ppx ];
403     propagatedBuildInputs = [
404       async_js
405       incr_map
406       incr_select
407       virtual_dom
408     ];
409     patches = [ ./incr_dom_jsoo_4_0.patch ];
410   };
412   incr_map = janePackage {
413     pname = "incr_map";
414     hash = "0s0s7qfydvvvnqby4v5by5jdnd5kxqsdr65mhm11w4fn125skryz";
415     meta.description = "Helpers for incremental operations on map like data structures";
416     buildInputs = [ ppx_pattern_bind ];
417     propagatedBuildInputs = [ incremental ];
418   };
420   incr_select = janePackage {
421     pname = "incr_select";
422     hash = "18ril6z57mw89gzc9zhz6p1phwm1xr6phppicvqpqmi0skvvnrg6";
423     meta.description = "Handling of large set of incremental outputs from a single input";
424     propagatedBuildInputs = [ incremental ];
425   };
427   incremental = janePackage {
428     pname = "incremental";
429     hash = "0nyaiy7r2spvn2ij9z5rghd5gbjk1y3ai4jn0i8q81arp7cf6zc7";
430     meta.description = "Library for incremental computations";
431     propagatedBuildInputs = [ core_kernel ];
432   };
434   jane-street-headers = janePackage {
435     pname = "jane-street-headers";
436     hash = "12n40mlgjnc09fxc0hp0npsxdlxja2w828683zpb32nrzqkg6z4c";
437     minimalOCamlVersion = "4.04.2";
438     meta.description = "Jane Street C header files";
439   };
441   jst-config = janePackage {
442     pname = "jst-config";
443     hash = "0hzw0crgj0kjxsvr10wng7gqy948v98hnijh30lgq3v62jdsjra8";
444     meta.description = "Compile-time configuration for Jane Street libraries";
445     buildInputs = [
446       dune-configurator
447       ppx_assert
448       stdio
449     ];
450   };
452   ocaml-compiler-libs = janePackage {
453     pname = "ocaml-compiler-libs";
454     version = "0.12.4";
455     minimalOCamlVersion = "4.04.1";
456     hash = "sha256-W+KUguz55yYAriHRMcQy8gRPzh2TZSJnexG1JI8TLgI=";
457     meta.description = "OCaml compiler libraries repackaged";
458   };
460   parsexp = janePackage {
461     pname = "parsexp";
462     version = "0.14.1";
463     hash = "1nr0ncb8l2mkk8pqzknr7fsqw5kpz8y102kyv5bc0x7c36v0d4zy";
464     minimalOCamlVersion = "4.04.2";
465     meta.description = "S-expression parsing library";
466     propagatedBuildInputs = [
467       base
468       sexplib0
469     ];
470   };
472   patience_diff = janePackage {
473     pname = "patience_diff";
474     hash = "1np88s226ndhbwynpdqygrycahp8m1mx28f1xk54kvds8znnq2i0";
475     meta.description = "Diff library using Bram Cohen's patience diff algorithm";
476     propagatedBuildInputs = [ core_kernel ];
477   };
479   posixat = janePackage {
480     pname = "posixat";
481     hash = "0aana1lzq4514kna7hr301b5iv6gcg6zhgrx8s8vaad1q38yfp6c";
482     minimalOCamlVersion = "4.07";
483     propagatedBuildInputs = [
484       ppx_optcomp
485       ppx_sexp_conv
486     ];
487     meta.description = "Binding to the posix *at functions";
488   };
490   ppx_accessor = janePackage {
491     pname = "ppx_accessor";
492     version = "0.14.3";
493     minimalOCamlVersion = "4.09";
494     hash = "sha256:1c8blzh2f34vbm1z3mnvh670c6vda70chw805n2hmkd9j46l0cll";
495     meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
496     propagatedBuildInputs = [ accessor ];
497   };
499   ppx_assert = janePackage {
500     pname = "ppx_assert";
501     hash = "03mzgm4smrczp5dg3mpr6zc2v6a54n0r01k4ww820yrr25hcf8ip";
502     minimalOCamlVersion = "4.04.2";
503     meta.description = "Assert-like extension nodes that raise useful errors on failure";
504     propagatedBuildInputs = [
505       ppx_cold
506       ppx_compare
507       ppx_here
508       ppx_sexp_conv
509     ];
510   };
512   ppx_base = janePackage {
513     pname = "ppx_base";
514     hash = "1wv3q0qyghm0c5izq03y97lv3czqk116059mg62wx6valn22a000";
515     minimalOCamlVersion = "4.04.2";
516     meta = {
517       description = "Base set of ppx rewriters";
518       mainProgram = "ppx-base";
519     };
520     propagatedBuildInputs = [
521       ppx_cold
522       ppx_enumerate
523       ppx_hash
524       ppx_js_style
525     ];
526   };
528   ppx_bench = janePackage {
529     pname = "ppx_bench";
530     version = "0.14.1";
531     hash = "12r7jgqgpb4i4cry3rgyl2nmxcscs5w7mmk06diz7i49r27p96im";
532     minimalOCamlVersion = "4.04.2";
533     meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
534     propagatedBuildInputs = [ ppx_inline_test ];
535   };
537   ppx_bin_prot = janePackage {
538     pname = "ppx_bin_prot";
539     hash = "1qryjxhyz3kn5jz5wm62j59lhjhd1mp7nbsj0np9qnbpapnnr1zg";
540     minimalOCamlVersion = "4.04.2";
541     meta.description = "Generation of bin_prot readers and writers from types";
542     propagatedBuildInputs = [
543       bin_prot
544       ppx_here
545     ];
546     doCheck = false; # circular dependency with ppx_jane
547   };
549   ppx_cold = janePackage {
550     pname = "ppx_cold";
551     hash = "0ciqs6f9ab73gq4krj14xzzba4ydcxph214m87i1s0xp25hwxr8v";
552     minimalOCamlVersion = "4.04.2";
553     meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
554     propagatedBuildInputs = [ ppxlib ];
555   };
557   ppx_compare = janePackage {
558     pname = "ppx_compare";
559     hash = "11pj76dimx2f7l8m85myzp6yzx9xcg0bqi97s7ayssvkckm57390";
560     minimalOCamlVersion = "4.04.2";
561     meta.description = "Generation of comparison functions from types";
562     propagatedBuildInputs = [
563       ppxlib
564       base
565     ];
566     doCheck = false; # test build rule broken
567   };
569   ppx_custom_printf = janePackage {
570     pname = "ppx_custom_printf";
571     version = "0.14.1";
572     hash = "0c1m65kn27zvwmfwy7kk46ga76yw2a3ik9jygpy1b6nn6pi026w9";
573     minimalOCamlVersion = "4.04.2";
574     meta.description = "Printf-style format-strings for user-defined string conversion";
575     propagatedBuildInputs = [ ppx_sexp_conv ];
576   };
578   ppx_enumerate = janePackage {
579     pname = "ppx_enumerate";
580     hash = "1sriid4vh10p80wwvn46v1g16m646qw5r5xzwlymyz5gbvq2zf40";
581     minimalOCamlVersion = "4.04.2";
582     meta.description = "Generate a list containing all values of a finite type";
583     propagatedBuildInputs = [ ppxlib ];
584   };
586   ppx_expect = janePackage {
587     pname = "ppx_expect";
588     version = "0.14.1";
589     hash = "0vbbnjrzpyk5p0js21lafr6fcp2wqka89p1876rdf472cmg0l7fv";
590     minimalOCamlVersion = "4.04.2";
591     meta.description = "Cram like framework for OCaml";
592     propagatedBuildInputs = [
593       ppx_here
594       ppx_inline_test
595       re
596     ];
597     doCheck = false; # circular dependency with ppx_jane
598   };
600   ppx_fields_conv = janePackage {
601     pname = "ppx_fields_conv";
602     version = "0.14.2";
603     hash = "1zwirwqry24b48bg7d4yc845hvcirxyymzbw95aaxdcck84d30n8";
604     minimalOCamlVersion = "4.04.2";
605     meta.description = "Generation of accessor and iteration functions for ocaml records";
606     propagatedBuildInputs = [
607       fieldslib
608       ppxlib
609     ];
610   };
612   ppx_fixed_literal = janePackage {
613     pname = "ppx_fixed_literal";
614     hash = "0s7rb4dhz4ibhh42a9sfxjj3zbwfyfmaihr92hpdv5j9xqn3n8mi";
615     minimalOCamlVersion = "4.04.2";
616     meta.description = "Simpler notation for fixed point literals";
617     propagatedBuildInputs = [ ppxlib ];
618   };
620   ppx_hash = janePackage {
621     pname = "ppx_hash";
622     hash = "1zf03xdrg4jig7pdcrdpbabyjkdpifb31z2z1bf9wfdawybdhwkq";
623     minimalOCamlVersion = "4.04.2";
624     meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
625     propagatedBuildInputs = [
626       ppx_compare
627       ppx_sexp_conv
628     ];
629   };
631   ppx_here = janePackage {
632     pname = "ppx_here";
633     hash = "09zcyigaalqccs9s0h7n0535clgfmqb9s4p1jbgcqji9zj8w426s";
634     minimalOCamlVersion = "4.04.2";
635     meta.description = "Expands [%here] into its location";
636     propagatedBuildInputs = [ ppxlib ];
637     doCheck = false; # test build rules broken
638   };
640   ppx_inline_test = janePackage {
641     pname = "ppx_inline_test";
642     version = "0.14.1";
643     hash = "1ajdna1m9l1l3nfigyy33zkfa3yarfr6s086jdw2pcfwlq1fhhl4";
644     minimalOCamlVersion = "4.04.2";
645     meta.description = "Syntax extension for writing in-line tests in ocaml code";
646     propagatedBuildInputs = [
647       ppxlib
648       time_now
649     ];
650     doCheck = false; # test build rules broken
651   };
653   ppx_jane = janePackage {
654     pname = "ppx_jane";
655     hash = "1kk238fvrcylymwm7xwc7llbyspmx1y662ypq00vy70g112rir7j";
656     minimalOCamlVersion = "4.04.2";
657     meta = {
658       description = "Standard Jane Street ppx rewriters";
659       mainProgram = "ppx-jane";
660     };
661     propagatedBuildInputs = [
662       base_quickcheck
663       ppx_bin_prot
664       ppx_expect
665       ppx_fixed_literal
666       ppx_module_timer
667       ppx_optcomp
668       ppx_optional
669       ppx_pipebang
670       ppx_stable
671       ppx_string
672       ppx_typerep_conv
673       ppx_variants_conv
674     ];
675   };
677   ppx_js_style = janePackage {
678     pname = "ppx_js_style";
679     version = "0.14.1";
680     hash = "16ax6ww9h36xyn9acbm8zxv0ajs344sm37lgj2zd2bvgsqv24kxj";
681     minimalOCamlVersion = "4.04.2";
682     meta.description = "Code style checker for Jane Street Packages";
683     propagatedBuildInputs = [
684       octavius
685       ppxlib
686     ];
687   };
689   ppx_let = janePackage {
690     pname = "ppx_let";
691     hash = "1jq3g88xv9g6y9im67hiig3cfn5anwwnq09mp7yn7a86ha5r9w3i";
692     minimalOCamlVersion = "4.04.2";
693     meta.description = "Monadic let-bindings";
694     propagatedBuildInputs = [ ppxlib ];
695   };
697   ppx_log = janePackage {
698     pname = "ppx_log";
699     hash = "10hnr5lpww3fw0bnidzngalbgy0j1wvz1g5ki9c9h558pnpvsazr";
700     minimalOCamlVersion = "4.08.0";
701     meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
702     propagatedBuildInputs = [
703       async_unix
704       ppx_jane
705       sexplib
706     ];
707   };
709   ppx_module_timer = janePackage {
710     pname = "ppx_module_timer";
711     hash = "163q1rpblwv82fxwyf0p4j9zpsj0jzvkfmzb03r0l49gqhn89mp6";
712     minimalOCamlVersion = "4.04.2";
713     meta.description = "Ppx rewriter that records top-level module startup times";
714     propagatedBuildInputs = [ time_now ];
715   };
717   ppx_optcomp = janePackage {
718     pname = "ppx_optcomp";
719     version = "0.14.3";
720     hash = "1iflgfzs23asw3k6098v84al5zqx59rx2qjw0mhvk56avlx71pkw";
721     minimalOCamlVersion = "4.04.2";
722     meta.description = "Optional compilation for OCaml";
723     propagatedBuildInputs = [ ppxlib ];
724   };
726   ppx_optional = janePackage {
727     pname = "ppx_optional";
728     hash = "1d7rsdqiccxp2w4ykb9klarddm2qrrym3brbnhzx2hm78iyj3hzv";
729     minimalOCamlVersion = "4.04.2";
730     meta.description = "Pattern matching on flat options";
731     propagatedBuildInputs = [ ppxlib ];
732   };
734   ppx_pattern_bind = janePackage {
735     pname = "ppx_pattern_bind";
736     hash = "0yxkwnn30nxgrspi191zma95bgrh134aqh2bnpj3wg0245ki55zv";
737     minimalOCamlVersion = "4.07";
738     meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
739     propagatedBuildInputs = [ ppx_let ];
740   };
742   ppx_pipebang = janePackage {
743     pname = "ppx_pipebang";
744     hash = "0450b3p2rpnnn5yyvbkcd3c33jr2z0dp8blwxddaj2lv7nzl5dzf";
745     minimalOCamlVersion = "4.04.2";
746     meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
747     propagatedBuildInputs = [ ppxlib ];
748   };
750   ppx_python = janePackage {
751     pname = "ppx_python";
752     hash = "0gk4nqz4i9v3hwjg5mvgpgwj0dfcgpyc7ikba93cafyhn6fy83zk";
753     meta.description = "A [@@deriving] plugin to generate Python conversion functions ";
754     # Compatibility with ppxlib 0.23
755     patches = fetchpatch {
756       url = "https://github.com/janestreet/ppx_python/commit/b2fe0040cc39fa6164de868f8a20edb38d81170e.patch";
757       sha256 = "sha256:1mrdwp0zw3dqavzx3ffrmzq5cdlninyf67ksavfzxb8gb16w6zpz";
758     };
759     propagatedBuildInputs = [
760       ppx_base
761       ppxlib
762       pyml
763     ];
764   };
766   ppx_sexp_conv = janePackage {
767     pname = "ppx_sexp_conv";
768     version = "0.14.3";
769     minimalOCamlVersion = "4.04.2";
770     hash = "0dbri9d00ydi0dw1cavswnqdmhjaaz80vap29ns2lr6mhhlvyjmj";
771     meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
772     propagatedBuildInputs = [
773       (ppxlib.override { version = "0.24.0"; })
774       sexplib0
775       base
776     ];
777   };
779   ppx_sexp_message = janePackage {
780     pname = "ppx_sexp_message";
781     version = "0.14.1";
782     hash = "1lvsr0d68kakih1ll33hy6dxbjkly6lmky4q6z0h0hrcbd6z48k4";
783     minimalOCamlVersion = "4.04.2";
784     meta.description = "A ppx rewriter for easy construction of s-expressions";
785     propagatedBuildInputs = [
786       ppx_here
787       ppx_sexp_conv
788     ];
789   };
791   ppx_sexp_value = janePackage {
792     pname = "ppx_sexp_value";
793     hash = "1d1c92pyypqkd9473d59j0sfppxvcxggbc62w8bkqnbxrdmvirn9";
794     minimalOCamlVersion = "4.04.2";
795     meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
796     propagatedBuildInputs = [
797       ppx_here
798       ppx_sexp_conv
799     ];
800   };
802   ppx_stable = janePackage {
803     pname = "ppx_stable";
804     version = "0.14.1";
805     hash = "1sp1kn23qr0pfypa4ilvhqq5y11y13xpfygfl582ra9kik5xqfa1";
806     minimalOCamlVersion = "4.04.2";
807     meta.description = "Stable types conversions generator";
808     propagatedBuildInputs = [ ppxlib ];
809   };
811   ppx_string = janePackage {
812     pname = "ppx_string";
813     version = "0.14.1";
814     minimalOCamlVersion = "4.04.2";
815     hash = "0a8khmg0y32kyn3q6idwgh0d6d1s6ms1w75gj3dzng0v7y4h6jx4";
816     meta.description = "Ppx extension for string interpolation";
817     propagatedBuildInputs = [
818       ppx_base
819       ppxlib
820       stdio
821     ];
822   };
824   ppx_typerep_conv = janePackage {
825     pname = "ppx_typerep_conv";
826     version = "0.14.2";
827     minimalOCamlVersion = "4.04.2";
828     hash = "0yk9vkpnwr8labgfncqdi4rfkj88d8mb3cr8m4gdqpi3f2r27hf0";
829     meta.description = "Generation of runtime types from type declarations";
830     propagatedBuildInputs = [
831       ppxlib
832       typerep
833     ];
834   };
836   ppx_variants_conv = janePackage {
837     pname = "ppx_variants_conv";
838     version = "0.14.2";
839     minimalOCamlVersion = "4.04.2";
840     hash = "1p11fiz4m160hs0xzg4g9rxchp053sz3s3d1lyciqixad1xi47a4";
841     meta.description = "Generation of accessor and iteration functions for ocaml variant types";
842     propagatedBuildInputs = [
843       variantslib
844       ppxlib
845     ];
846   };
848   protocol_version_header = janePackage {
849     pname = "protocol_version_header";
850     hash = "0lfblv2yqw01bl074ga6vxii0p9mqwlqw1g9b9z7pfdva9wqilrd";
851     meta.description = "Protocol versioning";
852     propagatedBuildInputs = [ core_kernel ];
853   };
855   pythonlib = janePackage {
856     pname = "pythonlib";
857     hash = "0qr0mh9jiv1ham5zlz9i4im23a1vh6x1yp6dp2db2s4icmfph639";
858     meta.description = "A library to help writing wrappers around ocaml code for python";
859     meta.broken = lib.versionAtLeast ocaml.version "4.13";
860     propagatedBuildInputs = [
861       ppx_expect
862       ppx_let
863       ppx_python
864       stdio
865       typerep
866     ];
867   };
869   re2 = janePackage {
870     pname = "re2";
871     hash = "1j7dizls6lkz3i9dgf8nq2fm382mfbrmz72ci066zl3hkgdq8xwc";
872     meta.description = "OCaml bindings for RE2, Google's regular expression library";
873     propagatedBuildInputs = [ core_kernel ];
874     prePatch = ''
875       substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
876       substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
877     '';
878   };
880   re2_stable = janePackage {
881     pname = "re2_stable";
882     hash = "0kjc0ff6b3509s3b9n4q8ilb06d5fngdh3z58cm95vg7zkcas9w3";
883     meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
884     propagatedBuildInputs = [
885       core
886       re2
887     ];
888   };
890   resource_cache = janePackage {
891     pname = "resource_cache";
892     hash = "197z9s535q74h00365ydhggg7hyzpyqvislgwwyi69sl1vy6dr0j";
893     meta.description = "General resource cache";
894     propagatedBuildInputs = [ async_rpc_kernel ];
895   };
897   sexp = janePackage {
898     pname = "sexp";
899     hash = "1x08pyrkd78233kgj70wxlc79w6jjhfrjdamm2xr7jzdc8ycfigf";
900     propagatedBuildInputs = [
901       async
902       core
903       csvfields
904       re2
905       sexp_diff_kernel
906       sexp_macro
907       sexp_pretty
908       sexp_select
909     ];
910     patches = ./sexp.patch;
911     meta.description = "S-expression swiss knife";
912   };
914   sexp_diff_kernel = janePackage {
915     pname = "sexp_diff_kernel";
916     hash = "1pljcs019hs2ffhhb7rjh3xz7cbrk8vsv967jzmip3rv9w21c9kh";
917     propagatedBuildInputs = [ core_kernel ];
918     meta.description = "Code for computing the diff of two sexps";
919   };
921   sexp_macro = janePackage {
922     pname = "sexp_macro";
923     hash = "1ih1g7vpb1j8vhzm9a5mjrrzgqrhjqdhf6vjrg8kxfqg5i5b8nyx";
924     propagatedBuildInputs = [
925       async
926       sexplib
927     ];
928     meta.description = "Sexp macros";
929   };
931   sexp_pretty = janePackage {
932     pname = "sexp_pretty";
933     hash = "0dax0wm511zgvr7p6kcd5gygi58118by7hsv7hymy8ldfcky5cwd";
934     minimalOCamlVersion = "4.07";
935     meta.description = "S-expression pretty-printer";
936     propagatedBuildInputs = [
937       ppx_base
938       re
939       sexplib
940     ];
941   };
943   sexp_select = janePackage {
944     pname = "sexp_select";
945     hash = "1lchhfqw4afw38fnarwylqc2qp7k6xwx3j7m9gy8ygjgd0vgd729";
946     minimalOCamlVersion = "4.07";
947     propagatedBuildInputs = [
948       base
949       ppx_jane
950     ];
951     meta.description = "A library to use CSS-style selectors to traverse sexp trees";
952   };
954   sexplib0 = janePackage {
955     pname = "sexplib0";
956     hash = "06sb3zqhb3dwqsmn15d769hfgqwqhxnm52iqim9l767gvlwpmibb";
957     minimalOCamlVersion = "4.04.2";
958     meta.description = "Library containing the definition of S-expressions and some base converters";
959   };
961   sexplib = janePackage {
962     pname = "sexplib";
963     hash = "03c3j1ihx4pjbb0x3arrcif3wvp3iva2ivnywhiak4mbbslgsnzr";
964     minimalOCamlVersion = "4.04.2";
965     meta.description = "Library for serializing OCaml values to and from S-expressions";
966     propagatedBuildInputs = [
967       num
968       parsexp
969     ];
970   };
972   shell = janePackage {
973     pname = "shell";
974     hash = "1c4zmpf6s1lk7nficip32c324if6zhm62h9h03d84zgvhvymi0r1";
975     meta.description = "Yet another implementation of fork&exec and related functionality";
976     buildInputs = [ jst-config ];
977     propagatedBuildInputs = [ textutils ];
978     checkInputs = [ ounit ];
979   };
981   shexp = janePackage {
982     pname = "shexp";
983     hash = "1h6hsnbg6bk32f8iv6kd6im4mv2pjsjpd1mjsfx80p1n9273xack";
984     minimalOCamlVersion = "4.07";
985     propagatedBuildInputs = [
986       posixat
987       spawn
988     ];
989     meta.description = "Process library and s-expression based shell";
990   };
992   spawn = janePackage {
993     pname = "spawn";
994     version = "0.13.0";
995     minimalOCamlVersion = "4.02.3";
996     hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf";
997     meta.description = "Spawning sub-processes";
998     buildInputs = [ ppx_expect ];
999     doCheck = false; # tests are broken on NixOS (absolute paths)
1000   };
1002   splay_tree = janePackage {
1003     pname = "splay_tree";
1004     hash = "1xbzzbqb054hl1v1zcgfwdgzqihni3a0dmvrric9xggmgn4ycmqq";
1005     meta.description = "A splay tree implementation";
1006     propagatedBuildInputs = [ core_kernel ];
1007   };
1009   splittable_random = janePackage {
1010     pname = "splittable_random";
1011     hash = "0ax988b1wc7km8khg4s6iphbz16y1rssh7baigxfyw3ldp0agk14";
1012     meta.description = "PRNG that can be split into independent streams";
1013     propagatedBuildInputs = [
1014       base
1015       ppx_assert
1016       ppx_bench
1017       ppx_sexp_message
1018     ];
1019   };
1021   stdio = janePackage {
1022     pname = "stdio";
1023     hash = "0vv6d8absy4hvjd1babv7avpsdlvjpnd5hq691h39d0h3pvs6l98";
1024     minimalOCamlVersion = "4.04.2";
1025     meta.description = "Standard IO library for OCaml";
1026     propagatedBuildInputs = [ base ];
1027   };
1029   textutils = janePackage {
1030     pname = "textutils";
1031     hash = "1ggd0530lc5dkc419y3xw1wb52b4b5j3z78991gn5yxf2s50a8d4";
1032     meta.description = "Text output utilities";
1033     propagatedBuildInputs = [ core ];
1034   };
1036   time_now = janePackage {
1037     pname = "time_now";
1038     hash = "1lyq8zdz93hvpi4hpxh88kds30k5ljil8js9clcqyxrldp5n9mw0";
1039     minimalOCamlVersion = "4.04.2";
1040     meta.description = "Reports the current time";
1041     buildInputs = [
1042       jst-config
1043       ppx_optcomp
1044     ];
1045     propagatedBuildInputs = [
1046       jane-street-headers
1047       base
1048       ppx_base
1049     ];
1050   };
1052   timezone = janePackage {
1053     pname = "timezone";
1054     hash = "0zf075k94nk2wxnzpxia7pnm655damwp1b58xf2s9disia1ydxg7";
1055     meta.description = "Time-zone handling";
1056     propagatedBuildInputs = [ core_kernel ];
1057   };
1059   topological_sort = janePackage {
1060     pname = "topological_sort";
1061     hash = "17iz7956zln31p0xnm3jlhj863zi84bcx41jylzf7gk23qsm95m8";
1062     meta.description = "Topological sort algorithm";
1063     propagatedBuildInputs = [
1064       ppx_jane
1065       stdio
1066     ];
1067   };
1069   typerep = janePackage {
1070     pname = "typerep";
1071     hash = "0wc7h853ka3s3lxxgm61ypidl0lzgc9abdkil6f72anl0c417y90";
1072     minimalOCamlVersion = "4.04.2";
1073     meta.description = "Typerep is a library for runtime types";
1074     propagatedBuildInputs = [ base ];
1075   };
1077   variantslib = janePackage {
1078     pname = "variantslib";
1079     hash = "0vy0hpiaawmydh08nqlwjx52pasp74383yi0pshwbdxin99n9mxd";
1080     minimalOCamlVersion = "4.04.2";
1081     meta.description = "Part of Jane Street's Core library";
1082     propagatedBuildInputs = [ base ];
1083   };
1085   vcaml = janePackage {
1086     pname = "vcaml";
1087     hash = "0ykwrn8bvwx26ad4wb36jw9xnlwsdpnnx88396laxvcfimrp13qs";
1088     meta.description = "OCaml bindings for the Neovim API";
1089     propagatedBuildInputs = [
1090       angstrom-async
1091       async_extra
1092       faraday
1093     ];
1094   };
1096   virtual_dom = janePackage {
1097     pname = "virtual_dom";
1098     hash = "0vcydxx0jhbd5hbriahgp947mc7n3xymyrsfny1c4adk6aaq3c5w";
1099     meta.description = "OCaml bindings for the virtual-dom library";
1100     buildInputs = [ js_of_ocaml-ppx ];
1101     propagatedBuildInputs = [
1102       core_kernel
1103       js_of_ocaml
1104       lambdasoup
1105       tyxml
1106     ];
1107   };
1109   zarith_stubs_js = janePackage {
1110     pname = "zarith_stubs_js";
1111     hash = "16p4bn5spkrx31fr4np945v9mwdq55706v3wl19s5fy6x83gvb86";
1112     minimalOCamlVersion = "4.04.2";
1113     meta.description = "Javascripts stubs for the Zarith library";
1114     doCheck = false; # requires workspace with zarith
1115   };
1117   zstandard = janePackage {
1118     pname = "zstandard";
1119     hash = "1vf76v5m9wsh5f77w9z4i8sxm05wr5digyi95x4wvzdi7q3qg6m8";
1120     meta.description = "OCaml bindings to Zstandard";
1121     buildInputs = [ ppx_jane ];
1122     propagatedBuildInputs = [
1123       core
1124       ctypes
1125       zstd
1126     ];
1127   };