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