1{
2 self,
3 bash,
4 fetchpatch,
5 fzf,
6 lib,
7 ocaml,
8 openssl,
9 zstd,
10}:
11
12let
13 js_of_ocaml-compiler = self.js_of_ocaml-compiler.override { version = "5.9.1"; };
14 js_of_ocaml = self.js_of_ocaml.override { inherit js_of_ocaml-compiler; };
15 gen_js_api = self.gen_js_api.override {
16 inherit js_of_ocaml-compiler;
17 ojs = self.ojs.override { inherit js_of_ocaml-compiler; };
18 };
19 js_of_ocaml-ppx = self.js_of_ocaml-ppx.override { inherit js_of_ocaml; };
20in
21
22with self;
23
24{
25
26 abstract_algebra = janePackage {
27 pname = "abstract_algebra";
28 minimalOCamlVersion = "4.08";
29 hash = "12imf6ibm7qb8r1fpqnrl20x2z14zl3ri1vzg0z8qby9l8bv2fbd";
30 meta.description = "A small library describing abstract algebra concepts";
31 propagatedBuildInputs = [
32 base
33 ppx_jane
34 ];
35 };
36
37 accessor = janePackage {
38 pname = "accessor";
39 minimalOCamlVersion = "4.09";
40 hash = "17rzf0jpc9s3yrxcnn630jhgsw5mrnrhwbfh62hqxqanascc5rxh";
41 meta.description = "A library that makes it nicer to work with nested functional data structures";
42 propagatedBuildInputs = [ higher_kinded ];
43 };
44
45 accessor_async = janePackage {
46 pname = "accessor_async";
47 minimalOCamlVersion = "4.09";
48 hash = "17r6af55ms0i496jsfx0xpdm336c2vhyf49b3s8s1gpz521wrgmc";
49 meta.description = "Accessors for Async types, for use with the Accessor library";
50 propagatedBuildInputs = [
51 accessor_core
52 async_kernel
53 ];
54 };
55
56 accessor_base = janePackage {
57 pname = "accessor_base";
58 minimalOCamlVersion = "4.09";
59 hash = "1qvq005vxf6n1c7swzb4bzcqdh471bfb9gcmdj4m57xg85xznc1n";
60 meta.description = "Accessors for Base types, for use with the Accessor library";
61 propagatedBuildInputs = [ ppx_accessor ];
62 };
63
64 accessor_core = janePackage {
65 minimalOCamlVersion = "4.09";
66 pname = "accessor_core";
67 hash = "0zrs5zbyrhfbah73g22l19bw1mmljhyb3l2mrwcxgbjq9pqp0k9v";
68 meta.description = "Accessors for Core types, for use with the Accessor library";
69 propagatedBuildInputs = [
70 accessor_base
71 core_kernel
72 ];
73 };
74
75 async = janePackage {
76 pname = "async";
77 hash = "0pykmnsil754jsnr8gss91ykyjvivngx4ii0ih3nsg1x2jl9xmy2";
78 meta.description = "Monadic concurrency library";
79 propagatedBuildInputs = [
80 async_rpc_kernel
81 async_unix
82 textutils
83 ];
84 doCheck = false; # we don't have netkit_sockets
85 };
86
87 async_extra = janePackage {
88 pname = "async_extra";
89 hash = "0pxp0b4shz9krsj8xfzajv8a1mijgf0xdgxrn2abdqrz3rvj6pig";
90 meta.description = "Monadic concurrency library";
91 propagatedBuildInputs = [ async_kernel ];
92 };
93
94 async_find = janePackage {
95 pname = "async_find";
96 hash = "119988nkcnw6l6wch4llqkvsrawv2gkbn5q4hngpdwvnw0g0aapv";
97 meta.description = "Directory traversal with Async";
98 propagatedBuildInputs = [ async ];
99 };
100
101 async_inotify = janePackage {
102 pname = "async_inotify";
103 hash = "1nxz6bijp7liy18ljrxg92v2m8v8fqcs1pmzg9kbcf0d4vij8j2p";
104 meta.description = "Async wrapper for inotify";
105 propagatedBuildInputs = [
106 async_find
107 inotify
108 ];
109 };
110
111 async_interactive = janePackage {
112 pname = "async_interactive";
113 hash = "00hr2lhs8p3hwnyllmns59rwlpimc5b7r6v4zn6cmpb1riblaxqp";
114 meta.description = "Utilities for building simple command-line based user interfaces";
115 propagatedBuildInputs = [ async ];
116 };
117
118 async_js = janePackage {
119 pname = "async_js";
120 hash = "184j077bz686k5lrqswircnrdqldb316ngpzq7xri1pcsl39sy3q";
121 meta.description = "A small library that provide Async support for JavaScript platforms";
122 buildInputs = [ js_of_ocaml-ppx ];
123 propagatedBuildInputs = [
124 async_rpc_kernel
125 js_of_ocaml
126 uri-sexp
127 ];
128 };
129
130 async_kernel = janePackage {
131 pname = "async_kernel";
132 hash = "01if6c8l2h64v7sk56xr8acnmj6g9whxcjrzzzvczspq88hq2bfh";
133 meta.description = "Monadic concurrency library";
134 propagatedBuildInputs = [ core_kernel ];
135 };
136
137 async_rpc_kernel = janePackage {
138 pname = "async_rpc_kernel";
139 hash = "1b5rp5yam03ir4f1sixpzjg1zdqmkb7lvnaa82kac4fzk80gfrfr";
140 meta.description = "Platform-independent core of Async RPC library";
141 propagatedBuildInputs = [
142 async_kernel
143 protocol_version_header
144 ];
145 };
146
147 async_rpc_websocket = janePackage {
148 pname = "async_rpc_websocket";
149 hash = "1n93jhkz5r76xcc40c4i4sxcyfz1dbppz8sjfxpwcwjyi6lyhp1p";
150 meta.description = "Library to serve and dispatch Async RPCs over websockets";
151 propagatedBuildInputs = [
152 async_rpc_kernel
153 async_websocket
154 cohttp_async_websocket
155 ];
156 };
157
158 async_sendfile = janePackage {
159 pname = "async_sendfile";
160 hash = "0lnagdxfnac4z29narphf2ab5a23ys883zmc45r96rssfx82i3fs";
161 meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
162 propagatedBuildInputs = [ async_unix ];
163 };
164
165 async_shell = janePackage {
166 pname = "async_shell";
167 hash = "07iwlyrc4smk6hsnz89cz2ihp670mllq0y9wbdafvagm1y1p62vx";
168 meta.description = "Shell helpers for Async";
169 propagatedBuildInputs = [
170 async
171 shell
172 ];
173 };
174
175 async_smtp = janePackage {
176 pname = "async_smtp";
177 hash = "1m00j7wcb0blipnc1m6by70gd96a1k621b4dgvgffp8as04a461r";
178 minimalOCamlVersion = "4.12";
179 meta.description = "SMTP client and server";
180 propagatedBuildInputs = [
181 async_extra
182 async_inotify
183 async_sendfile
184 async_shell
185 async_ssl
186 email_message
187 resource_cache
188 re2_stable
189 sexp_macro
190 ];
191 };
192
193 async_ssl = janePackage {
194 pname = "async_ssl";
195 hash = "1b7f7p3xj4jr2n2dxy2lp7a9k7944w6x2nrg6524clvcsd1ax4hn";
196 meta.description = "Async wrappers for SSL";
197 buildInputs = [ dune-configurator ];
198 propagatedBuildInputs = [
199 async
200 ctypes
201 ctypes-foreign
202 openssl
203 ];
204 # in ctypes.foreign 0.18.0 threaded and unthreaded have been merged
205 postPatch = ''
206 substituteInPlace bindings/dune \
207 --replace "ctypes.foreign.threaded" "ctypes.foreign"
208 '';
209 };
210
211 async_unix = janePackage {
212 pname = "async_unix";
213 hash = "0z4fgpn93iw0abd7l9kac28qgzgc5qr2x0s1n2zh49lsdn02n6ys";
214 meta.description = "Monadic concurrency library";
215 propagatedBuildInputs = [
216 async_kernel
217 core_unix
218 ];
219 };
220
221 async_websocket = janePackage {
222 pname = "async_websocket";
223 hash = "16ixqfnx9jp77bvx11dlzsq0pzfpyiif60hl2q06zncyswky9xgb";
224 meta.description = "A library that implements the websocket protocol on top of Async";
225 propagatedBuildInputs = [
226 async
227 cryptokit
228 ];
229 };
230
231 base = janePackage {
232 pname = "base";
233 version = "0.15.1";
234 hash = "sha256-CDKQVF+hAvJTo5QmRvyOfQNrdRgz6m+64q9UzNHlJEA=";
235 minimalOCamlVersion = "4.10";
236 meta.description = "Full standard library replacement for OCaml";
237 buildInputs = [ dune-configurator ];
238 propagatedBuildInputs = [ sexplib0 ];
239 checkInputs = [ alcotest ];
240 };
241
242 base_bigstring = janePackage {
243 pname = "base_bigstring";
244 hash = "1hv3hw2fwqmkrxms1g6rw3c18mmla1z5bva3anx45mnff903iv4q";
245 minimalOCamlVersion = "4.08";
246 meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
247 propagatedBuildInputs = [
248 int_repr
249 ppx_jane
250 ];
251 };
252
253 base_quickcheck = janePackage {
254 pname = "base_quickcheck";
255 hash = "0q73kfr67cz5wp4qn4rq3lpa922hqmvwdiinnans0js65fvlgqsi";
256 minimalOCamlVersion = "4.04.2";
257 meta.description = "Randomized testing framework, designed for compatibility with Base";
258 propagatedBuildInputs = [
259 ppx_base
260 ppx_fields_conv
261 ppx_let
262 ppx_sexp_value
263 splittable_random
264 ];
265 };
266
267 bignum = janePackage {
268 pname = "bignum";
269 hash = "12q3xcv78b4s9srnc17jbyn53d5drmwmyvgp62p7nk3fs4f7cr4f";
270 propagatedBuildInputs = [
271 core_kernel
272 zarith
273 zarith_stubs_js
274 ];
275 meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
276 };
277
278 bin_prot = janePackage {
279 pname = "bin_prot";
280 hash = "1qfqglscc25wwnjx7byqmjcnjww1msnr8940gyg8h93wdq43fjnh";
281 minimalOCamlVersion = "4.04.2";
282 meta.description = "A binary protocol generator";
283 propagatedBuildInputs = [
284 ppx_compare
285 ppx_custom_printf
286 ppx_fields_conv
287 ppx_optcomp
288 ppx_variants_conv
289 ];
290 };
291
292 bonsai = janePackage {
293 pname = "bonsai";
294 hash = "150zx2g1dmhyrxwqq8j7f2m3hjpmk5bk182ihx2gdbarhw1ainpm";
295 meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
296 buildInputs = [ ppx_pattern_bind ];
297 nativeBuildInputs = [
298 js_of_ocaml-compiler
299 ocaml-embed-file
300 ];
301 propagatedBuildInputs = [
302 async
303 async_extra
304 async_rpc_websocket
305 cohttp-async
306 core_bench
307 fuzzy_match
308 incr_dom
309 js_of_ocaml-ppx
310 patdiff
311 ppx_css
312 ppx_typed_fields
313 profunctor
314 textutils
315 ];
316 patches = [ ./bonsai_jsoo_4_0.patch ];
317 };
318
319 cinaps = janePackage {
320 pname = "cinaps";
321 version = "0.15.1";
322 hash = "0g856cxmxg4vicwslhqldplkpwi158s2d62vwzv26xg5m6wjn9rg";
323 minimalOCamlVersion = "4.04";
324 meta.description = "Trivial metaprogramming tool";
325 propagatedBuildInputs = [ re ];
326 doCheck = false; # fails because ppx_base doesn't include ppx_js_style
327 };
328
329 cohttp_async_websocket = janePackage {
330 pname = "cohttp_async_websocket";
331 hash = "0d0smavnxpnwrmhlcf3b5a3cm3n9kz1y8fh6l28xv6zrn4sc7ik8";
332 meta.description = "Websocket library for use with cohttp and async";
333 propagatedBuildInputs = [
334 async_ssl
335 async_websocket
336 cohttp-async
337 ppx_jane
338 uri-sexp
339 ];
340 };
341
342 cohttp_static_handler = janePackage {
343 pname = "cohttp_static_handler";
344 version = "0.15.0";
345 hash = "sha256-ENaH8ChvjeMc9WeNIhkeNBB7YK9vB4lw95o6FFZI1ys=";
346 meta.description = "A library for easily creating a cohttp handler for static files";
347 propagatedBuildInputs = [ cohttp-async ];
348 };
349
350 core = janePackage {
351 pname = "core";
352 version = "0.15.1";
353 hash = "sha256-SHjnNFl+JAjdgVoRgmnz0wqrrc3zoh0ZyG2UhUsUbJ8=";
354 meta.description = "Industrial strength alternative to OCaml's standard library";
355 buildInputs = [ jst-config ];
356 propagatedBuildInputs = [
357 base
358 base_bigstring
359 base_quickcheck
360 ppx_jane
361 time_now
362 ];
363 doCheck = false; # circular dependency with core_kernel
364 meta.broken = lib.versionAtLeast ocaml.version "5.1";
365 };
366
367 core_bench = janePackage {
368 pname = "core_bench";
369 hash = "0v6lm9vz6y1qd7h8pg9l5jsy8qr74vlk1nd4qzchld4jhwq7mbdi";
370 meta.description = "Benchmarking library";
371 propagatedBuildInputs = [ textutils ];
372 };
373
374 core_extended = janePackage {
375 pname = "core_extended";
376 hash = "0sx79hc1y1daczib2p4nbyw4aqnznmdd83knrhs5q153j7lnlalx";
377 meta.description = "Extra components that are not as closely vetted or as stable as Core";
378 propagatedBuildInputs = [
379 core_unix
380 record_builder
381 ];
382 };
383
384 core_kernel = janePackage {
385 pname = "core_kernel";
386 hash = "05mb4vbf293iq1xx4acyrmi9cgcw6capwrsa54ils62alby6w6yq";
387 meta.description = "System-independent part of Core";
388 buildInputs = [ jst-config ];
389 propagatedBuildInputs = [
390 base_bigstring
391 core
392 int_repr
393 sexplib
394 ];
395 doCheck = false; # we don't have quickcheck_deprecated
396 };
397
398 core_unix = janePackage {
399 pname = "core_unix";
400 version = "0.15.2";
401 hash = "sha256-9f2PiLo+4Bjnfvh3scvIiPHj0wPZozmMMiCTe7vC1EA=";
402 meta.description = "Unix-specific portions of Core";
403 buildInputs = [ jst-config ];
404 propagatedBuildInputs = [
405 core_kernel
406 expect_test_helpers_core
407 ocaml_intrinsics
408 ppx_jane
409 timezone
410 spawn
411 ];
412 postPatch = ''
413 patchShebangs unix_pseudo_terminal/src/discover.sh
414 '';
415 };
416
417 csvfields = janePackage {
418 pname = "csvfields";
419 version = "0.15.1";
420 hash = "sha256-bBupsarwjte2NCncNDFSkrrmMR3EYPn+D7xI9zQOhFA=";
421 propagatedBuildInputs = [
422 core
423 num
424 ];
425 meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
426 };
427
428 delimited_parsing = janePackage {
429 pname = "delimited_parsing";
430 hash = "0d050v58zzi8c4qiwxbfcyrdw6zvncnnl3qj79qi0yq4xkg7820r";
431 propagatedBuildInputs = [
432 async
433 core_extended
434 ];
435 meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
436 };
437
438 ecaml = janePackage {
439 pname = "ecaml";
440 hash = "08g2bl06vkn3bkqzkmvk2646aqb6jj4a7n3wgzpcx1c2gl3iw5i6";
441 meta.description = "Library for writing Emacs plugin in OCaml";
442 propagatedBuildInputs = [
443 async
444 expect_test_helpers_core
445 ];
446 };
447
448 email_message = janePackage {
449 pname = "email_message";
450 hash = "00h66l2g5rjaay0hbyqy4v9i866g779miriwv20h9k4mliqdq7in";
451 meta.description = "E-mail message parser";
452 propagatedBuildInputs = [
453 angstrom
454 async
455 base64
456 cryptokit
457 magic-mime
458 re2
459 ];
460 };
461
462 expect_test_helpers_async = janePackage {
463 pname = "expect_test_helpers_async";
464 hash = "14v4966p5dmqgjb9sgrvnsixv0w0bagicn8v44g9mf9d88z8pfym";
465 meta.description = "Async helpers for writing expectation tests";
466 propagatedBuildInputs = [
467 async
468 expect_test_helpers_core
469 ];
470 };
471
472 expect_test_helpers_core = janePackage {
473 pname = "expect_test_helpers_core";
474 hash = "0bxs3g0zzym8agfcbpg5lmrh6hcb86z861bq40xhhfwqf4pzdbfa";
475 meta.description = "Helpers for writing expectation tests";
476 propagatedBuildInputs = [
477 core_kernel
478 sexp_pretty
479 ];
480 };
481
482 fieldslib = janePackage {
483 pname = "fieldslib";
484 hash = "0xwf9mdxlyr3f0vv5y82cyw2bsckwl8rwf6jm6bai1gqpgxjq756";
485 minimalOCamlVersion = "4.04.2";
486 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";
487 propagatedBuildInputs = [ base ];
488 };
489
490 file_path = janePackage {
491 pname = "file_path";
492 minimalOCamlVersion = "4.11";
493 hash = "0vjvxviryywwwfdazcijwhpajp2d4mavlki7lj4qaafjrw62x14k";
494 meta.description = "A library for typed manipulation of UNIX-style file paths";
495 propagatedBuildInputs = [
496 async
497 core
498 core_kernel
499 core_unix
500 expect_test_helpers_async
501 expect_test_helpers_core
502 ppx_jane
503 ];
504 };
505
506 fuzzy_match = janePackage {
507 pname = "fuzzy_match";
508 hash = "0s5w81698b07l5m11nwx8xbjcpmp54dnf5fcrnlva22jrlsf14h4";
509 meta.description = "A library for fuzzy string matching";
510 propagatedBuildInputs = [
511 core
512 ppx_jane
513 ];
514 };
515
516 fzf = janePackage {
517 pname = "fzf";
518 minimalOCamlVersion = "4.08";
519 hash = "1ha0i6dx5bgwzbdi4rn98wjwi2imv5p2i7qs7hy0c6cmg88xbdry";
520 meta.description = "A library for running the fzf command line tool";
521 propagatedBuildInputs = [
522 async
523 core_kernel
524 ppx_jane
525 ];
526 postPatch = ''
527 substituteInPlace src/fzf.ml --replace /usr/bin/fzf ${fzf}/bin/fzf
528 '';
529 };
530
531 higher_kinded = janePackage {
532 pname = "higher_kinded";
533 minimalOCamlVersion = "4.09";
534 hash = "0rafxxajqswi070h8sinhjna0swh1hc6d7i3q7y099yj3wlr2y1l";
535 meta.description = "A library with an encoding of higher kinded types in OCaml";
536 propagatedBuildInputs = [
537 base
538 ppx_jane
539 ];
540 };
541
542 incr_dom = janePackage {
543 pname = "incr_dom";
544 hash = "1sija9w2im8vdp61h387w0mww9hh7jgkgsjcccps4lbv936ac7c1";
545 meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
546 buildInputs = [ js_of_ocaml-ppx ];
547 propagatedBuildInputs = [
548 async_js
549 incr_map
550 incr_select
551 virtual_dom
552 ];
553 patches = [ ./incr_dom_jsoo_4_0.patch ];
554 };
555
556 incr_map = janePackage {
557 pname = "incr_map";
558 hash = "0aq8wfylvq68him92vzh1fqmr7r0lfwc5cdiqr10r5x032vzpnii";
559 meta.description = "Helpers for incremental operations on map like data structures";
560 buildInputs = [ ppx_pattern_bind ];
561 propagatedBuildInputs = [
562 abstract_algebra
563 incremental
564 ];
565 };
566
567 incr_select = janePackage {
568 pname = "incr_select";
569 hash = "0qm2i4hb5jh2ra95kq881s4chkwbd2prvql1c0nahd63h829m57l";
570 meta.description = "Handling of large set of incremental outputs from a single input";
571 propagatedBuildInputs = [ incremental ];
572 };
573
574 incremental = janePackage {
575 pname = "incremental";
576 hash = "1dp30mhljnbcxqimydwbmxx0x4y4xnb55gyhldm1f5qrwdxdl747";
577 meta.description = "Library for incremental computations";
578 propagatedBuildInputs = [ core_kernel ];
579 };
580
581 int_repr = janePackage {
582 pname = "int_repr";
583 hash = "0ph88ym3s9dk30n17si2xam40sp8wv1xffw5cl3bskc2vfya1nvl";
584 meta.description = "Integers of various widths";
585 propagatedBuildInputs = [
586 base
587 ppx_jane
588 ];
589 };
590
591 jane-street-headers = janePackage {
592 pname = "jane-street-headers";
593 hash = "1lzk3w66x4429n2j75lwm55xafc46mywgdrbh9nc9jwqwgzf0wwx";
594 minimalOCamlVersion = "4.04.2";
595 meta.description = "Jane Street C header files";
596 };
597
598 jsonaf = janePackage {
599 pname = "jsonaf";
600 hash = "1j9rn8vsvfpgmdpmdqb5qhvss5171j8n3ii1bcgnavqinchbvqa6";
601 meta.description = "A library for parsing, manipulating, and serializing data structured as JSON";
602 propagatedBuildInputs = [
603 base
604 ppx_jane
605 angstrom
606 faraday
607 ];
608 };
609
610 jst-config = janePackage {
611 pname = "jst-config";
612 hash = "1lxqsj5k3v8p7g802vj1xc6bs5wrfpszh3q61xvpcd42pf3ahma9";
613 meta.description = "Compile-time configuration for Jane Street libraries";
614 buildInputs = [
615 dune-configurator
616 ppx_assert
617 stdio
618 ];
619 patches = [
620 # remove on next release
621 (fetchpatch {
622 url = "https://github.com/janestreet/jst-config/commit/e5fdac6e5df9ba93e014a4d2db841fdbf209446f.patch";
623 sha256 = "sha256-8hVC76z5ilYD/++xRHVswy/l+zzDt63jH4hfSJ/rPaA=";
624 })
625 ];
626 };
627
628 ocaml-compiler-libs = janePackage {
629 pname = "ocaml-compiler-libs";
630 version = "0.12.4";
631 minimalOCamlVersion = "4.04.1";
632 hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
633 meta.description = "OCaml compiler libraries repackaged";
634 };
635
636 ocaml-embed-file = janePackage {
637 pname = "ocaml-embed-file";
638 hash = "1nzgc0q05f0j3q1kwfpyhhhpgwrfjvmkqqifrkrm4y7d1i44bfnw";
639 propagatedBuildInputs = [
640 async
641 ppx_jane
642 ];
643 meta.description = "Files contents as module constants";
644 };
645
646 ocaml_intrinsics = janePackage {
647 pname = "ocaml_intrinsics";
648 minimalOCamlVersion = "4.08";
649 version = "0.15.2";
650 hash = "sha256-f5zqrKaokj1aEvbu7lOuK0RoWSklFr6QFpV+oWbIX9U=";
651 meta.description = "Intrinsics";
652 buildInputs = [ dune-configurator ];
653 doCheck = false; # test rules broken
654 };
655
656 parsexp = janePackage {
657 pname = "parsexp";
658 hash = "1grzpxi39318vcqhwf723hqh11k68irh59zb3dyg9lw8wjn7752a";
659 minimalOCamlVersion = "4.04.2";
660 meta.description = "S-expression parsing library";
661 propagatedBuildInputs = [
662 base
663 sexplib0
664 ];
665 };
666
667 patdiff = janePackage {
668 pname = "patdiff";
669 hash = "0623a7n5r659rkxbp96g361mvxkcgc6x9lcbkm3glnppplk5kxr9";
670
671 # Used by patdiff-git-wrapper. Providing it here also causes the shebang
672 # line to be automatically patched.
673 buildInputs = [ bash ];
674 propagatedBuildInputs = [
675 core_unix
676 patience_diff
677 ocaml_pcre
678 ];
679 meta = {
680 description = "File Diff using the Patience Diff algorithm";
681 };
682 };
683
684 patience_diff = janePackage {
685 pname = "patience_diff";
686 hash = "17yrhn4qfi31m8g1ygb3m6i9z4fqd8f60fn6viazgx06s3x4xp3v";
687 meta.description = "Diff library using Bram Cohen's patience diff algorithm";
688 propagatedBuildInputs = [ core_kernel ];
689 };
690
691 posixat = janePackage {
692 pname = "posixat";
693 hash = "1xgycwa0janrfn9psb7xrm0820blr82mqf1lvjy9ipqalj7v9w1f";
694 minimalOCamlVersion = "4.07";
695 propagatedBuildInputs = [
696 ppx_optcomp
697 ppx_sexp_conv
698 ];
699 meta.description = "Binding to the posix *at functions";
700 };
701
702 ppx_accessor = janePackage {
703 pname = "ppx_accessor";
704 minimalOCamlVersion = "4.09";
705 hash = "0qv51if1nk0zff2v6q946h8ac7bpd5xa4ivyixl9g4h2mk29w4qb";
706 meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
707 propagatedBuildInputs = [ accessor ];
708 };
709
710 ppx_assert = janePackage {
711 pname = "ppx_assert";
712 hash = "0dic250q3flrjs3i70a2qqqnhqqj75ddlixpy7hdfghjw32azw90";
713 minimalOCamlVersion = "4.04.2";
714 meta.description = "Assert-like extension nodes that raise useful errors on failure";
715 propagatedBuildInputs = [
716 ppx_cold
717 ppx_compare
718 ppx_here
719 ppx_sexp_conv
720 ];
721 };
722
723 ppx_base = janePackage {
724 pname = "ppx_base";
725 hash = "13rfmy2fxvwi7z5l1mai474ri5anqjm8q4hs7dblplsjjd9m5ld1";
726 minimalOCamlVersion = "4.04.2";
727 meta.description = "Base set of ppx rewriters";
728 propagatedBuildInputs = [
729 ppx_cold
730 ppx_enumerate
731 ppx_hash
732 ];
733 };
734
735 ppx_bench = janePackage {
736 pname = "ppx_bench";
737 version = "0.15.1";
738 hash = "sha256-2uk3NfpAODScoQtqiU+ZaOE8zOqkayn/jpfn3GQ4vQg=";
739 minimalOCamlVersion = "4.04.2";
740 meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
741 propagatedBuildInputs = [ ppx_inline_test ];
742 };
743
744 ppx_bin_prot = janePackage {
745 pname = "ppx_bin_prot";
746 hash = "1280wsls061fmvmdysjqn3lv4mnkyg400jnjf4jyfr14s33h1ad5";
747 minimalOCamlVersion = "4.04.2";
748 meta.description = "Generation of bin_prot readers and writers from types";
749 propagatedBuildInputs = [
750 bin_prot
751 ppx_here
752 ];
753 doCheck = false; # circular dependency with ppx_jane
754 };
755
756 ppx_cold = janePackage {
757 pname = "ppx_cold";
758 hash = "0x7xgpvy0l28k971xy08ibhr4w9nh8d9zvxc6jfxxx4fbfcv5gca";
759 minimalOCamlVersion = "4.04.2";
760 meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
761 propagatedBuildInputs = [ ppxlib ];
762 };
763
764 ppx_compare = janePackage {
765 pname = "ppx_compare";
766 hash = "1wjwqkr71p61vjidbr80l93y4kkad7xsfyp04w8qfqrj7h5nm625";
767 minimalOCamlVersion = "4.04.2";
768 meta.description = "Generation of comparison functions from types";
769 propagatedBuildInputs = [
770 ppxlib
771 base
772 ];
773 };
774
775 ppx_conv_func = janePackage {
776 pname = "ppx_conv_func";
777 hash = "sha256-61jX8yHZYOnMx1Jlqaq9zSOz25HLOa0Wv/iG6Hu82zI=";
778 meta.description = "Part of the Jane Street's PPX rewriters collection";
779 propagatedBuildInputs = [
780 ppxlib
781 base
782 ];
783 };
784
785 ppx_custom_printf = janePackage {
786 pname = "ppx_custom_printf";
787 hash = "1k8nmq6kwqz2wpkm9ymq749dz1vd8lxrjc711knp1wyz5935hnsv";
788 minimalOCamlVersion = "4.04.2";
789 meta.description = "Printf-style format-strings for user-defined string conversion";
790 propagatedBuildInputs = [ ppx_sexp_conv ];
791 };
792
793 ppx_css = janePackage {
794 pname = "ppx_css";
795 hash = "09dpmj3f3m3z1ji9hq775iqr3cfmv5gh7q9zlblizj4wx4y0ibyi";
796 meta.description = "A ppx that takes in css strings and produces a module for accessing the unique names defined within";
797 propagatedBuildInputs = [
798 core_kernel
799 ppxlib
800 js_of_ocaml
801 js_of_ocaml-ppx
802 sedlex
803 ];
804 meta.broken = true; # Not compatible with sedlex > 3.4
805 };
806
807 ppx_csv_conv = janePackage {
808 pname = "ppx_csv_conv";
809 hash = "sha256-ctwgUs1buBZiNqac4760LhWd2/PMZRuxx8SE5T7yZ+g=";
810 meta.description = "Generate functions to read/write records in csv format";
811 propagatedBuildInputs = [
812 csvfields
813 ppx_conv_func
814 ];
815 };
816
817 ppx_disable_unused_warnings = janePackage {
818 pname = "ppx_disable_unused_warnings";
819 hash = "0sb5i4v7p9df2bxk66rjs30k9fqdrwsq1jgykjv6wyrx2d9bv955";
820 minimalOCamlVersion = "4.04.2";
821 meta.description = "Expands [@disable_unused_warnings] into [@warning \"-20-26-32-33-34-35-36-37-38-39-60-66-67\"]";
822 propagatedBuildInputs = [ ppxlib ];
823 };
824
825 ppx_enumerate = janePackage {
826 pname = "ppx_enumerate";
827 hash = "1i0f6jv5cappw3idd70wpg76d7x6mvxapa89kri1bwz47hhg4pkz";
828 minimalOCamlVersion = "4.04.2";
829 meta.description = "Generate a list containing all values of a finite type";
830 propagatedBuildInputs = [ ppxlib ];
831 };
832
833 ppx_expect = janePackage {
834 pname = "ppx_expect";
835 version = "0.15.1";
836 hash = "sha256-qlOipzTTdN9yQ35sItKmWpCv74kbuJLDg4IHNVTKvow=";
837 minimalOCamlVersion = "4.04.2";
838 meta.description = "Cram like framework for OCaml";
839 propagatedBuildInputs = [
840 ppx_here
841 ppx_inline_test
842 re
843 ];
844 doCheck = false; # test build rules broken
845 };
846
847 ppx_fields_conv = janePackage {
848 pname = "ppx_fields_conv";
849 hash = "094wsnw7fcwgl9xg6vkjb0wbgpn9scsp847yhdd184sz9v1amz14";
850 minimalOCamlVersion = "4.04.2";
851 meta.description = "Generation of accessor and iteration functions for ocaml records";
852 propagatedBuildInputs = [
853 fieldslib
854 ppxlib
855 ];
856 };
857
858 ppx_fixed_literal = janePackage {
859 pname = "ppx_fixed_literal";
860 hash = "10siwcqrqa4gh0mg6fkaby0jjskc01r81pcblc67h3vmbjjh08j9";
861 minimalOCamlVersion = "4.04.2";
862 meta.description = "Simpler notation for fixed point literals";
863 propagatedBuildInputs = [ ppxlib ];
864 };
865
866 ppx_hash = janePackage {
867 pname = "ppx_hash";
868 hash = "15agkwavadllzxdv4syjna02083nfnap8qs4yqf5s0adjw73fzyg";
869 minimalOCamlVersion = "4.04.2";
870 meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
871 propagatedBuildInputs = [
872 ppx_compare
873 ppx_sexp_conv
874 ];
875 };
876
877 ppx_here = janePackage {
878 pname = "ppx_here";
879 hash = "0jv81k8x18q8rxdyfwavrvx8yq9k5m3abpmgdg6zipx2ajcjzvag";
880 minimalOCamlVersion = "4.04.2";
881 meta.description = "Expands [%here] into its location";
882 propagatedBuildInputs = [ ppxlib ];
883 doCheck = false; # test build rules broken
884 };
885
886 ppx_ignore_instrumentation = janePackage {
887 pname = "ppx_ignore_instrumentation";
888 hash = "16fgig88g3jr0m3i636fr52h29h1yzhi8nhnl4029zn808kcdyj2";
889 minimalOCamlVersion = "4.08";
890 meta.description = "Ignore Jane Street specific instrumentation extensions";
891 propagatedBuildInputs = [ ppxlib ];
892 };
893
894 ppx_inline_test = janePackage {
895 pname = "ppx_inline_test";
896 version = "0.15.1";
897 hash = "sha256-9Up4/VK4gayuwbPc3r6gVRj78ILO2G3opL5UDOTKOgk=";
898 minimalOCamlVersion = "4.04.2";
899 meta.description = "Syntax extension for writing in-line tests in ocaml code";
900 propagatedBuildInputs = [
901 ppxlib
902 time_now
903 ];
904 doCheck = false; # test build rules broken
905 };
906
907 ppx_jane = janePackage {
908 pname = "ppx_jane";
909 hash = "1p6847gdfnnj6qpa4yh57s6wwpsl7rfgy0q7993chz24h9mhz5lk";
910 minimalOCamlVersion = "4.04.2";
911 meta.description = "Standard Jane Street ppx rewriters";
912 propagatedBuildInputs = [
913 base_quickcheck
914 ppx_bin_prot
915 ppx_disable_unused_warnings
916 ppx_expect
917 ppx_fixed_literal
918 ppx_ignore_instrumentation
919 ppx_log
920 ppx_module_timer
921 ppx_optcomp
922 ppx_optional
923 ppx_pipebang
924 ppx_stable
925 ppx_string
926 ppx_typerep_conv
927 ppx_variants_conv
928 ];
929 };
930
931 ppx_jsonaf_conv = janePackage {
932 pname = "ppx_jsonaf_conv";
933 version = "0.15.1";
934 hash = "0wprs7qmscklyskj4famhaqqisi6jypy414aqba14qdyi43w0cv3";
935 minimalOCamlVersion = "4.08";
936 meta.description = "[@@deriving] plugin to generate Jsonaf conversion functions";
937 propagatedBuildInputs = [
938 base
939 jsonaf
940 ppx_jane
941 ppxlib
942 ];
943 };
944
945 ppx_js_style = janePackage {
946 pname = "ppx_js_style";
947 hash = "0q2p9pvmlncgv0hprph95xiv7s6q44ynvp4yl4dckf1qx68rb3ba";
948 minimalOCamlVersion = "4.04.2";
949 meta.description = "Code style checker for Jane Street Packages";
950 propagatedBuildInputs = [
951 octavius
952 ppxlib
953 ];
954 };
955
956 ppx_let = janePackage {
957 pname = "ppx_let";
958 hash = "04v3fq0vnvvavxbc7hfsrg8732pwxbyw8pjl3xfplqdqci6fj15n";
959 minimalOCamlVersion = "4.04.2";
960 meta.description = "Monadic let-bindings";
961 propagatedBuildInputs = [
962 ppxlib
963 ppx_here
964 ];
965 };
966
967 ppx_log = janePackage {
968 pname = "ppx_log";
969 hash = "08i9gz3f4w3bmlrfdw7ja9awsfkhhldz03bnnc4hijfmn8sawzi0";
970 minimalOCamlVersion = "4.08.0";
971 meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
972 propagatedBuildInputs = [
973 base
974 ppx_here
975 ppx_sexp_conv
976 ppx_sexp_message
977 sexplib
978 ];
979 };
980
981 ppx_module_timer = janePackage {
982 pname = "ppx_module_timer";
983 hash = "0lzi5hxi10p89ddqbrc667267f888kqslal76gfhmszyk60n20av";
984 minimalOCamlVersion = "4.04.2";
985 meta.description = "Ppx rewriter that records top-level module startup times";
986 propagatedBuildInputs = [ time_now ];
987 };
988
989 ppx_optcomp = janePackage {
990 pname = "ppx_optcomp";
991 hash = "0ypivfipi8fcr9pqyvl2ajpcivmr1irdwwv248i4x6mggpc2pl0b";
992 minimalOCamlVersion = "4.04.2";
993 meta.description = "Optional compilation for OCaml";
994 propagatedBuildInputs = [ ppxlib ];
995 };
996
997 ppx_optional = janePackage {
998 pname = "ppx_optional";
999 hash = "0amxwxhkyzamgnxx400qhvxzqr3m4sazhhkc516lm007pynv7xq2";
1000 minimalOCamlVersion = "4.04.2";
1001 meta.description = "Pattern matching on flat options";
1002 propagatedBuildInputs = [ ppxlib ];
1003 };
1004
1005 ppx_pattern_bind = janePackage {
1006 pname = "ppx_pattern_bind";
1007 hash = "01nfdk9yvk92r7sjl4ngxfsx8fyqh2dsjxz0i299nszv9jc4rn4f";
1008 minimalOCamlVersion = "4.07";
1009 meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
1010 propagatedBuildInputs = [ ppx_let ];
1011 };
1012
1013 ppx_pipebang = janePackage {
1014 pname = "ppx_pipebang";
1015 hash = "0sm5dghyalhws3hy1cc2ih36az1k4q02hcgj6l26gwyma3y4irvq";
1016 minimalOCamlVersion = "4.04.2";
1017 meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
1018 propagatedBuildInputs = [ ppxlib ];
1019 };
1020
1021 ppx_python = janePackage {
1022 pname = "ppx_python";
1023 hash = "1d2wf0rkvxg07q6xq2zmxh6hmvnwlsmny3mm92jsg1s7bdl39gap";
1024 meta.description = "A [@@deriving] plugin to generate Python conversion functions ";
1025 propagatedBuildInputs = [
1026 ppx_base
1027 ppxlib
1028 pyml
1029 ];
1030 };
1031
1032 ppx_sexp_conv = janePackage {
1033 pname = "ppx_sexp_conv";
1034 version = "0.15.1";
1035 minimalOCamlVersion = "4.08.0";
1036 hash = "sha256-NYknZHyDklr71hihM2pPFQ7uAKkuKO2DJkjtsF+xc5g=";
1037 meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
1038 propagatedBuildInputs = [
1039 ppxlib
1040 sexplib0
1041 base
1042 ];
1043 };
1044
1045 ppx_sexp_message = janePackage {
1046 pname = "ppx_sexp_message";
1047 hash = "0a7hx50bkkc5n5msc3zzc4ixnp7674x3mallknb9j31jnd8l90nj";
1048 minimalOCamlVersion = "4.04.2";
1049 meta.description = "A ppx rewriter for easy construction of s-expressions";
1050 propagatedBuildInputs = [
1051 ppx_here
1052 ppx_sexp_conv
1053 ];
1054 };
1055
1056 ppx_sexp_value = janePackage {
1057 pname = "ppx_sexp_value";
1058 hash = "0kz83j9v6yz3v8c6vr9ilhkcci4hhjd6i6r6afnx72jh6i7d3hnv";
1059 minimalOCamlVersion = "4.04.2";
1060 meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
1061 propagatedBuildInputs = [
1062 ppx_here
1063 ppx_sexp_conv
1064 ];
1065 };
1066
1067 ppx_stable = janePackage {
1068 pname = "ppx_stable";
1069 hash = "1as0v0x8c9ilyhngax55lvwyyi4a2wshyan668v0f2s1608cwb1l";
1070 minimalOCamlVersion = "4.04.2";
1071 meta.description = "Stable types conversions generator";
1072 propagatedBuildInputs = [ ppxlib ];
1073 };
1074
1075 ppx_string = janePackage {
1076 pname = "ppx_string";
1077 minimalOCamlVersion = "4.04.2";
1078 hash = "1dp5frk6cig5m3m5rrh2alw63snyf845x7zlkkaljip02pqcbw1s";
1079 meta.description = "Ppx extension for string interpolation";
1080 propagatedBuildInputs = [
1081 ppx_base
1082 ppxlib
1083 stdio
1084 ];
1085 };
1086
1087 ppx_typed_fields = janePackage {
1088 pname = "ppx_typed_fields";
1089 hash = "0hxililjgy4jh66b4xmphrfhv6qpp7dz7xbz3islp357hf18niqy";
1090 meta.description = "GADT-based field accessors and utilities";
1091 propagatedBuildInputs = [
1092 core
1093 ppx_jane
1094 ppxlib
1095 ];
1096 };
1097
1098 ppx_typerep_conv = janePackage {
1099 pname = "ppx_typerep_conv";
1100 minimalOCamlVersion = "4.04.2";
1101 hash = "1q1lzykpm83ra4l5jh4rfddhd3c96kx4s4rvx0w4b51z1qk56zam";
1102 meta.description = "Generation of runtime types from type declarations";
1103 propagatedBuildInputs = [
1104 ppxlib
1105 typerep
1106 ];
1107 };
1108
1109 ppx_variants_conv = janePackage {
1110 pname = "ppx_variants_conv";
1111 minimalOCamlVersion = "4.04.2";
1112 hash = "1dh0bw9dn246k00pymf59yjkl6x6bxd76lkk9b5xpq2692wwlc3s";
1113 meta.description = "Generation of accessor and iteration functions for ocaml variant types";
1114 propagatedBuildInputs = [
1115 variantslib
1116 ppxlib
1117 ];
1118 };
1119
1120 profunctor = janePackage {
1121 pname = "profunctor";
1122 hash = "151vk0cagjwn0isnnwryn6gmvnpds4dyj1in9jvv5is8yij203gg";
1123 meta.description = "A library providing a signature for simple profunctors and traversal of a record";
1124 propagatedBuildInputs = [
1125 base
1126 ppx_jane
1127 record_builder
1128 ];
1129 };
1130
1131 protocol_version_header = janePackage {
1132 pname = "protocol_version_header";
1133 hash = "0s638cwf1357gg754rc4306654hhrhzqaqm2lp3yv5vj3ml8p4qy";
1134 meta.description = "Protocol versioning";
1135 propagatedBuildInputs = [ core_kernel ];
1136 };
1137
1138 pythonlib = janePackage {
1139 pname = "pythonlib";
1140 version = "0.15.1";
1141 hash = "sha256-j8WXVTEiBmHtoTjkbnIh31vC4IghfAMaEL19nDLx3mc=";
1142 meta.description = "A library to help writing wrappers around ocaml code for python";
1143 buildInputs = [ ppx_optcomp ];
1144 propagatedBuildInputs = [
1145 ppx_expect
1146 ppx_let
1147 ppx_python
1148 stdio
1149 typerep
1150 ];
1151 };
1152
1153 re2 = janePackage {
1154 pname = "re2";
1155 hash = "0z1cajd8abrryf3gz322jpynba79nv4a2kmmcdz0314ran5w68v3";
1156 meta.description = "OCaml bindings for RE2, Google's regular expression library";
1157 propagatedBuildInputs = [ core_kernel ];
1158 prePatch = ''
1159 substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
1160 substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
1161 '';
1162 };
1163
1164 re2_stable = janePackage {
1165 pname = "re2_stable";
1166 version = "0.14.0";
1167 hash = "0kjc0ff6b3509s3b9n4q8ilb06d5fngdh3z58cm95vg7zkcas9w3";
1168 meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
1169 propagatedBuildInputs = [
1170 core
1171 re2
1172 ];
1173 };
1174
1175 record_builder = janePackage {
1176 pname = "record_builder";
1177 hash = "004nqcmwll0vy47mb3d3jlk21cc6adcjy62dkv2k966n9jkh472h";
1178 meta.description = "A library which provides traversal of records with an applicative";
1179 propagatedBuildInputs = [
1180 base
1181 ppx_jane
1182 ];
1183 };
1184
1185 redis-async = janePackage {
1186 pname = "redis-async";
1187 hash = "0pccf4gkm880yyk8x4kgy5rwblkbscxav2sbis13abpms9vr7jfn";
1188 meta.description = "Redis client for Async applications";
1189 propagatedBuildInputs = [
1190 async
1191 bignum
1192 core
1193 core_kernel
1194 ppx_jane
1195 ];
1196 };
1197
1198 resource_cache = janePackage {
1199 pname = "resource_cache";
1200 hash = "13wzx8ixgbb7jj5yrps890irw2wvkchnihsn7rfrcvnvrjzzjshm";
1201 meta.description = "General resource cache";
1202 propagatedBuildInputs = [ async_rpc_kernel ];
1203 };
1204
1205 sexp = janePackage {
1206 pname = "sexp";
1207 hash = "00xlsymm1mpgs8cqkb6c36vh5hfw0saghvwiqh7jry65qc5nvv9z";
1208 propagatedBuildInputs = [
1209 async
1210 core
1211 csvfields
1212 jsonaf
1213 re2
1214 sexp_diff
1215 sexp_macro
1216 sexp_pretty
1217 sexp_select
1218 ];
1219 meta.description = "S-expression swiss knife";
1220 meta.broken = true; # Does not build with GCC 14
1221 };
1222
1223 sexp_diff = janePackage {
1224 pname = "sexp_diff";
1225 hash = "1p5xwhj634ij4a0m5k6a3abddi5315y7is1a6ha1lifdz3v985ll";
1226 propagatedBuildInputs = [ core_kernel ];
1227 meta.description = "Code for computing the diff of two sexps";
1228 };
1229
1230 sexp_macro = janePackage {
1231 pname = "sexp_macro";
1232 hash = "1l5dsv9gawmf5dg3rf8sxphp9qs3n4n038nlmf9rxzypzyn112k8";
1233 propagatedBuildInputs = [
1234 async
1235 sexplib
1236 ];
1237 meta.description = "Sexp macros";
1238 };
1239
1240 sexp_pretty = janePackage {
1241 pname = "sexp_pretty";
1242 version = "0.15.1";
1243 hash = "sha256-UJEO2P4C7ZaD110MEfkG4FXfGDVAAW2TAK489faV6SM=";
1244 minimalOCamlVersion = "4.07";
1245 meta.description = "S-expression pretty-printer";
1246 propagatedBuildInputs = [
1247 ppx_base
1248 re
1249 sexplib
1250 ];
1251 };
1252
1253 sexp_select = janePackage {
1254 pname = "sexp_select";
1255 hash = "0mmvga9w3gbb2gd1h4l8f1c3l2lrpn1zld2a8xgqyfqfff3vg31p";
1256 minimalOCamlVersion = "4.07";
1257 propagatedBuildInputs = [
1258 base
1259 ppx_jane
1260 ];
1261 meta.description = "A library to use CSS-style selectors to traverse sexp trees";
1262 };
1263
1264 sexplib0 = janePackage {
1265 pname = "sexplib0";
1266 version = "0.15.1";
1267 hash = "sha256-6K0yrCbVFcUalN4cQuDI1TvWvNDjfXXRDhJKUskbqRY=";
1268 minimalOCamlVersion = "4.04.2";
1269 meta.description = "Library containing the definition of S-expressions and some base converters";
1270 };
1271
1272 sexplib = janePackage {
1273 pname = "sexplib";
1274 version = "0.15.1";
1275 hash = "sha256-LkGNnp717LMHeWe1Ka6qUZcpw8fKSsd5MusaLgFjm70=";
1276 minimalOCamlVersion = "4.04.2";
1277 meta.description = "Library for serializing OCaml values to and from S-expressions";
1278 propagatedBuildInputs = [
1279 num
1280 parsexp
1281 ];
1282 };
1283
1284 shell = janePackage {
1285 pname = "shell";
1286 hash = "1vzdif7w9y1kw2qynlfixwphdgiflrf43j0fzinjp9f56vlhghhy";
1287 meta.description = "Yet another implementation of fork&exec and related functionality";
1288 buildInputs = [ jst-config ];
1289 propagatedBuildInputs = [ textutils ];
1290 checkInputs = [ ounit ];
1291 doCheck = false; # Does not build with GCC 14
1292 };
1293
1294 shexp = janePackage {
1295 pname = "shexp";
1296 hash = "05iswnhi92f4yvrh76j3254bvls6fbrdb56mv6vc6mi5f8z4l79i";
1297 minimalOCamlVersion = "4.07";
1298 propagatedBuildInputs = [
1299 posixat
1300 spawn
1301 ];
1302 meta.description = "Process library and s-expression based shell";
1303 };
1304
1305 spawn = janePackage {
1306 pname = "spawn";
1307 minimalOCamlVersion = "4.02.3";
1308 hash = "1fjr91psas5zmk1hxvxh0dchhn0pkyzlr4gg232f5g9vdgissi0p";
1309 meta.description = "Spawning sub-processes";
1310 buildInputs = [ ppx_expect ];
1311 };
1312
1313 splay_tree = janePackage {
1314 pname = "splay_tree";
1315 hash = "1jxfh7f2hjrms5pm2cy1cf6ivphgiqqvyyr9hdcz8d3vi612p4dm";
1316 meta.description = "A splay tree implementation";
1317 propagatedBuildInputs = [ core_kernel ];
1318 };
1319
1320 splittable_random = janePackage {
1321 pname = "splittable_random";
1322 hash = "0ap5z4z1aagz4z02q9642cbl25jzws9lbc2x5xkpyjlc0qcm9v3m";
1323 meta.description = "PRNG that can be split into independent streams";
1324 propagatedBuildInputs = [
1325 base
1326 ppx_assert
1327 ppx_bench
1328 ppx_sexp_message
1329 ];
1330 };
1331
1332 stdio = janePackage {
1333 pname = "stdio";
1334 hash = "0g00b00kpjcadikq2asng35w7kvd24q9ldkiylwmn3gv3lrbipa8";
1335 minimalOCamlVersion = "4.04.2";
1336 meta.description = "Standard IO library for OCaml";
1337 propagatedBuildInputs = [ base ];
1338 };
1339
1340 textutils = janePackage {
1341 pname = "textutils";
1342 hash = "1wass49h645wql9b7nck2iqlkf4648dkxvlvxixr7z80zcnb5rxr";
1343 meta.description = "Text output utilities";
1344 propagatedBuildInputs = [
1345 core_unix
1346 textutils_kernel
1347 ];
1348 };
1349
1350 textutils_kernel = janePackage {
1351 pname = "textutils_kernel";
1352 hash = "068g11d98wsb5a6ds0p5xybdmx5nx9bxa0k11dmh3l57kn4c169x";
1353 meta.description = "Text output utilities";
1354 propagatedBuildInputs = [
1355 core
1356 ppx_jane
1357 uutf
1358 ];
1359 };
1360
1361 time_now = janePackage {
1362 pname = "time_now";
1363 hash = "1pa0hyh470j9jylii4983qagb6hq2dz6s0q2fnrcph9qbw83bc0c";
1364 minimalOCamlVersion = "4.04.2";
1365 meta.description = "Reports the current time";
1366 buildInputs = [
1367 jst-config
1368 ppx_optcomp
1369 ];
1370 propagatedBuildInputs = [
1371 jane-street-headers
1372 base
1373 ppx_base
1374 ];
1375 };
1376
1377 timezone = janePackage {
1378 pname = "timezone";
1379 hash = "00a007aji5rbz42kgbq1w90py6fm9k9akycs5abkcfll5rd0cbhx";
1380 meta.description = "Time-zone handling";
1381 propagatedBuildInputs = [ core_kernel ];
1382 };
1383
1384 topological_sort = janePackage {
1385 pname = "topological_sort";
1386 hash = "0iqhp8n6g5n1ng80brjpav54229lykm2c1fc104s58lk3rqfvj9v";
1387 meta.description = "Topological sort algorithm";
1388 propagatedBuildInputs = [
1389 ppx_jane
1390 stdio
1391 ];
1392 };
1393
1394 typerep = janePackage {
1395 pname = "typerep";
1396 hash = "1qxfi01qim0hrgd6d0bgvpxg36i99mmm8cw4wqpr9kxyqvgzv26z";
1397 minimalOCamlVersion = "4.04.2";
1398 meta.description = "Typerep is a library for runtime types";
1399 propagatedBuildInputs = [ base ];
1400 };
1401
1402 variantslib = janePackage {
1403 pname = "variantslib";
1404 hash = "033ns8ph6bd8g5cdfryjfcnrnzkdshppjyw5kl7cvszjfrz33ij7";
1405 minimalOCamlVersion = "4.04.2";
1406 meta.description = "Part of Jane Street's Core library";
1407 propagatedBuildInputs = [ base ];
1408 };
1409
1410 vcaml = janePackage {
1411 pname = "vcaml";
1412 hash = "12fd29x9dgf4f14xrx7z4y1bm1wbfynrs3jismjbiqnckfpbqrib";
1413 meta.description = "OCaml bindings for the Neovim API";
1414 propagatedBuildInputs = [
1415 angstrom-async
1416 async_extra
1417 expect_test_helpers_async
1418 faraday
1419 ];
1420 };
1421
1422 virtual_dom = janePackage {
1423 pname = "virtual_dom";
1424 version = "0.15.1";
1425 hash = "sha256-Uv6ZDxz2/H0nHjiycUKNQwy/zZyHHmwDEHknFHwDuDs=";
1426 meta.description = "OCaml bindings for the virtual-dom library";
1427 buildInputs = [ js_of_ocaml-ppx ];
1428 propagatedBuildInputs = [
1429 core_kernel
1430 gen_js_api
1431 js_of_ocaml
1432 lambdasoup
1433 tyxml
1434 ];
1435 };
1436
1437 zarith_stubs_js = janePackage {
1438 pname = "zarith_stubs_js";
1439 hash = "119xgr3kla9q1bvs4a5z2ivbmsrz4db3a9z0gf77ryqg4i22ywvl";
1440 minimalOCamlVersion = "4.04.2";
1441 meta.description = "Javascripts stubs for the Zarith library";
1442 };
1443
1444 zstandard = janePackage {
1445 pname = "zstandard";
1446 hash = "1blkv35g5q1drkc6zmc4m027gjz6vfdadra1kw1xkp1wlc2l4v3k";
1447 meta.description = "OCaml bindings to Zstandard";
1448 buildInputs = [ ppx_jane ];
1449 propagatedBuildInputs = [
1450 core_kernel
1451 ctypes
1452 zstd
1453 ];
1454 };
1455
1456}