13 accessor = janePackage {
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 ];
22 accessor_async = janePackage {
23 pname = "accessor_async";
25 minimalOCamlVersion = "4.09";
26 hash = "1193hzvlzm7vcl9p67fs8al2pvkw9n2wz009m2l3lp35mrx8aq1w";
27 meta.description = "Accessors for Async types, for use with the Accessor library";
28 propagatedBuildInputs = [
34 accessor_base = janePackage {
35 pname = "accessor_base";
37 minimalOCamlVersion = "4.09";
38 hash = "1xjbvvijkyw4dlys47x4896y3kqm2zn0yg60cqrp57i2dwxg0nsj";
39 meta.description = "Accessors for Base types, for use with the Accessor library";
40 propagatedBuildInputs = [ ppx_accessor ];
43 accessor_core = janePackage {
44 minimalOCamlVersion = "4.09";
45 pname = "accessor_core";
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 = [
58 hash = "086v93div4h9l02n7wzv3xx3i6xvddazydm9qlfa72ad55x3vzy0";
59 meta.description = "Monadic concurrency library";
60 propagatedBuildInputs = [
65 doCheck = false; # we don't have netkit_sockets
68 async_extra = janePackage {
69 pname = "async_extra";
70 hash = "16cnz9h4jkc3b0837s5z0iv92q7n5nw77g8qshq8pwq639y8ail4";
71 meta.description = "Monadic concurrency library";
72 propagatedBuildInputs = [ async_kernel ];
75 async_find = janePackage {
77 hash = "0vlcpdr15bgrwrmixvs6ij88kvk8vzzrijz3zm0svxih0naf8ylx";
78 meta.description = "Directory traversal with Async";
79 propagatedBuildInputs = [ async ];
82 async_inotify = janePackage {
83 pname = "async_inotify";
84 hash = "0i0hf7nsir316ijixdj43qf0p3b6yapvcm2jzp7bhpf4r2kxislv";
85 meta.description = "Async wrapper for inotify";
86 propagatedBuildInputs = [
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 ];
99 async_js = janePackage {
101 hash = "0rld8792lfwbinn9rhrgacivz49vppgy29smpqnvpga89wchjv0v";
102 meta.description = "A small library that provide Async support for JavaScript platforms";
103 buildInputs = [ js_of_ocaml-ppx ];
104 propagatedBuildInputs = [
111 async_kernel = janePackage {
112 pname = "async_kernel";
113 hash = "17giakwl0xhyxvxrkn12dwjdghc53q8px81z7cc3k6f102bsbdy6";
114 meta.description = "Monadic concurrency library";
115 propagatedBuildInputs = [ core_kernel ];
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 = [
124 protocol_version_header
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 ];
135 async_shell = janePackage {
136 pname = "async_shell";
137 hash = "1r00z620nqv2jxz2xrp2gsyc30h8dd2w9qsnys2fkqbgpxlbgdc7";
138 meta.description = "Shell helpers for Async";
139 propagatedBuildInputs = [
145 async_smtp = janePackage {
146 pname = "async_smtp";
147 hash = "1xf3illn7vikdxldpnc29n4z8sv9f0wsdgdvl4iv93qlvjk8gzck";
148 meta.description = "SMTP client and server";
149 propagatedBuildInputs = [
162 async_ssl = janePackage {
164 hash = "0ykys3ckpsx5crfgj26v2q3gy6wf684aq0bfb4q8p92ivwznvlzy";
165 meta.description = "Async wrappers for SSL";
166 buildInputs = [ dune-configurator ];
167 propagatedBuildInputs = [
173 # in ctypes.foreign 0.18.0 threaded and unthreaded have been merged
175 substituteInPlace bindings/dune \
176 --replace "ctypes.foreign.threaded" "ctypes.foreign"
180 async_unix = janePackage {
181 pname = "async_unix";
182 hash = "1wgnr0vdsknqrfnf6irmwnvyngndsnvvl1sfnj3v6fhwk4nswnrs";
183 meta.description = "Monadic concurrency library";
184 propagatedBuildInputs = [
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 ];
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 ];
209 base_quickcheck = janePackage {
210 pname = "base_quickcheck";
212 hash = "0apq3d9xb0zdaqsl4cjk5skyig57ff1plndb2mh0nn3czvfhifxs";
213 minimalOCamlVersion = "4.04.2";
214 meta.description = "Randomized testing framework, designed for compatibility with Base";
215 propagatedBuildInputs = [
224 bignum = janePackage {
226 hash = "009ygr64q810p9iq4mykzz4ci00i5mzgpmq35jiyaiqm27bjam21";
227 propagatedBuildInputs = [
232 meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
235 bin_prot = janePackage {
237 hash = "1qyqbfp4zdc2jb87370cdgancisqffhf9x60zgh2m31kqik8annr";
238 minimalOCamlVersion = "4.04.2";
239 meta.description = "A binary protocol generator";
240 propagatedBuildInputs = [
249 bonsai = janePackage {
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 ];
257 cinaps = janePackage {
259 hash = "0ms1j2kh7i5slyw9v4w9kdz52dkwl5gqcnvn89prgimhk2vmichj";
260 minimalOCamlVersion = "4.07";
261 meta.description = "Trivial metaprogramming tool";
262 propagatedBuildInputs = [ re ];
263 checkInputs = [ ppx_jane ];
269 hash = "1isrcl07nkmdm6akqsqs9z8s6zvva2lvg47kaagy7gsbyszrqb82";
270 meta.description = "System-independent part of Core";
271 buildInputs = [ jst-config ];
272 propagatedBuildInputs = [
277 doCheck = false; # we don't have quickcheck_deprecated
280 core_bench = janePackage {
281 pname = "core_bench";
282 hash = "04h6hzxk347pqyrrbgqrw9576sq4yf70fgq9xam3kajrqwdh3dhx";
283 meta.description = "Benchmarking library";
284 propagatedBuildInputs = [ textutils ];
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 ];
294 core_kernel = janePackage {
295 pname = "core_kernel";
297 hash = "0pikg4ln6177gbs0jfix7xj50zlcm7058h64lxnd7wspnj7mq8sd";
298 meta.description = "System-independent part of Core";
299 buildInputs = [ jst-config ];
300 propagatedBuildInputs = [
304 doCheck = false; # we don't have quickcheck_deprecated
307 core_unix = janePackage {
309 hash = "0irfmpx6iksxk2r8mdizjn75h71qh4p2f1s9x2ggckzqj9y904ck";
310 meta.description = "Unix-specific portions of Core";
311 propagatedBuildInputs = [ core ];
314 csvfields = janePackage {
316 hash = "09jmz6y6nwd96dcx6g8ydicxssi72v1ks276phbc9n19wwg9hkaz";
317 propagatedBuildInputs = [
321 meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
324 delimited_parsing = janePackage {
325 pname = "delimited_parsing";
326 hash = "1dnr5wqacryx1kj38i9iifc3457pchr887xphzz2nhlbizq3d7qa";
327 propagatedBuildInputs = [
331 meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
334 ecaml = janePackage {
336 hash = "052qglpwzrx3c4gy3zr6dmsmfbi5gj4fs2jhx9yrsqb9hj8g36mj";
337 meta.description = "Library for writing Emacs plugin in OCaml";
338 propagatedBuildInputs = [
340 expect_test_helpers_core
344 email_message = janePackage {
345 pname = "email_message";
346 hash = "0k8hjkq91ikl7wjxs04k523jbkhl6q4abj6v0lzlbjiybmrpp69n";
347 meta.description = "E-mail message parser";
348 propagatedBuildInputs = [
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 = [
364 expect_test_helpers_core
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 = [
378 fieldslib = janePackage {
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 ];
386 higher_kinded = janePackage {
387 pname = "higher_kinded";
389 minimalOCamlVersion = "4.09";
390 hash = "05jvxgqsx3j2v8rqpd91ah76dgc1q2dz38kjklmx0vms4r4gvlsx";
391 meta.description = "A library with an encoding of higher kinded types in OCaml";
392 propagatedBuildInputs = [
398 incr_dom = janePackage {
400 hash = "0mi98cwi4npdh5vvcz0pb4sbb9j9dydl52s51rswwc3kn8mipxfx";
401 meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
402 buildInputs = [ js_of_ocaml-ppx ];
403 propagatedBuildInputs = [
409 patches = [ ./incr_dom_jsoo_4_0.patch ];
412 incr_map = janePackage {
414 hash = "0s0s7qfydvvvnqby4v5by5jdnd5kxqsdr65mhm11w4fn125skryz";
415 meta.description = "Helpers for incremental operations on map like data structures";
416 buildInputs = [ ppx_pattern_bind ];
417 propagatedBuildInputs = [ incremental ];
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 ];
427 incremental = janePackage {
428 pname = "incremental";
429 hash = "0nyaiy7r2spvn2ij9z5rghd5gbjk1y3ai4jn0i8q81arp7cf6zc7";
430 meta.description = "Library for incremental computations";
431 propagatedBuildInputs = [ core_kernel ];
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";
441 jst-config = janePackage {
442 pname = "jst-config";
443 hash = "0hzw0crgj0kjxsvr10wng7gqy948v98hnijh30lgq3v62jdsjra8";
444 meta.description = "Compile-time configuration for Jane Street libraries";
452 ocaml-compiler-libs = janePackage {
453 pname = "ocaml-compiler-libs";
455 minimalOCamlVersion = "4.04.1";
456 hash = "sha256-W+KUguz55yYAriHRMcQy8gRPzh2TZSJnexG1JI8TLgI=";
457 meta.description = "OCaml compiler libraries repackaged";
460 parsexp = janePackage {
463 hash = "1nr0ncb8l2mkk8pqzknr7fsqw5kpz8y102kyv5bc0x7c36v0d4zy";
464 minimalOCamlVersion = "4.04.2";
465 meta.description = "S-expression parsing library";
466 propagatedBuildInputs = [
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 ];
479 posixat = janePackage {
481 hash = "0aana1lzq4514kna7hr301b5iv6gcg6zhgrx8s8vaad1q38yfp6c";
482 minimalOCamlVersion = "4.07";
483 propagatedBuildInputs = [
487 meta.description = "Binding to the posix *at functions";
490 ppx_accessor = janePackage {
491 pname = "ppx_accessor";
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 ];
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 = [
512 ppx_base = janePackage {
514 hash = "1wv3q0qyghm0c5izq03y97lv3czqk116059mg62wx6valn22a000";
515 minimalOCamlVersion = "4.04.2";
517 description = "Base set of ppx rewriters";
518 mainProgram = "ppx-base";
520 propagatedBuildInputs = [
528 ppx_bench = janePackage {
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 ];
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 = [
546 doCheck = false; # circular dependency with ppx_jane
549 ppx_cold = janePackage {
551 hash = "0ciqs6f9ab73gq4krj14xzzba4ydcxph214m87i1s0xp25hwxr8v";
552 minimalOCamlVersion = "4.04.2";
553 meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
554 propagatedBuildInputs = [ ppxlib ];
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 = [
566 doCheck = false; # test build rule broken
569 ppx_custom_printf = janePackage {
570 pname = "ppx_custom_printf";
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 ];
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 ];
586 ppx_expect = janePackage {
587 pname = "ppx_expect";
589 hash = "0vbbnjrzpyk5p0js21lafr6fcp2wqka89p1876rdf472cmg0l7fv";
590 minimalOCamlVersion = "4.04.2";
591 meta.description = "Cram like framework for OCaml";
592 propagatedBuildInputs = [
597 doCheck = false; # circular dependency with ppx_jane
600 ppx_fields_conv = janePackage {
601 pname = "ppx_fields_conv";
603 hash = "1zwirwqry24b48bg7d4yc845hvcirxyymzbw95aaxdcck84d30n8";
604 minimalOCamlVersion = "4.04.2";
605 meta.description = "Generation of accessor and iteration functions for ocaml records";
606 propagatedBuildInputs = [
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 ];
620 ppx_hash = janePackage {
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 = [
631 ppx_here = janePackage {
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
640 ppx_inline_test = janePackage {
641 pname = "ppx_inline_test";
643 hash = "1ajdna1m9l1l3nfigyy33zkfa3yarfr6s086jdw2pcfwlq1fhhl4";
644 minimalOCamlVersion = "4.04.2";
645 meta.description = "Syntax extension for writing in-line tests in ocaml code";
646 propagatedBuildInputs = [
650 doCheck = false; # test build rules broken
653 ppx_jane = janePackage {
655 hash = "1kk238fvrcylymwm7xwc7llbyspmx1y662ypq00vy70g112rir7j";
656 minimalOCamlVersion = "4.04.2";
658 description = "Standard Jane Street ppx rewriters";
659 mainProgram = "ppx-jane";
661 propagatedBuildInputs = [
677 ppx_js_style = janePackage {
678 pname = "ppx_js_style";
680 hash = "16ax6ww9h36xyn9acbm8zxv0ajs344sm37lgj2zd2bvgsqv24kxj";
681 minimalOCamlVersion = "4.04.2";
682 meta.description = "Code style checker for Jane Street Packages";
683 propagatedBuildInputs = [
689 ppx_let = janePackage {
691 hash = "1jq3g88xv9g6y9im67hiig3cfn5anwwnq09mp7yn7a86ha5r9w3i";
692 minimalOCamlVersion = "4.04.2";
693 meta.description = "Monadic let-bindings";
694 propagatedBuildInputs = [ ppxlib ];
697 ppx_log = janePackage {
699 hash = "10hnr5lpww3fw0bnidzngalbgy0j1wvz1g5ki9c9h558pnpvsazr";
700 minimalOCamlVersion = "4.08.0";
701 meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
702 propagatedBuildInputs = [
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 ];
717 ppx_optcomp = janePackage {
718 pname = "ppx_optcomp";
720 hash = "1iflgfzs23asw3k6098v84al5zqx59rx2qjw0mhvk56avlx71pkw";
721 minimalOCamlVersion = "4.04.2";
722 meta.description = "Optional compilation for OCaml";
723 propagatedBuildInputs = [ ppxlib ];
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 ];
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 ];
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 ];
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";
759 propagatedBuildInputs = [
766 ppx_sexp_conv = janePackage {
767 pname = "ppx_sexp_conv";
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"; })
779 ppx_sexp_message = janePackage {
780 pname = "ppx_sexp_message";
782 hash = "1lvsr0d68kakih1ll33hy6dxbjkly6lmky4q6z0h0hrcbd6z48k4";
783 minimalOCamlVersion = "4.04.2";
784 meta.description = "A ppx rewriter for easy construction of s-expressions";
785 propagatedBuildInputs = [
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 = [
802 ppx_stable = janePackage {
803 pname = "ppx_stable";
805 hash = "1sp1kn23qr0pfypa4ilvhqq5y11y13xpfygfl582ra9kik5xqfa1";
806 minimalOCamlVersion = "4.04.2";
807 meta.description = "Stable types conversions generator";
808 propagatedBuildInputs = [ ppxlib ];
811 ppx_string = janePackage {
812 pname = "ppx_string";
814 minimalOCamlVersion = "4.04.2";
815 hash = "0a8khmg0y32kyn3q6idwgh0d6d1s6ms1w75gj3dzng0v7y4h6jx4";
816 meta.description = "Ppx extension for string interpolation";
817 propagatedBuildInputs = [
824 ppx_typerep_conv = janePackage {
825 pname = "ppx_typerep_conv";
827 minimalOCamlVersion = "4.04.2";
828 hash = "0yk9vkpnwr8labgfncqdi4rfkj88d8mb3cr8m4gdqpi3f2r27hf0";
829 meta.description = "Generation of runtime types from type declarations";
830 propagatedBuildInputs = [
836 ppx_variants_conv = janePackage {
837 pname = "ppx_variants_conv";
839 minimalOCamlVersion = "4.04.2";
840 hash = "1p11fiz4m160hs0xzg4g9rxchp053sz3s3d1lyciqixad1xi47a4";
841 meta.description = "Generation of accessor and iteration functions for ocaml variant types";
842 propagatedBuildInputs = [
848 protocol_version_header = janePackage {
849 pname = "protocol_version_header";
850 hash = "0lfblv2yqw01bl074ga6vxii0p9mqwlqw1g9b9z7pfdva9wqilrd";
851 meta.description = "Protocol versioning";
852 propagatedBuildInputs = [ core_kernel ];
855 pythonlib = janePackage {
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 = [
871 hash = "1j7dizls6lkz3i9dgf8nq2fm382mfbrmz72ci066zl3hkgdq8xwc";
872 meta.description = "OCaml bindings for RE2, Google's regular expression library";
873 propagatedBuildInputs = [ core_kernel ];
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++))'
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 = [
890 resource_cache = janePackage {
891 pname = "resource_cache";
892 hash = "197z9s535q74h00365ydhggg7hyzpyqvislgwwyi69sl1vy6dr0j";
893 meta.description = "General resource cache";
894 propagatedBuildInputs = [ async_rpc_kernel ];
899 hash = "1x08pyrkd78233kgj70wxlc79w6jjhfrjdamm2xr7jzdc8ycfigf";
900 propagatedBuildInputs = [
910 patches = ./sexp.patch;
911 meta.description = "S-expression swiss knife";
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";
921 sexp_macro = janePackage {
922 pname = "sexp_macro";
923 hash = "1ih1g7vpb1j8vhzm9a5mjrrzgqrhjqdhf6vjrg8kxfqg5i5b8nyx";
924 propagatedBuildInputs = [
928 meta.description = "Sexp macros";
931 sexp_pretty = janePackage {
932 pname = "sexp_pretty";
933 hash = "0dax0wm511zgvr7p6kcd5gygi58118by7hsv7hymy8ldfcky5cwd";
934 minimalOCamlVersion = "4.07";
935 meta.description = "S-expression pretty-printer";
936 propagatedBuildInputs = [
943 sexp_select = janePackage {
944 pname = "sexp_select";
945 hash = "1lchhfqw4afw38fnarwylqc2qp7k6xwx3j7m9gy8ygjgd0vgd729";
946 minimalOCamlVersion = "4.07";
947 propagatedBuildInputs = [
951 meta.description = "A library to use CSS-style selectors to traverse sexp trees";
954 sexplib0 = janePackage {
956 hash = "06sb3zqhb3dwqsmn15d769hfgqwqhxnm52iqim9l767gvlwpmibb";
957 minimalOCamlVersion = "4.04.2";
958 meta.description = "Library containing the definition of S-expressions and some base converters";
961 sexplib = janePackage {
963 hash = "03c3j1ihx4pjbb0x3arrcif3wvp3iva2ivnywhiak4mbbslgsnzr";
964 minimalOCamlVersion = "4.04.2";
965 meta.description = "Library for serializing OCaml values to and from S-expressions";
966 propagatedBuildInputs = [
972 shell = janePackage {
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 ];
981 shexp = janePackage {
983 hash = "1h6hsnbg6bk32f8iv6kd6im4mv2pjsjpd1mjsfx80p1n9273xack";
984 minimalOCamlVersion = "4.07";
985 propagatedBuildInputs = [
989 meta.description = "Process library and s-expression based shell";
992 spawn = janePackage {
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)
1002 splay_tree = janePackage {
1003 pname = "splay_tree";
1004 hash = "1xbzzbqb054hl1v1zcgfwdgzqihni3a0dmvrric9xggmgn4ycmqq";
1005 meta.description = "A splay tree implementation";
1006 propagatedBuildInputs = [ core_kernel ];
1009 splittable_random = janePackage {
1010 pname = "splittable_random";
1011 hash = "0ax988b1wc7km8khg4s6iphbz16y1rssh7baigxfyw3ldp0agk14";
1012 meta.description = "PRNG that can be split into independent streams";
1013 propagatedBuildInputs = [
1021 stdio = janePackage {
1023 hash = "0vv6d8absy4hvjd1babv7avpsdlvjpnd5hq691h39d0h3pvs6l98";
1024 minimalOCamlVersion = "4.04.2";
1025 meta.description = "Standard IO library for OCaml";
1026 propagatedBuildInputs = [ base ];
1029 textutils = janePackage {
1030 pname = "textutils";
1031 hash = "1ggd0530lc5dkc419y3xw1wb52b4b5j3z78991gn5yxf2s50a8d4";
1032 meta.description = "Text output utilities";
1033 propagatedBuildInputs = [ core ];
1036 time_now = janePackage {
1038 hash = "1lyq8zdz93hvpi4hpxh88kds30k5ljil8js9clcqyxrldp5n9mw0";
1039 minimalOCamlVersion = "4.04.2";
1040 meta.description = "Reports the current time";
1045 propagatedBuildInputs = [
1052 timezone = janePackage {
1054 hash = "0zf075k94nk2wxnzpxia7pnm655damwp1b58xf2s9disia1ydxg7";
1055 meta.description = "Time-zone handling";
1056 propagatedBuildInputs = [ core_kernel ];
1059 topological_sort = janePackage {
1060 pname = "topological_sort";
1061 hash = "17iz7956zln31p0xnm3jlhj863zi84bcx41jylzf7gk23qsm95m8";
1062 meta.description = "Topological sort algorithm";
1063 propagatedBuildInputs = [
1069 typerep = janePackage {
1071 hash = "0wc7h853ka3s3lxxgm61ypidl0lzgc9abdkil6f72anl0c417y90";
1072 minimalOCamlVersion = "4.04.2";
1073 meta.description = "Typerep is a library for runtime types";
1074 propagatedBuildInputs = [ base ];
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 ];
1085 vcaml = janePackage {
1087 hash = "0ykwrn8bvwx26ad4wb36jw9xnlwsdpnnx88396laxvcfimrp13qs";
1088 meta.description = "OCaml bindings for the Neovim API";
1089 propagatedBuildInputs = [
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 = [
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
1117 zstandard = janePackage {
1118 pname = "zstandard";
1119 hash = "1vf76v5m9wsh5f77w9z4i8sxm05wr5digyi95x4wvzdi7q3qg6m8";
1120 meta.description = "OCaml bindings to Zstandard";
1121 buildInputs = [ ppx_jane ];
1122 propagatedBuildInputs = [