WHBCEBCDWG6ZK57VRW2IPOVRR4AYOMNPAAVKAFXGRT7QEVQUBJ4AC VR6XFOE7TKQQYWIE26QTRB2XWYCZTNBWZ32SB43M2JVOW6EN5KJQC LILEG6KRUBQN7AIFHDK5N3X4JPBOLK2ATIO5JGRU3AEG5CCIWBNAC FEHWT3MOW3STJXNBQWXSY6ZDSJIJWVU6EWCXA6KARH7DCYFNM5NQC AW3IHN2SW4JYIT4Y26Q45BLD5RFJ3POVSTECR4GQ3ZQVB463EZVQC P35HCXDOT4NKKPTM6OMKEVKBLB3VLEODS7LNKRG7777RLOFDGU2AC G4U6J7TOHDXUL6ECIGJUSTQPURB54PC4VIAW2UGXDJPPFQLR64LQC SM5TELBWYEM67PHIK2RSGJ3E4TCUT2XLVEZIJGM2GEI45RHSBH6AC HMJFS6WWD2JJZB57HBXRHYS2A2N25YDDAJ443KRMT6K3ALHIBRVQC LB4HIYWKTVYQPH77VAQCFOXNO7JD72SMXTK2U6G7UC2MDQM6VHPAC WWOXTYSKCYOBP6H7OQNLZJ22O6WVWCHQNJTHBRQ3ZEJH2KSQF3UAC ITQF7AQWZNN733JQHK3PHYDWDGM4JJZVFBLB7F7XPS56PMHCKTMQC MGOB3WXKVDFPE5PPKWC4EEST2CR4NQ7B2FASVYHO5JNNGXC5NNPAC AYSPIRRQNBESKXOVILHY4QEIZA37AOFFT5KY75GKZJIPUXD62UIQC B22T6OTOYMTCUQJGC4DVNB2FNKIYQHLU3I7H2OBWTNLX5WT2Y5RQC {"build": [["bash","-c","#{os == 'windows' ? 'patch -p1 < findlib-1.8.1.patch' : 'true'}"],["./configure","-bindir","#{self.bin}","-sitelib","#{self.lib}","-mandir","#{self.man}","-config","#{self.lib}/findlib.conf","-no-custom","-no-topfind"],["make","all"],["make","opt"]],"install": [["make","install"],["install","-m","0755","ocaml-stub","#{self.bin}/ocaml"],["mkdir","-p","#{self.toplevel}"],["install","-m","0644","src/findlib/topfind","#{self.toplevel}/topfind"]],"exportedEnv": {"OCAML_TOPLEVEL_PATH": {"val": "#{self.toplevel}","scope": "global"}}}
--- ./Makefile+++ ./Makefile@@ -57,16 +57,16 @@cat findlib.conf.in | \$(SH) tools/patch '@SITELIB@' '$(OCAML_SITELIB)' >findlib.confif ./tools/cmd_from_same_dir ocamlc; then \- echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \+ echo 'ocamlc="ocamlc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fiif ./tools/cmd_from_same_dir ocamlopt; then \- echo 'ocamlopt="ocamlopt.opt"' >>findlib.conf; \+ echo 'ocamlopt="ocamlopt.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fiif ./tools/cmd_from_same_dir ocamldep; then \- echo 'ocamldep="ocamldep.opt"' >>findlib.conf; \+ echo 'ocamldep="ocamldep.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fiif ./tools/cmd_from_same_dir ocamldoc; then \- echo 'ocamldoc="ocamldoc.opt"' >>findlib.conf; \+ echo 'ocamldoc="ocamldoc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fi.PHONY: install-doc--- ./src/findlib/findlib_config.mlp+++ ./src/findlib/findlib_config.mlp@@ -24,3 +24,5 @@| "MacOS" -> "" (* don't know *)| _ -> failwith "Unknown Sys.os_type";;++let exec_suffix = "@EXEC_SUFFIX@";;--- ./src/findlib/findlib.ml+++ ./src/findlib/findlib.ml@@ -28,15 +28,20 @@let conf_ldconf = ref "";;let conf_ignore_dups_in = ref ([] : string list);;-let ocamlc_default = "ocamlc";;-let ocamlopt_default = "ocamlopt";;-let ocamlcp_default = "ocamlcp";;-let ocamloptp_default = "ocamloptp";;-let ocamlmklib_default = "ocamlmklib";;-let ocamlmktop_default = "ocamlmktop";;-let ocamldep_default = "ocamldep";;-let ocamlbrowser_default = "ocamlbrowser";;-let ocamldoc_default = "ocamldoc";;+let add_exec str =+ match Findlib_config.exec_suffix with+ | "" -> str+ | a -> str ^ a ;;+let ocamlc_default = add_exec "ocamlc";;+let ocamlopt_default = add_exec "ocamlopt";;+let ocamlcp_default = add_exec "ocamlcp";;+let ocamloptp_default = add_exec "ocamloptp";;+let ocamlmklib_default = add_exec "ocamlmklib";;+let ocamlmktop_default = add_exec "ocamlmktop";;+let ocamldep_default = add_exec "ocamldep";;+let ocamlbrowser_default = add_exec "ocamlbrowser";;+let ocamldoc_default = add_exec "ocamldoc";;+let init_manually--- ./src/findlib/fl_package_base.ml+++ ./src/findlib/fl_package_base.ml@@ -133,7 +133,15 @@List.find (fun def -> def.def_var = "exists_if") p.package_defs inlet files = Fl_split.in_words def.def_value inList.exists- (fun file -> Sys.file_exists (Filename.concat d' file))+ (fun file ->+ let fln = Filename.concat d' file in+ let e = Sys.file_exists fln in+ (* necessary for ppx executables *)+ if e || Sys.os_type <> "Win32" || Filename.check_suffix fln ".exe" then+ e+ else+ Sys.file_exists (fln ^ ".exe")+ )fileswith Not_found -> true in--- ./src/findlib/fl_split.ml+++ ./src/findlib/fl_split.ml@@ -126,10 +126,17 @@| '/' | '\\' -> true| _ -> false inlet norm_dir_win() =- if l >= 1 && s.[0] = '/' then- Buffer.add_char b '\\' else Buffer.add_char b s.[0];- if l >= 2 && s.[1] = '/' then- Buffer.add_char b '\\' else Buffer.add_char b s.[1];+ if l >= 1 then (+ if s.[0] = '/' then+ Buffer.add_char b '\\'+ else+ Buffer.add_char b s.[0] ;+ if l >= 2 then+ if s.[1] = '/' then+ Buffer.add_char b '\\'+ else+ Buffer.add_char b s.[1];+ );for k = 2 to l - 1 dolet c = s.[k] inif is_slash c then (--- ./src/findlib/frontend.ml+++ ./src/findlib/frontend.ml@@ -31,10 +31,18 @@elseSys_error (arg ^ ": " ^ Unix.error_message code)+let is_win = Sys.os_type = "Win32"++let () =+ match Findlib_config.system with+ | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" ->+ (try set_binary_mode_out stdout true with _ -> ());+ (try set_binary_mode_out stderr true with _ -> ());+ | _ -> ()let slashify s =match Findlib_config.system with- | "mingw" | "mingw64" | "cygwin" ->+ | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" ->let b = Buffer.create 80 inString.iter(function@@ -49,7 +57,7 @@let out_path ?(prefix="") s =match Findlib_config.system with- | "mingw" | "mingw64" | "cygwin" ->+ | "win32" | "win64" | "mingw" | "mingw64" | "cygwin" ->let u = slashify s inprefix ^(if String.contains u ' ' then@@ -273,11 +281,9 @@let identify_dir d =- match Sys.os_type with- | "Win32" ->- failwith "identify_dir" (* not available *)- | _ ->- let s = Unix.stat d in+ if is_win then+ failwith "identify_dir"; (* not available *)+ let s = Unix.stat d in(s.Unix.st_dev, s.Unix.st_ino);;@@ -459,6 +465,96 @@)packages+let rewrite_cmd s =+ if s = "" || not is_win then+ s+ else+ let s =+ let l = String.length s in+ let b = Buffer.create l in+ for i = 0 to pred l do+ match s.[i] with+ | '/' -> Buffer.add_char b '\\'+ | x -> Buffer.add_char b x+ done;+ Buffer.contents b+ in+ if (Filename.is_implicit s && String.contains s '\\' = false) ||+ Filename.check_suffix (String.lowercase s) ".exe" then+ s+ else+ let s' = s ^ ".exe" in+ if Sys.file_exists s' then+ s'+ else+ s++let rewrite_cmd s =+ if s = "" || not is_win then s else+ let s =+ let l = String.length s in+ let b = Buffer.create l in+ for i = 0 to pred l do+ match s.[i] with+ | '/' -> Buffer.add_char b '\\'+ | x -> Buffer.add_char b x+ done;+ Buffer.contents b+ in+ if (Filename.is_implicit s && String.contains s '\\' = false) ||+ Filename.check_suffix (String.lowercase s) ".exe" then+ s+ else+ let s' = s ^ ".exe" in+ if Sys.file_exists s' then+ s'+ else+ s++let rewrite_pp cmd =+ if not is_win then cmd else+ let module T = struct exception Keep end in+ let is_whitespace = function+ | ' ' | '\011' | '\012' | '\n' | '\r' | '\t' -> true+ | _ -> false in+ (* characters that triggers special behaviour (cmd.exe, not unix shell) *)+ let is_unsafe_char = function+ | '(' | ')' | '%' | '!' | '^' | '<' | '>' | '&' -> true+ | _ -> false in+ let len = String.length cmd in+ let buf = Buffer.create (len + 4) in+ let buf_cmd = Buffer.create len in+ let rec iter_ws i =+ if i >= len then () else+ let cur = cmd.[i] in+ if is_whitespace cur then (+ Buffer.add_char buf cur;+ iter_ws (succ i)+ )+ else+ iter_cmd i+ and iter_cmd i =+ if i >= len then add_buf_cmd () else+ let cur = cmd.[i] in+ if is_unsafe_char cur || cur = '"' || cur = '\'' then+ raise T.Keep;+ if is_whitespace cur then (+ add_buf_cmd ();+ Buffer.add_substring buf cmd i (len - i)+ )+ else (+ Buffer.add_char buf_cmd cur;+ iter_cmd (succ i)+ )+ and add_buf_cmd () =+ if Buffer.length buf_cmd > 0 then+ Buffer.add_string buf (rewrite_cmd (Buffer.contents buf_cmd))+ in+ try+ iter_ws 0;+ Buffer.contents buf+ with+ | T.Keep -> cmdlet process_pp_spec syntax_preds packages pp_opts =(* Returns: pp_command *)@@ -549,7 +645,7 @@None -> []| Some cmd ->["-pp";- cmd ^ " " ^+ (rewrite_cmd cmd) ^ " " ^String.concat " " (List.map Filename.quote pp_i_options) ^ " " ^String.concat " " (List.map Filename.quote pp_archives) ^ " " ^String.concat " " (List.map Filename.quote pp_opts)]@@ -625,9 +721,11 @@intrylet preprocessor =+ rewrite_cmd (resolve_path~base ~explicit:true- (package_property predicates pname "ppx") in+ (package_property predicates pname "ppx") )+ in["-ppx"; String.concat " " (preprocessor :: options)]with Not_found -> [])@@ -895,6 +993,14 @@switch (e.g. -L<path> instead of -L <path>)*)+(* We may need to remove files on which we do not have complete control.+ On Windows, removing a read-only file fails so try to change the+ mode of the file first. *)+let remove_file fname =+ try Sys.remove fname+ with Sys_error _ when is_win ->+ (try Unix.chmod fname 0o666 with Unix.Unix_error _ -> ());+ Sys.remove fnamelet ocamlc which () =@@ -1022,9 +1128,12 @@"-intf",Arg.String (fun s -> pass_files := !pass_files @ [ Intf(slashify s) ]);-+"-pp",- Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" s);+ Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" (rewrite_pp s));++ "-ppx",+ Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s));"-thread",Arg.Unit (fun _ -> threads := threads_default);@@ -1237,7 +1346,7 @@withany ->close_out initl;- Sys.remove initl_file_name;+ remove_file initl_file_name;raise anyend;@@ -1245,9 +1354,9 @@at_exit(fun () ->let tr f x = try f x with _ -> () in- tr Sys.remove initl_file_name;- tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmi");- tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmo");+ tr remove_file initl_file_name;+ tr remove_file (Filename.chop_extension initl_file_name ^ ".cmi");+ tr remove_file (Filename.chop_extension initl_file_name ^ ".cmo"););let exclude_list = [ stdlibdir; threads_dir; vmthreads_dir ] in@@ -1493,7 +1602,9 @@[ "-v", Arg.Unit (fun () -> verbose := Verbose);"-pp", Arg.String (fun s ->pp_specified := true;- options := !options @ ["-pp"; s]);+ options := !options @ ["-pp"; rewrite_pp s]);+ "-ppx", Arg.String (fun s ->+ options := !options @ ["-ppx"; rewrite_pp s]);]))@@ -1672,7 +1783,9 @@Arg.String (fun s -> add_spec_fn "-I" (slashify (resolve_path s)));"-pp", Arg.String (fun s -> pp_specified := true;- add_spec_fn "-pp" s);+ add_spec_fn "-pp" (rewrite_pp s));+ "-ppx", Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s));+]))@@ -1830,7 +1943,10 @@output_string ch_out append;close_out ch_out;close_in ch_in;- Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime;+ (try Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime+ with Unix.Unix_error(e,_,_) ->+ prerr_endline("Warning: setting utimes for " ^ outpath+ ^ ": " ^ Unix.error_message e));prerr_endline("Installed " ^ outpath);with@@ -1882,6 +1998,8 @@Unix.openfile (Filename.concat dir owner_file) [Unix.O_RDONLY] 0 inlet f =Unix.in_channel_of_descr fd in+ if is_win then+ set_binary_mode_in f false;trylet line = input_line f inlet is_my_file = (line = pkg) in@@ -2208,7 +2326,7 @@let lines = read_ldconf !ldconf inlet dlldir_norm = Fl_split.norm_dir dlldir inlet dlldir_norm_lc = string_lowercase_ascii dlldir_norm in- let ci_filesys = (Sys.os_type = "Win32") in+ let ci_filesys = is_win inlet check_dir d =let d' = Fl_split.norm_dir d in(d' = dlldir_norm) ||@@ -2356,7 +2474,7 @@List.iter(fun file ->let absfile = Filename.concat dlldir file in- Sys.remove absfile;+ remove_file absfile;prerr_endline ("Removed " ^ absfile))dll_files@@ -2365,7 +2483,7 @@(* Remove the files from the package directory: *)if Sys.file_exists pkgdir then beginlet files = Sys.readdir pkgdir in- Array.iter (fun f -> Sys.remove (Filename.concat pkgdir f)) files;+ Array.iter (fun f -> remove_file (Filename.concat pkgdir f)) files;Unix.rmdir pkgdir;prerr_endline ("Removed " ^ pkgdir)end@@ -2415,7 +2533,9 @@let print_configuration() =+ let sl = slashify inlet dir s =+ let s = sl s inif Sys.file_exists s thenselse@@ -2453,27 +2573,27 @@if md = "" then "the corresponding package directories" else dir md);Printf.printf "The standard library is assumed to reside in:\n %s\n"- (Findlib.ocaml_stdlib());+ (sl (Findlib.ocaml_stdlib()));Printf.printf "The ld.conf file can be found here:\n %s\n"- (Findlib.ocaml_ldconf());+ (sl (Findlib.ocaml_ldconf()));flush stdout| Some "conf" ->- print_endline (Findlib.config_file())+ print_endline (sl (Findlib.config_file()))| Some "path" ->- List.iter print_endline (Findlib.search_path())+ List.iter ( fun x -> print_endline (sl x)) (Findlib.search_path())| Some "destdir" ->- print_endline (Findlib.default_location())+ print_endline ( sl (Findlib.default_location()))| Some "metadir" ->- print_endline (Findlib.meta_directory())+ print_endline ( sl (Findlib.meta_directory()))| Some "metapath" ->let mdir = Findlib.meta_directory() inlet ddir = Findlib.default_location() in- print_endline- (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META")+ print_endline ( sl+ (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META"))| Some "stdlib" ->- print_endline (Findlib.ocaml_stdlib())+ print_endline ( sl (Findlib.ocaml_stdlib()))| Some "ldconf" ->- print_endline (Findlib.ocaml_ldconf())+ print_endline ( sl (Findlib.ocaml_ldconf()))| _ ->assert false;;@@ -2481,7 +2601,7 @@let ocamlcall pkg cmd =let dir = package_directory pkg in- let path = Filename.concat dir cmd in+ let path = rewrite_cmd (Filename.concat dir cmd) inbegintry Unix.access path [ Unix.X_OK ]with@@ -2647,6 +2767,10 @@| Sys_error f ->prerr_endline ("ocamlfind: " ^ f);exit 2+ | Unix.Unix_error (e, fn, f) ->+ prerr_endline ("ocamlfind: " ^ fn ^ " " ^ f+ ^ ": " ^ Unix.error_message e);+ exit 2| Findlib.No_such_package(pkg,info) ->prerr_endline ("ocamlfind: Package `" ^ pkg ^ "' not found" ^(if info <> "" then " - " ^ info else ""));--- ./src/findlib/Makefile+++ ./src/findlib/Makefile@@ -90,6 +90,7 @@cat findlib_config.mlp | \$(SH) $(TOP)/tools/patch '@CONFIGFILE@' '$(OCAMLFIND_CONF)' | \$(SH) $(TOP)/tools/patch '@STDLIB@' '$(OCAML_CORE_STDLIB)' | \+ $(SH) $(TOP)/tools/patch '@EXEC_SUFFIX@' '$(EXEC_SUFFIX)' | \sed -e 's;@AUTOLINK@;$(OCAML_AUTOLINK);g' \-e 's;@SYSTEM@;$(SYSTEM);g' \>findlib_config.ml
--- ./myocamlbuild.ml+++ ./myocamlbuild.ml@@ -22,6 +22,11 @@inrule "js_of_ocaml: .byte -> .js" ~dep ~prod f+let lib s =+ match !Ocamlbuild_plugin.Options.ext_lib with+ | "" -> s ^ ".a"+ | x -> s ^ "." ^ x+let () =dispatch begin function| After_rules ->@@ -33,10 +38,10 @@(* mtime-clock-os *)- dep ["record_mtime_clock_os_stubs"] ["src-os/libmtime_clock_stubs.a"];+ dep ["record_mtime_clock_os_stubs"] [lib "src-os/libmtime_clock_stubs"];flag_and_dep["link"; "ocaml"; "link_mtime_clock_os_stubs"]- (P "src-os/libmtime_clock_stubs.a");+ (P (lib "src-os/libmtime_clock_stubs"));flag ["library"; "ocaml"; "byte"; "record_mtime_clock_os_stubs"](S ([A "-dllib"; A "-lmtime_clock_stubs"] @ system_support_lib));flag ["library"; "ocaml"; (* byte and native *)Nur in .: myocamlbuild.ml.orig.--- ./src-os/mtime_clock_stubs.c+++ ./src-os/mtime_clock_stubs.c@@ -26,6 +26,8 @@#if defined(_POSIX_VERSION)#define OCAML_MTIME_POSIX#endif+#elif defined(_WIN32)+#define OCAML_MTIME_WINDOWS#endif/* Darwin */@@ -123,6 +125,72 @@CAMLreturn (some);}+#elif defined(OCAML_MTIME_WINDOWS)+#define WIN32_LEAN_AND_MEAN+#include <windows.h>++static double performance_frequency;+static void set_performance_frequency(void)+{+ LARGE_INTEGER t_freq;+ if (!QueryPerformanceFrequency(&t_freq)) {+ OCAML_MTIME_RAISE_SYS_ERROR ("clock_gettime () failed");+ }+ performance_frequency = (1000000000.0 / t_freq.QuadPart);+}++CAMLprim value ocaml_mtime_clock_elapsed_ns (value unit)+{+ (void) unit;+ static LARGE_INTEGER start;+ if (performance_frequency == 0.0) {+ set_performance_frequency();+ }+ if ( start.QuadPart == 0 )+ {+ if (!QueryPerformanceCounter(&start)) {+ OCAML_MTIME_RAISE_SYS_ERROR ("clock_gettime () failed");+ }+ }+ static LARGE_INTEGER now;+ if ( !QueryPerformanceCounter(&now)) {+ OCAML_MTIME_RAISE_SYS_ERROR ("clock_gettime () failed");+ }+ uint64_t ret = (now.QuadPart - start.QuadPart) * performance_frequency;+ return caml_copy_int64(ret);+}++CAMLprim value ocaml_mtime_clock_now_ns (value unit)+{+ (void) unit;+ if (performance_frequency == 0.0) {+ set_performance_frequency();+ }+ static LARGE_INTEGER now;+ if ( !QueryPerformanceCounter(&now)) {+ OCAML_MTIME_RAISE_SYS_ERROR ("clock_gettime () failed");+ }+ uint64_t ret = now.QuadPart * performance_frequency;+ return caml_copy_int64(ret);+}++CAMLprim value ocaml_mtime_clock_period_ns (value unit)+{+ (void) unit;+ if (performance_frequency == 0.0) {+ set_performance_frequency();+ }+ if ( performance_frequency <= 0.0 ) {+ return Val_none;+ }+ value ret;+ value p = caml_copy_int64(performance_frequency);+ Begin_roots1(p);+ ret = caml_alloc_small(1,0);+ Field(ret,0) = p;+ End_roots();+ return ret;+}/* Unsupported */#else
{"build": ["#{os == 'windows' ? 'env CC=x86_64-w64-mingw32-gcc ': ''}./configure","make"],"install": ["make install"],"exportedEnv": {"CAML_LD_LIBRARY_PATH": {"val": "#{self.lib / 'zarith' : $CAML_LD_LIBRARY_PATH}","scope": "global"}},"dependencies": {"ocaml": "*","@opam/conf-gmp": "*"}}
From ea077c8ace1fc9f59afd915327f3b1d0de36fb8c Mon Sep 17 00:00:00 2001From: Manas Jayanth <3097018+ManasJayanth@users.noreply.github.com>Date: Fri, 28 Jan 2022 01:44:03 +0530Subject: [PATCH] Patch missing win32 implementation for gettimeofday---src/time_now_stubs.c | 32 +++++++++++++++++++++++++++++++-1 file changed, 31 insertions(+), 1 deletion(-)diff --git a/src/time_now_stubs.c b/src/time_now_stubs.cindex e08d72c..dce49f9 100644--- a/src/time_now_stubs.c+++ b/src/time_now_stubs.c@@ -5,7 +5,7 @@#define NANOS_PER_SECOND 1000000000-#if defined(JSC_POSIX_TIMERS)+#if defined(JSC_TIMESPEC)/* Note: this is imported noalloc if (and only if) ARCH_SIXTYFOUR is defined.* This is OK because caml_alloc_int63 doesn't actually allocate in that case. */@@ -21,9 +21,39 @@ CAMLprim value time_now_nanoseconds_since_unix_epoch_or_zero()#else+#if (defined(WIN32) || defined(_WIN32))+// Credit: https://stackoverflow.com/questions/10905892/equivalent-of-gettimeday-for-windows+#include <Windows.h>+#include <stdint.h> // portable: uint64_t MSVC: __int64++int gettimeofday(struct timeval * tp, struct timezone * tzp)+{+ // Note: some broken versions only have 8 trailing zero's, the correct epoch has 9 trailing zero's+ // This magic number is the number of 100 nanosecond intervals since January 1, 1601 (UTC)+ // until 00:00:00 January 1, 1970+ static const uint64_t EPOCH = ((uint64_t) 116444736000000000ULL);++ SYSTEMTIME system_time;+ FILETIME file_time;+ uint64_t time;++ GetSystemTime( &system_time );+ SystemTimeToFileTime( &system_time, &file_time );+ time = ((uint64_t)file_time.dwLowDateTime ) ;+ time += ((uint64_t)file_time.dwHighDateTime) << 32;++ tp->tv_sec = (long) ((time - EPOCH) / 10000000L);+ tp->tv_usec = (long) (system_time.wMilliseconds * 1000);+ return 0;+}++#else+#include <sys/types.h>#include <sys/time.h>+#endif+CAMLprim value time_now_nanoseconds_since_unix_epoch_or_zero(){struct timeval tp;--2.34.1.windows.1
{"build": [["bash","-c",],["make","-f","configure.make","all","OCAMLBUILD_PREFIX=#{self.install}","OCAMLBUILD_BINDIR=#{self.bin}","OCAMLBUILD_LIBDIR=#{self.lib}","OCAMLBUILD_MANDIR=#{self.man}","OCAMLBUILD_NATIVE=true",],["make","check-if-preinstalled","all",]]}"EXE=#{os == 'windows' ? '.exe': ''}","opam-install""OCAMLBUILD_NATIVE_TOOLS=true","EXE=#{os == 'windows' ? '.exe': ''}""#{os == 'windows' ? 'patch -p1 < winpatch.patch' : 'true'}"
--- ./Makefile+++ ./Makefile@@ -271,7 +271,7 @@echo ' "ocamlbuild.byte" {"ocamlbuild.byte"}' >> ocamlbuild.installifeq ($(OCAML_NATIVE), true)echo ' "ocamlbuild.native" {"ocamlbuild.native"}' >> ocamlbuild.install- echo ' "ocamlbuild.native" {"ocamlbuild"}' >> ocamlbuild.install+ echo " \"ocamlbuild.native\" {\"ocamlbuild${EXE}\"}" >> ocamlbuild.installelseecho ' "ocamlbuild.byte" {"ocamlbuild"}' >> ocamlbuild.installendif
{"buildsInSource": true,"build": [["make"]],"install": [["make","LIBDIR=#{self.install / 'lib'}","findlib-install"]],"exportedEnv": {"CAML_LD_LIBRARY_PATH": {"val": "#{self.install / 'lib' / 'num' : $CAML_LD_LIBRARY_PATH}","scope": "global"}},"dependencies": {"ocaml": "*","@opam/ocamlfind": "*"}}
diff --git a/src/Makefile b/src/Makefileindex 8ad0e2c..d41d63c 100644--- a/src/Makefile+++ b/src/Makefile@@ -1,16 +1,16 @@-OCAMLC=ocamlc-OCAMLOPT=ocamlopt-OCAMLDEP=ocamldep-OCAMLMKLIB=ocamlmklib-OCAMLFIND=ocamlfind+OCAMLC=$(shell which ocamlc)+OCAMLOPT=$(shell which ocamlopt)+OCAMLDEP=$(shell which ocamldep)+OCAMLMKLIB=$(shell which ocamlmklib)+OCAMLFIND=$(shell which ocamlfind)INSTALL_DATA=install -m 644INSTALL_DLL=installINSTALL_DIR=install -dSTDLIBDIR=$(shell $(OCAMLC) -where)DESTDIR ?=-include $(STDLIBDIR)/Makefile.config+include $(STDLIBDIR)/Makefile.configifeq "$(filter i386 amd64 arm64 power,$(ARCH))" ""# Unsupported architectureBNG_ARCH=generic@@ -86,14 +86,14 @@ endifVERSION=$(shell sed -ne 's/^ *version *: *"\([^"]*\)".*$$/\1/p' ../num.opam)install:- $(INSTALL_DIR) $(DESTDIR)$(STDLIBDIR)+ $(INSTALL_DIR) $(LIBDIR)sed -e 's/%%VERSION%%/$(VERSION)/g' META.in > META$(OCAMLFIND) install num METArm -f META- $(INSTALL_DATA) $(TOINSTALL) $(DESTDIR)$(STDLIBDIR)+ $(INSTALL_DATA) $(TOINSTALL) $(LIBDIR)ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true"- $(INSTALL_DIR) $(DESTDIR)$(STDLIBDIR)/stublibs- $(INSTALL_DLL) $(TOINSTALL_STUBS) $(DESTDIR)$(STDLIBDIR)/stublibs+ $(INSTALL_DIR) $(LIBDIR)/stublibs+ $(INSTALL_DLL) $(TOINSTALL_STUBS) $(LIBDIR)/stublibsendiffindlib-install:@@ -105,9 +105,9 @@ findlib-uninstall:$(OCAMLFIND) remove numuninstall: findlib-uninstall- cd $(DESTDIR)$(STDLIBDIR) && rm -f $(TOINSTALL)+ cd $(LIBDIR) && rm -f $(TOINSTALL)ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true"- cd $(DESTDIR)$(STDLIBDIR)/stublibs && rm -f $(TOINSTALL_STUBS)+ cd $(LIBDIR)/stublibs && rm -f $(TOINSTALL_STUBS)endifclean:
{"exportedEnv": {"CAML_LD_LIBRARY_PATH": {"val": "#{self.lib / 'ctypes' : $CAML_LD_LIBRARY_PATH}","scope": "global"}}}
{"build": [["#{os == 'windows' ? 'x86_64-w64-mingw32-gcc' : 'cc'}","-c","${CFLAGS:--g}","$CPPFLAGS","$LDFLAGS","test.c"]],"dependencies": {"esy-gmp": "esy-packages/esy-gmp#e27cb300adfb0c0b320c273082c5affafcd225fa"}}
#include <gmp.h>#include <stdlib.h>#include <stdio.h>int main() {mpz_t i, j, k;mpz_init_set_str (i, "1a", 16);mpz_init (j);mpz_init (k);mpz_sqrtrem (j, k, i);if (mpz_get_si (j) != 5 || mpz_get_si (k) != 1) abort();printf("%s\n", "Works as expected");return 0;}
{"name": "esy-gmp-test","description": "For manual testing only","version": "0.1.0","description": "GMP packaged for esy","license": "MIT","esy": {"buildsInSource": true,"build": ["#{os == 'windows' ? 'x86_64-w64-mingw32-gcc': 'gcc'} $CFLAGS -o testinggmp test.c $LDFLAGS"],"install": "cp testinggmp #{self.bin}"},"dependencies": {"gmp": "esy-packages/esy-gmp"}}
{"name": "esy-gmp","version": "6.2.0","description": "GMP packaged for esy","source": "https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz#0578d48607ec0e272177d175fd1807c30b00fdf2","override": {"buildsInSource": true,"build": ["find ./ -exec touch -t 200905010101 {} +","./configure --enable-fat --prefix=#{self.install} #{os == 'windows' ? '--host x86_64-w64-mingw32' : ''} --with-pic","make -j4"],"install": ["make install"],"exportedEnv": {"LDFLAGS": {"scope": "global","val": "-L#{self.lib} -lgmp"},"CPPFLAGS": {"scope": "global","val": "-I#{self.install / 'include'}"},"LD_LIBRARY_PATH": {"scope": "global","val": "#{self.lib}:$LD_LIBRARY_PATH"},"LIBRARY_PATH": {"scope": "global","val": "#{self.lib}:$LIBRARY_PATH"},"CPATH": {"scope": "global","val": "#{self.install / 'include'}:$CPATH"},"PKG_CONFIG_PATH": {"val": "#{self.lib / 'pkgconfig' : $PKG_CONFIG_PATH}","scope": "global"}}}}
{"source": "github:dsheets/ocaml-sodium:opam#1f064fa90cd02c44e2dcc0708d4ba3a256a9c1f2","override": {"build": [["make", "CFLAGS=\"-I$SODIUM_INCLUDE_PATH -L$SODIUM_LIB_PATH\"", "-j4"]],"install": "make PREFIX=$cur__install install","dependencies": {"@opam/conf-libsodium": "*"}}}
{"version": "1.0.18123","source": "https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz#795b73e3f92a362fabee238a71735579bf46bb97","override": {"buildsInSource": true,"build": [["./configure","--disable-debug","--disable-dependency-tracking","--prefix=$cur__install"],["make","-j4"]],"install": "make install","exportedEnv": {"PKG_CONFIG_PATH": {"val": "#{self.lib / 'pkgconfig' }:$PKG_CONFIG_PATH","scope": "global"},"SODIUM_INCLUDE_PATH": {"val": "#{self.install / 'include'}","scope": "global"},"SODIUM_LIB_PATH": {"val": "#{self.lib}","scope": "global"},"LD_LIBRARY_PATH": {"val": "#{self.lib : $LD_LIBRARY_PATH}","scope": "global"}}}}
opam-version: "2.0"maintainer: "Grégoire Henry <gregoire.henry@ocamlpro.com>"authors: ["Adam Langley""Alex Biryukov""Bo-Yin Yang""Christian Winnerlein""Colin Percival""Daniel Dinu""Daniel J. Bernstein""Dmitry Khovratovich""Jean-Philippe Aumasson""Niels Duif""Peter Schwabe""Samuel Neves""Tanja Lange""Zooko Wilcox-O'Hearn"]homepage: "https://download.libsodium.org/doc/"license: "ISC"build: [["pkg-config" "libsodium"]]depends: ["conf-pkg-config" {build}]depexts: [["libsodium-dev"] {os-family = "debian"}["security/libsodium"] {os = "freebsd"}["libsodium"] {os-distribution = "homebrew" & os = "macos"}["libsodium-dev"] {os-distribution = "alpine"}]synopsis: "Virtual package relying on a libsodium system installation"description:"This package can only install if the libsodium is installed on the system."bug-reports: "https://github.com/ocaml/opam-repository/issues"flags: conf
name: esyon: [push, pull_request]jobs:native:name: Build for Nativestrategy:matrix:system: [ubuntu, macos]runs-on: ${{ matrix.system }}-lateststeps:- name: Checkout codeuses: actions/checkout@v2- uses: actions/setup-node@v2-betawith:node-version: 14- name: Install esyrun: npm install -g esy- name: Create esy wrapperrun: |echo '{"name": "build-sodium","dependencies": {"@opam/conf-libsodium": "*","@opam/sodium": "*"},"resolutions": {"@opam/conf-libsodium": {"source": "./libsodium.opam","override": {"dependencies": {"esy-libsodium": "github:EduardoRFS/esy-libsodium#'"${GITHUB_SHA}"'"}}},"@opam/sodium": "github:EduardoRFS/ocaml-sodium:sodium.json#d3f147594c0bd374c88d07d0274230770c40cc7d"}}' > build.json- name: Generate esy lockrun: esy @build solve- uses: esy/github-action@masterwith:manifest: ./build.jsoncache-key: ${{ hashFiles('esy.lock/index.json') }}
opam-version: "2.0"maintainer: "martin@mjambon.com"authors: ["Martin Jambon"]homepage: "https://github.com/ocaml-community/yojson"bug-reports: "https://github.com/ocaml-community/yojson/issues"dev-repo: "git+https://github.com/ocaml-community/yojson.git"doc: "https://ocaml-community.github.io/yojson/"build: [["dune" "build" "-p" name "-j" jobs]]run-test: [["dune" "runtest" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.02.3"}"dune""cppo" {build}"easy-format""biniou" {>= "1.2.0"}"alcotest" {with-test & >= "0.8.5"}]synopsis:"Yojson is an optimized parsing and printing library for the JSON format"description: """Yojson is an optimized parsing and printing library for the JSON format.It addresses a few shortcomings of json-wheel including 2x speedup,polymorphic variants and optional syntax for tuples and variants.ydump is a pretty-printing command-line program provided with theyojson package.The program atdgen can be used to derive OCaml-JSON serializers anddeserializers from type definitions."""url {src:"https://github.com/ocaml-community/yojson/releases/download/1.7.0/yojson-1.7.0.tbz"checksum: "md5=b89d39ca3f8c532abe5f547ad3b8f84d"}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "anil@recoil.org"authors: ["Anil Madhavapeddy" "David Sheets" "Rudi Grinberg"]license: "ISC"tags: ["url" "uri" "org:mirage" "org:xapi-project"]homepage: "https://github.com/mirage/ocaml-uri"bug-reports: "https://github.com/mirage/ocaml-uri/issues"dev-repo: "git+https://github.com/mirage/ocaml-uri.git"doc: "https://mirage.github.io/ocaml-uri/"synopsis: "An RFC3986 URI/URL parsing library"description: """This is an OCaml implementation of the [RFC3986](http://tools.ietf.org/html/rfc3986) specificationfor parsing URI or URLs."""depends: ["ocaml" {>= "4.04.0"}"dune" {>= "1.2.0"}"ounit" {with-test & >= "1.0.2"}"ppx_sexp_conv" {with-test & >= "v0.9.0"}"stringext" {>= "1.4.0"}"angstrom" {>= "0.14.0"}]build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]x-commit-hash: "b4a8375d9352d29ff495d35fc309609fad74631a"url {src:"https://github.com/mirage/ocaml-uri/releases/download/v4.1.0/uri-v4.1.0.tbz"checksum: ["sha256=d269901cd27cffaadfa077fe761ef334ad4cdbebeb065faeb833824617ab2ce1""sha512=bf9eb9aa29ced3ae9d39cb3ca8772de118bfe67d8fe2280f213e627f0fef7e80c7703a0dbb7d16c3d23c427866ee6b09c0973e6836e9c3b7225f55597356537c"]}["dune" "subst"] {dev}
opam-version: "2.0"authors: [ "Julien Sagot" "Emmanuel Surleau" "mackwic" "Andrew Rudenko" "orbifx" "c-cube"]maintainer: "OCamlPro <contact@ocamlpro.com>"homepage: "https://ocaml-toml.github.io/To.ml/"synopsis: "TOML parser"description: """The toml library provides a parser and serializer for Tom's Obvious Minimal Language v0.4.0, a minimal configuration file format.Helpful getters to retrieve data as OCaml primitive types are also supplied"""build: [ "dune" "build" "-p" name "-j" jobs]depends: ["ocaml" {>= "4.02"}"dune" {>= "1.2"}"menhir" {build}"ounit" {with-test}"bisect" {with-test}"odoc" {with-doc}]bug-reports: "https://github.com/ocaml-toml/to.ml/issues"dev-repo: "git+ttps://github.com/ocaml-toml/to.ml.git"url {src: "https://github.com/ocaml-toml/to.ml/archive/6.0.0.tar.gz"checksum: ["sha256=dd123c49769fe649f752a19ae5cb7ce63754c1bcca40fa019f8bffca969d6f44""sha512=99f65dbd4a249deffe982e52f412279f0993d914fe5f006785f4daff2be39c228dc80ae18b9d5c4e7d7a5e1ec88aaf7486d52bb1cf7e0508f3e58729fdc6dce6"]}"ISO8601" {>= "0.2.0"}"menhir" {< "20211215"}license: "LGPL-3.0-only"
opam-version: "2.0"maintainer: "rudi.grinberg@gmail.com"authors: "Rudi Grinberg"license: "MIT"homepage: "https://github.com/rgrinberg/stringext"bug-reports: "https://github.com/rgrinberg/stringext/issues"depends: ["ocaml" {>= "4.02.3"}"dune" {>= "1.0"}"ounit" {with-test}"qtest" {with-test & >= "2.2"}"base-bytes"]build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/rgrinberg/stringext.git"synopsis: "Extra string functions for OCaml"description: """Extra string functions for OCaml. Mainly splitting. All functions are in theStringext module."""url {src:"https://github.com/rgrinberg/stringext/releases/download/1.6.0/stringext-1.6.0.tbz"checksum: ["sha256=db41f5d52e9eab17615f110b899dfeb27dd7e7f89cd35ae43827c5119db206ea""sha512=d8ebe40f42b598a9bd99f1ef4b00ba93458385a4accd121af66a0bf3b3f8d7135f576740adf1a43081dd409977c2219fd4bdbb5b3d1308890d301d553ed49900"]}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "The stdlib-shims programmers"authors: "The stdlib-shims programmers"homepage: "https://github.com/ocaml/stdlib-shims"doc: "https://ocaml.github.io/stdlib-shims/"dev-repo: "git+https://github.com/ocaml/stdlib-shims.git"bug-reports: "https://github.com/ocaml/stdlib-shims/issues"tags: ["stdlib" "compatibility" "org:ocaml"]depends: ["dune""ocaml" {>= "4.02.3"}]build: [ "dune" "build" "-p" name "-j" jobs ]synopsis: "Backport some of the new stdlib features to older compiler"description: """Backport some of the new stdlib features to older compiler,such as the Stdlib module.This allows projects that require compatibility with older compiler touse these new features in their code."""x-commit-hash: "fb6815e5d745f07fd567c11671149de6ef2e74c8"url {src:"https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz"checksum: ["sha256=babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a""sha512=1151d7edc8923516e9a36995a3f8938d323aaade759ad349ed15d6d8501db61ffbe63277e97c4d86149cf371306ac23df0f581ec7e02611f58335126e1870980"]}license: ["LGPL-2.1-only WITH OCaml-LGPL-linking-exception"]
opam-version: "2.0"homepage: "https://github.com/janestreet/stdio"bug-reports: "https://github.com/janestreet/stdio/issues"dev-repo: "git+https://github.com/janestreet/stdio.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/stdio/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}]synopsis: "Standard IO library for OCaml"description: "Stdio implements simple input/output functionalities for OCaml.It re-exports the input/output functions of the OCaml standardlibraries using a more consistent API."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/stdio-v0.14.0.tar.gz"checksum: "md5=4cbdf15f0be88c3258aaeff9e04e00e9"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"homepage: "https://github.com/janestreet/sexplib0"bug-reports: "https://github.com/janestreet/sexplib0/issues"dev-repo: "git+https://github.com/janestreet/sexplib0.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/sexplib0/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"dune" {>= "2.0.0"}]synopsis: "Library containing the definition of S-expressions and some base converters"description: "Part of Jane Street's Core libraryThe Core suite of libraries is an industrial strength alternative toOCaml's standard library that was developed by Jane Street, thelargest industrial user of OCaml."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/sexplib0-v0.14.0.tar.gz"checksum: "md5=37aff0af8f8f6f759249475684aebdc4"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"maintainer: " "authors: " "homepage: " "depends: ["ocaml" {>= "4.07.0"}]dev-repo: "git+https://github.com/ocaml/ocaml.git"bug-reports: "https://caml.inria.fr/mantis/main_page.php"synopsis:"Compatibility package for OCaml's standard iterator type starting from 4.07."extra-files: [["seq.install" "md5=026b31e1df290373198373d5aaa26e42"]["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"]]
opam-version: "2.0"homepage: "https://github.com/janestreet/result"dev-repo: "git+https://github.com/janestreet/result.git"bug-reports: "https://github.com/janestreet/result/issues"license: "BSD-3-Clause"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml""dune" {>= "1.0"}]synopsis: "Compatibility Result module"description: """Projects that want to use the new result type defined in OCaml >= 4.03while staying compatible with older version of OCaml should use theResult module defined in this library."""url {src:"https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz"checksum: "md5=1b82dec78849680b49ae9a8a365b831b"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"maintainer: "David Kaloper Meršinjak <dk505@cam.ac.uk>"authors: ["David Kaloper Meršinjak <dk505@cam.ac.uk>"]homepage: "https://github.com/pqwy/psq"doc: "https://pqwy.github.io/psq/doc"license: "ISC"dev-repo: "git+https://github.com/pqwy/psq.git"bug-reports: "https://github.com/pqwy/psq/issues"synopsis: "Functional Priority Search Queues"[ "dune" "build" "-p" name "-j" jobs ][ "dune" "runtest" "-p" name ] {with-test & ocaml:version >= "4.07.0"} ]depends: ["ocaml" {>="4.03.0"}"dune" {>= "1.7"}"seq""qcheck-core" {with-test}"qcheck-alcotest" {with-test}"alcotest" {with-test}]description: """Typical applications are searches, schedulers and caches. If you ever scratchedyour head because that A* didn't look quite right, a PSQ is what you needed."""url {src: "https://github.com/pqwy/psq/releases/download/v0.2.0/psq-v0.2.0.tbz"checksum: "md5=b94fb15f8878172bf58446b7d0fb7c1e"}build: [ [ "dune" "subst" ] {dev}
opam-version: "2.0"homepage: "https://github.com/janestreet/ppx_yojson_conv_lib"bug-reports: "https://github.com/janestreet/ppx_yojson_conv_lib/issues"dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv_lib.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv_lib/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.02.3"}"dune" {>= "2.0.0"}"yojson" {>= "1.7.0"}]synopsis: "Runtime lib for ppx_yojson_conv"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz"checksum: "md5=e23c5593a7211ad4fb09e26e9a74698a"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"homepage: "https://github.com/janestreet/ppx_yojson_conv"bug-reports: "https://github.com/janestreet/ppx_yojson_conv/issues"dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"ppx_js_style" {>= "v0.14" & < "v0.15"}"ppx_yojson_conv_lib" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "[@@deriving] plugin to generate Yojson conversion functions"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv-v0.14.0.tar.gz"checksum: "md5=d5e243a694a5d1b67e838bce10178718"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"maintainer: "whitequark <whitequark@whitequark.org>"authors: [ "whitequark <whitequark@whitequark.org>" ]license: "MIT"homepage: "https://github.com/ocaml-ppx/ppx_deriving"doc: "https://ocaml-ppx.github.io/ppx_deriving/"bug-reports: "https://github.com/ocaml-ppx/ppx_deriving/issues"dev-repo: "git+https://github.com/ocaml-ppx/ppx_deriving.git"tags: [ "syntax" ]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}]depends: ["ocaml" {>= "4.05.0"}"dune" {>= "1.6.3"}"ocamlfind""ppx_derivers""ppxlib" {>= "0.20.0"}"result""ounit2" {with-test}]synopsis: "Type-driven code generation for OCaml"description: """ppx_deriving provides common infrastructure for generatingcode based on type definitions, and a set of useful pluginsfor common tasks."""url {src:"https://github.com/ocaml-ppx/ppx_deriving/releases/download/v5.2.1/ppx_deriving-v5.2.1.tbz"checksum: ["sha256=e96b5fb25b7632570e4b329e22e097fcd4b8e8680d1e43ef003a8fbd742b0786""sha512=f28cd778a2d48ababa53f73131b25229a11b03685610d020b7b9228b1e25570891cd927b37475aeda49be72debaf5f2dda4c1518a0965db7a361c0ebe325a8d2"]}x-commit-hash: "7211546d6527bf57d3eff8174c90fc3c22250dae""cppo" {build & >= "1.1.0"}
opam-version: "2.0"maintainer: "jeremie@dimino.org"authors: ["Jérémie Dimino"]license: "BSD-3-Clause"homepage: "https://github.com/ocaml-ppx/ppx_derivers"bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml""dune"]synopsis: "Shared [@@deriving] plugin registry"description: """Ppx_derivers is a tiny package whose sole purpose is to allowppx_deriving and ppx_type_conv to inter-operate gracefully when linkedas part of the same ocaml-migrate-parsetree driver."""url {src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz"checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41"}dev-repo: "git+https://github.com/ocaml-ppx/ppx_derivers.git"
opam-version: "2.0"maintainer: ["leo@lpw25.net"]authors: ["Leo White <leo@lpw25.net>"]license: "ISC"homepage: "https://github.com/ocaml-doc/octavius"doc: "http://ocaml-doc.github.io/octavius/"bug-reports: "https://github.com/ocaml-doc/octavius/issues"depends: ["dune" {>= "1.11"}"ocaml" {>= "4.03.0"}]build: [["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-doc/octavius.git"synopsis: "Ocamldoc comment syntax parser"description: "Octavius is a library to parse the `ocamldoc` comment syntax."url {src: "https://github.com/ocaml-doc/octavius/archive/v1.2.2.tar.gz"checksum: "md5=72f9e1d996e6c5089fc513cc9218607b"}["dune" "subst"] {dev}
opam-version: "2.0"synopsis: "A library manager for OCaml"maintainer: "Thomas Gazagnaire <thomas@gazagnaire.org>"authors: "Gerd Stolpmann <gerd@gerd-stolpmann.de>"homepage: "http://projects.camlcity.org/projects/findlib.html"bug-reports: "https://gitlab.camlcity.org/gerd/lib-findlib/issues"dev-repo: "git+https://gitlab.camlcity.org/gerd/lib-findlib.git"description: """Findlib is a library manager for OCaml. It provides a convention howto store libraries, and a file format ("META") to describe theproperties of libraries. There is also a tool (ocamlfind) forinterpreting the META files, so that it is very easy to use librariesin programs and scripts."""build: [["./configure""-bindir"bin"-sitelib"lib"-mandir"man"-config""%{lib}%/findlib.conf""-no-custom""-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}"-no-topfind" {ocaml:preinstalled}][make "all"][make "opt"] {ocaml:native}]install: [["./configure""-bindir"bin"-sitelib"lib"-mandir"man"-config""%{lib}%/findlib.conf""-no-custom""-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}"-no-topfind" {ocaml:preinstalled}][make "install"]["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled}]depends: ["ocaml" {>= "4.00.0" & < "4.13"}"conf-m4" {build}]extra-files: [["ocamlfind.install" "md5=06f2c282ab52d93aa6adeeadd82a2543"]["ocaml-stub" "md5=181f259c9e0bad9ef523e7d4abfdf87a"]]url {src: "http://download.camlcity.org/download/findlib-1.8.1.tar.gz"checksum: "md5=18ca650982c15536616dea0e422cbd8c"mirrors: "http://download2.camlcity.org/download/findlib-1.8.1.tar.gz"}depopts: ["graphics"]
opam-version: "2.0"synopsis: "Backport new syntax to older OCaml versions"description: """This packages backports new features of the language to oldercompilers, such as let+."""maintainer: ["jeremie@dimino.org"]authors: ["Jérémie Dimino <jeremie@dimino.org>"]license: "MIT"homepage: "https://github.com/ocaml-ppx/ocaml-syntax-shims"doc: "https://ocaml-ppx.github.io/ocaml-syntax-shims/"bug-reports: "https://github.com/ocaml-ppx/ocaml-syntax-shims/issues"depends: ["dune" {>= "2.0"}"ocaml" {>= "4.02.3"}]build: [["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-ppx/ocaml-syntax-shims.git"url {src:"https://github.com/ocaml-ppx/ocaml-syntax-shims/releases/download/1.0.0/ocaml-syntax-shims-1.0.0.tbz"checksum: ["sha256=89b2e193e90a0c168b6ec5ddf6fef09033681bdcb64e11913c97440a2722e8c8""sha512=75c4c6b0bfa1267a8a49a82ba494d08cf0823fc8350863d6d3d4971528cb09e5a2a29e2981d04c75e76ad0f49360b05a432c9efeff9a4fbc1ec6b28960399852"]}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: [ "The mtime programmers" ]homepage: "https://erratique.ch/software/mtime"doc: "https://erratique.ch/software/mtime"dev-repo: "git+https://erratique.ch/repos/mtime.git"bug-reports: "https://github.com/dbuenzli/mtime/issues"tags: [ "time" "monotonic" "system" "org:erratique" ]license: "ISC"depends:["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build}]depopts: [ "js_of_ocaml" ]conflicts: ["js_of_ocaml" {<= "3.3.0"} ]build: [["ocaml" "pkg/pkg.ml" "build""--pinned" "%{pinned}%""--with-js_of_ocaml" "%{js_of_ocaml:installed}%" ]]synopsis: """Monotonic wall-clock time for OCaml"""description: """\Mtime has platform independent support for monotonic wall-clock timein pure OCaml. This time increases monotonically and is not subject tooperating system calendar time adjustments. The library has types torepresent nanosecond precision timestamps and time spans.The additional Mtime_clock library provide access to a systemmonotonic clock.Mtime has a no dependency. Mtime_clock depends on your system library.The optional JavaScript support depends on [js_of_ocaml][jsoo]. Mtimeand its libraries are distributed under the ISC license.[jsoo]: http://ocsigen.org/js_of_ocaml/"""url {archive: "https://erratique.ch/software/mtime/releases/mtime-1.2.0.tbz"checksum: "f3f4c1333c0f74fc27b05c35b9c0dab9"}
opam-version: "2.0"maintainer: "Frederic Bour <frederic.bour@lakaban.net>"authors: "Frederic Bour <frederic.bour@lakaban.net>"homepage: "https://github.com/let-def/merlin-extend"bug-reports: "https://github.com/let-def/merlin-extend"license: "MIT"dev-repo: "git+https://github.com/let-def/merlin-extend.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["dune" {>= "1.0"}"ocaml" {>= "4.02.3"}]synopsis: "A protocol to provide custom frontend to Merlin"description: """This protocol allows to replace the OCaml frontend of Merlin.It extends what used to be done with the `-pp' flag to handle a few more cases."""doc: "https://let-def.github.io/merlin-extend"x-commit-hash: "640620568a5f5c7798239ecf7c707c813e3df3cf"url {src:"https://github.com/let-def/merlin-extend/releases/download/v0.6/merlin-extend-v0.6.tbz"checksum: ["sha256=c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43""sha512=4c64a490e2ece04fc89aef679c1d9202175df4fe045b5fdc7a37cd7cebe861226fddd9648c1bf4f06175ecfcd2ed7686c96bd6a8cae003a5096f6134c240f857"]}"cppo" {build & >= "1.1.0"}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["The logs programmers"]homepage: "https://erratique.ch/software/logs"doc: "https://erratique.ch/software/logs/doc"dev-repo: "git+https://erratique.ch/repos/logs.git"bug-reports: "https://github.com/dbuenzli/logs/issues"tags: [ "log" "system" "org:erratique" ]license: "ISC"depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build}"mtime" {with-test} ]depopts: ["js_of_ocaml""fmt""cmdliner""lwt""base-threads"]conflicts: [build: [["ocaml" "pkg/pkg.ml" "build""--pinned" "%{pinned}%""--with-js_of_ocaml" "%{js_of_ocaml:installed}%""--with-fmt" "%{fmt:installed}%""--with-cmdliner" "%{cmdliner:installed}%""--with-lwt" "%{lwt:installed}%""--with-base-threads" "%{base-threads:installed}%"]]synopsis: """Logging infrastructure for OCaml"""description: """\Logs provides a logging infrastructure for OCaml. Logging is performedon sources whose reporting level can be set independently. Log messagereport is decoupled from logging and is handled by a reporter.A few optional log reporters are distributed with the base library andthe API easily allows to implement your own.`Logs` has no dependencies. The optional `Logs_fmt` reporter on OCamlformatters depends on [Fmt][fmt]. The optional `Logs_browser`reporter that reports to the web browser console depends on[js_of_ocaml][jsoo]. The optional `Logs_cli` library that providescommand line support for controlling Logs depends on[`Cmdliner`][cmdliner]. The optional `Logs_lwt` library that providesLwt logging functions depends on [`Lwt`][lwt]Logs and its reporters are distributed under the ISC license.[fmt]: http://erratique.ch/software/fmt[jsoo]: http://ocsigen.org/js_of_ocaml/[cmdliner]: http://erratique.ch/software/cmdliner[lwt]: http://ocsigen.org/lwt/"""url {archive: "https://erratique.ch/software/logs/releases/logs-0.7.0.tbz"checksum: "2bf021ca13331775e33cf34ab60246f7"}"cmdliner" {< "0.9.8"}"js_of_ocaml" { < "3.3.0" }]
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["The fpath programmers"]homepage: "https://erratique.ch/software/fpath"doc: "https://erratique.ch/software/fpath/doc"dev-repo: "git+https://erratique.ch/repos/fpath.git"bug-reports: "https://github.com/dbuenzli/fpath/issues"tags: [ "file" "system" "path" "org:erratique" ]license: "ISC"depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "0.9.0"}"astring"]build: [["ocaml" "pkg/pkg.ml" "build""--dev-pkg=true" {dev} ]]synopsis: """File system paths for OCaml"""description: """\Fpath is an OCaml module for handling file system paths with POSIX orWindows conventions. Fpath processes paths without accessing the filesystem and is independent from any system library.Fpath depends on [Astring][astring] and is distributed under the ISClicense.[astring]: http://erratique.ch/software/astring"""url {archive: "https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz"checksum: "0740b530e8fed5b0adc5eee8463cfc2f"}
opam-version: "2.0"maintainer: "Xavier Leroy <xavier.leroy@inria.fr>"authors: ["Antoine Miné""Xavier Leroy""Pascal Cuoq"]homepage: "https://github.com/ocaml/Zarith"bug-reports: "https://github.com/ocaml/Zarith/issues"dev-repo: "git+https://github.com/ocaml/Zarith.git"build: [["./configure"] {os != "openbsd" & os != "freebsd" & os != "macos"}["sh""-exc""LDFLAGS=\"$LDFLAGS -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/usr/local/include\" ./configure"] {os = "openbsd" | os = "freebsd"}["sh""-exc""LDFLAGS=\"$LDFLAGS -L/opt/local/lib -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/opt/local/include -I/usr/local/include\" ./configure"] {os = "macos" & os-distribution != "homebrew"}["sh""-exc""LDFLAGS=\"$LDFLAGS -L/opt/local/lib -L/usr/local/lib\" CFLAGS=\"$CFLAGS -I/opt/local/include -I/usr/local/include\" ./configure"] {os = "macos" & os-distribution = "homebrew" & arch = "x86_64" }["sh""-exc""LDFLAGS=\"$LDFLAGS -L/opt/homebrew/lib\" CFLAGS=\"$CFLAGS -I/opt/homebrew/include\" ./configure"] {os = "macos" & os-distribution = "homebrew" & arch = "arm64" }[make]]install: [[make "install"]]depends: ["ocaml" {>= "4.04.0"}"ocamlfind""conf-gmp"]synopsis:"Implements arithmetic and logical operations over arbitrary-precision integers"description: """The Zarith library implements arithmetic and logical operations overarbitrary-precision integers. It uses GMP to efficiently implementarithmetic over big integers. Small integers are represented as Camlunboxed integers, for speed and space economy."""url {src: "https://github.com/ocaml/Zarith/archive/release-1.12.tar.gz"checksum: ["md5=bf368f3d9e20b6b446d54681afc05a04""sha512=8075573ae65579a2606b37dd1b213032a07d220d28c733f9288ae80d36f8a2cc4d91632806df2503c130ea9658dc207ee3a64347c21aa53969050a208f5b2bb4"]}
opam-version: "2.0"maintainer: ["Hannes Mehnert <hannes@mehnert.org>"]authors: ["Hannes Mehnert <hannes@mehnert.org>""David Kaloper <dk505@cam.ac.uk>"]license: "BSD-2-Clause"tags: "org:mirage"homepage: "https://github.com/mirleft/ocaml-x509"doc: "https://mirleft.github.io/ocaml-x509/doc"bug-reports: "https://github.com/mirleft/ocaml-x509/issues"depends: ["ocaml" {>= "4.08.0"}"dune" {>= "1.2"}"cstruct" {>= "6.0.0"}"asn1-combinators" {>= "0.2.0"}"ptime""base64" {>= "3.3.0"}"mirage-crypto""mirage-crypto-pk""mirage-crypto-ec" {>= "0.10.0"}"mirage-crypto-rng""fmt" {>= "0.8.7"}"alcotest" {with-test}"cstruct-unix" {with-test & >= "3.0.0"}"gmap" {>= "0.3.0"}"domain-name" {>= "0.3.0"}"logs""pbkdf""ipaddr" {>= "5.2.0"}]conflicts: [ "result" {< "1.5"} ]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/mirleft/ocaml-x509.git"synopsis: "Public Key Infrastructure (RFC 5280, PKCS) purely in OCaml"description: """X.509 is a public key infrastructure used mostly on the Internet. It consistsof certificates which include public keys and identifiers, signed by anauthority. Authorities must be exchanged over a second channel to establish thetrust relationship. This library implements most parts of RFC5280 and RFC6125.The Public Key Cryptography Standards (PKCS) defines encoding and decoding(in ASN.1 DER and PEM format), which is also implemented by this library -namely PKCS 1, PKCS 5, PKCS 7, PKCS 8, PKCS 9, PKCS 10, and PKCS 12."""url {src:"https://github.com/mirleft/ocaml-x509/releases/download/v0.16.0/x509-0.16.0.tbz"checksum: ["sha256=67a6727fb4c38b919334eef2f8ef4eac0237029a439ff981d408eca8b9833595""sha512=c9b4cf55d16d8b1e6b6faa18fc9ac08065fa09937f07a3447d4b637539b37bea6374c98d184eba159a8ba8eba860303a78563097e47ef30529fedaaf722115c6"]}x-commit-hash: "e87d4baef3faedc05e1e4f2e36e16a4def5894ff"
opam-version: "2.0"synopsis: """Non-blocking streaming Unicode codec for OCaml"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The uutf programmers"]homepage: "https://erratique.ch/software/uutf"doc: "https://erratique.ch/software/uutf/doc/"dev-repo: "git+https://erratique.ch/repos/uutf.git"bug-reports: "https://github.com/dbuenzli/uutf/issues"license: ["ISC"]tags: ["unicode" "text" "utf-8" "utf-16" "codec" "org:erratique"]depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}]depopts: ["cmdliner"]conflicts: ["cmdliner" {< "0.9.8"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-cmdliner" "%{cmdliner:installed}%"]]url {src: "https://erratique.ch/software/uutf/releases/uutf-1.0.3.tbz"checksum: "sha512=50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8"}description: """Uutf is a non-blocking streaming codec to decode and encode the UTF-8,UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficientlywork character by character without blocking on IO. Decoders performcharacter position tracking and support newline normalization.Functions are also provided to fold over the characters of UTF encodedOCaml string values and to directly encode characters in OCamlBuffer.t values. **Note** that since OCaml 4.14, that functionalitycan be found in the Stdlib and you are encouraged to migrate to it.Uutf has no dependency and is distributed under the ISC license.Home page: http://erratique.ch/software/uutfContact: Daniel Bünzli `<daniel.buenzl i@erratique.ch>`"""
opam-version: "2.0"homepage: "https://github.com/mirleft/ocaml-tls"dev-repo: "git+https://github.com/mirleft/ocaml-tls.git"bug-reports: "https://github.com/mirleft/ocaml-tls/issues"doc: "https://mirleft.github.io/ocaml-tls/doc"maintainer: ["Hannes Mehnert <hannes@mehnert.org>" "David Kaloper <david@numm.org>"]license: "BSD-2-Clause"build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.08.0"}"dune" {>= "1.0"}"ppx_sexp_conv" {>= "v0.9.0"}"ppx_cstruct" {>= "3.0.0"}"cstruct" {>= "6.0.0"}"cstruct-sexp""sexplib""mirage-crypto" {>= "0.8.1"}"mirage-crypto-ec" {>= "0.10.0"}"mirage-crypto-pk""mirage-crypto-rng" {>= "0.8.0"}"x509" {>= "0.15.0"}"domain-name" {>= "0.3.0"}"fmt" {>= "0.8.7"}"cstruct-unix" {with-test & >= "3.0.0"}"ounit2" {with-test & >= "2.2.0"}"lwt" {>= "3.0.0"}"ptime" {>= "0.8.1"}"hkdf""logs""ipaddr""ipaddr-sexp""alcotest" {with-test}"randomconv" {with-test}]conflicts: [ "result" {< "1.5"} ]tags: [ "org:mirage"]synopsis: "Transport Layer Security purely in OCaml"description: """Transport Layer Security (TLS) is probably the most widely deployed securityprotocol on the Internet. It provides communication privacy to preventeavesdropping, tampering, and message forgery. Furthermore, it optionallyprovides authentication of the involved endpoints. TLS is commonly deployed forsecuring web services ([HTTPS](http://tools.ietf.org/html/rfc2818)), emails,virtual private networks, and wireless networks.TLS uses asymmetric cryptography to exchange a symmetric key, and optionallyauthenticate (using X.509) either or both endpoints. It provides algorithmicagility, which means that the key exchange method, symmetric encryptionalgorithm, and hash algorithm are negotiated.Read [further](https://nqsb.io) and our [Usenix Security 2015 paper](https://usenix15.nqsb.io)."""authors: ["David Kaloper <david@numm.org>" "Hannes Mehnert <hannes@mehnert.org>"]url {src:"https://github.com/mirleft/ocaml-tls/releases/download/v0.15.2/tls-v0.15.2.tbz"checksum: ["sha256=b76371757249bbeabb12c333de4ea2a09c095767bdbbc83322538c0da1fc1e36""sha512=e6e089a853848e82647bc3f6ecaa3a95cdb559e50b7ad9d06064c1fd0c931b0e942ff0877c8066ec79b6b42a29512449ba1a5c6de1f1502cdbfc3397546f417c"]}x-commit-hash: "0ba4883e9372495682e3407817614f17ddf002d7"
opam-version: "2.0"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}["dune" "build" "-p" name "@doc"] {with-doc}]maintainer: ["martin@mjambon.com" "rudi.grinberg@gmail.com"]authors: ["Martin Jambon"]bug-reports: "https://github.com/mjambon/easy-format/issues"homepage: "https://github.com/mjambon/easy-format"doc: "https://mjambon.github.io/easy-format/"license: "BSD-3-Clause"dev-repo: "git+https://github.com/mjambon/easy-format.git"synopsis:"High-level and functional interface to the Format module of the OCaml standard library"description: """This module offers a high-level and functional interface to the Format module ofthe OCaml standard library. It is a pretty-printing facility, i.e. it takes asinput some code represented as a tree and formats this code into the mostvisually satisfying result, breaking and indenting lines of code whereappropriate.Input data must be first modelled and converted into a tree using 3 kinds ofnodes:* atoms* lists* labelled nodesAtoms represent any text that is guaranteed to be printed as-is. Lists can modelany sequence of items such as arrays of data or lists of definitions that arelabelled with something like "int main", "let x =" or "x:"."""depends: ["dune" {>= "1.10"}"ocaml" {>= "4.02.3"}]url {src:"https://github.com/mjambon/easy-format/releases/download/1.3.2/easy-format-1.3.2.tbz"checksum: ["sha256=3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926""sha512=e39377a2ff020ceb9ac29e8515a89d9bdbc91dfcfa871c4e3baafa56753fac2896768e5d9822a050dc1e2ade43c8967afb69391a386c0a8ecd4e1f774e236135"]}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/time_now"bug-reports: "https://github.com/janestreet/time_now/issues"dev-repo: "git+https://github.com/janestreet/time_now.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/time_now/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"jane-street-headers" {>= "v0.14" & < "v0.15"}"jst-config" {>= "v0.14" & < "v0.15"}"ppx_base" {>= "v0.14" & < "v0.15"}"ppx_optcomp" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}]synopsis: "Reports the current time"description: "Provides a single function to report the current time in nanosecondssince the start of the Unix epoch."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/time_now-v0.14.0.tar.gz"checksum: "md5=a93116938783587f8b9f5152dd543037"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/sexplib"bug-reports: "https://github.com/janestreet/sexplib/issues"dev-repo: "git+https://github.com/janestreet/sexplib.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/sexplib/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"parsexp" {>= "v0.14" & < "v0.15"}"sexplib0" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"num"]synopsis: "Library for serializing OCaml values to and from S-expressions"description: "Part of Jane Street's Core libraryThe Core suite of libraries is an industrial strength alternative toOCaml's standard library that was developed by Jane Street, thelargest industrial user of OCaml."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/sexplib-v0.14.0.tar.gz"checksum: "md5=6e230eae22face46cb8645e53e351067"}
opam-version: "2.0"maintainer: "Jordan Walke <jordojw@gmail.com>"authors: [ "Jordan Walke <jordojw@gmail.com>" ]license: "MIT"tags: [ "syntax" ]build: [["dune" "build" "-p" name "-j" jobs]]depends: ["dune" {>= "1.4"}"ocamlfind" {build}"merlin-extend" {>= "0.6"}"fix""result""ppx_derivers"]conflicts: [ "base-effects" ]synopsis: "Reason: Syntax & Toolchain for OCaml"description: """Reason gives OCaml a new syntax that is remniscient of languages likeJavaScript. It's also the umbrella project for a set of tools for the OCaml &JavaScript ecosystem."""url {}x-commit-hash: "52fcae90ef3b304f55dce0a57125a2483e792a03"src:"https://github.com/reasonml/reason/releases/download/3.8.0/reason-3.8.0.tbz"checksum: ["sha256=9478724b01767320064ba950ddea24c5df0eefdcdd8ff1324ba9ccd646258979""sha512=c5dcec810a1981b78b19271a8a255f4087628514725d6818419b141be6346a62b28fe8d0f10855efe420ede2839bfe562aa5abf21f29d66250e5c0d02323d6d8"]"menhir" {>= "20180523"}"ocaml" {>= "4.03" & < "4.15"}homepage: "https://github.com/reasonml/reason"doc: "https://reasonml.github.io/"bug-reports: "https://github.com/reasonml/reason/issues"dev-repo: "git://github.com/reasonml/reason.git"
opam-version: "2.0"synopsis: "Declarative events and signals for OCaml"description: """\Release %%VERSION%%React is an OCaml module for functional reactive programming (FRP). Itprovides support to program with time varying values : declarativeevents and signals. React doesn't define any primitive event orsignal, it lets the client chooses the concrete timeline.React is made of a single, independent, module and distributed underthe ISC license.Homepage: <http://erratique.ch/software/react>"""maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: "The react programmers"license: "ISC"tags: ["reactive" "declarative" "signal" "event" "frp" "org:erratique"]homepage: "https://erratique.ch/software/react"doc: "https://erratique.ch/software/react/doc/"bug-reports: "https://github.com/dbuenzli/react/issues"depends: ["ocaml" {>= "4.08.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}]build: ["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%"]dev-repo: "git+https://erratique.ch/repos/react.git"url {src: "https://erratique.ch/software/react/releases/react-1.2.2.tbz"checksum:"sha512=18cdd544d484222ba02db6bd9351571516532e7a1c107b59bbe39193837298f5c745eab6754f8bc6ff125b387be7018c6d6e6ac99f91925a5e4f53af688522b1"}
opam-version: "2.0"maintainer: "simon.cruanes.2007@m4x.org"homepage: "https://github.com/c-cube/qcheck/"synopsis: "Core qcheck library"doc: ["http://c-cube.github.io/qcheck/"]tags: ["test""property""quickcheck"]build: [["dune" "build" "-p" name "-j" jobs]["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["base-bytes""base-unix""odoc" {with-doc}]dev-repo: "git+https://github.com/c-cube/qcheck.git"bug-reports: "https://github.com/c-cube/qcheck/issues"conflicts: ["ounit" { < "2.0" }]url {checksum: []}"md5=e207362d67387d6dbb8dcd4ba7238b39""sha512=6fd5fd4348ed6a48a8f64a466fedd07374eaf23d516b3c250ebad2a32ddbca3ae4ad9c84fe1112858075df46c119cd6550205a4228a553b014d135581f024ded"src: "https://github.com/c-cube/qcheck/archive/v0.18.1.tar.gz"authors: "the qcheck contributors""ocaml" {>= "4.08.0"}"alcotest" {with-test}"dune" { >= "2.2" }license: "BSD-2-Clause"
opam-version: "2.0"maintainer: "simon.cruanes.2007@m4x.org"homepage: "https://github.com/c-cube/qcheck/"synopsis: "Alcotest backend for qcheck"doc: ["http://c-cube.github.io/qcheck/"]tags: ["test""quickcheck""qcheck""alcotest"]build: [["dune" "build" "-p" name "-j" jobs]["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["base-bytes""base-unix""qcheck-core" { = version }"odoc" {with-doc}]dev-repo: "git+https://github.com/c-cube/qcheck.git"bug-reports: "https://github.com/c-cube/qcheck/issues"url {checksum: []}"md5=e207362d67387d6dbb8dcd4ba7238b39""sha512=6fd5fd4348ed6a48a8f64a466fedd07374eaf23d516b3c250ebad2a32ddbca3ae4ad9c84fe1112858075df46c119cd6550205a4228a553b014d135581f024ded"src: "https://github.com/c-cube/qcheck/archive/v0.18.1.tar.gz"authors: "the qcheck contributors""ocaml" {>= "4.08.0"}"alcotest""dune" { >= "2.2" }license: "BSD-2-Clause"
opam-version: "2.0"synopsis: "Standard library for ppx rewriters"description: """Ppxlib is the standard library for ppx rewriters and other programsthat manipulate the in-memory reprensation of OCaml programs, a.k.athe "Parsetree".It also comes bundled with two ppx rewriters that are commonly used towrite tools that manipulate and/or generate Parsetree values;`ppxlib.metaquot` which allows to construct Parsetree values using theOCaml syntax directly and `ppxlib.traverse` which provides variousways of automatically traversing values of a given type, in particularallowing to inject a complex structured value into generated code."""maintainer: ["opensource@janestreet.com"]authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]license: "MIT"homepage: "https://github.com/ocaml-ppx/ppxlib"doc: "https://ocaml-ppx.github.io/ppxlib/"bug-reports: "https://github.com/ocaml-ppx/ppxlib/issues"depends: ["dune" {>= "2.7"}"ocaml-compiler-libs" {>= "v0.11.0"}"ppx_derivers" {>= "1.0"}"stdlib-shims""ocamlfind" {with-test}"re" {with-test & >= "1.9.0"}"cinaps" {with-test & >= "v0.12.1"}"base" {with-test}"stdio" {with-test}"odoc" {with-doc}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-ppx/ppxlib.git"url {src:checksum: []}x-commit-hash: "2fde140076144150d01997d529d451bbcae439c4""sha256=2d2f150e7715845dc578d254f705a67600be71c986b7e67e81befda612870bd5""sha512=464220e3d8c75503824b73393df0b8ad16019acf55b8ecef89f8d464cd6d054e470ce4866b244216c5f7b85a5e8abad908aad212a78b4a132f3092fa785da0de""https://github.com/ocaml-ppx/ppxlib/releases/download/0.25.0/ppxlib-0.25.0.tbz"]conflicts: ["ocaml-migrate-parsetree" {< "2.0.0"}"base-effects""sexplib0" {>= "v0.12"}"ocaml" {>= "4.04.1" & < "4.15"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_sexp_conv"bug-reports: "https://github.com/janestreet/ppx_sexp_conv/issues"dev-repo: "git+https://github.com/janestreet/ppx_sexp_conv.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_sexp_conv/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"sexplib0" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.22.0" & < "0.26.0"}]synopsis: "[@@deriving] plugin to generate S-expression conversion functions"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://github.com/janestreet/ppx_sexp_conv/archive/v0.14.3.tar.gz"checksum: "md5=25caf01245e0113e035ccefe275f85d9"}
opam-version: "2.0"maintainer: "opensource@janestreet.com"authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]homepage: "https://github.com/janestreet/ppx_optcomp"bug-reports: "https://github.com/janestreet/ppx_optcomp/issues"dev-repo: "git+https://github.com/janestreet/ppx_optcomp.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_optcomp/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.08"}"base" {>= "v0.14" & < "v0.15"}"stdio" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.18.0"}]synopsis: "Optional compilation for OCaml"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://github.com/janestreet/ppx_optcomp/archive/v0.14.3.tar.gz"checksum: "md5=2d012df62dd0bc82d2ea4ab25b628992"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_inline_test"bug-reports: "https://github.com/janestreet/ppx_inline_test/issues"dev-repo: "git+https://github.com/janestreet/ppx_inline_test.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_inline_test/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"time_now" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.14.0"}]synopsis: "Syntax extension for writing in-line tests in ocaml code"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://github.com/janestreet/ppx_inline_test/archive/v0.14.1.tar.gz"checksum: "md5=132754f0757188c3b700a2c5b6a2fb3f"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_here"bug-reports: "https://github.com/janestreet/ppx_here/issues"dev-repo: "git+https://github.com/janestreet/ppx_here.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_here/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "Expands [%here] into its location"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_here-v0.14.0.tar.gz"checksum: "md5=bb3bbde0964a1f866de09f3df44def4d"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_hash"bug-reports: "https://github.com/janestreet/ppx_hash/issues"dev-repo: "git+https://github.com/janestreet/ppx_hash.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_hash/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"ppx_compare" {>= "v0.14" & < "v0.15"}"ppx_sexp_conv" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "A ppx rewriter that generates hash functions from type expressions and definitions"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_hash-v0.14.0.tar.gz"checksum: "md5=b78aee19bb4469731f9626b04fe7f341"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_expect"bug-reports: "https://github.com/janestreet/ppx_expect/issues"dev-repo: "git+https://github.com/janestreet/ppx_expect.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_expect/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"ppx_here" {>= "v0.14" & < "v0.15"}"ppx_inline_test" {>= "v0.14" & < "v0.15"}"stdio" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.18.0"}"re" {>= "1.8.0"}]synopsis: "Cram like framework for OCaml"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://github.com/janestreet/ppx_expect/archive/v0.14.1.tar.gz"checksum: "md5=9cc03dcabb00c72e17f7f5b0e4d28603"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_enumerate"bug-reports: "https://github.com/janestreet/ppx_enumerate/issues"dev-repo: "git+https://github.com/janestreet/ppx_enumerate.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_enumerate/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "Generate a list containing all values of a finite type"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_enumerate-v0.14.0.tar.gz"checksum: "md5=188421af960759f6e45dd748f4f08e8d"}
opam-version: "2.0"maintainer: "whitequark <whitequark@whitequark.org>"authors: [ "whitequark <whitequark@whitequark.org>" ]license: "MIT"homepage: "https://github.com/ocaml-ppx/ppx_deriving_yojson"bug-reports: "https://github.com/ocaml-ppx/ppx_deriving_yojson/issues"dev-repo: "git+https://github.com/ocaml-ppx/ppx_deriving_yojson.git"tags: [ "syntax" "json" ]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.05.0"}"dune" {>= "1.0"}"yojson" {>= "1.6.0" & < "2.0.0"}"result""ppx_deriving" {>= "5.1"}"ppxlib" {>= "0.14.0" & < "0.26.0"}"ounit" {with-test & >= "2.0.0"}]synopsis:"JSON codec generator for OCaml"description: """ppx_deriving_yojson is a ppx_deriving plugin that providesa JSON codec generator."""url {src:"https://github.com/ocaml-ppx/ppx_deriving_yojson/releases/download/v3.6.1/ppx_deriving_yojson-v3.6.1.tbz"checksum: ["sha256=712ee9207c70dd144e72cd689bee2d2beb120b804e77c74ec6f7b843a88944e6""sha512=d8c828902b8441f73e08fc03e2173ce81a09cccfe091471fbcffe098b2272739b98a05e8308016da3efeb3d4d1abd7d941bfaac42c85961ea40915ddce526577"]}x-commit-hash: "d0abe462de8bab52d763eeafd751e8ea1ba211ac"
opam-version: "2.0"maintainer: "anil@recoil.org"authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire""Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott""Mindy Preston" "Thomas Leonard" "Etienne Millon" ]homepage: "https://github.com/mirage/ocaml-cstruct"license: "ISC"dev-repo: "git+https://github.com/mirage/ocaml-cstruct.git"bug-reports: "https://github.com/mirage/ocaml-cstruct/issues"doc: "https://mirage.github.io/ocaml-cstruct/"tags: [ "org:mirage" "org:ocamllabs" ]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.08.0"}"dune" {>= "2.0.0"}"cstruct" {=version}"ounit" {with-test}"ppxlib" {>= "0.16.0"}"ppx_sexp_conv" {with-test}"sexplib" {>="v0.9.0"}"cstruct-sexp" {with-test}"cppo" {with-test}"cstruct-unix" {with-test & =version}"stdlib-shims""ocaml-migrate-parsetree" {>= "2.1.0" & with-test}"lwt_ppx" {>= "2.0.2" & with-test}]synopsis: "Access C-like structures directly from OCaml"description: """Cstruct is a library and syntax extension to make it easier to access C-likestructures directly from OCaml. It supports both reading and writing to thesestructures, and they are accessed via the `Bigarray` module."""url {src:"https://github.com/mirage/ocaml-cstruct/releases/download/v6.1.0/cstruct-6.1.0.tbz"checksum: ["sha256=4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b""sha512=24620eb8dd37b7508a6adbad19fe21b44739a1bd641827b4fdd74e642991647fb814cabdf44195199bdb5208cac182580c55dce511bf22ad595d56a140cc0584"]}x-commit-hash: "7cfde7fad479b2c707ece96c35edbcbd89cf752a"
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_compare"bug-reports: "https://github.com/janestreet/ppx_compare/issues"dev-repo: "git+https://github.com/janestreet/ppx_compare.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_compare/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "Generation of comparison functions from types"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_compare-v0.14.0.tar.gz"checksum: "md5=9149b3a0c954fe2cef2b0705d254b9e3"}
opam-version: "2.0"maintainer: "unixjunkie@sdf.org"authors: ["Francois Berenger"]homepage: "http://www.freedesktop.org/wiki/Software/pkg-config/"bug-reports: "https://github.com/ocaml/opam-repository/issues"license: "GPL-1.0-or-later"build: [["pkg-config" "--help"]]install: [["ln" "-s" "/usr/local/bin/pkgconf" "%{bin}%/pkg-config"] {os = "openbsd"}]remove: [["rm" "-f" "%{bin}%/pkg-config"] {os = "openbsd"}]post-messages: ["conf-pkg-config: A symlink to /usr/local/bin/pkgconf has been installed in the OPAM bin directory (%{bin}%) on your PATH as 'pkg-config'. This is necessary for correct operation." {os = "openbsd"}]depexts: [["pkg-config"] {os-family = "debian"}["pkgconf"] {os-distribution = "arch"}["pkgconfig"] {os-distribution = "fedora"}["pkgconfig"] {os-distribution = "centos" & os-version <= "7"}["pkgconfig"] {os-distribution = "mageia"}["pkgconfig"] {os-distribution = "rhel" & os-version <= "7"}["pkgconfig"] {os-distribution = "ol"}["pkgconf"] {os-distribution = "alpine"}["pkgconfig"] {os-distribution = "nixos"}["devel/pkgconf"] {os = "openbsd"}["pkg-config"] {os = "macos" & os-distribution = "homebrew"}["pkgconfig"] {os = "macos" & os-distribution = "macports"}["pkgconf"] {os = "freebsd"}["pkgconf-pkg-config"] {os-distribution = "rhel" & os-version >= "8"}["pkgconf-pkg-config"] {os-distribution = "centos" & os-version >= "8"}]synopsis: "Virtual package relying on pkg-config installation"description: """This package can only install if the pkg-config package is installedon the system."""flags: conf["system:pkgconf"] {os = "win32" & os-distribution = "cygwinports"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_cold"bug-reports: "https://github.com/janestreet/ppx_cold/issues"dev-repo: "git+https://github.com/janestreet/ppx_cold.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_cold/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "Expands [@cold] into [@inline never][@specialise never][@local never]"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_cold-v0.14.0.tar.gz"checksum: "md5=6a61807cd3b105b8c885bd2076986339"}
opam-version: "2.0"maintainer: "tim@gfxmonk.net"homepage: "http://www.gnu.org/software/m4/m4.html"bug-reports: "https://github.com/ocaml/opam-repository/issues"authors: "GNU Project"license: "GPL-3.0-only"build: [["sh" "-exc" "echo | m4"]]depexts: [["m4"] {os-family = "debian"}["m4"] {os-distribution = "fedora"}["m4"] {os-distribution = "rhel"}["m4"] {os-distribution = "centos"}["m4"] {os-distribution = "alpine"}["m4"] {os-distribution = "nixos"}["m4"] {os-family = "suse"}["m4"] {os-distribution = "ol"}["m4"] {os-distribution = "arch"}]synopsis: "Virtual package relying on m4"description:"This package can only install if the m4 binary is installed on the system."flags: conf
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_base"bug-reports: "https://github.com/janestreet/ppx_base/issues"dev-repo: "git+https://github.com/janestreet/ppx_base.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_base/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"ppx_cold" {>= "v0.14" & < "v0.15"}"ppx_compare" {>= "v0.14" & < "v0.15"}"ppx_enumerate" {>= "v0.14" & < "v0.15"}"ppx_hash" {>= "v0.14" & < "v0.15"}"ppx_js_style" {>= "v0.14" & < "v0.15"}"ppx_sexp_conv" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "Base set of ppx rewriters"description: "ppx_base is the set of ppx rewriters used for Base.Note that Base doesn't need ppx to build, it is only used as averification tool."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_base-v0.14.0.tar.gz"checksum: "md5=b29a24907e60f42e050ad90e5209bb92"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/ppx_assert"bug-reports: "https://github.com/janestreet/ppx_assert/issues"dev-repo: "git+https://github.com/janestreet/ppx_assert.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_assert/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"ppx_cold" {>= "v0.14" & < "v0.15"}"ppx_compare" {>= "v0.14" & < "v0.15"}"ppx_here" {>= "v0.14" & < "v0.15"}"ppx_sexp_conv" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"ppxlib" {>= "0.11.0"}]synopsis: "Assert-like extension nodes that raise useful errors on failure"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_assert-v0.14.0.tar.gz"checksum: "md5=535b5f241eb7f10da8c044c26afbc186"}
opam-version: "2.0"synopsis: "Password based key derivation functions (PBKDF) from PKCS#5"description: """An implementation of PBKDF 1 and 2 as defined by [PKCS#5](https://tools.ietf.org/html/rfc2898) using[mirage-crypto](https://github.com/mirage/mirage-crypto)"""maintainer: ["Alfredo Beaumont <alfredo.beaumont@gmail.com>"]authors: ["Alfredo Beaumont <alfredo.beaumont@gmail.com>" "Sonia Meruelo <smeruelo@gmail.com>"]license: "BSD-2-Clause"homepage: "https://github.com/abeaumont/ocaml-pbkdf"bug-reports: "https://github.com/abeaumont/ocaml-pbkdf/issues"dev-repo: "git+https://github.com/abeaumont/ocaml-pbkdf.git"doc: "https://abeaumont.github.io/ocaml-pbkdf/"depends: ["ocaml" {>= "4.07.0"}"dune" {>= "1.8.0"}"cstruct" {>= "6.0.0"}"mirage-crypto""alcotest" {with-test & >= "0.8.1"}]build: [[ "dune" "subst" ] {dev}[ "dune" "build" "-j" jobs "-p" name "@install" ][ "dune" "runtest" "-p" name "-j" jobs ] {with-test}]url {src: "https://github.com/abeaumont/ocaml-pbkdf/archive/1.2.0.tar.gz"checksum: ["md5=1e0e69de61b2d9d4f9843572ecc6655c""sha512=d6f7d5efd761b87dd420ddcf97c2f9d4402dcc81d65cd1f4d81039b70c4d8c1e803bbaf4251482de8de7076da9f40b48c7eb1684e31e7a316deb5036c192bd3c"]}
opam-version: "2.0"synopsis: "Globbing file paths"description: """An implementation of 'glob' patterns for file paths,extracted from ocamlbuild."""homepage: "https://gitlab.com/gasche/path_glob"bug-reports: "https://gitlab.com/gasche/path_glob/-/issues"doc: "https://gasche.gitlab.io/path_glob/doc/path_glob"dev-repo: "git+https://gitlab.com/gasche/path_glob.git"maintainer: ["Gabriel Scherer <gabriel.scherer@gmail.com>"]authors: ["Berke Durak"]license: "LGPL-2.0-only WITH OCaml-LGPL-linking-exception"depends: ["ocaml" {>= "4.03"}"dune" {>= "2.7"}"odoc" {with-doc}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]x-commit-hash: "2cc5714fbe0439af7ba36eeff8b6d1acd437474b"url {src: "https://gasche.gitlab.io/path_glob/releases/path_glob-0.2.tbz"checksum: ["sha256=5e09a2148876b68ac8fb315679ba69b1e207ced55d91a3ea5b3046f917102a07""sha512=f55775c694e4b66acdfc9210cccc4af505ecbce3101b638495623d7f18a169e4c904e1b86c1c13ec3af9ae765acd6eedfa6cb7059a0c8a4a1aff375b7e9114ab"]}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/parsexp"bug-reports: "https://github.com/janestreet/parsexp/issues"dev-repo: "git+https://github.com/janestreet/parsexp.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/parsexp/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"sexplib0" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}]synopsis: "S-expression parsing library"description: "This library provides generic parsers for parsing S-expressions fromstrings or other medium.The library is focused on performances but still provide full genericparsers that can be used with strings, bigstrings, lexing buffers,character streams or any other sources effortlessly.It provides three different class of parsers:- the normal parsers, producing [Sexp.t] or [Sexp.t list] values- the parsers with positions, building compact position sequences sothat one can recover original positions in order to report properlylocated errors at little cost- the Concrete Syntax Tree parsers, produce values of type[Parsexp.Cst.t] which record the concrete layout of the s-expressionsyntax, including commentsThis library is portable and doesn't provide IO functions. To reads-expressions from files or other external sources, you should useparsexp_io."url {src: "https://github.com/janestreet/parsexp/archive/refs/tags/v0.14.2.tar.gz"checksum: "sha256=f6e17e4e08dcdce08a6372485a381dcdb3fda0f71b4506d7be982b87b5a1f230"}
opam-version: "2.0"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}["dune" "build" "-p" name "@doc"] {with-doc}]maintainer: ["martin@mjambon.com"]authors: ["Martin Jambon"]bug-reports: "https://github.com/mjambon/biniou/issues"homepage: "https://github.com/mjambon/biniou"doc: "https://mjambon.github.io/biniou/"license: "BSD-3-Clause"dev-repo: "git+https://github.com/mjambon/biniou.git"synopsis:"Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve"description: """Biniou (pronounced "be new") is a binary data format designed for speed, safety,ease of use and backward compatibility as protocols evolve. Biniou is vastlyequivalent to JSON in terms of functionality but allows implementations severaltimes faster (4 times faster than yojson), with 25-35% space savings.Biniou data can be decoded into human-readable form without knowledge of typedefinitions except for field and variant names which are represented by 31-bithashes. A program named bdump is provided for routine visualization of binioudata files.The program atdgen is used to derive OCaml-Biniou serializers and deserializersfrom type definitions.Biniou format specification: mjambon.github.io/atdgen-doc/biniou-format.txt"""depends: ["easy-format""dune" {>= "1.10"}"ocaml" {>= "4.02.3"}]url {src:"https://github.com/mjambon/biniou/releases/download/1.2.1/biniou-1.2.1.tbz"checksum: ["sha256=35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335""sha512=82670cc77bf3e869ee26e5fbe5a5affa45a22bc8b6c4bd7e85473912780e0111baca59b34a2c14feae3543ce6e239d7fddaeab24b686a65bfe642cdb91d27ebf"]}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: [ "romain.calascibetta@gmail.com" ]authors: "Romain Calascibetta"license: "ISC"homepage: "https://github.com/mirage/optint"bug-reports: "https://github.com/mirage/optint/issues"dev-repo: "git+https://github.com/mirage/optint.git"doc: "https://mirage.github.io/optint/"synopsis: "Efficient integer types on 64-bit architectures"description: """This library provides two new integer types, `Optint.t` and `Int63.t`, whichguarantee efficient representation on 64-bit architectures and provide abest-effort boxed representation on 32-bit architectures.Implementation depends on target architecture."""build: ["dune" "build" "-p" name "-j" jobs]run-test: [ "dune" "runtest" "-p" name "-j" jobs ]depends: ["ocaml" {>= "4.07.0"}"dune""crowbar" {with-test & >= "0.2"}"monolith" {with-test}"fmt" {with-test}]url {src:checksum: []}x-commit-hash: "4b71b6b2afbd8374a08121466f7ff41e4680d38c""sha256=1dcbe0b6b6031f77db33028c87138fdb3bf90f92915e3b6629ddeb30a0d3000b""sha512=7d4b63c82b1dc1e363a892895c1a612bac3dcd33c27e2c27e8ea2e8868d659413226c7a0d7bdcac423f7fb016069d0de90c3eaa68986da6aea69e1f1ca583f18""https://github.com/mirage/optint/releases/download/v0.2.0/optint-0.2.0.tbz"
opam-version: "2.0"homepage: "http://github.com/ocaml/odoc"doc: "https://ocaml.github.io/odoc/"bug-reports: "https://github.com/ocaml/odoc/issues"license: "ISC"authors: ["Thomas Refis <trefis@janestreet.com>""David Sheets <sheets@alum.mit.edu>""Leo White <leo@lpw25.net>""Anton Bachin <antonbachin@yahoo.com>""Jon Ludlam <jon@recoil.org>"]dev-repo: "git+https://github.com/ocaml/odoc.git"synopsis: "OCaml documentation generator"description: """Odoc is a documentation generator for OCaml. It reads doc comments,delimited with `(** ... *)`, and outputs HTML."""depends: ["astring""fpath""result""tyxml" {>= "4.3.0"}]build: [["dune" "build" "-p" name "-j" jobs]]url {checksum: []}x-commit-hash: "d654ee2a4ff3e1465dcf92b882c26de71f7a9986""sha256=65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967""sha512=cf4d7e884b94a9b9c4bcb62d4423d7289d7bbbf2642c5eacf9577b76eb835cf6ecc79d2384d36d174d2e9d8f758b5082c0c4bf8f66b5c6db4e9805dc3fc9ee1a"src: "https://github.com/ocaml/odoc/releases/download/2.1.0/odoc-2.1.0.tbz"["dune" "subst"] {dev}"ocamlfind" {with-test}"yojson" {with-test}("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})"conf-jq" {with-test}"ppx_expect" {with-test}"bos" {with-test}"bisect_ppx" {dev & > "2.5.0"}("ocaml" {< "4.03.0" & dev} | "mdx" {dev})"fmt""ocaml" {>= "4.02.0"}"cmdliner" {>= "1.0.0"}"cppo" {build & >= "1.1.0"}"dune" {>= "2.9.1"}"odoc-parser" {>= "0.9.0"}maintainer: "Jon Ludlam <jon@recoil.org>""Jules Aguillon <juloo.dsi@gmail.com>""Lubega Simon <lubegasimon73@gmail.com>"
opam-version: "2.0"synopsis: "Auto-formatter for OCaml code"description:"OCamlFormat is a tool to automatically format OCaml code in a uniform style."authors: ["Josh Berdine <jjb@fb.com>"]homepage: "https://github.com/ocaml-ppx/ocamlformat"bug-reports: "https://github.com/ocaml-ppx/ocamlformat/issues"depends: ["alcotest" {with-test}"dune-build-info""fix""fpath""uuseg" {>= "10.0.0"}"uutf" {>= "1.0.1"}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-ppx/ocamlformat.git"url {src:checksum: []}x-commit-hash: "63e478f1186a03c7e4dfeeb39b3d8fe2ef1cb429" # OCamlFormat is distributed under the MIT license. Parts of the OCaml library are vendored for OCamlFormat and distributed under their original LGPL 2.1 license"sha256=2a1817f6bc581ff0cce9f0aa9687b897b02726e2ab75749ee98d57637057332d""sha512=db47f843bfc5a438d43f7c482cde86bd13f05a6825e2a0afa80614b651a88ae8b3805cca45da6bcf9189e741e0c79d38652b0bc47efe636c1502a66676dcb28e""https://github.com/ocaml-ppx/ocamlformat/releases/download/0.21.0/ocamlformat-0.21.0.tbz"license: ["MIT" "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"]"odoc" {with-doc}"re" {>= "1.7.2"}"stdio""menhir" {>= "20201216"}"menhirLib" {>= "20201216"}"menhirSdk" {>= "20201216"}"ocaml-version" {>= "3.3.0"}"ocp-indent""odoc-parser" {>= "1.0.0"}"either""base" {>= "v0.12.0"}"cmdliner" {>= "1.1.0"}"dune" {>= "2.8"}"dune" {with-test & < "3.0"}"ocaml" {>= "4.08" & < "4.15"}maintainer: ["OCamlFormat Team <ocamlformat-dev@lists.ocaml.org>"]
opam-version: "2.0"maintainer: "Gabriel Scherer <gabriel.scherer@gmail.com>"authors: ["Nicolas Pouillard" "Berke Durak"]homepage: "https://github.com/ocaml/ocamlbuild/"bug-reports: "https://github.com/ocaml/ocamlbuild/issues"build: [[make"-f""configure.make""all""OCAMLBUILD_PREFIX=%{prefix}%""OCAMLBUILD_BINDIR=%{bin}%""OCAMLBUILD_LIBDIR=%{lib}%""OCAMLBUILD_MANDIR=%{man}%""OCAML_NATIVE=%{ocaml:native}%""OCAML_NATIVE_TOOLS=%{ocaml:native}%"][make "check-if-preinstalled" "all" "opam-install"]]url {src: "https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.14.1.tar.gz"checksum: ["md5=7027e507ed85f290923ad198f3d2cd1c""sha512=1f5b43215b1d3dc427b9c64e005add9d423ed4bca9686d52c55912df8955647cb2d7d86622d44b41b14c4f0d657b770c27967c541c868eeb7c78e3bd35b827ad"]}dev-repo: "git+https://github.com/ocaml/ocamlbuild.git"depends: ["ocaml" {>= "4.03"}]conflicts: ["base-ocamlbuild""ocamlfind" {< "1.6.2"}]doc: "https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc"license: "LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception"synopsis:"OCamlbuild is a build system with builtin rules to easily build most OCaml projects"
opam-version: "2.0"synopsis: "LSP Server for OCaml"description: "An LSP server for OCaml."maintainer: ["Rudi Grinberg <me@rgrinerg.com>"]authors: ["Andrey Popp <8mayday@gmail.com>""Rusty Key <iam@stfoo.ru>""Louis Roché <louis@louisroche.net>""Oleksiy Golovko <alexei.golovko@gmail.com>""Rudi Grinberg <me@rgrinberg.com>""Sacha Ayoun <sachaayoun@gmail.com>""cannorin <cannorin@gmail.com>"]license: "ISC"homepage: "https://github.com/ocaml/ocaml-lsp"bug-reports: "https://github.com/ocaml/ocaml-lsp/issues"depends: ["yojson""dune-build-info""result" {>= "1.5"}"odoc" {with-doc}]dev-repo: "git+https://github.com/ocaml/ocaml-lsp.git"build: [["dune" "subst"] {dev}["dune""build""-j"jobs"ocaml-lsp-server.install""--release"]]url {src:checksum: []}x-commit-hash: "16a83262b0964b4c82db43f6c7a81dd6526b703d""sha256=7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9""sha512=591fcf1fd2308b56ca2b5f60383d9a24e59aea49bf0dfe4f3b3e1d3a44f0537be07c650523e7f229122c7914fca78bccaafd01c5f79793e38617959f1bcfc7e1""https://github.com/ocaml/ocaml-lsp/releases/download/1.9.0/jsonrpc-1.9.0.tbz""ocaml" {>= "4.12" & < "4.13"}"ocamlformat-rpc-lib" {>= "0.18.0" & < "0.20.0"}"spawn""pp" {>= "1.1.2"}"csexp" {>= "1.5"}"re" {>= "1.5.0"}"ppx_yojson_conv_lib" {>= "v0.14"}"dune" {>= "2.9"}"Ulugbek Abdullaev <ulugbekna@gmail.com>""Thibaut Mattio <thibaut.mattio@gmail.com>""Max Lantas <mnxndev@outlook.com>"
opam-version: "2.0"synopsis:"The legacy Num library for arbitrary-precision integer and rational arithmetic"maintainer: "Xavier Leroy <xavier.leroy@inria.fr>"authors: ["Valérie Ménissier-Morain" "Pierre Weis" "Xavier Leroy"]license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"homepage: "https://github.com/ocaml/num/"bug-reports: "https://github.com/ocaml/num/issues"depends: ["ocaml" {>= "4.06.0"}"ocamlfind" {build & >= "1.7.3"}]conflicts: ["base-num"]build: makeinstall: [["ocamlfind" "remove" "num"]["ocamlfind" "remove" "num-top"][make"install" {!ocaml:preinstalled}"findlib-install" {ocaml:preinstalled}]]dev-repo: "git+https://github.com/ocaml/num.git"url {src: "https://github.com/ocaml/num/archive/v1.4.tar.gz"checksum: ["md5=cda2b727e116a0b6a9c03902cc4b2415""sha512=0cc9be8ad95704bb683b4bf6698bada1ee9a40dc05924b72adc7b969685c33eeb68ccf174cc09f6a228c48c18fe94af06f28bebc086a24973a066da620db8e6f"]}
opam-version: "2.0"maintainer: "mirageos-devel@lists.xenproject.org"authors: [ "Thomas Gazagnaire""Anil Madhavapeddy" "Calascibetta Romain""Peter Zotov" ]license: "ISC"homepage: "https://github.com/mirage/ocaml-base64"doc: "http://mirage.github.io/ocaml-base64/"bug-reports: "https://github.com/mirage/ocaml-base64/issues"dev-repo: "git+https://github.com/mirage/ocaml-base64.git"synopsis: "Base64 encoding for OCaml"description: """Base64 is a group of similar binary-to-text encoding schemes that representbinary data in an ASCII string format by translating it into a radix-64representation. It is specified in RFC 4648."""depends: ["ocaml" {>= "4.03.0"}"dune" {>= "2.0"}"bos" {with-test}"rresult" {with-test}"alcotest" {with-test}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]x-commit-hash: "3a5e259895acef979a0fab8bb59d396e1bccead0"url {src:"https://github.com/mirage/ocaml-base64/releases/download/v3.5.0/base64-v3.5.0.tbz"checksum: ["sha256=589de9c00578ebfe784198ac9818d3586c474b2316b6cd3e1c46ccb1f62ae3a4""sha512=82efc76ca75717dbd533eac20845ca8731f535233f6a3e6081114d7e3dc7ee8367ded16f402ef05ad0bf1217a3a6224161c92b9467023e44fc7f3598a314a432"]}
opam-version: "2.0"maintainer: "jeremie@dimino.org"authors: ["Jérémie Dimino <jeremie@dimino.org>" "Anton Bachin" ]homepage: "https://github.com/mirage/mmap"bug-reports: "https://github.com/mirage/mmap/issues"doc: "https://mirage.github.io/mmap/"dev-repo: "git+https://github.com/mirage/mmap.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["dune" {>= "1.6"}]synopsis: "File mapping functionality"description: """This project provides a Mmap.map_file functions for mapping files in memory."""url {src:}x-commit-hash: "b5efb79871d290072a17f755566c8288cf069e4f""https://github.com/mirage/mmap/releases/download/v1.2.0/mmap-1.2.0.tbz"checksum: ["sha256=1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb""sha512=474a70b0de57bb31f56fe3a9e410dcc482d3c0abd791809cf103273a7ce347d6d23912920f66d60e95d1113c3ec023f2903bc0f71150a1a9eb49c24928bf7bb2"]"bigarray-compat""ocaml" {>= "4.02.3"}license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "mirageos-devel@lists.xenproject.org"authors: ["mirageos-devel@lists.xenproject.org"]homepage: "https://mirage.io"license: "BSD-2-Clause"conflicts: [ "mirage-xen" ]synopsis: "Virtual package conflicting with mirage-xen"depends: ["ocaml"]
opam-version: "2.0"maintainer: "mirageos-devel@lists.xenproject.org"authors: ["mirageos-devel@lists.xenproject.org"]homepage: "https://mirage.io"license: "BSD-2-Clause"conflicts: [ "mirage-solo5" ]synopsis: "Virtual package conflicting with mirage-solo5"depends: ["ocaml"]
opam-version: "2.0"homepage: "https://github.com/mirage/mirage-crypto"dev-repo: "git+https://github.com/mirage/mirage-crypto.git"bug-reports: "https://github.com/mirage/mirage-crypto/issues"doc: "https://mirage.github.io/mirage-crypto/doc"authors: ["David Kaloper <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]maintainer: "Hannes Mehnert <hannes@mehnert.org>"license: "ISC"synopsis: "Simple symmetric cryptography for the modern age"build: [ ["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs ]["dune" "runtest" "-p" name "-j" jobs] {with-test} ]depends: ["conf-pkg-config" {build}"ocaml" {>= "4.08.0"}"dune" {>= "2.6"}"dune-configurator" {>= "2.0.0"}"ounit2" {with-test}"cstruct" {>="6.0.0"}"eqaf" {>= "0.8"}]depopts: ["ocaml-freestanding"]conflicts: ["mirage-xen" {< "6.0.0"}"ocaml-freestanding" {< "0.6.0"}]description: """Mirage-crypto provides symmetric ciphers (DES, AES, RC4, ChaCha20/Poly1305), andhashes (MD5, SHA-1, SHA-2)."""url {src:"https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz"checksum: ["sha256=01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410""sha512=870b7d0d32acde970afcd3fac2cb51131ac74bb20c887d07ddfccd239467a5dc8b700adf463427fa916393c503f106feb733cba5bf4b9d1f8eb57f52b5af9f9c"]}x-commit-hash: "cb946119d60f180e2e5ff1eecfa3ff79c249cd9e"
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["The astring programmers"]homepage: "https://erratique.ch/software/astring"doc: "https://erratique.ch/software/astring/doc"dev-repo: "git+http://erratique.ch/repos/astring.git"bug-reports: "https://github.com/dbuenzli/astring/issues"tags: [ "string" "org:erratique" ]license: "ISC"depends: ["ocaml" {>= "4.05.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build} ]build: [[ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" ]]synopsis: """Alternative String module for OCaml"""description: """\Astring exposes an alternative `String` module for OCaml. This moduletries to balance minimality and expressiveness for basic, index-free,string processing and provides types and functions for substrings,string sets and string maps.Remaining compatible with the OCaml `String` module is a non-goal. The`String` module exposed by Astring has exception safe functions,removes deprecated and rarely used functions, alters some signaturesand names, adds a few missing functions and fully exploits OCaml'snewfound string immutability.Astring depends only on the OCaml standard library. It is distributedunder the ISC license."""url {archive: "https://erratique.ch/software/astring/releases/astring-0.8.5.tbz"checksum: "e148907c24157d1df43bec89b58b3ec8"}
opam-version: "2.0"homepage: "https://github.com/mirage/mirage-crypto"dev-repo: "git+https://github.com/mirage/mirage-crypto.git"bug-reports: "https://github.com/mirage/mirage-crypto/issues"doc: "https://mirage.github.io/mirage-crypto/doc"authors: ["David Kaloper <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]maintainer: "Hannes Mehnert <hannes@mehnert.org>"license: "ISC"synopsis: "A cryptographically secure PRNG"build: [ ["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs ]["dune" "runtest" "-p" name "-j" jobs] {with-test} ]depends: ["ocaml" {>= "4.08.0"}"dune" {>= "2.6"}"dune-configurator" {>= "2.0.0"}"duration""cstruct" {>= "6.0.0"}"logs""mirage-crypto" {=version}"ounit2" {with-test}"randomconv" {with-test & >= "0.1.3"}# lwt sublibrary"mtime" {>= "1.0.0"}"lwt" {>= "4.0.0"}]conflicts: [ "mirage-runtime" {< "3.8.0"} ]description: """Mirage-crypto-rng provides a random number generator interface, andimplementations: Fortuna, HMAC-DRBG, getrandom/getentropy based (in the unixsublibrary)"""url {src:"https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz"checksum: ["sha256=01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410""sha512=870b7d0d32acde970afcd3fac2cb51131ac74bb20c887d07ddfccd239467a5dc8b700adf463427fa916393c503f106feb733cba5bf4b9d1f8eb57f52b5af9f9c"]}x-commit-hash: "cb946119d60f180e2e5ff1eecfa3ff79c249cd9e"
opam-version: "2.0"maintainer: "Spiros Eliopoulos <spiros@inhabitedtype.com>"authors: [ "Spiros Eliopoulos <spiros@inhabitedtype.com>" ]license: "BSD-3-clause"homepage: "https://github.com/inhabitedtype/angstrom"bug-reports: "https://github.com/inhabitedtype/angstrom/issues"dev-repo: "git+https://github.com/inhabitedtype/angstrom.git"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.04.0"}"dune" {>= "1.8"}"alcotest" {with-test & >= "0.8.1"}"bigstringaf""result""ppx_let" {with-test & >= "0.14.0"}"ocaml-syntax-shims" {build}]synopsis: "Parser combinators built for speed and memory-efficiency"description: """Angstrom is a parser-combinator library that makes it easy to write efficient,expressive, and reusable parsers suitable for high-performance applications. Itexposes monadic and applicative interfaces for composition, and supportsincremental input through buffered and unbuffered interfaces. Both interfacesgive the user total control over the blocking behavior of their application,with the unbuffered interface enabling zero-copy IO. Parsers are backtracking bydefault and support unbounded lookahead."""url {src: "https://github.com/inhabitedtype/angstrom/archive/0.15.0.tar.gz"checksum: "md5=5104768c404ea92fd0a53a5b0f75cd50"}["dune" "subst"] {dev}
opam-version: "2.0"homepage: "https://github.com/mirage/mirage-crypto"dev-repo: "git+https://github.com/mirage/mirage-crypto.git"bug-reports: "https://github.com/mirage/mirage-crypto/issues"doc: "https://mirage.github.io/mirage-crypto/doc"authors: ["David Kaloper <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]maintainer: "Hannes Mehnert <hannes@mehnert.org>"license: "ISC"synopsis: "Simple public-key cryptography for the modern age"build: [ ["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs ]["dune" "runtest" "-p" name "-j" jobs] {with-test} ]depends: ["conf-gmp-powm-sec" {build}"ocaml" {>= "4.08.0"}"dune" {>= "2.6"}"ounit2" {with-test}"randomconv" {with-test & >= "0.1.3"}"cstruct" {>="6.00"}"mirage-crypto" {=version}"mirage-crypto-rng" {=version}"sexplib0""zarith" {>= "1.4"}"eqaf" {>= "0.8"}(("mirage-no-solo5" & "mirage-no-xen") | "zarith-freestanding" | "mirage-runtime" {>= "4.0"})]conflicts: ["mirage-xen" {< "6.0.0"}]description: """Mirage-crypto-pk provides public-key cryptography (RSA, DSA, DH)."""url {src:"https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz"checksum: ["sha256=01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410""sha512=870b7d0d32acde970afcd3fac2cb51131ac74bb20c887d07ddfccd239467a5dc8b700adf463427fa916393c503f106feb733cba5bf4b9d1f8eb57f52b5af9f9c"]}x-commit-hash: "cb946119d60f180e2e5ff1eecfa3ff79c249cd9e"
opam-version: "2.0"synopsis: "Elliptic Curve Cryptography with primitives taken from Fiat"description: """An implementation of key exchange (ECDH) and digital signature (ECDSA/EdDSA)algorithms using code from Fiat (<https://github.com/mit-plv/fiat-crypto>).The curves P224 (SECP224R1), P256 (SECP256R1), P384 (SECP384R1),P521 (SECP521R1), and 25519 (X25519, Ed25519) are implemented by this package."""maintainer: "Hannes Mehnert <hannes@mehnert.org>"authors: ["Hannes Mehnert <hannes@mehnert.org>""Nathan Rebours <nathan.p.rebours@gmail.com>""Clément Pascutto <clement@tarides.com>""Etienne Millon <me@emillon.org>"# and from the fiat-crypto AUTHORS file"Andres Erbsen <andreser@mit.edu>""Google Inc.""Jade Philipoom <jadep@mit.edu> <jade.philipoom@gmail.com>""Massachusetts Institute of Technology""Zoe Paraskevopoulou <zoe.paraskevopoulou@gmail.com>"]license: "MIT"homepage: "https://github.com/mirage/mirage-crypto"doc: "https://mirage.github.io/mirage-crypto/doc"bug-reports: "https://github.com/mirage/mirage-crypto/issues"depends: ["conf-pkg-config" {build}"dune" {>= "2.6"}"ocaml" {>= "4.08.0"}"cstruct" {>= "6.0.0"}"dune-configurator""eqaf" {>= "0.7"}"mirage-crypto" {=version}"mirage-crypto-rng" {=version}"mirage-crypto-pk" {with-test & =version}"hex" {with-test}"alcotest" {with-test}"asn1-combinators" {with-test & >= "0.2.5"}"ppx_deriving_yojson" {with-test}"ppx_deriving" {with-test}"yojson" {with-test & >= "1.6.0"}]depopts: ["ocaml-freestanding"]conflicts: ["mirage-xen" {< "6.0.0"}"ocaml-freestanding" {< "0.4.1"}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/mirage/mirage-crypto.git"tags: ["org:mirage"]url {src:"https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz"checksum: ["sha256=01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410""sha512=870b7d0d32acde970afcd3fac2cb51131ac74bb20c887d07ddfccd239467a5dc8b700adf463427fa916393c503f106feb733cba5bf4b9d1f8eb57f52b5af9f9c"]}x-commit-hash: "cb946119d60f180e2e5ff1eecfa3ff79c249cd9e"
opam-version: "2.0"synopsis: "ISO 8601 and RFC 3999 date parsing for OCaml"maintainer: ["c-cube" "ocaml-community"]authors: "Julien Sagot"homepage: "http://github.com/ocaml-community/ISO8601.ml/"doc: "http://ocaml-community.github.io/ISO8601.ml/"bug-reports: "https://github.com/ocaml-community/ISO8601.ml/issues"depends: ["dune" {>= "1.0"}"base-unix""ocaml" {>= "3.12.1"}"odoc" {with-doc}"ounit" {with-test}]build: [["dune" "build" "-p" name "-j" jobs]["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}]dev-repo: "git+https://github.com/ocaml-community/ISO8601.ml.git"url {src: "https://github.com/ocaml-community/ISO8601.ml/archive/0.2.6.tar.gz"checksum: ["md5=a460f01d409d51b7d537429881bfa276""sha512=82b5cbbb636346e8d010ee569c0fad2f00bef31c3177cfee80fc02a081c5fcfb7880bf2670fe4f46423e3ae99370626c7efffc9d332cae5cbd6377c975517b3f"]}
opam-version: "2.0"maintainer: "anil@recoil.org"authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"]synopsis: "A library for manipulation of MAC address representations"license: "ISC"tags: ["org:mirage" "org:xapi-project"]homepage: "https://github.com/mirage/ocaml-ipaddr"doc: "https://mirage.github.io/ocaml-ipaddr/"bug-reports: "https://github.com/mirage/ocaml-ipaddr/issues"depends: ["ocaml" {>= "4.04.0"}"dune" {>= "1.9.0"}"ounit" {with-test}"ppx_sexp_conv" {with-test & >= "v0.9.0"}]conflicts: ["ipaddr" {< "3.0.0"}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"description: """A library for manipulation of MAC address representations.Features:* oUnit-based tests* MAC-48 (Ethernet) address support* `Macaddr` is a `Map.OrderedType`* All types have sexplib serializers/deserializers optionally via the `Macaddr_sexp` library."""url {src:"https://github.com/mirage/ocaml-ipaddr/releases/download/v5.3.0/ipaddr-5.3.0.tbz"checksum: ["sha256=36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755""sha512=06b16e319672c8182210296ed005accd9a4e190f99bd019f24232e213be8de6d198f9e8cb40ee00ec226184e1dd4ebd7e589d890b1f88f40f17eaf785dae975c"]}x-commit-hash: "842b88da1b699f8c087e15696f76f6e0f47055c8"
opam-version: "2.0"synopsis: "Helpers for using React with Lwt"license: "MIT"homepage: "https://github.com/ocsigen/lwt"doc: "https://ocsigen.org/lwt/dev/api/Lwt_react"bug-reports: "https://github.com/ocsigen/lwt/issues"authors: ["Jérémie Dimino"]maintainer: ["Anton Bachin <antonbachin@yahoo.com>"]dev-repo: "git+https://github.com/ocsigen/lwt.git"depends: ["dune" {>= "1.8.0"}"lwt" {>= "3.0.0"}"ocaml""react" {>= "1.0.0"}]build: [["dune" "build" "-p" name "-j" jobs]]url {src: "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz"checksum: ["md5=94272fac89c5bf21a89c102b8a8f35a5""sha512=8951b94555e930634375816d71815b9d85daad6ffb7dab24864661504d11be26575ab0b237196c54693efa372a9b69cdc1d5068a20a250dc0bbb4a3c03c5fda1"]}
opam-version: "2.0"synopsis: "PPX syntax for Lwt, providing something similar to async/await from JavaScript"license: "MIT"homepage: "https://github.com/ocsigen/lwt"doc: "https://ocsigen.org/lwt/dev/api/Ppx_lwt"bug-reports: "https://github.com/ocsigen/lwt/issues"authors: ["Gabriel Radanne"]maintainer: ["Anton Bachin <antonbachin@yahoo.com>"]dev-repo: "git+https://github.com/ocsigen/lwt.git"depends: ["dune" {>= "1.8.0"}"lwt""ocaml" {>= "4.02.0"}"ppxlib" {>= "0.16.0"}]build: [["dune" "build" "-p" name "-j" jobs]]url {src: "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz"checksum: ["md5=94272fac89c5bf21a89c102b8a8f35a5""sha512=8951b94555e930634375816d71815b9d85daad6ffb7dab24864661504d11be26575ab0b237196c54693efa372a9b69cdc1d5068a20a250dc0bbb4a3c03c5fda1"]}
opam-version: "2.0"license: "MIT"homepage: "https://github.com/ocsigen/lwt"doc: "https://ocsigen.org/lwt"bug-reports: "https://github.com/ocsigen/lwt/issues"depends: ["cppo" {build & >= "1.1.0"}"dune" {>= "1.8.0"}"dune-configurator"("ocaml" {>= "4.08.0"} | "ocaml-syntax-shims")"ocplib-endian""ocamlfind" {dev & >= "1.7.3-1"}]conflicts: ["ocaml-variants" {= "4.02.1+BER"}]build: [["dune" "build" "-p" name "-j" jobs]]url {checksum: []}"md5=94272fac89c5bf21a89c102b8a8f35a5""sha512=8951b94555e930634375816d71815b9d85daad6ffb7dab24864661504d11be26575ab0b237196c54693efa372a9b69cdc1d5068a20a250dc0bbb4a3c03c5fda1"src: "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz"description: "A promise is a value that may become determined in the future.Lwt provides typed, composable promises. Promises that are resolved by I/O areresolved by Lwt in parallel.Meanwhile, OCaml code, including code creating and waiting on promises, runs ina single thread by default. This reduces the need for locks or othersynchronization primitives. Code can be run in parallel on an opt-in basis."["dune" "exec" "-p" name "src/unix/config/discover.exe" "--" "--save""--use-libev" "%{conf-libev:installed}%"]depopts: ["base-threads""base-unix""conf-libev"]"result" # result is needed as long as Lwt supports OCaml 4.02."seq" # seq is needed as long as Lwt supports OCaml < 4.07.0.# Until https://github.com/aantron/bisect_ppx/pull/327.# "bisect_ppx" {dev & >= "2.0.0"}"mmap" {>= "1.1.0" & "os" != "win32"} # mmap is needed as long as Lwt supports OCaml < 4.06.0."ocaml" {>= "4.02.0" & "os" != "win32 " | >= "4.06.0"}authors: ["Jérôme Vouillon""Jérémie Dimino"]maintainer: ["Raphaël Proust <code@bnwr.net>""Anton Bachin <antonbachin@yahoo.com>"]dev-repo: "git+https://github.com/ocsigen/lwt.git"synopsis: "Promises and event-driven I/O"
opam-version: "2.0"synopsis: "Helpers for interfacing Luv and Unix"license: "MIT"homepage: "https://github.com/aantron/luv"doc: "https://aantron.github.io/luv"bug-reports: "https://github.com/aantron/luv/issues"authors: "Anton Bachin <antonbachin@yahoo.com>"maintainer: "Anton Bachin <antonbachin@yahoo.com>"dev-repo: "git+https://github.com/aantron/luv.git"depends: ["base-unix""dune" {>= "2.0.0"}"luv" {>= "0.5.8"} # uv.h."ctypes" {>= "0.14.0"}"ocaml" {>= "4.02.0"}"result"]build: [["dune" "build" "-p" name "-j" jobs]]url {src: "https://github.com/aantron/luv/releases/download/0.5.11/luv-0.5.11.tar.gz"checksum: "md5=efe61a4b4725d59901984022c02ef698"}
opam-version: "2.0"synopsis: "Binding to libuv: cross-platform asynchronous I/O"license: "MIT"homepage: "https://github.com/aantron/luv"doc: "https://aantron.github.io/luv"bug-reports: "https://github.com/aantron/luv/issues"authors: "Anton Bachin <antonbachin@yahoo.com>"maintainer: "Anton Bachin <antonbachin@yahoo.com>"dev-repo: "git+https://github.com/aantron/luv.git"depends: ["base-unix" {build}"ctypes" {>= "0.14.0"}"dune" {>= "2.0.0"}"ocaml" {>= "4.02.0"}"result""alcotest" {with-test & >= "0.8.1"}"base-unix" {with-test}"odoc" {with-doc & = "1.5.2"}]build: [["dune" "build" "-p" name "-j" jobs]]description: "Luv is a binding to libuv, the cross-platform C library that doesasynchronous I/O in Node.js and runs its main loop.Besides asynchronous I/O, libuv also supports multiprocessing andmultithreading. Multiple event loops can be run in different threads. libuv alsoexposes a lot of other functionality, amounting to a full OS API, and analternative to the standard module Unix."url {}src: "https://github.com/aantron/luv/releases/download/0.5.11/luv-0.5.11.tar.gz"checksum: "md5=efe61a4b4725d59901984022c02ef698"
opam-version: "2.0"maintainer: "David Kaloper Meršinjak <dk505@cam.ac.uk>"authors: ["David Kaloper Meršinjak <dk505@cam.ac.uk>"]homepage: "https://github.com/pqwy/lru"doc: "https://pqwy.github.io/lru/doc"license: "ISC"dev-repo: "git+https://github.com/pqwy/lru.git"bug-reports: "https://github.com/pqwy/lru/issues"synopsis: "Scalable LRU caches"build: [ [ "dune" "subst" ] {dev}[ "dune" "build" "-p" name "-j" jobs ][ "dune" "runtest" "-p" name ] {with-test} ]depends: ["ocaml" {>="4.03.0"}"dune" {>= "1.7"}"psq" {>="0.2.0"}"qcheck-core" {with-test}"qcheck-alcotest" {with-test}"alcotest" {with-test}]description: """Lru provides weight-bounded finite maps that can remove the least-recently-used(LRU) bindings in order to maintain a weight constraint."""url {src: "https://github.com/pqwy/lru/releases/download/v0.3.0/lru-v0.3.0.tbz"checksum: "md5=ecaa8c9f5f708879140961ce35bcdba4"}
opam-version: "2.0"maintainer: "Romain Calascibetta <romain.calascibetta@gmail.com>"authors: "Romain Calascibetta <romain.calascibetta@gmail.com>"homepage: "https://github.com/mirage/ke"bug-reports: "https://github.com/mirage/ke/issues"dev-repo: "git+https://github.com/mirage/ke.git"doc: "https://mirage.github.io/ke/"license: "MIT"synopsis: "Queue implementation"description: """Queue implementation in OCaml (functional and imperative queue)"""build: [ "dune" "build" "-p" name "-j" jobs ]run-test: [ "dune" "runtest" "-p" name "-j" jobs ]depends: []url {checksum: []}x-commit-hash: "7678aee5921580378f543a11101b2b0118f2cf6c""sha256=61217207e2200b04b17759736610ff9208269a647f854cb5ae72cdac0d672305""sha512=be277780a7a6c9109068b6c8d54fa88c35180802ff86951516a32a6b7c0335fd6584753d1c670e02632b3956c09ae31bfec70e3dd5ea94697e9e032ba3b9248b"src: "https://github.com/mirage/ke/releases/download/v0.6/ke-0.6.tbz""ocaml" {>= "4.08.0"}"dune" {>= "2.0"}"fmt" {>= "0.8.7"}"alcotest" {with-test}"bigstringaf" {with-test}"bechamel" {with-test}"bechamel-notty" {with-test}"bechamel-perf" {with-test}"ocplib-json-typed" {with-test}"core_bench" {with-test & >= "v0.15"}"lwt" {with-test}"crowbar" {with-test}"rresult" {with-test}"jsonm" {with-test}"psq" {with-test}"cmdliner" {>= "1.1.0" & with-test}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/jst-config"bug-reports: "https://github.com/janestreet/jst-config/issues"dev-repo: "git+https://github.com/janestreet/jst-config.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/jst-config/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"ppx_assert" {>= "v0.14" & < "v0.15"}"stdio" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"dune-configurator"]synopsis: "Compile-time configuration for Jane Street libraries"description: "Defines compile-time constants used in Jane Street libraries such as Base, Core, andAsync.This package has an unstable interface; it is intended only to share configuration betweendifferent packages from Jane Street. Future updates may not be backward-compatible, and wedo not recommend using this package directly."url {src: "https://github.com/janestreet/jst-config/archive/refs/tags/v0.14.1.tar.gz"checksum: "md5=ca0d970356cc99b0a5660058a93ff589"}
opam-version: "2.0"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]homepage: "https://github.com/janestreet/jane-street-headers"bug-reports: "https://github.com/janestreet/jane-street-headers/issues"dev-repo: "git+https://github.com/janestreet/jane-street-headers.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/jane-street-headers/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"dune" {>= "2.0.0"}]synopsis: "Jane Street C header files"description: "C header files shared between the various Jane Street packages"url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/jane-street-headers-v0.14.0.tar.gz"checksum: "md5=e8d253ac44d25c8c66367153a0c77495"}
opam-version: "2.0"authors: ["Simon Cruanes" "Gabriel Radanne"]maintainer: "simon.cruanes.2007@m4x.org"license: "BSD-2-clause"synopsis: "Simple abstraction over `iter` functions, intended to iterate efficiently on collections while performing some transformations"build: [["dune" "build" "@install" "-p" name "-j" jobs]["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}["dune" "runtest" "-p" name "-j" jobs] {with-test & arch != "arm32" & arch != "x86_32"}]depends: ["base-bytes""result""ocaml" { >= "4.03.0" }"dune" { >= "1.1" }"dune-configurator""qcheck" {with-test}"qtest" {with-test}"mdx" {with-test & >= "1.3" }"odoc" {with-doc}]tags: [ "iter" "iterator" "iter" "fold" ]homepage: "https://github.com/c-cube/iter/"depopts: ["base-bigarray"]doc: "https://c-cube.github.io/iter/doc/"bug-reports: "https://github.com/c-cube/iter/issues"dev-repo: "git+https://github.com/c-cube/iter.git"url {src: "https://github.com/c-cube/sequence/archive/v1.4.tar.gz"checksum: ["md5=24b1ea680cd2f8d3ee664ea21837e58b""sha512=8bcb6ddaab69aa18a8489a2287313227d59062fd554f70373a10bdbe1d1eabe4b199860223709fe7baa917d0d47aedeed895ed6d610a989ca540e00fe9cd135b"]}
opam-version: "2.0"maintainer: "anil@recoil.org"authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"]synopsis: "A library for manipulation of IP (and MAC) address representations"description: """Features:* Depends only on sexplib (conditionalization under consideration)* oUnit-based tests* IPv4 and IPv6 support* IPv4 and IPv6 CIDR prefix support* IPv4 and IPv6 [CIDR-scoped address](http://tools.ietf.org/html/rfc4291#section-2.3) support* `Ipaddr.V4` and `Ipaddr.V4.Prefix` modules are `Map.OrderedType`* `Ipaddr.V6` and `Ipaddr.V6.Prefix` modules are `Map.OrderedType`* `Ipaddr` and `Ipaddr.Prefix` modules are `Map.OrderedType`* `Ipaddr_unix` in findlib subpackage `ipaddr.unix` provides compatibility with the standard library `Unix` module* `Ipaddr_top` in findlib subpackage `ipaddr.top` provides top-level pretty printers (requires compiler-libs default since OCaml 4.0)* IP address scope classification* IPv4-mapped addresses in IPv6 (::ffff:0:0/96) are an embedding of IPv4* MAC-48 (Ethernet) address support* `Macaddr` is a `Map.OrderedType`* All types have sexplib serializers/deserializers"""license: "ISC"tags: ["org:mirage" "org:xapi-project"]homepage: "https://github.com/mirage/ocaml-ipaddr"doc: "https://mirage.github.io/ocaml-ipaddr/"bug-reports: "https://github.com/mirage/ocaml-ipaddr/issues"depends: ["ocaml" {>= "4.04.0"}"dune" {>= "1.9.0"}"macaddr" {= version}"stdlib-shims""domain-name" {>= "0.3.0"}"ounit" {with-test}"ppx_sexp_conv" {with-test & >= "v0.9.0"}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"url {src:"https://github.com/mirage/ocaml-ipaddr/releases/download/v5.3.0/ipaddr-5.3.0.tbz"checksum: ["sha256=36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755""sha512=06b16e319672c8182210296ed005accd9a4e190f99bd019f24232e213be8de6d198f9e8cb40ee00ec226184e1dd4ebd7e589d890b1f88f40f17eaf785dae975c"]}x-commit-hash: "842b88da1b699f8c087e15696f76f6e0f47055c8"
opam-version: "2.0"maintainer: "anil@recoil.org"authors: ["David Sheets" "Anil Madhavapeddy" "Hugo Heuzard"]synopsis: "A library for manipulation of IP address representations using sexp"description: """Sexp convertions for ipaddr"""license: "ISC"tags: ["org:mirage" "org:xapi-project"]homepage: "https://github.com/mirage/ocaml-ipaddr"doc: "https://mirage.github.io/ocaml-ipaddr/"bug-reports: "https://github.com/mirage/ocaml-ipaddr/issues"depends: ["ocaml" {>= "4.04.0"}"dune" {>= "1.9.0"}"ipaddr" {= version}"ipaddr-cstruct" {with-test & = version}"ounit" {with-test}"ppx_sexp_conv" {>= "v0.9.0"}"sexplib0"]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/mirage/ocaml-ipaddr.git"url {src:"https://github.com/mirage/ocaml-ipaddr/releases/download/v5.3.0/ipaddr-5.3.0.tbz"checksum: ["sha256=36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755""sha512=06b16e319672c8182210296ed005accd9a4e190f99bd019f24232e213be8de6d198f9e8cb40ee00ec226184e1dd4ebd7e589d890b1f88f40f17eaf785dae975c"]}x-commit-hash: "842b88da1b699f8c087e15696f76f6e0f47055c8"
opam-version: "2.0"maintainer: "yallop@gmail.com"authors: ["Jeremy Yallop""Demi Obenour""Stephane Glondu""Andreas Hauptmann"]homepage: "https://github.com/ocamllabs/ocaml-integers"bug-reports: "https://github.com/ocamllabs/ocaml-integers/issues"dev-repo: "git+https://github.com/ocamllabs/ocaml-integers.git"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: []doc: "http://ocamllabs.github.io/ocaml-integers/api.docdir/"synopsis: "Various signed and unsigned integer types for OCaml"url {}src: "https://github.com/ocamllabs/ocaml-integers/archive/0.7.0.tar.gz"checksum: "md5=201cf24143d7cb9a3921d572b6e6c42c""ocaml" {>= "4.03"}"dune" {>= "1.0"}"stdlib-shims"["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Romain Calascibetta <romain.calascibetta@gmail.com>"authors: "Romain Calascibetta <romain.calascibetta@gmail.com>"homepage: "https://github.com/dinosaure/hxd"bug-reports: "https://github.com/dinosaure/hxd/issues"dev-repo: "git+https://github.com/dinosaure/hxd.git"doc: "https://dinosaure.github.io/hxd/"license: "MIT"synopsis: "Hexdump in OCaml"description: """Please, help me to debug ocaml-git"""build: [[ "dune" "build" "-p" name "-j" jobs ][ "dune" "runtest" "-p" name "-j" jobs ] {with-test}]depends: ["dune" {>= "2.7"}"dune-configurator" {>= "2.7"}]depopts: ["lwt"]url {src:checksum: []}x-commit-hash: "9f4460bfe4528fec4700adfb1650e4970fcd44e6""sha256=a00290abb8538e79b32ddc22ed9b301b9806bc4c03eb1e5105b14af47dabec9f""sha512=1340fc747ef88b679e08e0b63f7b33f9ff6b7c5a03a03a029ba45be4f8837ebe22dc784e4e692074bfcc961b8709af9f586ed9f92bc936ae46bac0724c7b7a23""https://github.com/dinosaure/hxd/releases/download/v0.3.2/hxd-0.3.2.tbz""cmdliner" {>= "1.1.0"}"ocaml" {>= "4.08.0"}
opam-version: "2.0"maintainer: "Hannes Mehnert <hannes@mehnert.org>"authors: "Hannes Mehnert <hannes@mehnert.org>"license: "BSD-2-Clause"homepage: "https://github.com/hannesm/ocaml-hkdf"doc: "https://hannesm.github.io/ocaml-hkdf/doc"bug-reports: "https://github.com/hannesm/ocaml-hkdf/issues"depends: ["ocaml" {>= "4.07.0"}"dune""cstruct" {>= "3.2.0"}"mirage-crypto""alcotest" {with-test}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/hannesm/ocaml-hkdf.git"synopsis: "HMAC-based Extract-and-Expand Key Derivation Function (RFC 5869)"description: """An implementation of [HKDF](https://tools.ietf.org/html/rfc5869) using[nocrypto](https://github.com/mirleft/ocaml-nocrypto)."""url {src:"https://github.com/hannesm/ocaml-hkdf/releases/download/v1.0.4/hkdf-v1.0.4.tbz"checksum: ["sha256=b926d6da4ac45aab999735dd2bbfd1f7511316710d791afa361006b6fe36fd5b""sha512=d08e50857f7761572adc4d382975fde5808898c1d92d9e6e943a496cba8780ffabe1edf67844063b70d9727c0fe10b24391e001a3f65c978a5326ac82199cc88"]}
opam-version: "2.0"maintainer: "Hannes Mehnert <hannes@mehnert.org>"authors: "Hannes Mehnert <hannes@mehnert.org>"license: "ISC"homepage: "https://github.com/hannesm/gmap"doc: "https://hannesm.github.io/gmap/doc"bug-reports: "https://github.com/hannesm/gmap/issues"depends: ["ocaml" {>= "4.04.2"}"dune""alcotest" {with-test}"fmt" {with-test}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/hannesm/gmap.git"synopsis: "Heterogenous maps over a GADT"description: """Gmap exposes the functor `Make` which takes a key type (a[GADT](https://en.wikipedia.org/wiki/Generalized_algebraic_data_type) 'a key)and outputs a type-safe Map where each 'a key is associated with a 'a value.This removes the need for additional packing. It uses OCaml's stdlib[Map](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.html) datastructure."""url {src:"https://github.com/hannesm/gmap/releases/download/0.3.0/gmap-0.3.0.tbz"checksum: ["sha256=04dd9e6226ac8f8fb4ccb6021048702e34a482fb9c1d240d3852829529507c1c""sha512=71616981f5a15d6b2a47e18702083e52e81f6547076085b1489f676f50b0cc47c7c2c4fa19cb581e2878dc3d4f7133d0c50d8b51a8390be0e6e30318907d81d3"]}
opam-version: "2.0"synopsis: "Debug adapter for OCaml 4.11"maintainer: ["hackwaly@qq.com"]authors: ["hackwaly@qq.com"]homepage: "https://github.com/hackwaly/ocamlearlybird"bug-reports: "https://github.com/hackwaly/ocamlearlybird/issues"depends: ["dune" {>= "2.8"}"ocaml" {>= "4.11.0" & < "4.13"}"ppx_deriving" {>= "5.1"}"ppx_deriving_yojson" {>= "3.6.1"}"menhir" {>= "20201216" & build}"menhirLib" {>= "20201216"}"ocaml-compiler-libs" {>= "0.12.3"}"iter" {>= "1.2.1"}"lwt" {>= "5.4.0"}"lwt_ppx" {>= "2.0.1"}"lwt_react" {>= "1.1.3"}"cmdliner" {>= "1.0.4"}"logs" {>= "0.7.0"}"fmt" {>= "0.8.9"}"path_glob" {>= "0.2"}"sexplib" {>= "0.14.0"}"csexp" {>= "1.3.2"}"lru" {>= "0.3.0"}"dap" {>= "1.0.6"}"odoc" {with-doc}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/hackwaly/ocamlearlybird.git"x-commit-hash: "5f39f4d2f96aafb896ccd0ce494150f38f929b38"url {src:"https://github.com/hackwaly/ocamlearlybird/releases/download/1.1.0/earlybird-1.1.0.tbz"checksum: ["sha256=aae7257fa73a502ea808eb5c3f3bf9fa0218cedf43342289ca44f03b32839fdf""sha512=c1b3e24a52c8c6a4e757b9aae6b2d39131d65df401d35f7a35e175fc12d3ea964e92b7a28d24df6e5d026fd194460f994ba8cecf81fd41e8134f09a5e31973b1"]}
opam-version: "2.0"authors: ["The uuseg programmers"]homepage: "https://erratique.ch/software/uuseg"dev-repo: "git+https://erratique.ch/repos/uuseg.git"bug-reports: "https://github.com/dbuenzli/uuseg/issues"Uuseg is an OCaml library for segmenting Unicode text. It implementsthe locale independent [Unicode text segmentation algorithms][1] todetect grapheme cluster, word and sentence boundaries and the[Unicode line breaking algorithm][2] to detect line breakopportunities.The library is independent from any IO mechanism or Unicode text datastructure and it can process text without a complete in-memoryrepresentation.Uuseg depends on [Uucp](http://erratique.ch/software/uucp) andoptionally on [Uutf](http://erratique.ch/software/uutf) for support onOCaml UTF-X encoded strings. It is distributed under the ISC license.[1]: http://www.unicode.org/reports/tr29/[2]: http://www.unicode.org/reports/tr14/Homepage: http://erratique.ch/software/uuseg"""license: ["ISC"]tags: ["unicode" "text" "segmentation" "org:erratique"]depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}"uucp" {>= "14.0.0" & < "15.0.0"}]depopts: ["uutf""cmdliner"]conflicts: ["uutf" {< "1.0.0"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-uutf" "%{uutf:installed}%""--with-cmdliner" "%{cmdliner:installed}%" ]]url {src: "https://erratique.ch/software/uuseg/releases/uuseg-14.0.0.tbz"checksum: "sha512=3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa"}description: """doc: "https://erratique.ch/software/uuseg/doc/"synopsis: """Unicode text segmentation for OCaml"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
opam-version: "2.0"maintainer: "Hannes Mehnert <hannes@mehnert.org>"authors: "Hannes Mehnert <hannes@mehnert.org>"license: "ISC"homepage: "https://github.com/hannesm/duration"doc: "https://hannesm.github.io/duration/doc"bug-reports: "https://github.com/hannesm/duration/issues"depends: ["ocaml" {>= "4.04.2"}"dune" {>= "1.0"}"alcotest" {with-test & >= "0.8.1"}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/hannesm/duration.git"synopsis: "Conversions to various time units"description: """A duration is represented in nanoseconds as an unsigned 64 bit integer. Thishas a range of up to 584 years. Functions provided check the input and raiseon negative or out of bound input."""url {src:"https://github.com/hannesm/duration/releases/download/0.2.0/duration-0.2.0.tbz"checksum: ["sha256=ad14fb75a5a6f73fff7ef1721178925ee555cf0f23b23e3ab329184bc0c1ce69""sha512=6a259ca406739bfc6020c7de767e39c2a7ee06169aa1966d43d426b2a54fc69b81be6465d04b9bd8fbbbbfd9ebe1c82a1cbfbf62100a37eb0f7403f6cf53e3b8"]}x-commit-hash: "ec2b9a36901d1902cc90d202a8987d7e3b3e63df"
opam-version: "2.0"maintainer: "defree@gmail.com"authors: "The Merlin team"synopsis: "Reads config files for merlin"homepage: "https://github.com/ocaml/merlin"bug-reports: "https://github.com/ocaml/merlin/issues"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["yojson" {>= "1.6.0"}"ocamlfind" {>= "1.6.0"}]description:"Helper process: reads .merlin files and gives the normalized content to merlin"url {src:checksum: []}x-commit-hash: "cc1582373e5baea1d236a63be39493858032a182""sha256=31587b422b5ebd3eebda730e946868807d829128f8dc7153fb05c0c82742058e""sha512=cc2cf2c208091b3ae435a8124617e56f2002b7091532002ab49a1f817d90a5c4f9cf0bc5741dc7f2526e0352c3ca95b42c3b3a17c6cbfb80ad73d42310a25d22""https://github.com/ocaml/merlin/releases/download/v4.5-414/merlin-4.5-414.tbz""csexp" {>= "1.5.1"}"ocaml" {>= "4.08"}"dune" {>= "2.9.0"}["dune" "subst"] {dev}dev-repo: "git+https://github.com/ocaml/merlin.git"license: "MIT"
opam-version: "2.0"synopsis: """Unicode character properties for OCaml"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The uucp programmers"]homepage: "https://erratique.ch/software/uucp"doc: "https://erratique.ch/software/uucp/doc/"dev-repo: "git+https://erratique.ch/repos/uucp.git"bug-reports: "https://github.com/dbuenzli/uucp/issues"license: ["ISC"]tags: ["unicode" "text" "character" "org:erratique"]depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}"uucd" {with-test}"uunf" {with-test}"uutf" {with-test}]depopts: ["uutf""uunf""cmdliner"]conflicts: ["uutf" {< "1.0.1"}"cmdliner" {< "1.0.0"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-uutf" "%{uutf:installed}%""--with-uunf" "%{uunf:installed}%""--with-cmdliner" "%{cmdliner:installed}%" ]]description: """Uucp is an OCaml library providing efficient access to a selection ofcharacter properties of the [Unicode character database][1].Uucp is independent from any Unicode text data structure and has nodependencies. It is distributed under the ISC license.[1]: http://www.unicode.org/reports/tr44/Home page: http://erratique.ch/software/uucp"""url {src: "https://erratique.ch/software/uucp/releases/uucp-14.0.0.tbz"checksum: "sha512=2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899"}post-messages: ["If the build fails with \"ocamlopt.opt got signal and exited\", issue 'ulimit -s unlimited' and retry."{failure & (arch = "ppc64" | arch = "arm64")}]
opam-version: "2.0"bug-reports: "https://github.com/dbuenzli/topkg/issues"tags: ["packaging" "ocamlbuild" "org:erratique"]Topkg is a packager for distributing OCaml software. It provides anAPI to describe the files a package installs in a given buildconfiguration and to specify information about the package'sdistribution, creation and publication procedures.The optional topkg-care package provides the `topkg` command line toolwhich helps with various aspects of a package's life cycle: creatingand linting a distribution, releasing it on the WWW, publish itsdocumentation, add it to the OCaml opam repository, etc.Topkg is distributed under the ISC license and has **no**dependencies. This is what your packages will need as a *build*dependency.Topkg-care is distributed under the ISC license it depends on[fmt][fmt], [logs][logs], [bos][bos], [cmdliner][cmdliner],[webbrowser][webbrowser] and `opam-format`.[fmt]: http://erratique.ch/software/fmt[logs]: http://erratique.ch/software/logs[bos]: http://erratique.ch/software/bos[cmdliner]: http://erratique.ch/software/cmdliner[webbrowser]: http://erratique.ch/software/webbrowserHome page: http://erratique.ch/software/topkg"""depends: ["ocaml" {>= "4.05.0"}"ocamlfind" {build & >= "1.6.1"}"ocamlbuild"]build: [["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name"--dev-pkg" "%{dev}%"]]url {src: "https://erratique.ch/software/topkg/releases/topkg-1.0.5.tbz"checksum: "sha512=9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab"}description: """license: ["ISC"]synopsis: """The transitory OCaml software packager"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The topkg programmers"]homepage: "https://erratique.ch/software/topkg"doc: "https://erratique.ch/software/topkg/doc"dev-repo: "git+https://erratique.ch/repos/topkg.git"
opam-version: "2.0"maintainer: "Hannes Mehnert <hannes@mehnert.org>"authors: "Hannes Mehnert <hannes@mehnert.org>"license: "ISC"homepage: "https://github.com/hannesm/domain-name"doc: "https://hannesm.github.io/domain-name/doc"bug-reports: "https://github.com/hannesm/domain-name/issues"depends: ["ocaml" {>= "4.04.2"}"dune""alcotest" {with-test}]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/hannesm/domain-name.git"synopsis: "RFC 1035 Internet domain names"description: """A domain name is a sequence of labels separated by dots, such as `foo.example`.Each label may contain any bytes. The length of each label may not exceed 63charactes. The total length of a domain name is limited to 253 (byterepresentation is 255), but other protocols (such as SMTP) may apply evensmaller limits. A domain name label is case preserving, comparison is done in acase insensitive manner."""url {src:"https://github.com/hannesm/domain-name/releases/download/v0.4.0/domain-name-0.4.0.tbz"checksum: ["sha256=a5c06e22845895201973e812fe3019274d1db81c0a7873da6c8007c4ad2108c5""sha512=f25aedb1ddf6ab8c49b1545cf88f4990114a9e7954d91cabf260e6ce470abd42dd135e8a55084262a77d4c9ee4bff6dc00c71307b23a48d82d50593b910ee173"]}x-commit-hash: "e9833486ee40ef2c49c43dd72976022a627b4a34"
opam-version: "2.0"synopsis: "Debug adapter protocol"description: """The Debug Adapter Protocol defines the protocol used between an editor or IDE and a debugger or runtime."""maintainer: "文宇祥 <hackwaly@qq.com>"authors: "文宇祥 <hackwaly@qq.com>"license: "MIT"homepage: "https://github.com/hackwaly/ocaml-dap"bug-reports: "https://github.com/hackwaly/ocaml-dap/issues"dev-repo: "git+https://github.com/hackwaly/ocaml-dap.git"doc: "https://hackwaly.github.io/ocaml-dap/"depends: ["ocaml" {>= "4.08"}"dune" {>= "2.7"}"yojson""ppx_here""ppx_deriving""ppx_deriving_yojson""ppx_expect""lwt""lwt_ppx""lwt_react""react""angstrom""angstrom-lwt-unix""logs"]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]]x-commit-hash: "34cd793c049c7fb7bd7f78f80e1f36291aa60e70"url {src:"https://github.com/hackwaly/ocaml-dap/releases/download/1.0.6/dap-1.0.6.tbz"checksum: ["sha256=e0b249a3e7382125402ad15d71f4924eef60cfcec326383a5168d424087200ff""sha512=97805a383ad03ba24f1dabe20798c139678f958dfa2aed1664098f444aaeefd56d6dd7ff3650800eaefe5b17e09098427b78500316699e7267eb1fef233d6a99"]}
opam-version: "2.0"maintainer: "yallop@gmail.com"homepage: "https://github.com/ocamllabs/ocaml-ctypes"doc: "http://ocamllabs.github.io/ocaml-ctypes"dev-repo: "git+http://github.com/ocamllabs/ocaml-ctypes.git"bug-reports: "http://github.com/ocamllabs/ocaml-ctypes/issues"license: "MIT"build: [[make "XEN=%{mirage-xen:enable}%" "libffi.config"]{ctypes-foreign:installed}["touch" "libffi.config"] {!ctypes-foreign:installed}[make "XEN=%{mirage-xen:enable}%" "ctypes-base" "ctypes-stubs"][make "XEN=%{mirage-xen:enable}%" "ctypes-foreign"]{ctypes-foreign:installed}[make "test"] {with-test}]install: [[make "install" "XEN=%{mirage-xen:enable}%"]]depends: ["integers" { >= "0.3.0" }"ocamlfind" {build}"lwt" {with-test & >= "3.2.0"}"ctypes-foreign" {with-test}"ounit" {with-test}"conf-ncurses" {with-test}"bigarray-compat"]depopts: ["ctypes-foreign""mirage-xen"]tags: ["org:ocamllabs" "org:mirage"]synopsis: "Combinators for binding to C libraries without writing any C"description: """ctypes is a library for binding to C libraries using pure OCaml. The primaryaim is to make writing C extensions as straightforward as possible.The core of ctypes is a set of combinators for describing the structure of Ctypes -- numeric types, arrays, pointers, structs, unions and functions. Youcan use these combinators to describe the types of the functions that you wantto call, then bind directly to those functions -- all without writing orgenerating any C!To install the optional `ctypes.foreign` interface (which uses `libffi` toprovide dynamic access to foreign libraries), you will need to also installthe `ctypes-foreign` optional dependency:opam install ctypes ctypes-foreignThis will make the `ctypes.foreign` ocamlfind subpackage available."""authors: "yallop@gmail.com"url {}conflicts: ["mirage-xen" {>= "6.0.0"}]src: "https://github.com/ocamllabs/ocaml-ctypes/archive/0.20.1.tar.gz"checksum: "md5=91211baac16cb43134b1d6009b1edf92""ocaml" {>= "4.03.0"}
opam-version: "2.0"synopsis: "Spawning sub-processes"description: """Spawn is a small library exposing only one functionality: spawning sub-process.It has three main goals:1. provide missing features of Unix.create_process such as providing aworking directory2. provide better errors when a system call fails in thesub-process. For instance if a command is not found, you get a proper[Unix.Unix_error] exception3. improve performance by using vfork when available. It is oftenclaimed that nowadays fork is as fast as vfork, however in practicefork takes time proportional to the process memory while vfork isconstant time. In application using a lot of memory, vfork can bethousands of times faster than fork."""maintainer: ["Jane Street developers"]authors: ["Jane Street Group, LLC"]license: "MIT"homepage: "https://github.com/janestreet/spawn"doc: "https://janestreet.github.io/spawn/"bug-reports: "https://github.com/janestreet/spawn/issues"depends: ["dune" {>= "2.8"}"ppx_expect" {with-test}"ocaml" {>= "4.05"}"odoc" {with-doc}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/janestreet/spawn.git"x-commit-hash: "b5a25cab2f53a5ee9e10a7b8a96506cc61ce1198"url {src:"https://github.com/janestreet/spawn/archive/v0.15.0.tar.gz"checksum: ["sha256=310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7""sha512=3a775b57a73efee6adbc30b32fa779f27d11c7008a46f90fdb9da6288533e2d83fc49dbcd770c087f2e4560c5586ff72a9a2985d8929955773cc10d83f126013"]}
opam-version: "2.0"maintainer: "anil@recoil.org"authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire""Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott""Mindy Preston" "Thomas Leonard" "Anton Kochkov" "Etienne Millon" ]homepage: "https://github.com/mirage/ocaml-cstruct"license: "ISC"dev-repo: "git+https://github.com/mirage/ocaml-cstruct.git"bug-reports: "https://github.com/mirage/ocaml-cstruct/issues"doc: "https://mirage.github.io/ocaml-cstruct/"tags: [ "org:mirage" "org:ocamllabs" ]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["dune" {>= "2.0.0"}"alcotest" {with-test}]conflicts: [ "js_of_ocaml" {<"3.5.0"} ]synopsis: "Access C-like structures directly from OCaml"description: """Cstruct is a library and syntax extension to make it easier to access C-likestructures directly from OCaml. It supports both reading and writing to thesestructures, and they are accessed via the `Bigarray` module."""url {src:checksum: []}x-commit-hash: "7cfde7fad479b2c707ece96c35edbcbd89cf752a""sha256=4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b""sha512=24620eb8dd37b7508a6adbad19fe21b44739a1bd641827b4fdd74e642991647fb814cabdf44195199bdb5208cac182580c55dce511bf22ad595d56a140cc0584""https://github.com/mirage/ocaml-cstruct/releases/download/v6.1.0/cstruct-6.1.0.tbz""fmt" {>= "0.8.9"}"crowbar" {with-test}"ocaml" {>= "4.08.0"}
opam-version: "2.0"maintainer: "rudi.grinberg@gmail.com"authors: ["Jerome Vouillon""Thomas Gazagnaire""Anil Madhavapeddy""Rudi Grinberg""Gabriel Radanne"]homepage: "https://github.com/ocaml/ocaml-re"bug-reports: "https://github.com/ocaml/ocaml-re/issues"dev-repo: "git+https://github.com/ocaml/ocaml-re.git"build: [["dune" "subst"] {pinned}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.02"}"ounit" {with-test}"seq"]synopsis: "RE is a regular expression library for OCaml"description: """Pure OCaml regular expressions with:* Perl-style regular expressions (module Re.Perl)* Posix extended regular expressions (module Re.Posix)* Emacs-style regular expressions (module Re.Emacs)* Shell-style file globbing (module Re.Glob)* Compatibility layer for OCaml's built-in Str module (module Re.Str)"""url {src:}x-commit-hash: "c5d5df80e128c3d7646b7d8b1322012c5fcc35f3""https://github.com/ocaml/ocaml-re/releases/download/1.10.3/re-1.10.3.tbz"checksum: ["sha256=846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb""sha512=d02103b7b8b8d8bc797341dcc933554745427f3c1b51b54b4ac9ff81badfd68c94726c57548b08e00ca99f3e09741b54b6500e97c19fc0e8fcefd6dfbe71da7f"]"dune" {>= "2.0"}license: "LGPL-2.0 with OCaml linking exception"
opam-version: "2.0"maintainer: "anil@recoil.org"authors: ["Anil Madhavapeddy" "Richard Mortier" "Thomas Gazagnaire""Pierre Chambart" "David Kaloper" "Jeremy Yallop" "David Scott""Mindy Preston" "Thomas Leonard" "Anton Kochkov" "Etienne Millon" ]homepage: "https://github.com/mirage/ocaml-cstruct"license: "ISC"dev-repo: "git+https://github.com/mirage/ocaml-cstruct.git"bug-reports: "https://github.com/mirage/ocaml-cstruct/issues"doc: "https://mirage.github.io/ocaml-cstruct/"tags: [ "org:mirage" "org:ocamllabs" ]build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.08.0"}"dune" {>= "2.0.0"}"sexplib""cstruct" {=version}"alcotest" {with-test}]synopsis: "S-expression serialisers for C-like structures"description: """Cstruct is a library and syntax extension to make it easier to access C-likestructures directly from OCaml. It supports both reading and writing to thesestructures, and they are accessed via the `Bigarray` module.This library provides Sexplib serialisers for the Cstruct.t values."""url {src:"https://github.com/mirage/ocaml-cstruct/releases/download/v6.1.0/cstruct-6.1.0.tbz"checksum: ["sha256=4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b""sha512=24620eb8dd37b7508a6adbad19fe21b44739a1bd641827b4fdd74e642991647fb814cabdf44195199bdb5208cac182580c55dce511bf22ad595d56a140cc0584"]}x-commit-hash: "7cfde7fad479b2c707ece96c35edbcbd89cf752a"
opam-version: "2.0"synopsis: """POSIX time for OCaml"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The ptime programmers"]homepage: "https://erratique.ch/software/ptime"doc: "https://erratique.ch/software/ptime/doc/"dev-repo: "git+https://erratique.ch/repos/ptime.git"bug-reports: "https://github.com/dbuenzli/ptime/issues"license: ["ISC"]tags: ["time" "posix" "system" "org:erratique"]depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build & != "0.9.0"}"topkg" {build & >= "1.0.3"}]depopts: ["js_of_ocaml"]conflicts: ["js_of_ocaml" {<= "3.3.0"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-js_of_ocaml" "%{js_of_ocaml:installed}%"]]url {src: "https://erratique.ch/software/ptime/releases/ptime-0.8.6.tbz"checksum: "sha512=dbb5a1caae995381672ebe95b6824d62d6092e099d0f40099bab049f2f87516fd3657d59694739423e1c0948efd43e50fa06664975593deffe86ba16f6f9fbb9"}description: """Ptime has platform independent POSIX time support in pure OCaml. Itprovides a type to represent a well-defined range of POSIX timestampswith picosecond precision, conversion with date-time values,conversion with [RFC 3339 timestamps][rfc3339] and pretty printing to ahuman-readable, locale-independent representation.The additional Ptime_clock library provides access to a system POSIXclock and to the system's current time zone offset.Ptime is not a calendar library.Ptime has no dependency. Ptime_clock depends on your systemlibrary. Ptime_clock's optional JavaScript support depends on[js_of_ocaml][jsoo]. Ptime and its libraries are distributed under theISC license.[rfc3339]: http://tools.ietf.org/html/rfc3339[jsoo]: http://ocsigen.org/js_of_ocaml/Home page: http://erratique.ch/software/ptime"""
opam-version: "2.0"maintainer: "nbraud"homepage: "http://gmplib.org/"bug-reports: "https://github.com/ocaml/opam-repository/issues"license: "GPL-1.0-or-later"build: [["sh" "-exc" "cc -c $CFLAGS -I/usr/local/include test.c"] {os != "macos" & os != "win32"}["sh""-exc""$(ocamlc -config-var c_compiler) -c $CFLAGS -I/usr/local/include test.c"] {os = "win32" & os-distribution = "cygwinports"}["sh""-exc""cc -c $CFLAGS -I/opt/homebrew/include -I/opt/local/include -I/usr/local/include test.c"] {os = "macos"}]depexts: [["libgmp-dev"] {os-family = "debian"}["libgmp-dev"] {os-family = "ubuntu"}["gmp"] {os = "macos" & os-distribution = "homebrew"}["gmp"] {os-distribution = "macports" & os = "macos"}["gmp" "gmp-devel"] {os-distribution = "centos"}["gmp" "gmp-devel"] {os-distribution = "fedora"}["gmp" "gmp-devel"] {os-distribution = "ol"}["gmp"] {os = "openbsd"}["gmp"] {os = "freebsd"}["gmp-dev"] {os-distribution = "alpine"}["gmp-devel"] {os-family = "suse"}["gmp"] {os = "win32" & os-distribution = "cygwinports"}["gmp"] {os-distribution = "nixos"}]synopsis: "Virtual package relying on a GMP lib system installation"description:"This package can only install if the GMP lib is installed on the system."authors: "nbraud"extra-files: ["test.c" "md5=2fd2970c293c36222a6d299ec155823f"]flags: conf
opam-version: "2.0"maintainer: "Etienne Millon <etienne@cryptosense.com>"homepage: "http://gmplib.org/"bug-reports: "https://github.com/ocaml/opam-repository/issues"license: "GPL-1.0-or-later"build: [["sh" "-exc" "cc -c $CFLAGS -I/usr/local/include test.c"] {os != "macos"}["sh""-exc""cc -c $CFLAGS -I/opt/homebrew/include -I/opt/local/include -I/usr/local/include test.c"] {os = "macos"}]depends: ["conf-gmp"]synopsis:"Virtual package relying on a GMP lib with constant-time modular exponentiation"description: """This package can only install if the GMP lib is installed on the system andcorresponds to a version that has the mpz_powm_sec function."""authors: "Etienne Millon <etienne@cryptosense.com>"extra-files: ["test.c" "md5=29317f477fa828e18428660ef31064fb"]flags: conf
#include <gmp.h>#ifndef __GMP_H__#error "No GMP header"#endif#if __GNU_MP_VERSION < 5#error "GMP >= 5 is required to support mpz_powm_sec"#endifvoid test(void) {mpz_t base;mpz_t exp;mpz_t mod;mpz_t rop;mpz_init_set_ui(base, 2u);mpz_init_set_ui(exp, 4u);mpz_init_set_ui(mod, 3u);mpz_init(rop);mpz_powm_sec(rop, base, exp, mod);mpz_clear(base);mpz_clear(exp);mpz_clear(mod);mpz_clear(rop);}
opam-version: "2.0"description: """\Cmdliner allows the declarative definition of command line interfacesfor OCaml.It provides a simple and compositional mechanism to convert commandline arguments to OCaml values and pass them to your functions. Themodule automatically handles syntax errors, help messages and UNIX manpage generation. It supports programs with single or multiple commandsand respects most of the [POSIX][1] and [GNU][2] conventions.Cmdliner has no dependencies and is distributed under the ISC license.[1]: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html[2]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.htmlurl {src: "https://erratique.ch/software/cmdliner/releases/cmdliner-1.1.1.tbz"checksum:"sha512=5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e"}Home page: http://erratique.ch/software/cmdliner"""maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: "The cmdliner programmers"license: "ISC"tags: ["cli" "system" "declarative" "org:erratique"]homepage: "https://erratique.ch/software/cmdliner"doc: "https://erratique.ch/software/cmdliner/doc"bug-reports: "https://github.com/dbuenzli/cmdliner/issues"depends: ["ocaml" {>= "4.08.0"}]build: [make "all" "PREFIX=%{prefix}%"]install: [[make "install" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%"][make "install-doc" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%"]]dev-repo: "git+https://erratique.ch/repos/cmdliner.git"synopsis: "Declarative definition of command line interfaces for OCaml"
opam-version: "2.0"maintainer: "Spiros Eliopoulos <spiros@inhabitedtype.com>"authors: [ "Spiros Eliopoulos <spiros@inhabitedtype.com>" ]license: "BSD-3-clause"homepage: "https://github.com/inhabitedtype/bigstringaf"bug-reports: "https://github.com/inhabitedtype/bigstringaf/issues"dev-repo: "git+https://github.com/inhabitedtype/bigstringaf.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["dune" {>= "2.6.0"}"alcotest" {with-test}"conf-pkg-config" {build}]depopts: ["ocaml-freestanding"]conflicts: ["mirage-xen" {< "6.0.0"}"ocaml-freestanding" {< "0.4.1"}"js_of_ocaml" {< "3.5.0"}]synopsis: "Bigstring intrinsics and fast blits based on memcpy/memmove"description: """Bigstring intrinsics and fast blits based on memcpy/memmoveThe OCaml compiler has a bunch of intrinsics for Bigstrings, but they're notwidely-known, sometimes misused, and so programs that use Bigstrings are slowerthan they have to be. And even if a library got that part right and exposed theintrinsics properly, the compiler doesn't have any fast blits betweenBigstrings and other string-like types.So here they are. Go crazy."""url {}src: "https://github.com/inhabitedtype/bigstringaf/archive/0.9.0.tar.gz"checksum: "md5=0d8ceddeb7db821fd4e5235a75ae9752""ocaml" {>= "4.08.0"}["dune" "runtest" "-p" name] {with-test & arch != "x86_32" & arch != "arm32"}["dune" "subst"] {dev}
opam-version: "2.0"synopsis: "Parser for ocaml documentation comments"description: """Odoc_parser is a library for parsing the contents of OCaml documentationcomments, formatted using 'odoc' syntax, an extension of the languageunderstood by ocamldoc."""maintainer: ["Jon Ludlam <jon@recoil.org>"]authors: ["Anton Bachin <antonbachin@yahoo.com>"]license: "ISC"homepage: "https://github.com/ocaml-doc/odoc-parser"bug-reports: "https://github.com/ocaml-doc/odoc-parser/issues"dev-repo: "git+https://github.com/ocaml-doc/odoc-parser.git"# This template exists because without it dune pop is dependencies and build rules# involving odoc. Since odoc depends on this package, this doesn't work.doc: "https://ocaml-doc.github.io/odoc-parser/"depends: ["dune" {>= "2.8"}"ocaml" {>= "4.02.0"}"astring""result""ppx_expect" {with-test}("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}]]url {src:"https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.0/odoc-parser-1.0.0.tbz"checksum: ["sha256=b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1""sha512=b5caee3a0d288aeaa95e3f32de8e5f75f169ad2691d75f8d6c932e4fb0e6cb188813ac2d92d4076fe75b12217130e6999c46e7890cf0fa765070870f85a96d63"]}x-commit-hash: "b13ffc2f30ca20ca5bb733be4f630d46bd274fd6"
opam-version: "2.0"authors: "David Kaloper Meršinjak"maintainer: "David Kaloper Meršinjak <dk505@cam.ac.uk>"homepage: "https://github.com/mirleft/ocaml-asn1-combinators"doc: "https://mirleft.github.io/ocaml-asn1-combinators/doc"license: "ISC"dev-repo: "git+https://github.com/mirleft/ocaml-asn1-combinators.git"bug-reports: "https://github.com/mirleft/ocaml-asn1-combinators/issues"synopsis: "Embed typed ASN.1 grammars in OCaml"build: [ ["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs ]["dune" "runtest" "-p" name "-j" jobs] {with-test} ]depends: ["ocaml" {>="4.08.0"}"dune" {>= "1.2.0"}"cstruct" {>= "6.0.0"}"zarith""ptime""alcotest" {with-test}]description: """asn1-combinators is a library for expressing ASN.1 in OCaml. Skip the notationpart of ASN.1, and embed the abstract syntax directly in the language. Theseabstract syntax representations can be used for parsing, serialization, orrandom testing.The only ASN.1 encodings currently supported are BER and DER."""url {src:"https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v0.2.6/asn1-combinators-v0.2.6.tbz"checksum: ["sha256=012ade0d8869ef621063752c1cf8ea026f6bc702fed10df9af56688e291b1a91""sha512=4c1b28f1d230395ff1ad3b8e8d03981b10015062ec270f29e2521914eb64c2fa4d5df68363e339e9a1158c3b58aef0e25156f7ec6addd85a580fecadc17edfac"]}x-commit-hash: "1fc666e8b4231846cf65704ffcb09d240981dcb6"
opam-version: "2.0"synopsis:"Optimised functions to read and write int16/32/64 from strings and bigarrays"The library implements three modules:* [EndianString](https://github.com/OCamlPro/ocplib-endian/blob/master/src/endianString.mli) works directly on strings, and provides submodules BigEndian and LittleEndian, with their unsafe counter-parts;* [EndianBytes](https://github.com/OCamlPro/ocplib-endian/blob/master/src/endianBytes.mli) works directly on bytes, and provides submodules BigEndian and LittleEndian, with their unsafe counter-parts;* [EndianBigstring](https://github.com/OCamlPro/ocplib-endian/blob/master/src/endianBigstring.mli) works on bigstrings (Bigarrays of chars), and provides submodules BigEndian and LittleEndian, with their unsafe counter-parts."""maintainer: "pierre.chambart@ocamlpro.com"authors: "Pierre Chambart"homepage: "https://github.com/OCamlPro/ocplib-endian"doc: "https://ocamlpro.github.io/ocplib-endian/ocplib-endian/"bug-reports: "https://github.com/OCamlPro/ocplib-endian/issues"depends: ["base-bytes""cppo" {>= "1.1.0" & build}"dune" {>= "1.0"}]build: ["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]dev-repo: "git+https://github.com/OCamlPro/ocplib-endian.git"url {checksum: []}"md5=8d5492eeb7c6815ade72a7415ea30949""sha512=2e70be5f3d6e377485c60664a0e235c3b9b24a8d6b6a03895d092c6e40d53810bfe1f292ee69e5181ce6daa8a582bfe3d59f3af889f417134f658812be5b8b85"src:"https://github.com/OCamlPro/ocplib-endian/archive/refs/tags/1.2.tar.gz""ocaml" {>= "4.03.0"}description: """\license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "contact@ocamlpro.com"synopsis: "A simple tool to indent OCaml programs"description: """Ocp-indent is based on an approximate, tolerant OCaml parser and a simple stackmachine ; this is much faster and more reliable than using regexps. Presets andconfiguration options available, with the possibility to set them project-wide.Supports most common syntax extensions, and extensible for others.Includes:- An indentor program, callable from the command-line or from within editors- Bindings for popular editors- A library that can be directly used by editor writers, or just forfault-tolerant/approximate parsing."""authors: ["Louis Gesbert <louis.gesbert@ocamlpro.com>""Thomas Gazagnaire <thomas@gazagnaire.org>""Jun Furuse"]homepage: "http://www.typerex.org/ocp-indent.html"bug-reports: "https://github.com/OCamlPro/ocp-indent/issues"license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"tags: ["org:ocamlpro" "org:typerex"]dev-repo: "git+https://github.com/OCamlPro/ocp-indent.git"build: [["dune" "build" "-p" name "-j" jobs]]run-test: [["dune" "runtest" "-p" name "-j" jobs]]depends: ["ocaml""dune" {>= "1.0"}"cmdliner" {>= "1.0.0"}"ocamlfind""base-bytes"]post-messages: ["This package requires additional configuration for use in editors. Install package 'user-setup', or manually:* for Emacs, add these lines to ~/.emacs:(add-to-list 'load-path \"%{share}%/emacs/site-lisp\")(require 'ocp-indent)* for Vim, add this line to ~/.vimrc:set rtp^=\"%{share}%/ocp-indent/vim\""{success & !user-setup:installed}]url {src: "https://github.com/OCamlPro/ocp-indent/archive/1.8.1.tar.gz"checksum: ["md5=70db6649a8c08a682ad63730c9752e31""sha512=565353de333dd44375366fff75e85a6256c3cd9ff52b3db79803141f975e77cda04dfe32f5e0f2d4c82c59be8f04e9c2bf4d066b113b2cdf267f4c3dcfa401da"]}
opam-version: "2.0"synopsis: "Auto-formatter for OCaml code (RPC mode)"description:"OCamlFormat is a tool to automatically format OCaml code in a uniform style. This package defines a RPC interface to OCamlFormat"maintainer: ["OCamlFormat Team <ocamlformat-dev@lists.ocaml.org>"]authors: ["Josh Berdine <jjb@fb.com>"]license: "MIT"homepage: "https://github.com/ocaml-ppx/ocamlformat"bug-reports: "https://github.com/ocaml-ppx/ocamlformat/issues"depends: ["dune" {>= "2.8"}"ocaml" {>= "4.08" & < "4.14"}"csexp""sexplib0""odoc" {with-doc}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-ppx/ocamlformat.git"url {src:"https://github.com/ocaml-ppx/ocamlformat/releases/download/0.19.0/ocamlformat-0.19.0.tbz"checksum: ["sha256=62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46""sha512=408b3af533169f201d7492be869f8ae4acde5583e01693c586929f44b76d569d3d6d555bc056378743d7cb3bd8e11ebc9cbd178ca196bcb82db33127d14902f8"]}x-commit-hash: "ba67af28ddca8718ef8816b2b0dc1e5b2f5e9591"
opam-version: "2.0"maintainer: "Anil Madhavapeddy <anil@recoil.org>"authors: "Anil Madhavapeddy <anil@recoil.org>"license: "ISC"tags: "org:ocamllabs"homepage: "https://github.com/ocurrent/ocaml-version"doc: "https://ocurrent.github.io/ocaml-version/doc"bug-reports: "https://github.com/ocurrent/ocaml-version/issues"depends: ["ocaml" {>= "4.07.0"}"alcotest" {with-test}]build: [["dune" "build" "-p" name "-j" jobs]]dev-repo: "git+https://github.com/ocurrent/ocaml-version.git"synopsis: "Manipulate, parse and generate OCaml compiler version strings"description: """This library provides facilities to parse version numbers of the OCamlcompiler, and enumerates the various official OCaml releases and configurationvariants.OCaml version numbers are of the form `major.minor.patch+extra`, where the`patch` and `extra` fields are optional. This library offers the followingfunctionality:- Functions to parse and serialise OCaml compiler version numbers.- Enumeration of official OCaml compiler version releases.- Test compiler versions for a particular feature (e.g. the `bytes` type)- [opam](https://opam.ocaml.org) compiler switch enumeration.### Further information- **Discussion:** Post on <https://discuss.ocaml.org/> with the `ocaml` tag underthe Ecosystem category.- **Bugs:** <https://github.com/ocurrent/ocaml-version/issues>- **Docs:** <http://docs.mirage.io/ocaml-version>"""url {src:checksum: []}x-commit-hash: "c535ad2f463664b31001888fc99495dd01632747""sha256=d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25""sha512=215e5b0c4ea5fa5461cdc0fc81fbd84a2a319a246a19504d0a0abc8c891e252a9e41644356150a1dc25d56b3f7e084db7a0b15becab4e1339992e645fc3d8ef1""https://github.com/ocurrent/ocaml-version/releases/download/v3.4.0/ocaml-version-v3.4.0.tbz"["dune" "subst"] {dev}"dune" {>= "1.0"}
opam-version: "2.0"homepage: "https://github.com/janestreet/ocaml-compiler-libs"bug-reports: "https://github.com/janestreet/ocaml-compiler-libs/issues"depends: ["ocaml" {>= "4.04.1"}]url {src:checksum: []}x-commit-hash: "8cd12f18bb7171c2b67d661868c4271fae528d93""sha256=4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760""sha512=978dba8dfa61f98fa24fda7a9c26c2e837081f37d1685fe636dc19cfc3278a940cf01a10293504b185c406706bc1008bc54313d50f023bcdea6d5ac6c0788b35""https://github.com/janestreet/ocaml-compiler-libs/releases/download/v0.12.4/ocaml-compiler-libs-v0.12.4.tbz"build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/janestreet/ocaml-compiler-libs.git""odoc" {with-doc}"dune" {>= "2.8"}authors: ["Jane Street Group, LLC"]license: "MIT"synopsis: "OCaml compiler libraries repackaged"description: """This packages exposes the OCaml compiler libraries repackages underthe toplevel names Ocaml_common, Ocaml_bytecomp, Ocaml_optcomp, ..."""maintainer: ["Jane Street developers"]
opam-version: "2.0"maintainer: "defree@gmail.com"authors: "The Merlin team"homepage: "https://github.com/ocaml/merlin"bug-reports: "https://github.com/ocaml/merlin/issues"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" "merlin,dot-merlin-reader" "-j" "1"] {with-test}]depends: ["dot-merlin-reader" {>= "4.0"}"yojson" {>= "1.6.0"}"conf-jq" {with-test}"csexp" {>= "1.2.3"}"result" {>= "1.5"}"menhir" {dev}"menhirLib" {dev}"menhirSdk" {dev}]synopsis:"Editor helper, provides completion, typing and source browsing in Vim and Emacs"description:"Merlin is an assistant for editing OCaml code. It aims to provide the features available in modern IDEs: error reporting, auto completion, source browsing and much more."post-messages: ["merlin installed.Quick setup for VIM-------------------Append this to your .vimrc to add merlin to vim's runtime-path:let g:opamshare = substitute(system('opam var share'),'\\n$','','''')execute \"set rtp+=\" . g:opamshare . \"/merlin/vim\"Also run the following line in vim to index the documentation::execute \"helptags \" . g:opamshare . \"/merlin/vim/doc\"Quick setup for EMACS-------------------Add opam emacs directory to your load-path by appending this to your .emacs:(when (and opam-share (file-directory-p opam-share));; Register Merlin(add-to-list 'load-path (expand-file-name \"emacs/site-lisp\" opam-share))(autoload 'merlin-mode \"merlin\" nil t nil);; Automatically start it in OCaml buffers(add-hook 'tuareg-mode-hook 'merlin-mode t)(add-hook 'caml-mode-hook 'merlin-mode t);; Use opam switch to lookup ocamlmerlin binary(setq merlin-command 'opam)))Take a look at https://github.com/ocaml/merlin for more informationQuick setup with opam-user-setup--------------------------------Opam-user-setup support Merlin.$ opam user-setup installshould take care of basic setup.See https://github.com/OCamlPro/opam-user-setup"{success & !user-setup:installed}]url {src:checksum: []}x-commit-hash: "5497c563b06f868d72d4f74bd8026c1c1aeb6595""sha256=16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3""sha512=f51b2875b75215d0be378de86b9dca0957b5e62241ce625a46c6341c219582510d37af94dedf67e1d3db61ebacfef8fa764e4719fac16c0b4b99bb85d0b991d4""https://github.com/ocaml/merlin/releases/download/v4.4-412/merlin-4.4-412.tbz"(let ((opam-share (ignore-errors (car (process-lines \"opam\" \"var\" \"share\")))))"ocaml" {>= "4.12" & < "4.13"}"dune" {>= "2.9.0"}["dune" "subst"] {dev}dev-repo: "git+https://github.com/ocaml/merlin.git"license: "MIT"
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>""Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"]homepage: "http://gitlab.inria.fr/fpottier/menhir"dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: []conflicts: ["menhir" { != version }]synopsis: "Compile-time library for auxiliary tools related to Menhir"url {src:checksum: []}"md5=015354590ebce7911b073beae57e7731""sha512=76f998c114a29b390f05e7b62e396d6957e748be3bb7fe918893ab3471a7a907764de4610e392916553113df0c6b09aa570425dcf86c6a3e9e17b0ae36f3fe2b""https://gitlab.inria.fr/fpottier/menhir/-/archive/20211128/archive.tar.gz""ocaml" { >= "4.03.0" }"dune" { >= "2.8.0" }bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>""Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"]homepage: "http://gitlab.inria.fr/fpottier/menhir"dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: []conflicts: ["menhir" { != version }]synopsis: "Runtime support library for parsers generated by Menhir"url {src:checksum: []}"md5=015354590ebce7911b073beae57e7731""sha512=76f998c114a29b390f05e7b62e396d6957e748be3bb7fe918893ab3471a7a907764de4610e392916553113df0c6b09aa570425dcf86c6a3e9e17b0ae36f3fe2b""https://gitlab.inria.fr/fpottier/menhir/-/archive/20211128/archive.tar.gz""ocaml" { >= "4.03.0" }"dune" { >= "2.8.0" }bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>""Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"]homepage: "http://gitlab.inria.fr/fpottier/menhir"dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["menhirLib" {= version}"menhirSdk" {= version}]synopsis: "An LR(1) parser generator"url {src:checksum: []}"md5=015354590ebce7911b073beae57e7731""sha512=76f998c114a29b390f05e7b62e396d6957e748be3bb7fe918893ab3471a7a907764de4610e392916553113df0c6b09aa570425dcf86c6a3e9e17b0ae36f3fe2b""https://gitlab.inria.fr/fpottier/menhir/-/archive/20211128/archive.tar.gz""ocaml" {>= "4.03.0" & < "5.00"}"dune" {>= "2.8.0"}bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: [ "Anil Madhavapeddy <anil@recoil.org>" ]authors: ["Jérôme Vouillon" "Jérémie Dimino"]license: "MIT"homepage: "https://github.com/mirage/lwt-dllist"doc: "https://mirage.github.io/lwt-dllist/"bug-reports: "https://github.com/mirage/lwt-dllist/issues"depends: ["ocaml" {>= "4.02.0"}"lwt" {with-test}"dune"]build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/mirage/lwt-dllist.git"synopsis: "Mutable doubly-linked list with Lwt iterators"description: """A sequence is an object holding a list of elements which supportthe following operations:- adding an element to the left or the right in time and space O(1)- taking an element from the left or the right in time and space O(1)- removing a previously added element from a sequence in time and space O(1)- removing an element while the sequence is being transversed."""x-commit-hash: "66a569e31cdb65e9eaab4e684e5d549ea4bc7517"url {src:"https://github.com/mirage/lwt-dllist/releases/download/v1.0.1/lwt-dllist-v1.0.1.tbz"checksum: ["sha256=e86ce75e40f00d51514cf8b2e71e5184c4cb5dae96136be24613406cfc0dba6e""sha512=1df7e8e12e01a5d32e1db746f922e05f23a67c0d20e72a5b9126fead1e04decdb062081574b1c410c822305ef4eac990b7dd69f36673db8f50b9db2152abad80"]}
opam-version: "2.0"synopsis: """OCaml Format pretty-printer combinators"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The fmt programmers"]homepage: "https://erratique.ch/software/fmt"doc: "https://erratique.ch/software/fmt/doc/"dev-repo: "git+https://erratique.ch/repos/fmt.git"bug-reports: "https://github.com/dbuenzli/fmt/issues"license: ["ISC"]tags: ["string" "format" "pretty-print" "org:erratique"]depends: ["ocaml" {>= "4.08.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}]depopts: ["base-unix""cmdliner"]conflicts: ["cmdliner" {< "0.9.8"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-base-unix" "%{base-unix:installed}%""--with-cmdliner" "%{cmdliner:installed}%"]]url {src: "https://erratique.ch/software/fmt/releases/fmt-0.9.0.tbz"checksum: "sha512=66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b"}description: """Fmt exposes combinators to devise `Format` pretty-printing functions.Fmt depends only on the OCaml standard library. The optional `Fmt_tty`library that allows to setup formatters for terminal color outputdepends on the Unix library. The optional `Fmt_cli` library thatprovides command line support for Fmt depends on [`Cmdliner`][cmdliner].Fmt is distributed under the ISC license.[cmdliner]: http://erratique.ch/software/cmdlinerHome page: http://erratique.ch/software/fmt"""
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>"]homepage: "https://gitlab.inria.fr/fpottier/fix"dev-repo: "git+https://gitlab.inria.fr/fpottier/fix.git"bug-reports: "francois.pottier@inria.fr"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" { >= "4.03" }]url {src:checksum: []}"md5=48d8a5bdff23cf7fbf9288877df2b6aa""sha512=a851d8783c0c519c6e55359a5c471af433058872409c29a1a7bdfd0076813341ad2c0ebd1ce9e28bff4d4c729dfbc808c41c084fe12a42b45a2b5e391e77ccd2""https://gitlab.inria.fr/fpottier/fix/-/archive/20220121/archive.tar.gz"synopsis: "Algorithmic building blocks for memoization, recursion, and more""dune" { >= "1.3" }license: "LGPL-2.0-only"
opam-version: "2.0"maintainer: "Spiros Eliopoulos <spiros@inhabitedtype.com>"authors: [ "Spiros Eliopoulos <spiros@inhabitedtype.com>" ]license: "BSD-3-clause"homepage: "https://github.com/inhabitedtype/faraday"bug-reports: "https://github.com/inhabitedtype/faraday/issues"dev-repo: "git+https://github.com/inhabitedtype/faraday.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["dune" {>= "1.11"}"alcotest" {with-test & >= "0.4.1"}"bigstringaf"]description: """Faraday is a library for writing fast and memory-efficient serializers. Itscore type and related operation gives the user fine-grained control overcopying and allocation behavior while serializing user-defined types, andpresents the output in a form that makes it possible to use vectorized writeoperations, such as the writev system call, or any other platform orapplication-specific output APIs."""url {}src: "https://github.com/inhabitedtype/faraday/archive/0.8.1.tar.gz"checksum: "md5=51b97f082af4679e3b428a03c3b657de"synopsis: "A library for writing fast and memory-efficient serializers""ocaml" {>= "4.03.0"}["dune" "runtest" "-p" name "-j" jobs] {with-test}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: [ "Romain Calascibetta <romain.calascibetta@gmail.com>" ]authors: [ "Romain Calascibetta <romain.calascibetta@gmail.com>" ]homepage: "https://github.com/mirage/eqaf"bug-reports: "https://github.com/mirage/eqaf/issues"dev-repo: "git+https://github.com/mirage/eqaf.git"doc: "https://mirage.github.io/eqaf/"license: "MIT"synopsis: "Constant-time equal function on string"description: """This package provides an equal function on string in constant-time to avoid timing-attack with crypto stuff."""build: [[ "dune" "build" "-p" name "-j" jobs ]]depends: ["base64" {with-test}"alcotest" {with-test}"crowbar" {with-test}]url {checksum: []}x-commit-hash: "b17b607195fac4043e6c64c9ffb67df3d373fc86""sha256=1145a160107437d7943e02e486df6bd233d3937ec1a597d7fa39edb9471cf875""sha512=303749bdbaae8fc27f57ebaa5cf9b16ed5b8cbaee35f0a35d69f91a437b1a3411a613d145d3aff7ff74a587509d877cc0a569fdae4d00cec65bf50d705361e25"src: "https://github.com/mirage/eqaf/releases/download/v0.8/eqaf-v0.8.tbz""ocaml" {>= "4.07.0"}"dune" {>= "2.0"}"cstruct" {>= "1.1.0"}[ "dune" "runtest" "-p" name "-j" "1" "--no-buffer" "--verbose" ] {with-test}[ "dune" "subst" ] {dev}
opam-version: "2.0"maintainer: ["Markus W. Weissmann <markus.weissmann@in.tum.de>"]authors: ["Andre Nathan <andre@digirati.com.br>""Jeff Shaw <shawjef3@msu.edu>""Markus W. Weissmann <markus.weissmann@in.tum.de>""Florian Pichlmeier <florian.pichlmeier@mytum.de>"]bug-reports: "https://github.com/andrenth/ocaml-stdint/issues"homepage: "https://github.com/andrenth/ocaml-stdint"doc: "https://andrenth.github.io/ocaml-stdint/"license: "MIT"dev-repo: "git+https://github.com/andrenth/ocaml-stdint.git"synopsis: "Signed and unsigned integer types having specified widths"description: """The stdint library provides signed and unsigned integer types of various fixedwidths: 8, 16, 24, 32, 40, 48, 56, 64 and 128 bit.This interface is similar to Int32 and Int64 from the base library but providesmore functions and constants like arithmetic and bit-wise operations, constantslike maximum and minimum values, infix operators conversion to and from everyother integer type (including int, float and nativeint), parsing from andconversion to readable strings (binary, octal, decimal, hexademical), conversionto and from buffers in both big endian and little endian byte order."""depends: ["ocaml" {>= "4.03"}"odoc" {with-doc}"dune" {>= "1.10"}]build: [["dune""build""-p"name"-j"jobs"@install""@doc" {with-doc}]]x-commit-hash: "f3eb95c3807249e1fb8ca635bdaa1ef98f7249da"url {src:"https://github.com/andrenth/ocaml-stdint/releases/download/0.7.0/stdint-0.7.0.tbz"checksum: ["sha256=4fcc66aef58e2b96e7af3bbca9d910aa239e045ba5fb2400aaef67d0041252dc""sha512=9b05b6cf691320b718dd2118b1e3f96a2997e42e6c99a34b470b060c82fc16c50d57c6ee392d1b62bdb8df73094657eea56050da3e74745a4afb0f150a60a584"]}["dune" "subst"] {dev}
opam-version: "2.0"synopsis: "Compatibility Either module"description: """Projects that want to use the Either module defined in OCaml 4.12.0 whilestaying compatible with older versions of OCaml should use this libraryinstead."""maintainer: ["Craig Ferguson <me@craigfe.io>"]authors: ["Craig Ferguson <me@craigfe.io>"]license: "MIT"homepage: "https://github.com/mirage/either"doc: "https://mirage.github.io/either"bug-reports: "https://github.com/mirage/either/issues"depends: ["dune" {>= "2.0"}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/mirage/either.git"x-commit-hash: "a270ceac58e3e5bed6fe7e8bfb7132b14ee9c322"url {src:"https://github.com/mirage/either/releases/download/1.0.0/either-1.0.0.tbz"checksum: ["sha256=bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884""sha512=147854c09f897dd028b18a9f19acea8666107aaa7b1aab3c92f568af531364f57298edcaf3897d74246d3857d52e9bfb7ad0fc39220d988d9f14694ca1d5e9ed"]}
opam-version: "2.0"synopsis: "Fast, portable, and opinionated build system"description: """dune is a build system that was designed to simplify the release ofJane Street packages. It reads metadata from "dune" files following avery simple s-expression syntax.dune is fast, has very low-overhead, and supports parallel builds onall platforms. It has no system dependencies; all you need to builddune or packages using dune is OCaml. You don't need make or bashas long as the packages themselves don't use bash explicitly.dune supports multi-package development by simply dropping multiplerepositories into the same directory.It also supports multi-context builds, such as building againstseveral opam roots/switches simultaneously. This helps maintainingpackages across several versions of OCaml and gives cross-compilationfor free."""maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]license: "MIT"homepage: "https://github.com/ocaml/dune"doc: "https://dune.readthedocs.io/"bug-reports: "https://github.com/ocaml/dune/issues"conflicts: ["merlin" {< "3.4.0"}"ocaml-lsp-server" {< "1.3.0"}"dune-configurator" {< "2.3.0"}"odoc" {< "1.3.0"}"dune-release" {< "1.3.0"}"js_of_ocaml-compiler" {< "3.6.0"}"jbuilder" {= "transition"}]dev-repo: "git+https://github.com/ocaml/dune.git"build: [# opam 2 sets OPAM_SWITCH_PREFIX, so we don't need a hardcoded path["ocaml" "configure.ml" "--libdir" lib] {opam-version < "2"}["ocaml" "bootstrap.ml" "-j" jobs]["./dune.exe" "build" "-p" name "--profile" "dune-bootstrap" "-j" jobs]]depends: [# Please keep the lower bound in sync with .github/workflows/workflow.yml,# dune-project and min_ocaml_version in bootstrap.ml("ocaml" {>= "4.08"} | ("ocaml" {< "4.08~~"} & "ocamlfind-secondary"))"base-unix""base-threads"]url {checksum: []}x-commit-hash: "dea03875affccc0620e902d28fed8d6b4351e112""sha256=3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""sha512=04b48501ac16c3608e3b6bfbdbabf810df0fb844ea3b7d25ba50f03b9d6cb1d2c933cf747d694029d82a9777a774e48e5c38ab010fe53ce1eae367da0ed04d6d"src:"https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz"
opam-version: "2.0"synopsis: "Helper library for gathering system configuration"description: """dune-configurator is a small library that helps writing OCaml scripts thattest features available on the system, in order to generate config.hfiles for instance.Among other things, dune-configurator allows one to:- test if a C program compiles- query pkg-config- import #define from OCaml header files- generate config.h file"""maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]license: "MIT"homepage: "https://github.com/ocaml/dune"doc: "https://dune.readthedocs.io/"bug-reports: "https://github.com/ocaml/dune/issues"depends: ["ocaml" {>= "4.03.0"}"result""csexp" {>= "1.3.0"}"odoc" {with-doc}]dev-repo: "git+https://github.com/ocaml/dune.git"build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@doc" {with-doc}]]url {checksum: []}x-commit-hash: "dea03875affccc0620e902d28fed8d6b4351e112""sha256=3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""sha512=04b48501ac16c3608e3b6bfbdbabf810df0fb844ea3b7d25ba50f03b9d6cb1d2c933cf747d694029d82a9777a774e48e5c38ab010fe53ce1eae367da0ed04d6d"src:"https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz""dune" {>= "2.9"}
opam-version: "2.0"synopsis: "Embed build informations inside executable"description: """The build-info library allows to access information about how theexecutable was built, such as the version of the project at which itwas built or the list of statically linked libraries with theirversions. It supports reporting the version from the version controlsystem during development to get an precise reference of when theexecutable was built."""maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]license: "MIT"homepage: "https://github.com/ocaml/dune"doc: "https://dune.readthedocs.io/"bug-reports: "https://github.com/ocaml/dune/issues"depends: ["odoc" {with-doc}]dev-repo: "git+https://github.com/ocaml/dune.git"build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@doc" {with-doc}]]url {checksum: []}x-commit-hash: "dea03875affccc0620e902d28fed8d6b4351e112""sha256=3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""sha512=04b48501ac16c3608e3b6bfbdbabf810df0fb844ea3b7d25ba50f03b9d6cb1d2c933cf747d694029d82a9777a774e48e5c38ab010fe53ce1eae367da0ed04d6d"src:"https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz""dune" {>= "2.9"}
opam-version: "2.0"maintainer: "martin@mjambon.com"authors: "Martin Jambon"license: "BSD-3-Clause"homepage: "https://github.com/ocaml-community/cppo"doc: "https://ocaml-community.github.io/cppo/"bug-reports: "https://github.com/ocaml-community/cppo/issues"depends: ["ocaml" {>= "4.02.3"}"dune" {>= "1.0"}"base-unix"]build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/ocaml-community/cppo.git"synopsis: "Code preprocessor like cpp for OCaml"description: """Cppo is an equivalent of the C preprocessor for OCaml programs.It allows the definition of simple macros and file inclusion.Cppo is:* more OCaml-friendly than cpp* easy to learn without consulting a manual* reasonably fast* simple to install and to maintain"""url {checksum: []}"md5=fed401197d86f9089e89f6cbdf1d660d""sha512=069bbe0ef09c03b0dc4b5795f909c3ef872fe99c6f1e6704a0fa97594b1570b3579226ec67fe11d696ccc349a4585055bbaf07c65eff423aa45af28abf38c858"src: "https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz"["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Lucas Pluvinage <lucas.pluvinage@gmail.com>"license: "ISC"homepage: "https://github.com/mirage/bigarray-compat"bug-reports: "https://github.com/mirage/bigarray-compat/issues"depends: ["ocaml" {>= "4.02.3"}"dune" {>= "1.0"}]url {checksum: []}x-commit-hash: "2ea842ba4ab2cfee7b711f7ad927917f3179a6f9""sha256=434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5""sha512=7be283fd957ee168ce1e62835d22114da405e4b7da9619b4f2030a832d45ca210a0c8f1d1c57c92e224f3512308a8a0f0923b94f44b6f582acbe0e7728d179d4"src:"https://github.com/mirage/bigarray-compat/releases/download/v1.1.0/bigarray-compat-1.1.0.tbz"synopsis:"Compatibility library to use Stdlib.Bigarray when possible"dev-repo: "git+https://github.com/mirage/bigarray-compat.git"build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]]authors: [ "Lucas Pluvinage <lucas.pluvinage@gmail.com>" ]
opam-version: "2.0"homepage: "https://github.com/janestreet/base"bug-reports: "https://github.com/janestreet/base/issues"dev-repo: "git+https://github.com/janestreet/base.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/base/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.08.0"}"sexplib0" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"dune-configurator"]synopsis: "Full standard library replacement for OCaml"description: "Full standard library replacement for OCamlBase is a complete and portable alternative to the OCaml standardlibrary. It provides all standard functionalities one would expectfrom a language standard library. It uses consistent conventionsacross all of its module.Base aims to be usable in any context. As a result system dependentfeatures such as I/O are not offered by Base. They are insteadprovided by companion libraries such as stdio:https://github.com/janestreet/stdio"url {}src: "https://github.com/janestreet/base/archive/v0.14.3.tar.gz"checksum: "sha256=e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"maintainer: "https://github.com/ocaml-multicore/multicore-opam/issues"description: """Domains-based parallelism distributed with the Multicore OCaml compiler""""depends: ["ocaml" {>= "5.00"} |"ocaml-variants" {= "4.14.0+domains" |= "4.12.0+domains+effects" |= "4.12.0+domains" |= "4.10.0+multicore" |= "4.10.0+multicore+no-effect-syntax" |= "4.06.1+multicore"}]
opam-version: "2.0"synopsis: "Alcotest is a lightweight and colourful test framework"description: """Alcotest exposes simple interface to perform unit tests. It exposesa simple TESTABLE module type, a check function to assert testpredicates and a run function to perform a list of unit -> unittest callbacks.Alcotest provides a quiet and colorful output where only faulty runsare fully displayed at the end of the run (with the full logs ready toinspect), with a simple (yet expressive) query language to select thetests to run."""maintainer: ["thomas@gazagnaire.org"]authors: ["Thomas Gazagnaire"]license: "ISC"homepage: "https://github.com/mirage/alcotest"doc: "https://mirage.github.io/alcotest"bug-reports: "https://github.com/mirage/alcotest/issues"depends: ["ocaml" {>= "4.03.0"}"fmt" {>= "0.8.7"}"astring""stdlib-shims"]build: [["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/mirage/alcotest.git"url {src:checksum: []}"sha256=54281907e02d78995df246dc2e10ed182828294ad2059347a1e3a13354848f6c""sha512=1aea91de40795ec4f6603d510107e4b663c1a94bd223f162ad231316d8595e9e098cabbe28a46bdcb588942f3d103d8377373d533bcc7413ba3868a577469b45""https://github.com/mirage/alcotest/releases/download/1.5.0/alcotest-js-1.5.0.tbz"x-commit-hash: "12889aa7f993ad55434443f1c447a59f18ffc9bf"["dune" "subst"] {dev}"uutf" {>= "1.0.1"}"ocaml-syntax-shims""odoc" {with-doc}]conflicts: ["result" {< "1.5"}"re" {>= "1.7.2"}"cmdliner" {>= "1.0.0"}"cmdliner" {with-test & < "1.1.0"}"dune" {>= "2.8"}
opam-version: "2.0"maintainer: "yallop@gmail.com"homepage: "https://github.com/ocamllabs/ocaml-ctypes"dev-repo: "git+http://github.com/ocamllabs/ocaml-ctypes.git"bug-reports: "http://github.com/ocamllabs/ocaml-ctypes/issues"depends: ["conf-libffi" {>= "2.0.0"}]tags: ["org:ocamllabs" "org:mirage"]post-messages: ["This package requires libffi on your system" {failure}]synopsis: "Virtual package for enabling the ctypes.foreign subpackage."description: """`ctypes-foreign` is just a virtual OPAM package that determineswhether the foreign subpackage should built as part of ctypes.In order to actually get the ctypes package, you should also:opam install ctypes ctypes-foreignYou can verify the existence of the ocamlfind subpackage by:ocamlfind list | grep ctypesWhich should output something like:ctypes (version: 0.4.1)ctypes.foreign (version: 0.4.1)ctypes.foreign.base (version: 0.4.1)ctypes.foreign.threaded (version: 0.4.1)ctypes.foreign.unthreaded (version: 0.4.1)ctypes.stubs (version: 0.4.1)ctypes.top (version: 0.4.1)"""authors: "yallop@gmail.com"
opam-version: "2.0"maintainer: "blue-prawn"authors: ["Anthony Green"]homepage: "http://sourceware.org/libffi/"license: "MIT"build: ["pkg-config" "libffi"]depexts: [["libffi"] {os = "macos" & os-distribution = "homebrew"}["libffi"] {os = "macos" & os-distribution = "macports"}["libffi-dev"] {os-distribution = "alpine"}["libffi-dev"] {os-family = "debian"}["libffi-devel"] {os-distribution = "centos"}["libffi-devel"] {os-distribution = "fedora"}["libffi-devel"] {os-distribution = "mageia"}["libffi-devel"] {os-distribution = "ol"}["libffi-devel"] {os-family = "suse"}["libffi"] {os = "freebsd"}["libffi"] {os = "win32" & os-distribution = "cygwinports"}["libffi"] {os-distribution = "nixos"}]synopsis: "Virtual package relying on libffi system installation"description: "This package can only install if libffi is installed on the system."depends: ["conf-pkg-config" {build}]bug-reports: "https://github.com/ocaml/opam-repository/issues"flags: conf
opam-version: "2.0"synopsis: "A library for building correct HTML and SVG documents"description:"TyXML provides a set of convenient combinators that uses the OCaml type system to ensure the validity of the generated documents. TyXML can be used with any representation of HTML and SVG: the textual one, provided directly by this package, or DOM trees (`js_of_ocaml-tyxml`) virtual DOM (`virtual-dom`) and reactive or replicated trees (`eliom`). You can also create your own representation and use it to instantiate a new set of combinators."maintainer: ["dev@ocsigen.org"]authors: ["The ocsigen team"]homepage: "https://github.com/ocsigen/tyxml"doc: "https://ocsigen.org/tyxml/latest/manual/intro"bug-reports: "https://github.com/ocsigen/tyxml/issues"depends: ["dune" {>= "2.0"}"ocaml" {>= "4.02"}"alcotest" {with-test}"re" {>= "1.5.0"}"seq""uutf" {>= "1.0.0"}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocsigen/tyxml.git"x-commit-hash: "ef431a4bceaefb2d9248e79092e6c1a1a9420095"url {src:"https://github.com/ocsigen/tyxml/releases/download/4.5.0/tyxml-4.5.0.tbz"checksum: ["sha256=c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068""sha512=772535441b09c393d53c27152e65f404a0a541aa0cea1bda899a8d751ab64d1729237e583618c3ff33d75e3865d53503d1ea413c6bbc8c68c413347efd1709b3"]}license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
opam-version: "2.0"homepage: "https://github.com/janestreet/ppx_js_style"bug-reports: "https://github.com/janestreet/ppx_js_style/issues"dev-repo: "git+https://github.com/janestreet/ppx_js_style.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_js_style/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"octavius""ppxlib" {>= "0.11.0"}]synopsis: "Code style checker for Jane Street Packages"description: "Part of the Jane Street's PPX rewriters collection.This packages is a no-op ppx rewriter. It is used as a 'lint' tool toenforce some coding conventions across all Jane Street packages."url {}src: "https://github.com/janestreet/ppx_js_style/archive/refs/tags/v0.14.1.tar.gz"checksum: "md5=2d79afa4f954aeafb81b64ecfc11c3fb"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"maintainer: "Spiros Eliopoulos <spiros@inhabitedtype.com>"authors: [ "Spiros Eliopoulos <spiros@inhabitedtype.com>" ]license: "BSD-3-clause"homepage: "https://github.com/inhabitedtype/angstrom"bug-reports: "https://github.com/inhabitedtype/angstrom/issues"dev-repo: "git+https://github.com/inhabitedtype/angstrom.git"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.03.0"}"dune" {>= "1.8"}"angstrom""lwt""base-unix"]synopsis: "Lwt_unix support for Angstrom"url {src: "https://github.com/inhabitedtype/angstrom/archive/0.15.0.tar.gz"checksum: "md5=5104768c404ea92fd0a53a5b0f75cd50"}["dune" "subst"] {dev}
opam-version: "2.0"description: """authors: []depends: []build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]url {checksum: []}"sha256=e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56""sha512=58f78b083483006b40814be9aac33c895349eb1c6427d2762b4d760192613401262478bd5deff909763517560b06af7bf013c6a6f87d549aafa77b26345303f2"src:"https://github.com/ocaml-dune/pp/releases/download/1.1.2/pp-1.1.2.tbz"dev-repo: "git+https://github.com/ocaml-dune/pp.git"x-commit-hash: "395b95c89cfe2c6d538dad9d56721b6a7278d46c""dune" {>= "2.0"}"ocaml" {>= "4.08.0"}"ppx_expect" {with-test}license: "MIT"homepage: "https://github.com/ocaml-dune/pp"doc: "https://ocaml-dune.github.io/pp/"bug-reports: "https://github.com/ocaml-dune/pp/issues""Jane Street Group, LLC""Jeremie Dimino <jeremie@dimino.org>"[1]: https://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html[2]: http://caml.inria.fr/resources/doc/guides/format.en.html"""maintainer: ["Jeremie Dimino <jeremie@dimino.org>"]Pp uses the same concepts of boxes and break hints, and the finalrendering is done to formatter from the Format module. However itdefines its own algebra which some might find easier to work with andreason about. No previous knowledge is required to start using thislibrary, however the various guides for the Format module such as thisone [2] should be applicable to Pp as well.This library provides a lean alternative to the Format [1] module ofthe OCaml standard library. It aims to make it easy for users to dothe right thing. If you have tried Format before but find its APIcomplicated and difficult to use, then Pp might be a good choice foryou.synopsis: "Pretty-printing library"
opam-version: "2.0"maintainer: "simon.cruanes.2007@m4x.org"synopsis: "A modular, clean and powerful extension of the OCaml standard library"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" { >= "4.03.0" }"dune" { >= "1.1" }"dune-configurator""seq""qtest" { with-test }"qcheck" { with-test }"ounit" { with-test }"iter" { with-test }"gen" { with-test }"uutf" { with-test }"odoc" { with-doc }]depopts: ["base-unix""base-threads"]tags: [ "stdlib" "containers" "iterators" "list" "heap" "queue" ]homepage: "https://github.com/c-cube/ocaml-containers/"doc: "https://c-cube.github.io/ocaml-containers"dev-repo: "git+https://github.com/c-cube/ocaml-containers.git"bug-reports: "https://github.com/c-cube/ocaml-containers/issues/"authors: "Simon Cruanes"url {checksum: []}"md5=aa946f452a156b7cd0b932b5a849b44e""sha512=fbb6e519ea918afd3895de4cb74bb93a1d7d8899aa1d9def0ee0576a4f648413e3a7d9639040a1117516efb74c66c3432e6da79e6284d2315327175e22766717"src: "https://github.com/c-cube/ocaml-containers/archive/v3.3.tar.gz"["dune" "runtest" "-p" name "-j" jobs] {with-test}["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}
opam-version: "2.0"maintainer: "simon.cruanes.2007@m4x.org"synopsis: "A set of advanced datatypes for containers"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" { >= "4.03.0" }"dune" { >= "1.1" }"containers" { = version }"seq""qtest" { with-test }"qcheck" { with-test }"ounit" { with-test }"iter" { with-test }"gen" { with-test }#"mdx" { with-test & >= "1.5.0" & < "2.0.0" }"odoc" { with-doc }]tags: [ "containers" "RAL" "functional" "vector" "okasaki" ]homepage: "https://github.com/c-cube/ocaml-containers/"doc: "https://c-cube.github.io/ocaml-containers"dev-repo: "git+https://github.com/c-cube/ocaml-containers.git"bug-reports: "https://github.com/c-cube/ocaml-containers/issues/"authors: "Simon Cruanes"url {checksum: []}"md5=aa946f452a156b7cd0b932b5a849b44e""sha512=fbb6e519ea918afd3895de4cb74bb93a1d7d8899aa1d9def0ee0576a4f648413e3a7d9639040a1117516efb74c66c3432e6da79e6284d2315327175e22766717"src: "https://github.com/c-cube/ocaml-containers/archive/v3.3.tar.gz"["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}["dune" "runtest" "-p" name "-j" jobs] {with-test & arch != "x86_32"}
opam-version: "2.0"synopsis: "Parsing and printing of S-expressions in Canonical form"description: """This library provides minimal support for Canonical S-expressions[1]. Canonical S-expressions are a binary encoding of S-expressionsthat is super simple and well suited for communication betweenprograms.This library only provides a few helpers for simple applications. Ifyou need more advanced support, such as parsing from more fancy inputsources, you should consider copying the code of this library givenhow simple parsing S-expressions in canonical form is.To avoid a dependency on a particular S-expression library, the onlymodule of this library is parameterised by the type of S-expressions.[1] https://en.wikipedia.org/wiki/Canonical_S-expressions"""maintainer: ["Jeremie Dimino <jeremie@dimino.org>"]authors: ["Quentin Hocquet <mefyl@gruntech.org>""Jeremie Dimino <jeremie@dimino.org>"]license: "MIT"homepage: "https://github.com/ocaml-dune/csexp"doc: "https://ocaml-dune.github.io/csexp/"bug-reports: "https://github.com/ocaml-dune/csexp/issues"depends: ["dune" {>= "1.11"}]dev-repo: "git+https://github.com/ocaml-dune/csexp.git"build: [["dune""build""-p"name"-j"jobs"@install""@doc" {with-doc}]]url {src:checksum: []}"sha256=d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02""sha512=d785bbabaff9f6bf601399149ef0a42e5e99647b54e27f97ef1625907793dda22a45bf83e0e8a1eba2c63634c5484b54739ff0904ef556f5fc592efa38af7505""https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz"x-commit-hash: "7eeb86206819d2b1782d6cde1be9d6cf8b5fc851"# Tests disabled because of a cyclic dependency with csexp, dune-configurator and ppx_expect# "@runtest" {with-test}["dune" "subst"] {dev}"ocaml" {>= "4.03.0"}# "ppx_expect" {with-test & >= "v0.14"}"odoc" {with-doc}"Jane Street Group, LLC"
{"root": "discopotty@link-dev:./package.json","node": {"yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79@d41d8cd9": {"id":"yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79@d41d8cd9","name": "yarn-pkg-config","version":"github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79","source": {"type": "install","source": ["github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79"]},"overrides": [],"dependencies": [],"devDependencies": []},"name": "relog","source": {"type": "install",},"overrides": [],"dependencies": ["@opam/containers@opam:3.3@dbb7483a"],"devDependencies": []},"name": "ocaml","source": {"type": "install",},"overrides": [],"dependencies": [],"devDependencies": []},"esy-m4@github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7@d41d8cd9": {"id":"esy-m4@github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7@d41d8cd9","name": "esy-m4","version":"github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7","source": {"type": "install","source": ["github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7"]},"overrides": [],"devDependencies": []},"esy-help2man@github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443@d41d8cd9": {"id":"esy-help2man@github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443@d41d8cd9","name": "esy-help2man","version":"github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443","source": {"type": "install","source": ["github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443"]},"overrides": [],"dependencies": [],"devDependencies": []},"esy-gmp@archive:https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz#sha1:0578d48607ec0e272177d175fd1807c30b00fdf2@d3dc108f": {"id":"esy-gmp@archive:https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz#sha1:0578d48607ec0e272177d175fd1807c30b00fdf2@d3dc108f","name": "esy-gmp","version":"archive:https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz#sha1:0578d48607ec0e272177d175fd1807c30b00fdf2","source": {"type": "install","source": ["archive:https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz#sha1:0578d48607ec0e272177d175fd1807c30b00fdf2"]},"overrides": [ "esy.lock/overrides/d3dc108f8f9f64699d29c9c180f20b50" ],"dependencies": [],"devDependencies": []},"discopotty@link-dev:./package.json": {"id": "discopotty@link-dev:./package.json","name": "discopotty","version": "link-dev:./package.json","source": {"type": "link-dev","path": ".","manifest": "package.json"},"overrides": [],"dependencies": ["@opam/sodium@github:quartz55/ocaml-sodium:sodium.opam#6088c1c@32227790","@opam/ppx_yojson_conv@opam:v0.14.0@13acb3e6","@opam/ppx_deriving@opam:5.2.1@089e5dd3","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/containers-data@opam:3.3@f1de1b21","@opam/containers@opam:3.3@dbb7483a","@opam/conf-libsodium@github:EduardoRFS/esy-libsodium:libsodium.opam#caeedd7@d003f610","@opam/angstrom@opam:0.15.0@105656d9",],"devDependencies": []},"name": "@opam/yojson","version": "opam:1.7.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/b8/b89d39ca3f8c532abe5f547ad3b8f84d#md5:b89d39ca3f8c532abe5f547ad3b8f84d","archive:https://github.com/ocaml-community/yojson/releases/download/1.7.0/yojson-1.7.0.tbz#md5:b89d39ca3f8c532abe5f547ad3b8f84d"],"opam": {"name": "yojson","version": "1.7.0","path": "esy.lock/opam/yojson.1.7.0"}},"overrides": [],"dependencies": ["@opam/biniou@opam:1.2.1@420bda02","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {},"overrides": [],"dependencies": ["@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"id":"name": "@opam/websocketaf","source": {},"overrides": [],"dependencies": ["@opam/faraday@opam:0.8.1@3e04a493","@opam/dune@opam:2.9.3@f57a6d69","@opam/base64@opam:3.5.0@827395e3","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/faraday@opam:0.8.1@3e04a493","@opam/base64@opam:3.5.0@827395e3",]},"name": "@opam/uutf","source": {"type": "install","source": [],"opam": {"name": "uutf",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/uuseg","source": {"type": "install","source": [],"opam": {"name": "uuseg",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/uucp","source": {"type": "install","source": [],"opam": {"name": "uucp",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/uri","version": "opam:4.1.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/d2/d269901cd27cffaadfa077fe761ef334ad4cdbebeb065faeb833824617ab2ce1#sha256:d269901cd27cffaadfa077fe761ef334ad4cdbebeb065faeb833824617ab2ce1","archive:https://github.com/mirage/ocaml-uri/releases/download/v4.1.0/uri-v4.1.0.tbz#sha256:d269901cd27cffaadfa077fe761ef334ad4cdbebeb065faeb833824617ab2ce1"],"opam": {"name": "uri","version": "4.1.0","path": "esy.lock/opam/uri.4.1.0"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/tyxml","source": {"type": "install","source": [],"opam": {"name": "tyxml",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/topkg","source": {"type": "install","source": [],"opam": {"name": "topkg",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/toml","version": "opam:6.0.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/dd/dd123c49769fe649f752a19ae5cb7ce63754c1bcca40fa019f8bffca969d6f44#sha256:dd123c49769fe649f752a19ae5cb7ce63754c1bcca40fa019f8bffca969d6f44","archive:https://github.com/ocaml-toml/to.ml/archive/6.0.0.tar.gz#sha256:dd123c49769fe649f752a19ae5cb7ce63754c1bcca40fa019f8bffca969d6f44"],"opam": {"name": "toml","version": "6.0.0","path": "esy.lock/opam/toml.6.0.0"}},"overrides": [],"dependencies": ["@opam/ISO8601@opam:0.2.6@07c0838b","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/stringext","version": "opam:1.6.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/db/db41f5d52e9eab17615f110b899dfeb27dd7e7f89cd35ae43827c5119db206ea#sha256:db41f5d52e9eab17615f110b899dfeb27dd7e7f89cd35ae43827c5119db206ea","archive:https://github.com/rgrinberg/stringext/releases/download/1.6.0/stringext-1.6.0.tbz#sha256:db41f5d52e9eab17615f110b899dfeb27dd7e7f89cd35ae43827c5119db206ea"],"opam": {"name": "stringext","version": "1.6.0","path": "esy.lock/opam/stringext.1.6.0"}},"overrides": [],"dependencies": ["@opam/base-bytes@opam:base@19d0c2ff","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-bytes@opam:base@19d0c2ff"]},"name": "@opam/stdlib-shims","version": "opam:0.3.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/ba/babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a#sha256:babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a","archive:https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz#sha256:babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a"],"opam": {"name": "stdlib-shims","version": "0.3.0","path": "esy.lock/opam/stdlib-shims.0.3.0"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/stdio","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/4c/4cbdf15f0be88c3258aaeff9e04e00e9#md5:4cbdf15f0be88c3258aaeff9e04e00e9","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/stdio-v0.14.0.tar.gz#md5:4cbdf15f0be88c3258aaeff9e04e00e9"],"opam": {"name": "stdio","version": "v0.14.0","path": "esy.lock/opam/stdio.v0.14.0"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/stdint","version": "opam:0.7.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/4f/4fcc66aef58e2b96e7af3bbca9d910aa239e045ba5fb2400aaef67d0041252dc#sha256:4fcc66aef58e2b96e7af3bbca9d910aa239e045ba5fb2400aaef67d0041252dc","archive:https://github.com/andrenth/ocaml-stdint/releases/download/0.7.0/stdint-0.7.0.tbz#sha256:4fcc66aef58e2b96e7af3bbca9d910aa239e045ba5fb2400aaef67d0041252dc"],"opam": {"name": "stdint","version": "0.7.0","path": "esy.lock/opam/stdint.0.7.0"}},"overrides": [],"dependencies": [],"devDependencies": []},"@opam/spawn@opam:v0.15.0@4a27a4cb": {"id": "@opam/spawn@opam:v0.15.0@4a27a4cb","name": "@opam/spawn","version": "opam:v0.15.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/31/310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7#sha256:310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7","archive:https://github.com/janestreet/spawn/archive/v0.15.0.tar.gz#sha256:310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7"],"opam": {"name": "spawn","version": "v0.15.0","path": "esy.lock/opam/spawn.v0.15.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/sodium@github:quartz55/ocaml-sodium:sodium.opam#6088c1c@32227790": {"id":"@opam/sodium@github:quartz55/ocaml-sodium:sodium.opam#6088c1c@32227790","name": "@opam/sodium","version": "github:quartz55/ocaml-sodium:sodium.opam#6088c1c","source": {"type": "install","source": [ "github:quartz55/ocaml-sodium:sodium.opam#6088c1c" ]},"overrides": [ { "dependencies": { "@opam/conf-libsodium": "*" } } ],"dependencies": ["@opam/conf-libsodium@github:EduardoRFS/esy-libsodium:libsodium.opam#caeedd7@d003f610","@opam/base-bytes@opam:base@19d0c2ff","@opam/base-bigarray@opam:base@b03491b0","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-bytes@opam:base@19d0c2ff","@opam/base-bigarray@opam:base@b03491b0"]},"name": "@opam/sexplib0","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/37/37aff0af8f8f6f759249475684aebdc4#md5:37aff0af8f8f6f759249475684aebdc4","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/sexplib0-v0.14.0.tar.gz#md5:37aff0af8f8f6f759249475684aebdc4"],"opam": {"name": "sexplib0","version": "v0.14.0","path": "esy.lock/opam/sexplib0.v0.14.0"}},"overrides": [],"dependencies": [],"devDependencies": ["@opam/seq@opam:base@d8d7de1d": {"id": "@opam/seq@opam:base@d8d7de1d","name": "@opam/seq","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "seq","version": "base","path": "esy.lock/opam/seq.base"}},"overrides": [],"dependencies": [],},"name": "@opam/result","version": "opam:1.5","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/1b/1b82dec78849680b49ae9a8a365b831b#md5:1b82dec78849680b49ae9a8a365b831b","archive:https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz#md5:1b82dec78849680b49ae9a8a365b831b"],"opam": {"name": "result","version": "1.5","path": "esy.lock/opam/result.1.5"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/re","source": {"type": "install","source": [],"opam": {"name": "re",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/qcheck-core","source": {"type": "install","source": [],"opam": {"name": "qcheck-core",}},"overrides": [],"dependencies": ["@opam/base-unix@opam:base@87d0b2eb","@opam/base-bytes@opam:base@19d0c2ff","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-unix@opam:base@87d0b2eb","@opam/base-bytes@opam:base@19d0c2ff"]},"name": "@opam/qcheck-alcotest","source": {"type": "install","source": [],"opam": {"name": "qcheck-alcotest",}},"overrides": [],"dependencies": ["@opam/base-unix@opam:base@87d0b2eb","@opam/base-bytes@opam:base@19d0c2ff","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-unix@opam:base@87d0b2eb","@opam/base-bytes@opam:base@19d0c2ff",]},"name": "@opam/ptime","source": {"type": "install","source": [],"opam": {"name": "ptime",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/psq","version": "opam:0.2.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/b9/b94fb15f8878172bf58446b7d0fb7c1e#md5:b94fb15f8878172bf58446b7d0fb7c1e","archive:https://github.com/pqwy/psq/releases/download/v0.2.0/psq-v0.2.0.tbz#md5:b94fb15f8878172bf58446b7d0fb7c1e"],"opam": {"name": "psq","version": "0.2.0","path": "esy.lock/opam/psq.0.2.0"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/ppxlib","source": {"type": "install","source": [],"opam": {"name": "ppxlib",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/ppx_yojson_conv_lib","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/e2/e23c5593a7211ad4fb09e26e9a74698a#md5:e23c5593a7211ad4fb09e26e9a74698a","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz#md5:e23c5593a7211ad4fb09e26e9a74698a"],"opam": {"name": "ppx_yojson_conv_lib","version": "v0.14.0","path": "esy.lock/opam/ppx_yojson_conv_lib.v0.14.0"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/ppx_yojson_conv","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/d5/d5e243a694a5d1b67e838bce10178718#md5:d5e243a694a5d1b67e838bce10178718","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv-v0.14.0.tar.gz#md5:d5e243a694a5d1b67e838bce10178718"],"opam": {"name": "ppx_yojson_conv","version": "v0.14.0","path": "esy.lock/opam/ppx_yojson_conv.v0.14.0"]},"name": "ppx_js_style","version": "v0.14.1",}},"overrides": [],"dependencies": ["@opam/octavius@opam:1.2.2@2205cc65","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/octavius@opam:1.2.2@2205cc65","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"name": "@opam/ppx_deriving","version": "opam:5.2.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/e9/e96b5fb25b7632570e4b329e22e097fcd4b8e8680d1e43ef003a8fbd742b0786#sha256:e96b5fb25b7632570e4b329e22e097fcd4b8e8680d1e43ef003a8fbd742b0786","archive:https://github.com/ocaml-ppx/ppx_deriving/releases/download/v5.2.1/ppx_deriving-v5.2.1.tbz#sha256:e96b5fb25b7632570e4b329e22e097fcd4b8e8680d1e43ef003a8fbd742b0786"],"opam": {"name": "ppx_deriving","version": "5.2.1","path": "esy.lock/opam/ppx_deriving.5.2.1"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072",]},"name": "@opam/ppx_derivers","version": "opam:1.2.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/5d/5dc2bf130c1db3c731fe0fffc5648b41#md5:5dc2bf130c1db3c731fe0fffc5648b41","archive:https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz#md5:5dc2bf130c1db3c731fe0fffc5648b41"],"opam": {"name": "ppx_derivers","version": "1.2.1","path": "esy.lock/opam/ppx_derivers.1.2.1"}},"overrides": [],"dependencies": [],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_js_style@opam:v0.14.1@03f2d62f","@opam/ppx_hash@opam:v0.14.0@455f5f56","@opam/ppx_enumerate@opam:v0.14.0@2be34197","@opam/ppx_compare@opam:v0.14.0@fbd22977","@opam/ppx_cold@opam:v0.14.0@91b05a20","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/ppx_assert@opam:v0.14.0@f5d6cf6a": {"id": "@opam/ppx_assert@opam:v0.14.0@f5d6cf6a","name": "@opam/ppx_assert","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/53/535b5f241eb7f10da8c044c26afbc186#md5:535b5f241eb7f10da8c044c26afbc186","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_assert-v0.14.0.tar.gz#md5:535b5f241eb7f10da8c044c26afbc186"],"opam": {"name": "ppx_assert","version": "v0.14.0","path": "esy.lock/opam/ppx_assert.v0.14.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_here@opam:v0.14.0@c05577d4","@opam/ppx_compare@opam:v0.14.0@fbd22977","@opam/ppx_cold@opam:v0.14.0@91b05a20","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_here@opam:v0.14.0@c05577d4","@opam/ppx_compare@opam:v0.14.0@fbd22977","@opam/ppx_cold@opam:v0.14.0@91b05a20","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_base@opam:v0.14.0@3221121a": {"id": "@opam/ppx_base@opam:v0.14.0@3221121a","name": "@opam/ppx_base","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/b2/b29a24907e60f42e050ad90e5209bb92#md5:b29a24907e60f42e050ad90e5209bb92","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_base-v0.14.0.tar.gz#md5:b29a24907e60f42e050ad90e5209bb92"],"opam": {"name": "ppx_base","version": "v0.14.0","path": "esy.lock/opam/ppx_base.v0.14.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_js_style@opam:v0.14.1@03f2d62f","@opam/ppx_hash@opam:v0.14.0@455f5f56","@opam/ppx_enumerate@opam:v0.14.0@2be34197","@opam/ppx_compare@opam:v0.14.0@fbd22977","@opam/ppx_cold@opam:v0.14.0@91b05a20","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"]},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [},"overrides": [],"dependencies": ["@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/optint","source": {"type": "install","source": [],"opam": {"name": "optint",}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/odoc-parser@opam:1.0.0@b1029bdf": {"id": "@opam/odoc-parser@opam:1.0.0@b1029bdf","name": "@opam/odoc-parser","version": "opam:1.0.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/b6/b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1#sha256:b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1","archive:https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.0/odoc-parser-1.0.0.tbz#sha256:b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1"],"opam": {"name": "odoc-parser","version": "1.0.0","path": "esy.lock/opam/odoc-parser.1.0.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/astring@opam:0.8.5@1300cee8","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/astring@opam:0.8.5@1300cee8"]},"name": "@opam/odoc","source": {"type": "install","source": [],"opam": {"name": "odoc",}},"overrides": [],"dependencies": ["@opam/astring@opam:0.8.5@1300cee8","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/astring@opam:0.8.5@1300cee8"]},"name": "@opam/octavius","version": "opam:1.2.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/72/72f9e1d996e6c5089fc513cc9218607b#md5:72f9e1d996e6c5089fc513cc9218607b","archive:https://github.com/ocaml-doc/octavius/archive/v1.2.2.tar.gz#md5:72f9e1d996e6c5089fc513cc9218607b"],"opam": {"name": "octavius","version": "1.2.2","path": "esy.lock/opam/octavius.1.2.2"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/ocplib-endian","source": {"type": "install","source": [],"opam": {"name": "ocplib-endian",}},"overrides": [],"dependencies": ["@opam/base-bytes@opam:base@19d0c2ff","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-bytes@opam:base@19d0c2ff"]},"name": "@opam/ocamlformat","source": {"type": "install","source": [],"opam": {"name": "ocamlformat",}},"overrides": [],"dependencies": ["@opam/fpath@opam:0.7.3@674d8125","@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/fpath@opam:0.7.3@674d8125","@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ocamlfind@opam:1.8.1@b7dc3072": {"id": "@opam/ocamlfind@opam:1.8.1@b7dc3072","name": "@opam/ocamlfind","version": "opam:1.8.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/18/18ca650982c15536616dea0e422cbd8c#md5:18ca650982c15536616dea0e422cbd8c","archive:http://download2.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c","archive:http://download.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c"],"opam": {"name": "ocamlfind","version": "1.8.1","path": "esy.lock/opam/ocamlfind.1.8.1"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override"}],"dependencies": [],},"name": "@opam/ocamlbuild","source": {"type": "install","source": [],"opam": {"name": "ocamlbuild",}},"overrides": [{"opamoverride":}],"dependencies": [],},"name": "@opam/ocaml-version","source": {"type": "install","source": [],"opam": {"name": "ocaml-version",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/ocaml-syntax-shims","version": "opam:1.0.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/89/89b2e193e90a0c168b6ec5ddf6fef09033681bdcb64e11913c97440a2722e8c8#sha256:89b2e193e90a0c168b6ec5ddf6fef09033681bdcb64e11913c97440a2722e8c8","archive:https://github.com/ocaml-ppx/ocaml-syntax-shims/releases/download/1.0.0/ocaml-syntax-shims-1.0.0.tbz#sha256:89b2e193e90a0c168b6ec5ddf6fef09033681bdcb64e11913c97440a2722e8c8"],"opam": {"name": "ocaml-syntax-shims","version": "1.0.0","path": "esy.lock/opam/ocaml-syntax-shims.1.0.0"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/ocaml-lsp-server","source": {"type": "install","source": [],"opam": {"name": "ocaml-lsp-server",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/ocaml-compiler-libs","source": {"type": "install","source": [],"opam": {"name": "ocaml-compiler-libs",}},"overrides": [],"dependencies": [],"devDependencies": []},"@opam/mtime@opam:1.2.0@acd670b8": {"id": "@opam/mtime@opam:1.2.0@acd670b8","name": "@opam/mtime","version": "opam:1.2.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/f3/f3f4c1333c0f74fc27b05c35b9c0dab9#md5:f3f4c1333c0f74fc27b05c35b9c0dab9","archive:https://erratique.ch/software/mtime/releases/mtime-1.2.0.tbz#md5:f3f4c1333c0f74fc27b05c35b9c0dab9"],"opam": {"name": "mtime","version": "1.2.0","path": "esy.lock/opam/mtime.1.2.0"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__mtime_opam__c__1.2.0_opam_override"}],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/mmap","source": {"type": "install","source": [],"opam": {"name": "mmap",}},"overrides": [],"dependencies": ["name": "@opam/merlin-extend","version": "opam:0.6","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/c2/c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43#sha256:c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43","archive:https://github.com/let-def/merlin-extend/releases/download/v0.6/merlin-extend-v0.6.tbz#sha256:c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43"],"opam": {"name": "merlin-extend","version": "0.6","path": "esy.lock/opam/merlin-extend.0.6"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/merlin","source": {"type": "install","source": [],"opam": {"name": "merlin",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/menhirSdk","source": {"type": "install","source": [],"opam": {"name": "menhirSdk",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/menhirLib","source": {"type": "install","source": [],"opam": {"name": "menhirLib",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/menhir","source": {"type": "install","source": [],"opam": {"name": "menhir",}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/lwt","source": {"type": "install","source": [],"opam": {"name": "lwt",}},"overrides": [],"dependencies": ["@opam/ocaml-syntax-shims@opam:1.0.0@9f361fbb","@opam/base-unix@opam:base@87d0b2eb","@opam/base-threads@opam:base@36803084","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/ocaml-syntax-shims@opam:1.0.0@9f361fbb",]},"name": "@opam/logs","version": "opam:0.7.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/2b/2bf021ca13331775e33cf34ab60246f7#md5:2bf021ca13331775e33cf34ab60246f7","archive:https://erratique.ch/software/logs/releases/logs-0.7.0.tbz#md5:2bf021ca13331775e33cf34ab60246f7"],"opam": {"name": "logs","version": "0.7.0","path": "esy.lock/opam/logs.0.7.0"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/base-threads@opam:base@36803084","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install",},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install",},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install",},"overrides": [],"dependencies": ["@opam/faraday@opam:0.8.1@3e04a493","@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/faraday@opam:0.8.1@3e04a493","@opam/dune@opam:2.9.3@f57a6d69",]},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/gluten","source": {"type": "install",},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/fpath@opam:0.7.3@674d8125": {"id": "@opam/fpath@opam:0.7.3@674d8125","name": "@opam/fpath","version": "opam:0.7.3","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/07/0740b530e8fed5b0adc5eee8463cfc2f#md5:0740b530e8fed5b0adc5eee8463cfc2f","archive:https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz#md5:0740b530e8fed5b0adc5eee8463cfc2f"],"opam": {"name": "fpath","version": "0.7.3","path": "esy.lock/opam/fpath.0.7.3"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/astring@opam:0.8.5@1300cee8","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/fmt","source": {"type": "install","source": [],"opam": {"name": "fmt",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/fix","source": {"type": "install","source": [],"opam": {"name": "fix",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/faraday","source": {"type": "install","source": [],"opam": {"name": "faraday",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/eqaf","source": {"type": "install","source": [],"opam": {"name": "eqaf",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/easy-format","version": "opam:1.3.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/34/3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926#sha256:3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926","archive:https://github.com/mjambon/easy-format/releases/download/1.3.2/easy-format-1.3.2.tbz#sha256:3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926"],"opam": {"name": "easy-format","version": "1.3.2","path": "esy.lock/opam/easy-format.1.3.2"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/dune-configurator","source": {"type": "install","source": [],"opam": {"name": "dune-configurator",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/dune-build-info","source": {"type": "install","source": [],"opam": {"name": "dune-build-info",}},"overrides": [],"dependencies": [],},"name": "@opam/dune","source": {"type": "install","source": [],"opam": {"name": "dune",}},"overrides": [],"dependencies": ["@opam/base-threads@opam:base@36803084","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-threads@opam:base@36803084"]},"name": "@opam/dot-merlin-reader","source": {"type": "install","source": [],"opam": {"name": "dot-merlin-reader",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072",]},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/ctypes-foreign","version": "opam:0.4.0","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "ctypes-foreign","version": "0.4.0","path": "esy.lock/opam/ctypes-foreign.0.4.0"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__ctypes_foreign_opam__c__0.4.0_opam_override"}],"dependencies": [],},"name": "@opam/ctypes","source": {"type": "install","source": [],"opam": {"name": "ctypes",}},"overrides": [{"opamoverride":}],"dependencies": ["@opam/bigarray-compat@opam:1.1.0@84cda9d0","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/bigarray-compat@opam:1.1.0@84cda9d0"]},"source": {"type": "install",},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/cstruct","source": {"type": "install","source": [],"opam": {"name": "cstruct",}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69""@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","version": "6.1.0","path": "esy.lock/opam/cstruct.6.1.0""archive:https://opam.ocaml.org/cache/sha256/4f/4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b#sha256:4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b","archive:https://github.com/mirage/ocaml-cstruct/releases/download/v6.1.0/cstruct-6.1.0.tbz#sha256:4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b""version": "opam:6.1.0","@opam/cstruct@opam:6.1.0@b0cd6e0b": {"id": "@opam/cstruct@opam:6.1.0@b0cd6e0b",]},"name": "@opam/csexp","source": {"type": "install","source": [],"opam": {"name": "csexp",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/cppo","source": {"type": "install","source": [],"opam": {"name": "cppo",}},"overrides": [],"dependencies": ["@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-unix@opam:base@87d0b2eb"]},"name": "@opam/containers-data","source": {"type": "install","source": [],"opam": {"name": "containers-data",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/containers","source": {"type": "install","source": [],"opam": {"name": "containers",}},"overrides": [],"dependencies": ["@opam/base-unix@opam:base@87d0b2eb","@opam/base-threads@opam:base@36803084","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/conf-pkg-config","version": "opam:1.3","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-pkg-config","version": "1.3","path": "esy.lock/opam/conf-pkg-config.1.3"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__conf_pkg_config_opam__c__1.3_opam_override"}],"dependencies": ["yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/conf-m4@opam:1@196bf219": {"id": "@opam/conf-m4@opam:1@196bf219","name": "@opam/conf-m4","version": "opam:1","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-m4","version": "1","path": "esy.lock/opam/conf-m4.1"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override"}],"dependencies": ["esy-m4@github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/conf-libsodium@github:EduardoRFS/esy-libsodium:libsodium.opam#caeedd7@d003f610": {"id":"@opam/conf-libsodium@github:EduardoRFS/esy-libsodium:libsodium.opam#caeedd7@d003f610","name": "@opam/conf-libsodium","version": "github:EduardoRFS/esy-libsodium:libsodium.opam#caeedd7","source": {"type": "install","source": ["github:EduardoRFS/esy-libsodium:libsodium.opam#caeedd7"]},"overrides": [{"dependencies": {"esy-libsodium": "github:EduardoRFS/esy-libsodium#caeedd7"}}],"dependencies": ["esy-libsodium@archive:https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz#sha1:795b73e3f92a362fabee238a71735579bf46bb97@a5898027","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/conf-autoconf@github:esy-packages/esy-autoconf:package.json#fb93edf@d41d8cd9": {"id":"@opam/conf-autoconf@github:esy-packages/esy-autoconf:package.json#fb93edf@d41d8cd9","name": "@opam/conf-autoconf","version": "github:esy-packages/esy-autoconf:package.json#fb93edf","source": {"type": "install","source": [ "github:esy-packages/esy-autoconf:package.json#fb93edf" ]},"overrides": [],"dependencies": ["esy-help2man@github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443@d41d8cd9"],"devDependencies": []},"name": "@opam/cmdliner","source": {"type": "install","source": [],"opam": {"name": "cmdliner",}},"overrides": [],"dependencies": [],},"name": "@opam/biniou","version": "opam:1.2.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/35/35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335#sha256:35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335","archive:https://github.com/mjambon/biniou/releases/download/1.2.1/biniou-1.2.1.tbz#sha256:35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335"],"opam": {"name": "biniou","version": "1.2.1","path": "esy.lock/opam/biniou.1.2.1"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/bigstringaf","source": {"type": "install","source": [],"opam": {"name": "bigstringaf",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/bigarray-compat","source": {"type": "install","source": [],"opam": {"name": "bigarray-compat",}},"overrides": [],"dependencies": [],"devDependencies": []},"@opam/base64@opam:3.5.0@827395e3": {"id": "@opam/base64@opam:3.5.0@827395e3","name": "@opam/base64","version": "opam:3.5.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/58/589de9c00578ebfe784198ac9818d3586c474b2316b6cd3e1c46ccb1f62ae3a4#sha256:589de9c00578ebfe784198ac9818d3586c474b2316b6cd3e1c46ccb1f62ae3a4","archive:https://github.com/mirage/ocaml-base64/releases/download/v3.5.0/base64-v3.5.0.tbz#sha256:589de9c00578ebfe784198ac9818d3586c474b2316b6cd3e1c46ccb1f62ae3a4"],"opam": {"name": "base64","version": "3.5.0","path": "esy.lock/opam/base64.3.5.0"}},"overrides": [],"dependencies": [],"devDependencies": []},"@opam/base-unix@opam:base@87d0b2eb": {"id": "@opam/base-unix@opam:base@87d0b2eb","name": "@opam/base-unix","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-unix","version": "base","path": "esy.lock/opam/base-unix.base"}},"overrides": [],"dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ],"devDependencies": []},"@opam/base-threads@opam:base@36803084": {"id": "@opam/base-threads@opam:base@36803084","name": "@opam/base-threads","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-threads","version": "base","path": "esy.lock/opam/base-threads.base"}},"overrides": [],"dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ],"devDependencies": []},"@opam/base-bytes@opam:base@19d0c2ff": {"id": "@opam/base-bytes@opam:base@19d0c2ff","name": "@opam/base-bytes","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-bytes","version": "base","path": "esy.lock/opam/base-bytes.base"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/base-bigarray@opam:base@b03491b0": {"id": "@opam/base-bigarray@opam:base@b03491b0","name": "@opam/base-bigarray","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-bigarray","version": "base","path": "esy.lock/opam/base-bigarray.base"}},"overrides": [],"dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ],"devDependencies": []},"name": "@opam/base","source": {"type": "install","source": [],"opam": {"name": "base",}},"overrides": [],"dependencies": [],"devDependencies": []},"@opam/astring@opam:0.8.5@1300cee8": {"id": "@opam/astring@opam:0.8.5@1300cee8","name": "@opam/astring","version": "opam:0.8.5","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/e1/e148907c24157d1df43bec89b58b3ec8#md5:e148907c24157d1df43bec89b58b3ec8","archive:https://erratique.ch/software/astring/releases/astring-0.8.5.tbz#md5:e148907c24157d1df43bec89b58b3ec8"],"opam": {"name": "astring","version": "0.8.5","path": "esy.lock/opam/astring.0.8.5"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/angstrom","version": "opam:0.15.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/51/5104768c404ea92fd0a53a5b0f75cd50#md5:5104768c404ea92fd0a53a5b0f75cd50","archive:https://github.com/inhabitedtype/angstrom/archive/0.15.0.tar.gz#md5:5104768c404ea92fd0a53a5b0f75cd50"],"opam": {"name": "angstrom","version": "0.15.0","path": "esy.lock/opam/angstrom.0.15.0"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/alcotest","source": {"type": "install","source": [],"opam": {"name": "alcotest",}},"overrides": [],"dependencies": ["@opam/re@opam:1.10.3@0585c65d","@opam/ocaml-syntax-shims@opam:1.0.0@9f361fbb","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/astring@opam:0.8.5@1300cee8","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/re@opam:1.10.3@0585c65d","@opam/ocaml-syntax-shims@opam:1.0.0@9f361fbb","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/astring@opam:0.8.5@1300cee8"]},"@opam/ISO8601@opam:0.2.6@07c0838b": {"id": "@opam/ISO8601@opam:0.2.6@07c0838b","name": "@opam/ISO8601","version": "opam:0.2.6","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/a4/a460f01d409d51b7d537429881bfa276#md5:a460f01d409d51b7d537429881bfa276","archive:https://github.com/ocaml-community/ISO8601.ml/archive/0.2.6.tar.gz#md5:a460f01d409d51b7d537429881bfa276"],"opam": {"name": "ISO8601","version": "0.2.6","path": "esy.lock/opam/ISO8601.0.2.6"}},"overrides": [],"dependencies": ["@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-unix@opam:base@87d0b2eb"]},"@esy-ocaml/substs@0.0.1@d41d8cd9": {"id": "@esy-ocaml/substs@0.0.1@d41d8cd9","name": "@esy-ocaml/substs","version": "0.0.1","source": {"type": "install","source": ["archive:https://registry.npmjs.org/@esy-ocaml/substs/-/substs-0.0.1.tgz#sha1:59ebdbbaedcda123fc7ed8fb2b302b7d819e9a46"],}}}"devDependencies": []]},"overrides": [],"dependencies": [],"devDependencies": []},"@discopotty/opus@link:vendor/opus/package.json": {"id": "@discopotty/opus@link:vendor/opus/package.json","name": "@discopotty/opus","version": "link:vendor/opus/package.json","source": {"type": "link","path": "vendor/opus","manifest": "package.json"},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/conf-libopus@link:vendor/esy-libopus/conf-libopus.opam""@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/ctypes-foreign@opam:0.4.0@62b5f863","@opam/ctypes@opam:0.20.1@8c3cb4dc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/uutf@opam:1.0.3@47c95a18","@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/uutf@opam:1.0.3@47c95a18","@opam/stdlib-shims@opam:0.3.0@72c7bc98","version": "1.5.0","path": "esy.lock/opam/alcotest.1.5.0""archive:https://opam.ocaml.org/cache/sha256/54/54281907e02d78995df246dc2e10ed182828294ad2059347a1e3a13354848f6c#sha256:54281907e02d78995df246dc2e10ed182828294ad2059347a1e3a13354848f6c","archive:https://github.com/mirage/alcotest/releases/download/1.5.0/alcotest-js-1.5.0.tbz#sha256:54281907e02d78995df246dc2e10ed182828294ad2059347a1e3a13354848f6c""version": "opam:1.5.0","@opam/alcotest@opam:1.5.0@338d9572": {"id": "@opam/alcotest@opam:1.5.0@338d9572","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/bigstringaf@opam:0.9.0@5762d1bc""@opam/ocaml-syntax-shims@opam:1.0.0@9f361fbb","@opam/dune@opam:2.9.3@f57a6d69","@opam/bigstringaf@opam:0.9.0@5762d1bc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/angstrom@opam:0.15.0@105656d9": {"id": "@opam/angstrom@opam:0.15.0@105656d9",},"name": "@opam/angstrom-lwt-unix","version": "opam:0.15.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/51/5104768c404ea92fd0a53a5b0f75cd50#md5:5104768c404ea92fd0a53a5b0f75cd50","archive:https://github.com/inhabitedtype/angstrom/archive/0.15.0.tar.gz#md5:5104768c404ea92fd0a53a5b0f75cd50"],"opam": {"name": "angstrom-lwt-unix","version": "0.15.0","path": "esy.lock/opam/angstrom-lwt-unix.0.15.0"}},"overrides": [],"dependencies": ["@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-unix@opam:base@87d0b2eb",]"@opam/angstrom@opam:0.15.0@105656d9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/lwt@opam:5.5.0@30354e4c", "@opam/dune@opam:2.9.3@f57a6d69","@opam/angstrom@opam:0.15.0@105656d9","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/lwt@opam:5.5.0@30354e4c", "@opam/dune@opam:2.9.3@f57a6d69","@opam/angstrom-lwt-unix@opam:0.15.0@c3599c52": {"id": "@opam/angstrom-lwt-unix@opam:0.15.0@c3599c52","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]},"@opam/asn1-combinators@opam:0.2.6@220d4b1d": {"id": "@opam/asn1-combinators@opam:0.2.6@220d4b1d","name": "@opam/asn1-combinators","version": "opam:0.2.6","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/01/012ade0d8869ef621063752c1cf8ea026f6bc702fed10df9af56688e291b1a91#sha256:012ade0d8869ef621063752c1cf8ea026f6bc702fed10df9af56688e291b1a91","archive:https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v0.2.6/asn1-combinators-v0.2.6.tbz#sha256:012ade0d8869ef621063752c1cf8ea026f6bc702fed10df9af56688e291b1a91"],"opam": {"name": "asn1-combinators","version": "0.2.6","path": "esy.lock/opam/asn1-combinators.0.2.6"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/zarith@opam:1.12@232cc7f2", "@opam/ptime@opam:0.8.6@5df936b0","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/zarith@opam:1.12@232cc7f2", "@opam/ptime@opam:0.8.6@5df936b0","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b"]"@opam/ocamlbuild@opam:0.14.1@ead10f40","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "v0.14.3","path": "esy.lock/opam/base.v0.14.3""archive:https://opam.ocaml.org/cache/sha256/e3/e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a#sha256:e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a","archive:https://github.com/janestreet/base/archive/v0.14.3.tar.gz#sha256:e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a""version": "opam:v0.14.3","@opam/base@opam:v0.14.3@b3ddb868": {"id": "@opam/base@opam:v0.14.3@b3ddb868","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072",},"@opam/base-domains@opam:base@4d09530a": {"id": "@opam/base-domains@opam:base@4d09530a","name": "@opam/base-domains","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-domains","version": "base","path": "esy.lock/opam/base-domains.base"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.1.0","path": "esy.lock/opam/bigarray-compat.1.1.0""archive:https://opam.ocaml.org/cache/sha256/43/434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5#sha256:434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5","archive:https://github.com/mirage/bigarray-compat/releases/download/v1.1.0/bigarray-compat-1.1.0.tbz#sha256:434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5""version": "opam:1.1.0","@opam/bigarray-compat@opam:1.1.0@84cda9d0": {"id": "@opam/bigarray-compat@opam:1.1.0@84cda9d0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/conf-pkg-config@opam:1.3@d5a0b3fd","version": "0.9.0","path": "esy.lock/opam/bigstringaf.0.9.0""archive:https://opam.ocaml.org/cache/md5/0d/0d8ceddeb7db821fd4e5235a75ae9752#md5:0d8ceddeb7db821fd4e5235a75ae9752","archive:https://github.com/inhabitedtype/bigstringaf/archive/0.9.0.tar.gz#md5:0d8ceddeb7db821fd4e5235a75ae9752""version": "opam:0.9.0","@opam/bigstringaf@opam:0.9.0@5762d1bc": {"id": "@opam/bigstringaf@opam:0.9.0@5762d1bc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/biniou@opam:1.2.1@420bda02": {"id": "@opam/biniou@opam:1.2.1@420bda02","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.1.1","path": "esy.lock/opam/cmdliner.1.1.1""archive:https://opam.ocaml.org/cache/sha512/54/5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e#sha512:5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e","archive:https://erratique.ch/software/cmdliner/releases/cmdliner-1.1.1.tbz#sha512:5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e""version": "opam:1.1.1","@opam/cmdliner@opam:1.1.1@03763729": {"id": "@opam/cmdliner@opam:1.1.1@03763729","@opam/conf-libopus@link:vendor/esy-libopus/conf-libopus.opam": {"id": "@opam/conf-libopus@link:vendor/esy-libopus/conf-libopus.opam","name": "@opam/conf-libopus","version": "link:vendor/esy-libopus/conf-libopus.opam","source": {"type": "link","path": "vendor/esy-libopus","manifest": "conf-libopus.opam"},"overrides": [{ "dependencies": { "esy-libopus": "./vendor/esy-libopus" } }],"dependencies": ["esy-libopus@archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b@24aa01e3","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/conf-libffi","version": "opam:2.0.0","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-libffi","version": "2.0.0","path": "esy.lock/opam/conf-libffi.2.0.0"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__conf_libffi_opam__c__2.0.0_opam_override"}],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"esy-libffi@3.3.1@d41d8cd9","@opam/conf-pkg-config@opam:1.3@d5a0b3fd","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/conf-gmp-powm-sec@opam:3@b66b4239": {"id": "@opam/conf-gmp-powm-sec@opam:3@b66b4239","name": "@opam/conf-gmp-powm-sec","version": "opam:3","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-gmp-powm-sec","version": "3","path": "esy.lock/opam/conf-gmp-powm-sec.3"}},"overrides": [],"dependencies": ["@opam/conf-gmp@opam:4@c394e8f1", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "@opam/conf-gmp@opam:4@c394e8f1" ]},"@opam/conf-gmp@opam:4@c394e8f1": {"id": "@opam/conf-gmp@opam:4@c394e8f1","name": "@opam/conf-gmp","version": "opam:4","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-gmp","version": "4","path": "esy.lock/opam/conf-gmp.4"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__conf_gmp_opam__c__4_opam_override"}],"dependencies": ["esy-gmp@archive:https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz#sha1:0578d48607ec0e272177d175fd1807c30b00fdf2@d3dc108f","@opam/conf-libffi@opam:2.0.0@ef7e9742": {"id": "@opam/conf-libffi@opam:2.0.0@ef7e9742","@opam/conf-pkg-config@opam:1.3@d5a0b3fd","@opam/conf-pkg-config@opam:1.3@d5a0b3fd","@opam/conf-texinfo@github:esy-packages/esy-texinfo:package.json#4a05feafbbcc4c57d5d25899fbdab98961b9a69c@d41d8cd9": {"id":"@opam/conf-texinfo@github:esy-packages/esy-texinfo:package.json#4a05feafbbcc4c57d5d25899fbdab98961b9a69c@d41d8cd9","name": "@opam/conf-texinfo","version":"github:esy-packages/esy-texinfo:package.json#4a05feafbbcc4c57d5d25899fbdab98961b9a69c","source": {"type": "install","source": ["github:esy-packages/esy-texinfo:package.json#4a05feafbbcc4c57d5d25899fbdab98961b9a69c"]},"overrides": [],"dependencies": [],"devDependencies": []},"@opam/conf-pkg-config@opam:1.3@d5a0b3fd": {"id": "@opam/conf-pkg-config@opam:1.3@d5a0b3fd","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","version": "3.3","path": "esy.lock/opam/containers.3.3""archive:https://opam.ocaml.org/cache/md5/aa/aa946f452a156b7cd0b932b5a849b44e#md5:aa946f452a156b7cd0b932b5a849b44e","archive:https://github.com/c-cube/ocaml-containers/archive/v3.3.tar.gz#md5:aa946f452a156b7cd0b932b5a849b44e""version": "opam:3.3","@opam/containers@opam:3.3@dbb7483a": {"id": "@opam/containers@opam:3.3@dbb7483a","@opam/containers@opam:3.3@dbb7483a""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/dune@opam:2.9.3@f57a6d69","@opam/containers@opam:3.3@dbb7483a","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/dune@opam:2.9.3@f57a6d69","version": "3.3","path": "esy.lock/opam/containers-data.3.3""archive:https://opam.ocaml.org/cache/md5/aa/aa946f452a156b7cd0b932b5a849b44e#md5:aa946f452a156b7cd0b932b5a849b44e","archive:https://github.com/c-cube/ocaml-containers/archive/v3.3.tar.gz#md5:aa946f452a156b7cd0b932b5a849b44e""version": "opam:3.3","@opam/containers-data@opam:3.3@f1de1b21": {"id": "@opam/containers-data@opam:3.3@f1de1b21","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","version": "1.6.8","path": "esy.lock/opam/cppo.1.6.8""archive:https://opam.ocaml.org/cache/md5/fe/fed401197d86f9089e89f6cbdf1d660d#md5:fed401197d86f9089e89f6cbdf1d660d","archive:https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz#md5:fed401197d86f9089e89f6cbdf1d660d""version": "opam:1.6.8","@opam/cppo@opam:1.6.8@7e48217d": {"id": "@opam/cppo@opam:1.6.8@7e48217d","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.5.1","path": "esy.lock/opam/csexp.1.5.1""archive:https://opam.ocaml.org/cache/sha256/d6/d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02#sha256:d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02","archive:https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz#sha256:d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02""version": "opam:1.5.1","@opam/csexp@opam:1.5.1@8a8fb3a7": {"id": "@opam/csexp@opam:1.5.1@8a8fb3a7","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","source": ["archive:https://opam.ocaml.org/cache/sha256/4f/4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b#sha256:4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b","archive:https://github.com/mirage/ocaml-cstruct/releases/download/v6.1.0/cstruct-6.1.0.tbz#sha256:4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b"],"opam": {"name": "cstruct-sexp","version": "6.1.0","path": "esy.lock/opam/cstruct-sexp.6.1.0"}"@opam/cstruct-sexp@opam:6.1.0@c7f4312d": {"id": "@opam/cstruct-sexp@opam:6.1.0@c7f4312d","name": "@opam/cstruct-sexp","version": "opam:6.1.0","@opam/integers@opam:0.7.0@a2d78a42","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/integers@opam:0.7.0@a2d78a42","@opam/ctypes-foreign@opam:0.4.0@62b5f863","esy.lock/overrides/opam__s__ctypes_opam__c__0.20.1_opam_override""version": "0.20.1","path": "esy.lock/opam/ctypes.0.20.1""archive:https://opam.ocaml.org/cache/md5/91/91211baac16cb43134b1d6009b1edf92#md5:91211baac16cb43134b1d6009b1edf92","archive:https://github.com/ocamllabs/ocaml-ctypes/archive/0.20.1.tar.gz#md5:91211baac16cb43134b1d6009b1edf92""version": "opam:0.20.1","@opam/ctypes@opam:0.20.1@8c3cb4dc": {"id": "@opam/ctypes@opam:0.20.1@8c3cb4dc","devDependencies": [ "@opam/conf-libffi@opam:2.0.0@ef7e9742" ]"esy-libffi@3.3.1@d41d8cd9", "@opam/conf-libffi@opam:2.0.0@ef7e9742","@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/ctypes-foreign@opam:0.4.0@62b5f863": {"id": "@opam/ctypes-foreign@opam:0.4.0@62b5f863","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312","@opam/react@opam:1.2.2@e0f4480e","@opam/ppx_here@opam:v0.14.0@c05577d4","@opam/ppx_expect@opam:v0.14.1@72b3b5e4","@opam/ppx_deriving_yojson@opam:3.6.1@c454c0f1","@opam/ppx_deriving@opam:5.2.1@089e5dd3","@opam/lwt_react@opam:1.1.5@9b9c268e","@opam/lwt_ppx@opam:2.0.3@125707d0", "@opam/lwt@opam:5.5.0@30354e4c","@opam/logs@opam:0.7.0@46a3dffc", "@opam/dune@opam:2.9.3@f57a6d69","@opam/angstrom-lwt-unix@opam:0.15.0@c3599c52","@opam/angstrom@opam:0.15.0@105656d9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312","@opam/react@opam:1.2.2@e0f4480e","@opam/ppx_here@opam:v0.14.0@c05577d4","@opam/ppx_expect@opam:v0.14.1@72b3b5e4","@opam/ppx_deriving_yojson@opam:3.6.1@c454c0f1","@opam/ppx_deriving@opam:5.2.1@089e5dd3","@opam/lwt_react@opam:1.1.5@9b9c268e","@opam/lwt_ppx@opam:2.0.3@125707d0", "@opam/lwt@opam:5.5.0@30354e4c","@opam/logs@opam:0.7.0@46a3dffc", "@opam/dune@opam:2.9.3@f57a6d69","@opam/angstrom-lwt-unix@opam:0.15.0@c3599c52","@opam/angstrom@opam:0.15.0@105656d9","name": "dap","version": "1.0.6","path": "esy.lock/opam/dap.1.0.6""archive:https://opam.ocaml.org/cache/sha256/e0/e0b249a3e7382125402ad15d71f4924eef60cfcec326383a5168d424087200ff#sha256:e0b249a3e7382125402ad15d71f4924eef60cfcec326383a5168d424087200ff","archive:https://github.com/hackwaly/ocaml-dap/releases/download/1.0.6/dap-1.0.6.tbz#sha256:e0b249a3e7382125402ad15d71f4924eef60cfcec326383a5168d424087200ff""@opam/domain-name@opam:0.4.0@ab0ca2e3": {"id": "@opam/domain-name@opam:0.4.0@ab0ca2e3","name": "@opam/domain-name","version": "opam:0.4.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/a5/a5c06e22845895201973e812fe3019274d1db81c0a7873da6c8007c4ad2108c5#sha256:a5c06e22845895201973e812fe3019274d1db81c0a7873da6c8007c4ad2108c5","archive:https://github.com/hannesm/domain-name/releases/download/v0.4.0/domain-name-0.4.0.tbz#sha256:a5c06e22845895201973e812fe3019274d1db81c0a7873da6c8007c4ad2108c5"],"opam": {"name": "domain-name","version": "0.4.0","path": "esy.lock/opam/domain-name.0.4.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/dap@opam:1.0.6@216aa631": {"id": "@opam/dap@opam:1.0.6@216aa631","name": "@opam/dap","version": "opam:1.0.6","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312","version": "4.2","path": "esy.lock/opam/dot-merlin-reader.4.2""archive:https://opam.ocaml.org/cache/sha256/31/31587b422b5ebd3eebda730e946868807d829128f8dc7153fb05c0c82742058e#sha256:31587b422b5ebd3eebda730e946868807d829128f8dc7153fb05c0c82742058e","archive:https://github.com/ocaml/merlin/releases/download/v4.5-414/merlin-4.5-414.tbz#sha256:31587b422b5ebd3eebda730e946868807d829128f8dc7153fb05c0c82742058e""version": "opam:4.2","@opam/dot-merlin-reader@opam:4.2@1605899e": {"id": "@opam/dot-merlin-reader@opam:4.2@1605899e","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/base-unix@opam:base@87d0b2eb","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/base-unix@opam:base@87d0b2eb","version": "2.9.3","path": "esy.lock/opam/dune.2.9.3""archive:https://opam.ocaml.org/cache/sha256/3e/3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6","archive:https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""version": "opam:2.9.3","@opam/dune@opam:2.9.3@f57a6d69": {"id": "@opam/dune@opam:2.9.3@f57a6d69","devDependencies": [ "@opam/dune@opam:2.9.3@f57a6d69" ]"@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "2.9.3","path": "esy.lock/opam/dune-build-info.2.9.3""archive:https://opam.ocaml.org/cache/sha256/3e/3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6","archive:https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""version": "opam:2.9.3","@opam/dune-build-info@opam:2.9.3@ae518c8c": {"id": "@opam/dune-build-info@opam:2.9.3@ae518c8c","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/csexp@opam:1.5.1@8a8fb3a7", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "2.9.3","path": "esy.lock/opam/dune-configurator.2.9.3""archive:https://opam.ocaml.org/cache/sha256/3e/3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6","archive:https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""version": "opam:2.9.3","@opam/earlybird@opam:1.1.0@4bff968a": {"id": "@opam/earlybird@opam:1.1.0@4bff968a","name": "@opam/earlybird","version": "opam:1.1.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/aa/aae7257fa73a502ea808eb5c3f3bf9fa0218cedf43342289ca44f03b32839fdf#sha256:aae7257fa73a502ea808eb5c3f3bf9fa0218cedf43342289ca44f03b32839fdf","archive:https://github.com/hackwaly/ocamlearlybird/releases/download/1.1.0/earlybird-1.1.0.tbz#sha256:aae7257fa73a502ea808eb5c3f3bf9fa0218cedf43342289ca44f03b32839fdf"],"opam": {"name": "earlybird","version": "1.1.0","path": "esy.lock/opam/earlybird.1.1.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/ppx_deriving_yojson@opam:3.6.1@c454c0f1","@opam/ppx_deriving@opam:5.2.1@089e5dd3","@opam/path_glob@opam:0.2@7fdbb3d9","@opam/ocaml-compiler-libs@opam:v0.12.4@41979882","@opam/menhirLib@opam:20211128@e86421ad","@opam/menhir@opam:20211128@29de3b7a","@opam/lwt_react@opam:1.1.5@9b9c268e","@opam/lwt_ppx@opam:2.0.3@125707d0", "@opam/lwt@opam:5.5.0@30354e4c","@opam/lru@opam:0.3.0@f1c1341c", "@opam/logs@opam:0.7.0@46a3dffc","@opam/iter@opam:1.4@50f41812", "@opam/fmt@opam:0.9.0@87213963","@opam/dune@opam:2.9.3@f57a6d69", "@opam/dap@opam:1.0.6@216aa631","@opam/csexp@opam:1.5.1@8a8fb3a7","@opam/cmdliner@opam:1.1.1@03763729","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/ppx_deriving_yojson@opam:3.6.1@c454c0f1","@opam/ppx_deriving@opam:5.2.1@089e5dd3","@opam/path_glob@opam:0.2@7fdbb3d9","@opam/ocaml-compiler-libs@opam:v0.12.4@41979882","@opam/menhirLib@opam:20211128@e86421ad","@opam/lwt_react@opam:1.1.5@9b9c268e","@opam/lwt_ppx@opam:2.0.3@125707d0", "@opam/lwt@opam:5.5.0@30354e4c","@opam/lru@opam:0.3.0@f1c1341c", "@opam/logs@opam:0.7.0@46a3dffc","@opam/iter@opam:1.4@50f41812", "@opam/fmt@opam:0.9.0@87213963","@opam/dune@opam:2.9.3@f57a6d69", "@opam/dap@opam:1.0.6@216aa631","@opam/csexp@opam:1.5.1@8a8fb3a7","@opam/cmdliner@opam:1.1.1@03763729"]},"@opam/duration@opam:0.2.0@385467fd": {"id": "@opam/duration@opam:0.2.0@385467fd","name": "@opam/duration","version": "opam:0.2.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/ad/ad14fb75a5a6f73fff7ef1721178925ee555cf0f23b23e3ab329184bc0c1ce69#sha256:ad14fb75a5a6f73fff7ef1721178925ee555cf0f23b23e3ab329184bc0c1ce69","archive:https://github.com/hannesm/duration/releases/download/0.2.0/duration-0.2.0.tbz#sha256:ad14fb75a5a6f73fff7ef1721178925ee555cf0f23b23e3ab329184bc0c1ce69"],"opam": {"name": "duration","version": "0.2.0","path": "esy.lock/opam/duration.0.2.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/dune-configurator@opam:2.9.3@174e411b": {"id": "@opam/dune-configurator@opam:2.9.3@174e411b","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/easy-format@opam:1.3.2@1ea9f987": {"id": "@opam/easy-format@opam:1.3.2@1ea9f987","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9",]},"@opam/either@opam:1.0.0@be5a1416": {"id": "@opam/either@opam:1.0.0@be5a1416","name": "@opam/either","version": "opam:1.0.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/bf/bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884#sha256:bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884","archive:https://github.com/mirage/either/releases/download/1.0.0/either-1.0.0.tbz#sha256:bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884"],"opam": {"name": "either","version": "1.0.0","path": "esy.lock/opam/either.1.0.0"}},"overrides": [],"dependencies": ["@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "@opam/dune@opam:2.9.3@f57a6d69" ]},"name": "@opam/eio_luv","source": {"type": "install",},"overrides": [],"dependencies": ["@opam/fmt@opam:0.9.0@87213963","@opam/dune@opam:2.9.3@f57a6d69","@opam/base-domains@opam:base@4d09530a","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/fmt@opam:0.9.0@87213963","@opam/dune@opam:2.9.3@f57a6d69","@opam/base-domains@opam:base@4d09530a"]},"name": "@opam/eio","source": {"type": "install",},"overrides": [],"dependencies": ["@opam/lwt-dllist@opam:1.0.1@0eeaa7fa","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/base-domains@opam:base@4d09530a","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/lwt-dllist@opam:1.0.1@0eeaa7fa","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/base-domains@opam:base@4d09530a""@opam/cstruct@opam:6.1.0@b0cd6e0b","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/psq@opam:0.2.0@e2fd474c", "@opam/optint@opam:0.2.0@e98c4cb7","@opam/mtime@opam:1.2.0@acd670b8","@opam/cstruct@opam:6.1.0@b0cd6e0b","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/psq@opam:0.2.0@e2fd474c", "@opam/optint@opam:0.2.0@e98c4cb7","@opam/mtime@opam:1.2.0@acd670b8","source": [ "github:quartz55/eio:eio.opam#2c68f46" ]"version": "github:quartz55/eio:eio.opam#2c68f46","@opam/eio@github:quartz55/eio:eio.opam#2c68f46@d41d8cd9": {"id": "@opam/eio@github:quartz55/eio:eio.opam#2c68f46@d41d8cd9","@opam/eio@github:quartz55/eio:eio.opam#2c68f46@d41d8cd9","@opam/luv_unix@opam:0.5.0@34c321cb","@opam/luv@opam:0.5.11@ad29ad88", "@opam/logs@opam:0.7.0@46a3dffc","@opam/eio@github:quartz55/eio:eio.opam#2c68f46@d41d8cd9","@opam/luv_unix@opam:0.5.0@34c321cb","@opam/luv@opam:0.5.11@ad29ad88", "@opam/logs@opam:0.7.0@46a3dffc","source": [ "github:quartz55/eio:eio_luv.opam#2c68f46" ]"version": "github:quartz55/eio:eio_luv.opam#2c68f46","@opam/eio_luv@github:quartz55/eio:eio_luv.opam#2c68f46@d41d8cd9": {"id": "@opam/eio_luv@github:quartz55/eio:eio_luv.opam#2c68f46@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","version": "0.8","path": "esy.lock/opam/eqaf.0.8""archive:https://opam.ocaml.org/cache/sha256/11/1145a160107437d7943e02e486df6bd233d3937ec1a597d7fa39edb9471cf875#sha256:1145a160107437d7943e02e486df6bd233d3937ec1a597d7fa39edb9471cf875","archive:https://github.com/mirage/eqaf/releases/download/v0.8/eqaf-v0.8.tbz#sha256:1145a160107437d7943e02e486df6bd233d3937ec1a597d7fa39edb9471cf875""version": "opam:0.8","@opam/eqaf@opam:0.8@9fcc4833": {"id": "@opam/eqaf@opam:0.8@9fcc4833","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/bigstringaf@opam:0.9.0@5762d1bc""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/bigstringaf@opam:0.9.0@5762d1bc","version": "0.8.1","path": "esy.lock/opam/faraday.0.8.1""archive:https://opam.ocaml.org/cache/md5/51/51b97f082af4679e3b428a03c3b657de#md5:51b97f082af4679e3b428a03c3b657de","archive:https://github.com/inhabitedtype/faraday/archive/0.8.1.tar.gz#md5:51b97f082af4679e3b428a03c3b657de""version": "opam:0.8.1","@opam/faraday@opam:0.8.1@3e04a493": {"id": "@opam/faraday@opam:0.8.1@3e04a493","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "20220121","path": "esy.lock/opam/fix.20220121""archive:https://opam.ocaml.org/cache/md5/48/48d8a5bdff23cf7fbf9288877df2b6aa#md5:48d8a5bdff23cf7fbf9288877df2b6aa","archive:https://gitlab.inria.fr/fpottier/fix/-/archive/20220121/archive.tar.gz#md5:48d8a5bdff23cf7fbf9288877df2b6aa""version": "opam:20220121","@opam/fix@opam:20220121@17b9a1a4": {"id": "@opam/fix@opam:20220121@17b9a1a4","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.1@ead10f40","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","version": "0.9.0","path": "esy.lock/opam/fmt.0.9.0""archive:https://opam.ocaml.org/cache/sha512/66/66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b#sha512:66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b","archive:https://erratique.ch/software/fmt/releases/fmt-0.9.0.tbz#sha512:66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b""version": "opam:0.9.0","@opam/fmt@opam:0.9.0@87213963": {"id": "@opam/fmt@opam:0.9.0@87213963","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/astring@opam:0.8.5@1300cee8""@opam/ocamlbuild@opam:0.14.1@ead10f40","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/bigstringaf@opam:0.9.0@5762d1bc""@opam/ke@opam:0.6@9ad9641b", "@opam/faraday@opam:0.8.1@3e04a493","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/bigstringaf@opam:0.9.0@5762d1bc","@opam/ke@opam:0.6@9ad9641b", "@opam/faraday@opam:0.8.1@3e04a493","source": [ "github:anmonteiro/gluten:gluten.opam#7257692" ]"version": "github:anmonteiro/gluten:gluten.opam#7257692","@opam/gluten@github:anmonteiro/gluten:gluten.opam#7257692@d41d8cd9": {"id":"@opam/gluten@github:anmonteiro/gluten:gluten.opam#7257692@d41d8cd9","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "gmap","version": "0.3.0","path": "esy.lock/opam/gmap.0.3.0""archive:https://opam.ocaml.org/cache/sha256/04/04dd9e6226ac8f8fb4ccb6021048702e34a482fb9c1d240d3852829529507c1c#sha256:04dd9e6226ac8f8fb4ccb6021048702e34a482fb9c1d240d3852829529507c1c","archive:https://github.com/hannesm/gmap/releases/download/0.3.0/gmap-0.3.0.tbz#sha256:04dd9e6226ac8f8fb4ccb6021048702e34a482fb9c1d240d3852829529507c1c""@opam/gmap@opam:0.3.0@5c009abd": {"id": "@opam/gmap@opam:0.3.0@5c009abd","name": "@opam/gmap","version": "opam:0.3.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","@esy-ocaml/substs@0.0.1@d41d8cd9""name": "hkdf","version": "1.0.4","path": "esy.lock/opam/hkdf.1.0.4""archive:https://opam.ocaml.org/cache/sha256/b9/b926d6da4ac45aab999735dd2bbfd1f7511316710d791afa361006b6fe36fd5b#sha256:b926d6da4ac45aab999735dd2bbfd1f7511316710d791afa361006b6fe36fd5b","archive:https://github.com/hannesm/ocaml-hkdf/releases/download/v1.0.4/hkdf-v1.0.4.tbz#sha256:b926d6da4ac45aab999735dd2bbfd1f7511316710d791afa361006b6fe36fd5b""@opam/hkdf@opam:1.0.4@c948bc13": {"id": "@opam/hkdf@opam:1.0.4@c948bc13","name": "@opam/hkdf","version": "opam:1.0.4","@opam/angstrom@opam:0.15.0@105656d9""@opam/bigstringaf@opam:0.9.0@5762d1bc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/angstrom@opam:0.15.0@105656d9","@opam/bigstringaf@opam:0.9.0@5762d1bc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","source": [ "github:anmonteiro/httpaf:httpaf.opam#395aad2" ]"@opam/httpaf@github:anmonteiro/httpaf:httpaf.opam#395aad2@d41d8cd9": {"id":"@opam/httpaf@github:anmonteiro/httpaf:httpaf.opam#395aad2@d41d8cd9","name": "@opam/httpaf","version": "github:anmonteiro/httpaf:httpaf.opam#395aad2","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/lwt@opam:5.5.0@30354e4c","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729","@esy-ocaml/substs@0.0.1@d41d8cd9""name": "hxd","version": "0.3.2","path": "esy.lock/opam/hxd.0.3.2""archive:https://opam.ocaml.org/cache/sha256/a0/a00290abb8538e79b32ddc22ed9b301b9806bc4c03eb1e5105b14af47dabec9f#sha256:a00290abb8538e79b32ddc22ed9b301b9806bc4c03eb1e5105b14af47dabec9f","archive:https://github.com/dinosaure/hxd/releases/download/v0.3.2/hxd-0.3.2.tbz#sha256:a00290abb8538e79b32ddc22ed9b301b9806bc4c03eb1e5105b14af47dabec9f""@opam/hxd@opam:0.3.2@e56508b0": {"id": "@opam/hxd@opam:0.3.2@e56508b0","name": "@opam/hxd","version": "opam:0.3.2","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""@opam/stdlib-shims@opam:0.3.0@72c7bc98","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/stdlib-shims@opam:0.3.0@72c7bc98","name": "integers","version": "0.7.0","path": "esy.lock/opam/integers.0.7.0""archive:https://opam.ocaml.org/cache/md5/20/201cf24143d7cb9a3921d572b6e6c42c#md5:201cf24143d7cb9a3921d572b6e6c42c","archive:https://github.com/ocamllabs/ocaml-integers/archive/0.7.0.tar.gz#md5:201cf24143d7cb9a3921d572b6e6c42c""@opam/integers@opam:0.7.0@a2d78a42": {"id": "@opam/integers@opam:0.7.0@a2d78a42","name": "@opam/integers","version": "opam:0.7.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/domain-name@opam:0.4.0@ab0ca2e3""@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/macaddr@opam:5.3.0@df76c0df","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/domain-name@opam:0.4.0@ab0ca2e3","@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/macaddr@opam:5.3.0@df76c0df","name": "ipaddr","version": "5.3.0","path": "esy.lock/opam/ipaddr.5.3.0""archive:https://opam.ocaml.org/cache/sha256/36/36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755#sha256:36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755","archive:https://github.com/mirage/ocaml-ipaddr/releases/download/v5.3.0/ipaddr-5.3.0.tbz#sha256:36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755""@opam/ipaddr@opam:5.3.0@56e263f1": {"id": "@opam/ipaddr@opam:5.3.0@56e263f1","name": "@opam/ipaddr","version": "opam:5.3.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ipaddr@opam:5.3.0@56e263f1", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ipaddr@opam:5.3.0@56e263f1", "@opam/dune@opam:2.9.3@f57a6d69","source": ["archive:https://opam.ocaml.org/cache/sha256/36/36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755#sha256:36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755","archive:https://github.com/mirage/ocaml-ipaddr/releases/download/v5.3.0/ipaddr-5.3.0.tbz#sha256:36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755"],"opam": {"name": "ipaddr-sexp","version": "5.3.0","path": "esy.lock/opam/ipaddr-sexp.5.3.0"}"@opam/ipaddr-sexp@opam:5.3.0@3f923dde": {"id": "@opam/ipaddr-sexp@opam:5.3.0@3f923dde","name": "@opam/ipaddr-sexp","version": "opam:5.3.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/base-bytes@opam:base@19d0c2ff""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/base-bytes@opam:base@19d0c2ff","@opam/base-bigarray@opam:base@b03491b0","@esy-ocaml/substs@0.0.1@d41d8cd9""source": ["archive:https://opam.ocaml.org/cache/md5/24/24b1ea680cd2f8d3ee664ea21837e58b#md5:24b1ea680cd2f8d3ee664ea21837e58b","archive:https://github.com/c-cube/sequence/archive/v1.4.tar.gz#md5:24b1ea680cd2f8d3ee664ea21837e58b"],"opam": {"name": "iter","version": "1.4","path": "esy.lock/opam/iter.1.4"}"@opam/iter@opam:1.4@50f41812": {"id": "@opam/iter@opam:1.4@50f41812","name": "@opam/iter","version": "opam:1.4","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9",},"name": "@opam/ke","source": {"type": "install","source": [],"opam": {"name": "ke",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}"name": "jane-street-headers","version": "v0.14.0","path": "esy.lock/opam/jane-street-headers.v0.14.0""archive:https://opam.ocaml.org/cache/md5/e8/e8d253ac44d25c8c66367153a0c77495#md5:e8d253ac44d25c8c66367153a0c77495","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/jane-street-headers-v0.14.0.tar.gz#md5:e8d253ac44d25c8c66367153a0c77495""@opam/jane-street-headers@opam:v0.14.0@b38e12bf": {"id": "@opam/jane-street-headers@opam:v0.14.0@b38e12bf","name": "@opam/jane-street-headers","version": "opam:v0.14.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43","@opam/ppx_assert@opam:v0.14.0@f5d6cf6a","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43","@opam/ppx_assert@opam:v0.14.0@f5d6cf6a","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9""name": "jst-config","version": "v0.14.1","path": "esy.lock/opam/jst-config.v0.14.1""archive:https://opam.ocaml.org/cache/md5/ca/ca0d970356cc99b0a5660058a93ff589#md5:ca0d970356cc99b0a5660058a93ff589","archive:https://github.com/janestreet/jst-config/archive/refs/tags/v0.14.1.tar.gz#md5:ca0d970356cc99b0a5660058a93ff589""@opam/jst-config@opam:v0.14.1@95aef818": {"id": "@opam/jst-config@opam:v0.14.1@95aef818","name": "@opam/jst-config","version": "opam:v0.14.1","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","version": "0.6","path": "esy.lock/opam/ke.0.6""archive:https://opam.ocaml.org/cache/sha256/61/61217207e2200b04b17759736610ff9208269a647f854cb5ae72cdac0d672305#sha256:61217207e2200b04b17759736610ff9208269a647f854cb5ae72cdac0d672305","archive:https://github.com/mirage/ke/releases/download/v0.6/ke-0.6.tbz#sha256:61217207e2200b04b17759736610ff9208269a647f854cb5ae72cdac0d672305""version": "opam:0.6","@opam/ke@opam:0.6@9ad9641b": {"id": "@opam/ke@opam:0.6@9ad9641b","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.1@ead10f40","@opam/lwt@opam:5.5.0@30354e4c", "@opam/fmt@opam:0.9.0@87213963","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","name": "@opam/luv","source": {"type": "install","source": [],"opam": {"name": "luv",}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/base-unix@opam:base@87d0b2eb"]},"@opam/lru@opam:0.3.0@f1c1341c": {"id": "@opam/lru@opam:0.3.0@f1c1341c","name": "@opam/lru","version": "opam:0.3.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/ec/ecaa8c9f5f708879140961ce35bcdba4#md5:ecaa8c9f5f708879140961ce35bcdba4","archive:https://github.com/pqwy/lru/releases/download/v0.3.0/lru-v0.3.0.tbz#md5:ecaa8c9f5f708879140961ce35bcdba4"],"opam": {"name": "lru","version": "0.3.0","path": "esy.lock/opam/lru.0.3.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/psq@opam:0.2.0@e2fd474c", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/psq@opam:0.2.0@e2fd474c", "@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/logs@opam:0.7.0@46a3dffc": {"id": "@opam/logs@opam:0.7.0@46a3dffc","@opam/ctypes@opam:0.20.1@8c3cb4dc","@opam/ctypes@opam:0.20.1@8c3cb4dc","version": "0.5.11","path": "esy.lock/opam/luv.0.5.11""archive:https://opam.ocaml.org/cache/md5/ef/efe61a4b4725d59901984022c02ef698#md5:efe61a4b4725d59901984022c02ef698","archive:https://github.com/aantron/luv/releases/download/0.5.11/luv-0.5.11.tar.gz#md5:efe61a4b4725d59901984022c02ef698""version": "opam:0.5.11","@opam/luv_unix@opam:0.5.0@34c321cb": {"id": "@opam/luv_unix@opam:0.5.0@34c321cb","name": "@opam/luv_unix","version": "opam:0.5.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/ef/efe61a4b4725d59901984022c02ef698#md5:efe61a4b4725d59901984022c02ef698","archive:https://github.com/aantron/luv/releases/download/0.5.11/luv-0.5.11.tar.gz#md5:efe61a4b4725d59901984022c02ef698"],"opam": {"name": "luv_unix","version": "0.5.0","path": "esy.lock/opam/luv_unix.0.5.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/luv@opam:0.5.11@ad29ad88","@opam/dune@opam:2.9.3@f57a6d69","@opam/ctypes@opam:0.20.1@8c3cb4dc","@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533", "@opam/luv@opam:0.5.11@ad29ad88","@opam/dune@opam:2.9.3@f57a6d69","@opam/ctypes@opam:0.20.1@8c3cb4dc","@opam/base-unix@opam:base@87d0b2eb"]},"@opam/luv@opam:0.5.11@ad29ad88": {"id": "@opam/luv@opam:0.5.11@ad29ad88","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69""@opam/mmap@opam:1.2.0@b0f60a84","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/result@opam:1.5@1c6a6533","@opam/ocplib-endian@opam:1.2@008dc942","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d","@opam/mmap@opam:1.2.0@b0f60a84","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/result@opam:1.5@1c6a6533","@opam/ocplib-endian@opam:1.2@008dc942","version": "5.5.0","path": "esy.lock/opam/lwt.5.5.0""archive:https://opam.ocaml.org/cache/md5/94/94272fac89c5bf21a89c102b8a8f35a5#md5:94272fac89c5bf21a89c102b8a8f35a5","archive:https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz#md5:94272fac89c5bf21a89c102b8a8f35a5""version": "opam:5.5.0","@opam/lwt@opam:5.5.0@30354e4c": {"id": "@opam/lwt@opam:5.5.0@30354e4c","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9",]},"@opam/lwt-dllist@opam:1.0.1@0eeaa7fa": {"id": "@opam/lwt-dllist@opam:1.0.1@0eeaa7fa","name": "@opam/lwt-dllist","version": "opam:1.0.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/e8/e86ce75e40f00d51514cf8b2e71e5184c4cb5dae96136be24613406cfc0dba6e#sha256:e86ce75e40f00d51514cf8b2e71e5184c4cb5dae96136be24613406cfc0dba6e","archive:https://github.com/mirage/lwt-dllist/releases/download/v1.0.1/lwt-dllist-v1.0.1.tbz#sha256:e86ce75e40f00d51514cf8b2e71e5184c4cb5dae96136be24613406cfc0dba6e"],"opam": {"name": "lwt-dllist","version": "1.0.1","path": "esy.lock/opam/lwt-dllist.1.0.1"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""@opam/ppxlib@opam:0.25.0@8553d2e8", "@opam/lwt@opam:5.5.0@30354e4c","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8", "@opam/lwt@opam:5.5.0@30354e4c","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "lwt_ppx","version": "2.0.3","path": "esy.lock/opam/lwt_ppx.2.0.3""archive:https://opam.ocaml.org/cache/md5/94/94272fac89c5bf21a89c102b8a8f35a5#md5:94272fac89c5bf21a89c102b8a8f35a5","archive:https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz#md5:94272fac89c5bf21a89c102b8a8f35a5""@opam/lwt_ppx@opam:2.0.3@125707d0": {"id": "@opam/lwt_ppx@opam:2.0.3@125707d0","name": "@opam/lwt_ppx","version": "opam:2.0.3","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/react@opam:1.2.2@e0f4480e", "@opam/lwt@opam:5.5.0@30354e4c","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/react@opam:1.2.2@e0f4480e", "@opam/lwt@opam:5.5.0@30354e4c","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "lwt_react","version": "1.1.5","path": "esy.lock/opam/lwt_react.1.1.5""archive:https://opam.ocaml.org/cache/md5/94/94272fac89c5bf21a89c102b8a8f35a5#md5:94272fac89c5bf21a89c102b8a8f35a5","archive:https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz#md5:94272fac89c5bf21a89c102b8a8f35a5""@opam/lwt_react@opam:1.1.5@9b9c268e": {"id": "@opam/lwt_react@opam:1.1.5@9b9c268e","name": "@opam/lwt_react","version": "opam:1.1.5","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "macaddr","version": "5.3.0","path": "esy.lock/opam/macaddr.5.3.0""archive:https://opam.ocaml.org/cache/sha256/36/36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755#sha256:36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755","archive:https://github.com/mirage/ocaml-ipaddr/releases/download/v5.3.0/ipaddr-5.3.0.tbz#sha256:36979edf64b464d44055f3504b97d61e22050e7369d983052c4ecc3d2b1ab755""@opam/macaddr@opam:5.3.0@df76c0df": {"id": "@opam/macaddr@opam:5.3.0@df76c0df","name": "@opam/macaddr","version": "opam:5.3.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/menhirSdk@opam:20211128@e9fd3a0e","@opam/menhirLib@opam:20211128@e86421ad","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/menhirSdk@opam:20211128@e9fd3a0e","@opam/menhirLib@opam:20211128@e86421ad","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "20211128","path": "esy.lock/opam/menhir.20211128""archive:https://opam.ocaml.org/cache/md5/01/015354590ebce7911b073beae57e7731#md5:015354590ebce7911b073beae57e7731","archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20211128/archive.tar.gz#md5:015354590ebce7911b073beae57e7731""version": "opam:20211128","@opam/menhir@opam:20211128@29de3b7a": {"id": "@opam/menhir@opam:20211128@29de3b7a","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "20211128","path": "esy.lock/opam/menhirLib.20211128""archive:https://opam.ocaml.org/cache/md5/01/015354590ebce7911b073beae57e7731#md5:015354590ebce7911b073beae57e7731","archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20211128/archive.tar.gz#md5:015354590ebce7911b073beae57e7731""version": "opam:20211128","@opam/menhirLib@opam:20211128@e86421ad": {"id": "@opam/menhirLib@opam:20211128@e86421ad","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "20211128","path": "esy.lock/opam/menhirSdk.20211128""archive:https://opam.ocaml.org/cache/md5/01/015354590ebce7911b073beae57e7731#md5:015354590ebce7911b073beae57e7731","archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20211128/archive.tar.gz#md5:015354590ebce7911b073beae57e7731""version": "opam:20211128","@opam/menhirSdk@opam:20211128@e9fd3a0e": {"id": "@opam/menhirSdk@opam:20211128@e9fd3a0e","@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312", "@opam/result@opam:1.5@1c6a6533","@opam/dune@opam:2.9.3@f57a6d69","@opam/dot-merlin-reader@opam:4.2@1605899e","@opam/csexp@opam:1.5.1@8a8fb3a7", "@esy-ocaml/substs@0.0.1@d41d8cd9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312", "@opam/result@opam:1.5@1c6a6533","@opam/dune@opam:2.9.3@f57a6d69","@opam/dot-merlin-reader@opam:4.2@1605899e","version": "4.4-412","path": "esy.lock/opam/merlin.4.4-412""archive:https://opam.ocaml.org/cache/sha256/16/16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3#sha256:16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3","archive:https://github.com/ocaml/merlin/releases/download/v4.4-412/merlin-4.4-412.tbz#sha256:16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3""version": "opam:4.4-412","@opam/merlin@opam:4.4-412@c7695ce2": {"id": "@opam/merlin@opam:4.4-412@c7695ce2","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/mirage-crypto-pk@opam:0.10.6@86e09b65": {"id": "@opam/mirage-crypto-pk@opam:0.10.6@86e09b65","name": "@opam/mirage-crypto-pk","version": "opam:0.10.6","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/01/01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410","archive:https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410"],"opam": {"name": "mirage-crypto-pk","version": "0.10.6","path": "esy.lock/opam/mirage-crypto-pk.0.10.6"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/zarith@opam:1.12@232cc7f2","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/mirage-no-xen@opam:1@0d45465b","@opam/mirage-no-solo5@opam:1@84049e1f","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/eqaf@opam:0.8@9fcc4833", "@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","@opam/conf-gmp-powm-sec@opam:3@b66b4239","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/zarith@opam:1.12@232cc7f2","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/mirage-no-xen@opam:1@0d45465b","@opam/mirage-no-solo5@opam:1@84049e1f","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/eqaf@opam:0.8@9fcc4833", "@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b"]},"@opam/mirage-crypto-ec@opam:0.10.6@d3d8fb05": {"id": "@opam/mirage-crypto-ec@opam:0.10.6@d3d8fb05","name": "@opam/mirage-crypto-ec","version": "opam:0.10.6","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/01/01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410","archive:https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410"],"opam": {"name": "mirage-crypto-ec","version": "0.10.6","path": "esy.lock/opam/mirage-crypto-ec.0.10.6"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/eqaf@opam:0.8@9fcc4833","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","@opam/conf-pkg-config@opam:1.3@d5a0b3fd","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/eqaf@opam:0.8@9fcc4833","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b"]},"@opam/mirage-crypto@opam:0.10.6@51aedda0": {"id": "@opam/mirage-crypto@opam:0.10.6@51aedda0","name": "@opam/mirage-crypto","version": "opam:0.10.6","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/01/01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410","archive:https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410"],"opam": {"name": "mirage-crypto","version": "0.10.6","path": "esy.lock/opam/mirage-crypto.0.10.6"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/eqaf@opam:0.8@9fcc4833","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","@opam/conf-pkg-config@opam:1.3@d5a0b3fd","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/eqaf@opam:0.8@9fcc4833","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b"]},"@opam/merlin-extend@opam:0.6@88755c91": {"id": "@opam/merlin-extend@opam:0.6@88755c91","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/bigarray-compat@opam:1.1.0@84cda9d0"]},"@opam/mirage-no-xen@opam:1@0d45465b": {"id": "@opam/mirage-no-xen@opam:1@0d45465b","name": "@opam/mirage-no-xen","version": "opam:1","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "mirage-no-xen","version": "1","path": "esy.lock/opam/mirage-no-xen.1"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]},"@opam/mirage-no-solo5@opam:1@84049e1f": {"id": "@opam/mirage-no-solo5@opam:1@84049e1f","name": "@opam/mirage-no-solo5","version": "opam:1","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "mirage-no-solo5","version": "1","path": "esy.lock/opam/mirage-no-solo5.1"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]},"@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b": {"id": "@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","name": "@opam/mirage-crypto-rng","version": "opam:0.10.6","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/01/01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410","archive:https://github.com/mirage/mirage-crypto/releases/download/v0.10.6/mirage-crypto-0.10.6.tbz#sha256:01d6477a4edcad007b56983955d327f0e61c3f36494822f3755017d26e8f9410"],"opam": {"name": "mirage-crypto-rng","version": "0.10.6","path": "esy.lock/opam/mirage-crypto-rng.0.10.6"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mtime@opam:1.2.0@acd670b8","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/lwt@opam:5.5.0@30354e4c", "@opam/logs@opam:0.7.0@46a3dffc","@opam/duration@opam:0.2.0@385467fd","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mtime@opam:1.2.0@acd670b8","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/lwt@opam:5.5.0@30354e4c", "@opam/logs@opam:0.7.0@46a3dffc","@opam/duration@opam:0.2.0@385467fd","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/bigarray-compat@opam:1.1.0@84cda9d0","@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.2.0","path": "esy.lock/opam/mmap.1.2.0""archive:https://opam.ocaml.org/cache/sha256/16/1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb#sha256:1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb","archive:https://github.com/mirage/mmap/releases/download/v1.2.0/mmap-1.2.0.tbz#sha256:1602a8abc8e232fa94771a52e540e5780b40c2f2762eee6afbd9286502116ddb""version": "opam:1.2.0","@opam/mmap@opam:1.2.0@b0f60a84": {"id": "@opam/mmap@opam:1.2.0@b0f60a84","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.1@ead10f40","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51",},"@opam/num@opam:1.4@54b259a0": {"id": "@opam/num@opam:1.4@54b259a0","name": "@opam/num","version": "opam:1.4","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/cd/cda2b727e116a0b6a9c03902cc4b2415#md5:cda2b727e116a0b6a9c03902cc4b2415","archive:https://github.com/ocaml/num/archive/v1.4.tar.gz#md5:cda2b727e116a0b6a9c03902cc4b2415"],"opam": {"name": "num","version": "1.4","path": "esy.lock/opam/num.1.4"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__num_opam__c__1.4_opam_override"}],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "v0.12.4","path": "esy.lock/opam/ocaml-compiler-libs.v0.12.4""archive:https://opam.ocaml.org/cache/sha256/4e/4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760#sha256:4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760","archive:https://github.com/janestreet/ocaml-compiler-libs/releases/download/v0.12.4/ocaml-compiler-libs-v0.12.4.tbz#sha256:4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760""version": "opam:v0.12.4","@opam/ocaml-compiler-libs@opam:v0.12.4@41979882": {"id": "@opam/ocaml-compiler-libs@opam:v0.12.4@41979882","@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","@opam/pp@opam:1.1.2@89ad03b5","@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312","@opam/spawn@opam:v0.15.0@4a27a4cb","@opam/result@opam:1.5@1c6a6533", "@opam/re@opam:1.10.3@0585c65d","@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","@opam/pp@opam:1.1.2@89ad03b5","@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7","@esy-ocaml/substs@0.0.1@d41d8cd9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312","@opam/spawn@opam:v0.15.0@4a27a4cb","@opam/result@opam:1.5@1c6a6533", "@opam/re@opam:1.10.3@0585c65d","version": "1.9.0","path": "esy.lock/opam/ocaml-lsp-server.1.9.0""archive:https://opam.ocaml.org/cache/sha256/70/7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9#sha256:7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9","archive:https://github.com/ocaml/ocaml-lsp/releases/download/1.9.0/jsonrpc-1.9.0.tbz#sha256:7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9""version": "opam:1.9.0","@opam/ocaml-lsp-server@opam:1.9.0@671f2077": {"id": "@opam/ocaml-lsp-server@opam:1.9.0@671f2077","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/ocaml-syntax-shims@opam:1.0.0@9f361fbb": {"id": "@opam/ocaml-syntax-shims@opam:1.0.0@9f361fbb","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "3.4.0","path": "esy.lock/opam/ocaml-version.3.4.0""archive:https://opam.ocaml.org/cache/sha256/d8/d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25#sha256:d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25","archive:https://github.com/ocurrent/ocaml-version/releases/download/v3.4.0/ocaml-version-v3.4.0.tbz#sha256:d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25""version": "opam:3.4.0","@opam/ocaml-version@opam:3.4.0@b6cd49e1": {"id": "@opam/ocaml-version@opam:3.4.0@b6cd49e1","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9""esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.1_opam_override""version": "0.14.1","path": "esy.lock/opam/ocamlbuild.0.14.1""archive:https://opam.ocaml.org/cache/md5/70/7027e507ed85f290923ad198f3d2cd1c#md5:7027e507ed85f290923ad198f3d2cd1c","archive:https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.14.1.tar.gz#md5:7027e507ed85f290923ad198f3d2cd1c""version": "opam:0.14.1","@opam/ocamlbuild@opam:0.14.1@ead10f40": {"id": "@opam/ocamlbuild@opam:0.14.1@ead10f40","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/conf-m4@opam:1@196bf219", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/fix@opam:20220121@17b9a1a4","@opam/either@opam:1.0.0@be5a1416","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43", "@opam/re@opam:1.10.3@0585c65d","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/ocp-indent@opam:1.8.1@e32a3c50","@opam/ocaml-version@opam:3.4.0@b6cd49e1","@opam/menhirSdk@opam:20211128@e9fd3a0e","@opam/menhirLib@opam:20211128@e86421ad","@opam/menhir@opam:20211128@29de3b7a","@opam/uutf@opam:1.0.3@47c95a18", "@opam/uuseg@opam:14.0.0@7d21466b","@opam/fix@opam:20220121@17b9a1a4","@opam/either@opam:1.0.0@be5a1416","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43", "@opam/re@opam:1.10.3@0585c65d","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/ocp-indent@opam:1.8.1@e32a3c50","@opam/ocaml-version@opam:3.4.0@b6cd49e1","@opam/menhirSdk@opam:20211128@e9fd3a0e","@opam/menhirLib@opam:20211128@e86421ad","@opam/menhir@opam:20211128@29de3b7a","@opam/uutf@opam:1.0.3@47c95a18", "@opam/uuseg@opam:14.0.0@7d21466b","version": "0.21.0","path": "esy.lock/opam/ocamlformat.0.21.0""archive:https://opam.ocaml.org/cache/sha256/2a/2a1817f6bc581ff0cce9f0aa9687b897b02726e2ab75749ee98d57637057332d#sha256:2a1817f6bc581ff0cce9f0aa9687b897b02726e2ab75749ee98d57637057332d","archive:https://github.com/ocaml-ppx/ocamlformat/releases/download/0.21.0/ocamlformat-0.21.0.tbz#sha256:2a1817f6bc581ff0cce9f0aa9687b897b02726e2ab75749ee98d57637057332d""version": "opam:0.21.0","@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d": {"id": "@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d","name": "@opam/ocamlformat-rpc-lib","version": "opam:0.19.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/62/62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46#sha256:62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46","archive:https://github.com/ocaml-ppx/ocamlformat/releases/download/0.19.0/ocamlformat-0.19.0.tbz#sha256:62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46"],"opam": {"name": "ocamlformat-rpc-lib","version": "0.19.0","path": "esy.lock/opam/ocamlformat-rpc-lib.0.19.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7"]},"@opam/ocamlformat@opam:0.21.0@b395910b": {"id": "@opam/ocamlformat@opam:0.21.0@b395910b","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729","version": "1.2","path": "esy.lock/opam/ocplib-endian.1.2"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d","@opam/base-bytes@opam:base@19d0c2ff","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/base-bytes@opam:base@19d0c2ff"]},"@opam/ocp-indent@opam:1.8.1@e32a3c50": {"id": "@opam/ocp-indent@opam:1.8.1@e32a3c50","name": "@opam/ocp-indent","version": "opam:1.8.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/70/70db6649a8c08a682ad63730c9752e31#md5:70db6649a8c08a682ad63730c9752e31","archive:https://github.com/OCamlPro/ocp-indent/archive/1.8.1.tar.gz#md5:70db6649a8c08a682ad63730c9752e31"],"opam": {"name": "ocp-indent","version": "1.8.1","path": "esy.lock/opam/ocp-indent.1.8.1""archive:https://opam.ocaml.org/cache/md5/8d/8d5492eeb7c6815ade72a7415ea30949#md5:8d5492eeb7c6815ade72a7415ea30949","archive:https://github.com/OCamlPro/ocplib-endian/archive/refs/tags/1.2.tar.gz#md5:8d5492eeb7c6815ade72a7415ea30949""version": "opam:1.2","@opam/ocplib-endian@opam:1.2@008dc942": {"id": "@opam/ocplib-endian@opam:1.2@008dc942","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/octavius@opam:1.2.2@2205cc65": {"id": "@opam/octavius@opam:1.2.2@2205cc65","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/tyxml@opam:4.5.0@0a609297", "@opam/result@opam:1.5@1c6a6533","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/fpath@opam:0.7.3@674d8125", "@opam/fmt@opam:0.9.0@87213963","@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/tyxml@opam:4.5.0@0a609297", "@opam/result@opam:1.5@1c6a6533","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/fpath@opam:0.7.3@674d8125", "@opam/fmt@opam:0.9.0@87213963","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d","@opam/cmdliner@opam:1.1.1@03763729","version": "2.1.0","path": "esy.lock/opam/odoc.2.1.0""archive:https://opam.ocaml.org/cache/sha256/65/65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967#sha256:65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967","archive:https://github.com/ocaml/odoc/releases/download/2.1.0/odoc-2.1.0.tbz#sha256:65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967""version": "opam:2.1.0","@opam/odoc@opam:2.1.0@d39daa6f": {"id": "@opam/odoc@opam:2.1.0@d39daa6f","version": "0.2.0","path": "esy.lock/opam/optint.0.2.0""archive:https://opam.ocaml.org/cache/sha256/1d/1dcbe0b6b6031f77db33028c87138fdb3bf90f92915e3b6629ddeb30a0d3000b#sha256:1dcbe0b6b6031f77db33028c87138fdb3bf90f92915e3b6629ddeb30a0d3000b","archive:https://github.com/mirage/optint/releases/download/v0.2.0/optint-0.2.0.tbz#sha256:1dcbe0b6b6031f77db33028c87138fdb3bf90f92915e3b6629ddeb30a0d3000b""version": "opam:0.2.0","@opam/path_glob@opam:0.2@7fdbb3d9": {"id": "@opam/path_glob@opam:0.2@7fdbb3d9","name": "@opam/path_glob","version": "opam:0.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/5e/5e09a2148876b68ac8fb315679ba69b1e207ced55d91a3ea5b3046f917102a07#sha256:5e09a2148876b68ac8fb315679ba69b1e207ced55d91a3ea5b3046f917102a07","archive:https://gasche.gitlab.io/path_glob/releases/path_glob-0.2.tbz#sha256:5e09a2148876b68ac8fb315679ba69b1e207ced55d91a3ea5b3046f917102a07"],"opam": {"name": "path_glob","version": "0.2","path": "esy.lock/opam/path_glob.0.2"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/parsexp@opam:v0.14.2@1d15b9d2": {"id": "@opam/parsexp@opam:v0.14.2@1d15b9d2","name": "@opam/parsexp","version": "opam:v0.14.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/f6/f6e17e4e08dcdce08a6372485a381dcdb3fda0f71b4506d7be982b87b5a1f230#sha256:f6e17e4e08dcdce08a6372485a381dcdb3fda0f71b4506d7be982b87b5a1f230","archive:https://github.com/janestreet/parsexp/archive/refs/tags/v0.14.2.tar.gz#sha256:f6e17e4e08dcdce08a6372485a381dcdb3fda0f71b4506d7be982b87b5a1f230"],"opam": {"name": "parsexp","version": "v0.14.2","path": "esy.lock/opam/parsexp.v0.14.2"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/optint@opam:0.2.0@e98c4cb7": {"id": "@opam/optint@opam:0.2.0@e98c4cb7","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b""@opam/cstruct@opam:6.1.0@b0cd6e0b","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/mirage-crypto@opam:0.10.6@51aedda0","archive:https://opam.ocaml.org/cache/md5/1e/1e0e69de61b2d9d4f9843572ecc6655c#md5:1e0e69de61b2d9d4f9843572ecc6655c","archive:https://github.com/abeaumont/ocaml-pbkdf/archive/1.2.0.tar.gz#md5:1e0e69de61b2d9d4f9843572ecc6655c"],"opam": {"name": "pbkdf","version": "1.2.0","path": "esy.lock/opam/pbkdf.1.2.0"}"@opam/pbkdf@opam:1.2.0@1484a934": {"id": "@opam/pbkdf@opam:1.2.0@1484a934","name": "@opam/pbkdf","version": "opam:1.2.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "pp","version": "1.1.2","path": "esy.lock/opam/pp.1.1.2""archive:https://opam.ocaml.org/cache/sha256/e4/e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56#sha256:e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56","archive:https://github.com/ocaml-dune/pp/releases/download/1.1.2/pp-1.1.2.tbz#sha256:e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56""@opam/pp@opam:1.1.2@89ad03b5": {"id": "@opam/pp@opam:1.1.2@89ad03b5","name": "@opam/pp","version": "opam:1.1.2",}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/ppx_cstruct@opam:6.1.0@95f58e08": {"id": "@opam/ppx_cstruct@opam:6.1.0@95f58e08","name": "@opam/ppx_cstruct","version": "opam:6.1.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/4f/4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b#sha256:4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b","archive:https://github.com/mirage/ocaml-cstruct/releases/download/v6.1.0/cstruct-6.1.0.tbz#sha256:4f0d2d7d6b7048c99e5d9d62e62ed3fe957bdede56b385567962075c969f1d8b"],"opam": {"name": "ppx_cstruct","version": "6.1.0","path": "esy.lock/opam/ppx_cstruct.6.1.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69","@opam/cstruct@opam:6.1.0@b0cd6e0b","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cstruct@opam:6.1.0@b0cd6e0b"]},"@opam/ppx_compare@opam:v0.14.0@fbd22977": {"id": "@opam/ppx_compare@opam:v0.14.0@fbd22977","name": "@opam/ppx_compare","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/91/9149b3a0c954fe2cef2b0705d254b9e3#md5:9149b3a0c954fe2cef2b0705d254b9e3","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_compare-v0.14.0.tar.gz#md5:9149b3a0c954fe2cef2b0705d254b9e3"],"opam": {"name": "ppx_compare","version": "v0.14.0","path": "esy.lock/opam/ppx_compare.v0.14.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_cold@opam:v0.14.0@91b05a20": {"id": "@opam/ppx_cold@opam:v0.14.0@91b05a20","name": "@opam/ppx_cold","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/6a/6a61807cd3b105b8c885bd2076986339#md5:6a61807cd3b105b8c885bd2076986339","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_cold-v0.14.0.tar.gz#md5:6a61807cd3b105b8c885bd2076986339"],"opam": {"name": "ppx_cold","version": "v0.14.0","path": "esy.lock/opam/ppx_cold.v0.14.0""@opam/ppx_derivers@opam:1.2.1@e2cbad12": {"id": "@opam/ppx_derivers@opam:1.2.1@e2cbad12","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/ppx_derivers@opam:1.2.1@e2cbad12","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/ppx_derivers@opam:1.2.1@e2cbad12","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_inline_test@opam:v0.14.1@8b68b6f7": {"id": "@opam/ppx_inline_test@opam:v0.14.1@8b68b6f7","name": "@opam/ppx_inline_test","version": "opam:v0.14.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/13/132754f0757188c3b700a2c5b6a2fb3f#md5:132754f0757188c3b700a2c5b6a2fb3f","archive:https://github.com/janestreet/ppx_inline_test/archive/v0.14.1.tar.gz#md5:132754f0757188c3b700a2c5b6a2fb3f"],"opam": {"name": "ppx_inline_test","version": "v0.14.1","path": "esy.lock/opam/ppx_inline_test.v0.14.1"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/time_now@opam:v0.14.0@ecc73110","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/time_now@opam:v0.14.0@ecc73110","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_here@opam:v0.14.0@c05577d4": {"id": "@opam/ppx_here@opam:v0.14.0@c05577d4","name": "@opam/ppx_here","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/bb/bb3bbde0964a1f866de09f3df44def4d#md5:bb3bbde0964a1f866de09f3df44def4d","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_here-v0.14.0.tar.gz#md5:bb3bbde0964a1f866de09f3df44def4d"],"opam": {"name": "ppx_here","version": "v0.14.0","path": "esy.lock/opam/ppx_here.v0.14.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_hash@opam:v0.14.0@455f5f56": {"id": "@opam/ppx_hash@opam:v0.14.0@455f5f56","name": "@opam/ppx_hash","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/b7/b78aee19bb4469731f9626b04fe7f341#md5:b78aee19bb4469731f9626b04fe7f341","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_hash-v0.14.0.tar.gz#md5:b78aee19bb4469731f9626b04fe7f341"],"opam": {"name": "ppx_hash","version": "v0.14.0","path": "esy.lock/opam/ppx_hash.v0.14.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_compare@opam:v0.14.0@fbd22977","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_compare@opam:v0.14.0@fbd22977","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_expect@opam:v0.14.1@72b3b5e4": {"id": "@opam/ppx_expect@opam:v0.14.1@72b3b5e4","name": "@opam/ppx_expect","version": "opam:v0.14.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/9c/9cc03dcabb00c72e17f7f5b0e4d28603#md5:9cc03dcabb00c72e17f7f5b0e4d28603","archive:https://github.com/janestreet/ppx_expect/archive/v0.14.1.tar.gz#md5:9cc03dcabb00c72e17f7f5b0e4d28603"],"opam": {"name": "ppx_expect","version": "v0.14.1","path": "esy.lock/opam/ppx_expect.v0.14.1"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43", "@opam/re@opam:1.10.3@0585c65d","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_inline_test@opam:v0.14.1@8b68b6f7","@opam/ppx_here@opam:v0.14.0@c05577d4","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43", "@opam/re@opam:1.10.3@0585c65d","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_inline_test@opam:v0.14.1@8b68b6f7","@opam/ppx_here@opam:v0.14.0@c05577d4","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_enumerate@opam:v0.14.0@2be34197": {"id": "@opam/ppx_enumerate@opam:v0.14.0@2be34197","name": "@opam/ppx_enumerate","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/18/188421af960759f6e45dd748f4f08e8d#md5:188421af960759f6e45dd748f4f08e8d","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_enumerate-v0.14.0.tar.gz#md5:188421af960759f6e45dd748f4f08e8d"],"opam": {"name": "ppx_enumerate","version": "v0.14.0","path": "esy.lock/opam/ppx_enumerate.v0.14.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_deriving_yojson@opam:3.6.1@c454c0f1": {"id": "@opam/ppx_deriving_yojson@opam:3.6.1@c454c0f1","name": "@opam/ppx_deriving_yojson","version": "opam:3.6.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/71/712ee9207c70dd144e72cd689bee2d2beb120b804e77c74ec6f7b843a88944e6#sha256:712ee9207c70dd144e72cd689bee2d2beb120b804e77c74ec6f7b843a88944e6","archive:https://github.com/ocaml-ppx/ppx_deriving_yojson/releases/download/v3.6.1/ppx_deriving_yojson-v3.6.1.tbz#sha256:712ee9207c70dd144e72cd689bee2d2beb120b804e77c74ec6f7b843a88944e6"],"opam": {"name": "ppx_deriving_yojson","version": "3.6.1","path": "esy.lock/opam/ppx_deriving_yojson.3.6.1"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312", "@opam/result@opam:1.5@1c6a6533","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_deriving@opam:5.2.1@089e5dd3","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312", "@opam/result@opam:1.5@1c6a6533","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_deriving@opam:5.2.1@089e5dd3","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/ppx_deriving@opam:5.2.1@089e5dd3": {"id": "@opam/ppx_deriving@opam:5.2.1@089e5dd3","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","path": "esy.lock/opam/ppx_js_style.v0.14.1""version": "opam:v0.14.1","source": {"type": "install","source": [],"opam": {"archive:https://opam.ocaml.org/cache/md5/2d/2d79afa4f954aeafb81b64ecfc11c3fb#md5:2d79afa4f954aeafb81b64ecfc11c3fb","archive:https://github.com/janestreet/ppx_js_style/archive/refs/tags/v0.14.1.tar.gz#md5:2d79afa4f954aeafb81b64ecfc11c3fb""@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e": {"id": "@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","name": "@opam/ppx_sexp_conv","version": "opam:v0.14.3","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/25/25caf01245e0113e035ccefe275f85d9#md5:25caf01245e0113e035ccefe275f85d9","archive:https://github.com/janestreet/ppx_sexp_conv/archive/v0.14.3.tar.gz#md5:25caf01245e0113e035ccefe275f85d9"],"opam": {"name": "ppx_sexp_conv","version": "v0.14.3","path": "esy.lock/opam/ppx_sexp_conv.v0.14.3"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_optcomp@opam:v0.14.3@08009524": {"id": "@opam/ppx_optcomp@opam:v0.14.3@08009524","name": "@opam/ppx_optcomp","version": "opam:v0.14.3","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/2d/2d012df62dd0bc82d2ea4ab25b628992#md5:2d012df62dd0bc82d2ea4ab25b628992","archive:https://github.com/janestreet/ppx_optcomp/archive/v0.14.3.tar.gz#md5:2d012df62dd0bc82d2ea4ab25b628992"],"opam": {"name": "ppx_optcomp","version": "v0.14.3","path": "esy.lock/opam/ppx_optcomp.v0.14.3"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdio@opam:v0.14.0@a5affb43","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/ppx_js_style@opam:v0.14.1@03f2d62f": {"id": "@opam/ppx_js_style@opam:v0.14.1@03f2d62f","name": "@opam/ppx_js_style",}},"overrides": [],"dependencies": ["@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","@opam/ppx_js_style@opam:v0.14.1@03f2d62f","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","@opam/ppx_js_style@opam:v0.14.1@03f2d62f","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppxlib@opam:0.25.0@8553d2e8","@opam/ppx_yojson_conv@opam:v0.14.0@13acb3e6": {"id": "@opam/ppx_yojson_conv@opam:v0.14.0@13acb3e6","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997": {"id": "@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/ppx_derivers@opam:1.2.1@e2cbad12","@opam/ocaml-compiler-libs@opam:v0.12.4@41979882","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/ppx_derivers@opam:1.2.1@e2cbad12","@opam/ocaml-compiler-libs@opam:v0.12.4@41979882","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdlib-shims@opam:0.3.0@72c7bc98","version": "0.25.0","path": "esy.lock/opam/ppxlib.0.25.0""archive:https://opam.ocaml.org/cache/sha256/2d/2d2f150e7715845dc578d254f705a67600be71c986b7e67e81befda612870bd5#sha256:2d2f150e7715845dc578d254f705a67600be71c986b7e67e81befda612870bd5","archive:https://github.com/ocaml-ppx/ppxlib/releases/download/0.25.0/ppxlib-0.25.0.tbz#sha256:2d2f150e7715845dc578d254f705a67600be71c986b7e67e81befda612870bd5""version": "opam:0.25.0","@opam/ppxlib@opam:0.25.0@8553d2e8": {"id": "@opam/ppxlib@opam:0.25.0@8553d2e8","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/psq@opam:0.2.0@e2fd474c": {"id": "@opam/psq@opam:0.2.0@e2fd474c","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.1@ead10f40","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","version": "0.8.6","path": "esy.lock/opam/ptime.0.8.6""archive:https://opam.ocaml.org/cache/sha512/db/dbb5a1caae995381672ebe95b6824d62d6092e099d0f40099bab049f2f87516fd3657d59694739423e1c0948efd43e50fa06664975593deffe86ba16f6f9fbb9#sha512:dbb5a1caae995381672ebe95b6824d62d6092e099d0f40099bab049f2f87516fd3657d59694739423e1c0948efd43e50fa06664975593deffe86ba16f6f9fbb9","archive:https://erratique.ch/software/ptime/releases/ptime-0.8.6.tbz#sha512:dbb5a1caae995381672ebe95b6824d62d6092e099d0f40099bab049f2f87516fd3657d59694739423e1c0948efd43e50fa06664975593deffe86ba16f6f9fbb9""version": "opam:0.8.6","@opam/ptime@opam:0.8.6@5df936b0": {"id": "@opam/ptime@opam:0.8.6@5df936b0","@opam/alcotest@opam:1.5.0@338d9572""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/qcheck-core@opam:0.18.1@5f40aab3","@opam/alcotest@opam:1.5.0@338d9572","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/qcheck-core@opam:0.18.1@5f40aab3","version": "0.18.1","path": "esy.lock/opam/qcheck-alcotest.0.18.1""archive:https://opam.ocaml.org/cache/md5/e2/e207362d67387d6dbb8dcd4ba7238b39#md5:e207362d67387d6dbb8dcd4ba7238b39","archive:https://github.com/c-cube/qcheck/archive/v0.18.1.tar.gz#md5:e207362d67387d6dbb8dcd4ba7238b39""version": "opam:0.18.1","@opam/qcheck-alcotest@opam:0.18.1@c4603318": {"id": "@opam/qcheck-alcotest@opam:0.18.1@c4603318","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","version": "0.18.1","path": "esy.lock/opam/qcheck-core.0.18.1""archive:https://opam.ocaml.org/cache/md5/e2/e207362d67387d6dbb8dcd4ba7238b39#md5:e207362d67387d6dbb8dcd4ba7238b39","archive:https://github.com/c-cube/qcheck/archive/v0.18.1.tar.gz#md5:e207362d67387d6dbb8dcd4ba7238b39""version": "opam:0.18.1","@opam/qcheck-core@opam:0.18.1@5f40aab3": {"id": "@opam/qcheck-core@opam:0.18.1@5f40aab3","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/seq@opam:base@d8d7de1d", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.10.3","path": "esy.lock/opam/re.1.10.3""archive:https://opam.ocaml.org/cache/sha256/84/846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb#sha256:846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb","archive:https://github.com/ocaml/ocaml-re/releases/download/1.10.3/re-1.10.3.tbz#sha256:846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb""version": "opam:1.10.3","@opam/re@opam:1.10.3@0585c65d": {"id": "@opam/re@opam:1.10.3@0585c65d",},"@opam/react@opam:1.2.2@e0f4480e": {"id": "@opam/react@opam:1.2.2@e0f4480e","name": "@opam/react","version": "opam:1.2.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha512/18/18cdd544d484222ba02db6bd9351571516532e7a1c107b59bbe39193837298f5c745eab6754f8bc6ff125b387be7018c6d6e6ac99f91925a5e4f53af688522b1#sha512:18cdd544d484222ba02db6bd9351571516532e7a1c107b59bbe39193837298f5c745eab6754f8bc6ff125b387be7018c6d6e6ac99f91925a5e4f53af688522b1","archive:https://erratique.ch/software/react/releases/react-1.2.2.tbz#sha512:18cdd544d484222ba02db6bd9351571516532e7a1c107b59bbe39193837298f5c745eab6754f8bc6ff125b387be7018c6d6e6ac99f91925a5e4f53af688522b1"],"opam": {"name": "react","version": "1.2.2","path": "esy.lock/opam/react.1.2.2"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/ocamlbuild@opam:0.14.1@ead10f40","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"@opam/merlin-extend@opam:0.6@88755c91","@opam/menhir@opam:20211128@29de3b7a","@opam/fix@opam:20220121@17b9a1a4", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/ppx_derivers@opam:1.2.1@e2cbad12",],"devDependencies": []},"name": "@opam/reason","source": {"type": "install","source": [],"opam": {"name": "reason",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/merlin-extend@opam:0.6@88755c91","@opam/menhir@opam:20211128@29de3b7a","@opam/fix@opam:20220121@17b9a1a4", "@opam/dune@opam:2.9.3@f57a6d69","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/ppx_derivers@opam:1.2.1@e2cbad12","version": "3.8.0","path": "esy.lock/opam/reason.3.8.0""archive:https://opam.ocaml.org/cache/sha256/94/9478724b01767320064ba950ddea24c5df0eefdcdd8ff1324ba9ccd646258979#sha256:9478724b01767320064ba950ddea24c5df0eefdcdd8ff1324ba9ccd646258979","archive:https://github.com/reasonml/reason/releases/download/3.8.0/reason-3.8.0.tbz#sha256:9478724b01767320064ba950ddea24c5df0eefdcdd8ff1324ba9ccd646258979""version": "opam:3.8.0","@opam/reason@opam:3.8.0@0af856e0": {"id": "@opam/reason@opam:3.8.0@0af856e0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/result@opam:1.5@1c6a6533": {"id": "@opam/result@opam:1.5@1c6a6533","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"]},"@opam/sexplib@opam:v0.14.0@61ef150a": {"id": "@opam/sexplib@opam:v0.14.0@61ef150a","name": "@opam/sexplib","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/6e/6e230eae22face46cb8645e53e351067#md5:6e230eae22face46cb8645e53e351067","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/sexplib-v0.14.0.tar.gz#md5:6e230eae22face46cb8645e53e351067"],"opam": {"name": "sexplib","version": "v0.14.0","path": "esy.lock/opam/sexplib.v0.14.0"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/parsexp@opam:v0.14.2@1d15b9d2", "@opam/num@opam:1.4@54b259a0","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/sexplib0@opam:v0.14.0@155c136c","@opam/parsexp@opam:v0.14.2@1d15b9d2", "@opam/num@opam:1.4@54b259a0","@opam/dune@opam:2.9.3@f57a6d69"]},"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/sexplib0@opam:v0.14.0@155c136c": {"id": "@opam/sexplib0@opam:v0.14.0@155c136c","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ctypes@opam:0.20.1@8c3cb4dc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","@opam/ctypes@opam:0.20.1@8c3cb4dc","@opam/ocamlbuild@opam:0.14.1@ead10f40","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/stdint@opam:0.7.0@b96a8a2c": {"id": "@opam/stdint@opam:0.7.0@b96a8a2c","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@opam/stdio@opam:v0.14.0@a5affb43": {"id": "@opam/stdio@opam:v0.14.0@a5affb43","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/streaming@github:odis-labs/streaming:streaming.opam#74a4863@d41d8cd9": {"id":"@opam/streaming@github:odis-labs/streaming:streaming.opam#74a4863@d41d8cd9","name": "@opam/streaming","version": "github:odis-labs/streaming:streaming.opam#74a4863","source": {"type": "install","source": [ "github:odis-labs/streaming:streaming.opam#74a4863" ]},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stdlib-shims@opam:0.3.0@72c7bc98","@opam/dune@opam:2.9.3@f57a6d69"]},"@opam/stdlib-shims@opam:0.3.0@72c7bc98": {"id": "@opam/stdlib-shims@opam:0.3.0@72c7bc98","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/tls@opam:0.15.2@49c3e04e": {"id": "@opam/tls@opam:0.15.2@49c3e04e","name": "@opam/tls","version": "opam:0.15.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/b7/b76371757249bbeabb12c333de4ea2a09c095767bdbbc83322538c0da1fc1e36#sha256:b76371757249bbeabb12c333de4ea2a09c095767bdbbc83322538c0da1fc1e36","archive:https://github.com/mirleft/ocaml-tls/releases/download/v0.15.2/tls-v0.15.2.tbz#sha256:b76371757249bbeabb12c333de4ea2a09c095767bdbbc83322538c0da1fc1e36"],"opam": {"name": "tls","version": "0.15.2","path": "esy.lock/opam/tls.0.15.2"}},"overrides": [],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/x509@opam:0.16.0@7ea5b66f","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/ptime@opam:0.8.6@5df936b0","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_cstruct@opam:6.1.0@95f58e08","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto-pk@opam:0.10.6@86e09b65","@opam/mirage-crypto-ec@opam:0.10.6@d3d8fb05","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/lwt@opam:5.5.0@30354e4c", "@opam/logs@opam:0.7.0@46a3dffc","@opam/ipaddr-sexp@opam:5.3.0@3f923dde","@opam/ipaddr@opam:5.3.0@56e263f1", "@opam/hkdf@opam:1.0.4@c948bc13","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/domain-name@opam:0.4.0@ab0ca2e3","@opam/cstruct-sexp@opam:6.1.0@c7f4312d","@opam/cstruct@opam:6.1.0@b0cd6e0b","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/x509@opam:0.16.0@7ea5b66f","@opam/sexplib@opam:v0.14.0@61ef150a","@opam/ptime@opam:0.8.6@5df936b0","@opam/ppx_sexp_conv@opam:v0.14.3@fd72d57e","@opam/ppx_cstruct@opam:6.1.0@95f58e08","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto-pk@opam:0.10.6@86e09b65","@opam/mirage-crypto-ec@opam:0.10.6@d3d8fb05","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/lwt@opam:5.5.0@30354e4c", "@opam/logs@opam:0.7.0@46a3dffc","@opam/ipaddr-sexp@opam:5.3.0@3f923dde","@opam/ipaddr@opam:5.3.0@56e263f1", "@opam/hkdf@opam:1.0.4@c948bc13","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/domain-name@opam:0.4.0@ab0ca2e3","@opam/cstruct-sexp@opam:6.1.0@c7f4312d","@opam/cstruct@opam:6.1.0@b0cd6e0b"]},"@opam/time_now@opam:v0.14.0@ecc73110": {"id": "@opam/time_now@opam:v0.14.0@ecc73110","name": "@opam/time_now","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/a9/a93116938783587f8b9f5152dd543037#md5:a93116938783587f8b9f5152dd543037","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/time_now-v0.14.0.tar.gz#md5:a93116938783587f8b9f5152dd543037"],"opam": {"name": "time_now","version": "v0.14.0","path": "esy.lock/opam/time_now.v0.14.0"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__time__now_opam__c__v0.14.0_opam_override"}],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppx_optcomp@opam:v0.14.3@08009524","@opam/ppx_base@opam:v0.14.0@3221121a","@opam/jst-config@opam:v0.14.1@95aef818","@opam/jane-street-headers@opam:v0.14.0@b38e12bf","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ppx_optcomp@opam:v0.14.3@08009524","@opam/ppx_base@opam:v0.14.0@3221121a","@opam/jst-config@opam:v0.14.1@95aef818","@opam/jane-street-headers@opam:v0.14.0@b38e12bf","@opam/dune@opam:2.9.3@f57a6d69", "@opam/base@opam:v0.14.3@b3ddb868"]},"@opam/stringext@opam:1.6.0@d9079793": {"id": "@opam/stringext@opam:1.6.0@d9079793","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/menhir@opam:20211128@29de3b7a","@opam/dune@opam:2.9.3@f57a6d69", "@opam/ISO8601@opam:0.2.6@07c0838b""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/menhir@opam:20211128@29de3b7a","@opam/dune@opam:2.9.3@f57a6d69","@opam/toml@opam:6.0.0@c2b6eda1": {"id": "@opam/toml@opam:6.0.0@c2b6eda1","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlbuild@opam:0.14.1@ead10f40""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/ocamlbuild@opam:0.14.1@ead10f40","version": "1.0.5","path": "esy.lock/opam/topkg.1.0.5""archive:https://opam.ocaml.org/cache/sha512/94/9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab#sha512:9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab","archive:https://erratique.ch/software/topkg/releases/topkg-1.0.5.tbz#sha512:9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab""version": "opam:1.0.5","@opam/topkg@opam:1.0.5@0aa59f51": {"id": "@opam/topkg@opam:1.0.5@0aa59f51","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/re@opam:1.10.3@0585c65d", "@opam/dune@opam:2.9.3@f57a6d69""@opam/uutf@opam:1.0.3@47c95a18", "@opam/seq@opam:base@d8d7de1d","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/re@opam:1.10.3@0585c65d", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/uutf@opam:1.0.3@47c95a18", "@opam/seq@opam:base@d8d7de1d","version": "4.5.0","path": "esy.lock/opam/tyxml.4.5.0""archive:https://opam.ocaml.org/cache/sha256/c6/c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068#sha256:c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068","archive:https://github.com/ocsigen/tyxml/releases/download/4.5.0/tyxml-4.5.0.tbz#sha256:c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068""version": "opam:4.5.0","@opam/tyxml@opam:4.5.0@0a609297": {"id": "@opam/tyxml@opam:4.5.0@0a609297","@opam/angstrom@opam:0.15.0@105656d9""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stringext@opam:1.6.0@d9079793","@opam/dune@opam:2.9.3@f57a6d69","@opam/angstrom@opam:0.15.0@105656d9","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/stringext@opam:1.6.0@d9079793","@opam/dune@opam:2.9.3@f57a6d69","@opam/uri@opam:4.1.0@4aeee2d3": {"id": "@opam/uri@opam:4.1.0@4aeee2d3","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.1@ead10f40","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/uutf@opam:1.0.3@47c95a18", "@opam/topkg@opam:1.0.5@0aa59f51","version": "14.0.0","path": "esy.lock/opam/uucp.14.0.0""archive:https://opam.ocaml.org/cache/sha512/2d/2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899#sha512:2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899","archive:https://erratique.ch/software/uucp/releases/uucp-14.0.0.tbz#sha512:2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899""version": "opam:14.0.0","@opam/uucp@opam:14.0.0@8715110e": {"id": "@opam/uucp@opam:14.0.0@8715110e","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/uucp@opam:14.0.0@8715110e""@opam/ocamlbuild@opam:0.14.1@ead10f40","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","@opam/uutf@opam:1.0.3@47c95a18", "@opam/uucp@opam:14.0.0@8715110e","version": "14.0.0","path": "esy.lock/opam/uuseg.14.0.0""archive:https://opam.ocaml.org/cache/sha512/3f/3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa#sha512:3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa","archive:https://erratique.ch/software/uuseg/releases/uuseg-14.0.0.tbz#sha512:3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa""version": "opam:14.0.0","@opam/uuseg@opam:14.0.0@7d21466b": {"id": "@opam/uuseg@opam:14.0.0@7d21466b","devDependencies": [ "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.1@ead10f40","@opam/cmdliner@opam:1.1.1@03763729","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/topkg@opam:1.0.5@0aa59f51","version": "1.0.3","path": "esy.lock/opam/uutf.1.0.3""archive:https://opam.ocaml.org/cache/sha512/50/50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8#sha512:50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8","archive:https://erratique.ch/software/uutf/releases/uutf-1.0.3.tbz#sha512:50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8""version": "opam:1.0.3","@opam/uutf@opam:1.0.3@47c95a18": {"id": "@opam/uutf@opam:1.0.3@47c95a18","@opam/angstrom@opam:0.15.0@105656d9""@opam/bigstringaf@opam:0.9.0@5762d1bc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/httpaf@github:anmonteiro/httpaf:httpaf.opam#395aad2@d41d8cd9","@opam/gluten@github:anmonteiro/gluten:gluten.opam#7257692@d41d8cd9","@opam/angstrom@opam:0.15.0@105656d9","@opam/bigstringaf@opam:0.9.0@5762d1bc","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/result@opam:1.5@1c6a6533","@opam/httpaf@github:anmonteiro/httpaf:httpaf.opam#395aad2@d41d8cd9","@opam/gluten@github:anmonteiro/gluten:gluten.opam#7257692@d41d8cd9","type": "install","source": [ "github:quartz55/websocketaf:websocketaf.opam#49bb812" ]"version": "github:quartz55/websocketaf:websocketaf.opam#49bb812","@opam/websocketaf@github:quartz55/websocketaf:websocketaf.opam#49bb812@d41d8cd9","@opam/websocketaf@github:quartz55/websocketaf:websocketaf.opam#49bb812@d41d8cd9": {"ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ptime@opam:0.8.6@5df936b0", "@opam/pbkdf@opam:1.2.0@1484a934","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto-pk@opam:0.10.6@86e09b65","@opam/mirage-crypto-ec@opam:0.10.6@d3d8fb05","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/logs@opam:0.7.0@46a3dffc", "@opam/ipaddr@opam:5.3.0@56e263f1","@opam/gmap@opam:0.3.0@5c009abd", "@opam/fmt@opam:0.9.0@87213963","@opam/dune@opam:2.9.3@f57a6d69","@opam/domain-name@opam:0.4.0@ab0ca2e3","@opam/cstruct@opam:6.1.0@b0cd6e0b","@opam/base64@opam:3.5.0@827395e3","@opam/asn1-combinators@opam:0.2.6@220d4b1d""@opam/domain-name@opam:0.4.0@ab0ca2e3","@opam/cstruct@opam:6.1.0@b0cd6e0b","@opam/base64@opam:3.5.0@827395e3","@opam/asn1-combinators@opam:0.2.6@220d4b1d","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ptime@opam:0.8.6@5df936b0", "@opam/pbkdf@opam:1.2.0@1484a934","@opam/mirage-crypto-rng@opam:0.10.6@d6188d6b","@opam/mirage-crypto-pk@opam:0.10.6@86e09b65","@opam/mirage-crypto-ec@opam:0.10.6@d3d8fb05","@opam/mirage-crypto@opam:0.10.6@51aedda0","@opam/logs@opam:0.7.0@46a3dffc", "@opam/ipaddr@opam:5.3.0@56e263f1","@opam/gmap@opam:0.3.0@5c009abd", "@opam/fmt@opam:0.9.0@87213963","type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/67/67a6727fb4c38b919334eef2f8ef4eac0237029a439ff981d408eca8b9833595#sha256:67a6727fb4c38b919334eef2f8ef4eac0237029a439ff981d408eca8b9833595","archive:https://github.com/mirleft/ocaml-x509/releases/download/v0.16.0/x509-0.16.0.tbz#sha256:67a6727fb4c38b919334eef2f8ef4eac0237029a439ff981d408eca8b9833595"],"opam": {"name": "x509","version": "0.16.0","path": "esy.lock/opam/x509.0.16.0"}"@opam/x509@opam:0.16.0@7ea5b66f": {"id": "@opam/x509@opam:0.16.0@7ea5b66f","name": "@opam/x509","version": "opam:0.16.0","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69", "@opam/biniou@opam:1.2.1@420bda02""ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d","@opam/yojson@opam:1.7.0@69d87312": {"id": "@opam/yojson@opam:1.7.0@69d87312","@opam/merlin@opam:4.4-412@c7695ce2","@opam/earlybird@opam:1.1.0@4bff968a","@opam/alcotest@opam:1.5.0@338d9572"]},"@opam/zarith@opam:1.12@232cc7f2": {"id": "@opam/zarith@opam:1.12@232cc7f2","name": "@opam/zarith","version": "opam:1.12","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/bf/bf368f3d9e20b6b446d54681afc05a04#md5:bf368f3d9e20b6b446d54681afc05a04","archive:https://github.com/ocaml/Zarith/archive/release-1.12.tar.gz#md5:bf368f3d9e20b6b446d54681afc05a04"],"opam": {"name": "zarith","version": "1.12","path": "esy.lock/opam/zarith.1.12"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__zarith_opam__c__1.12_opam_override"}],"dependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/conf-gmp@opam:4@c394e8f1", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/conf-gmp@opam:4@c394e8f1""@opam/qcheck-core@opam:0.18.1@5f40aab3","@opam/qcheck-alcotest@opam:0.18.1@c4603318","@opam/odoc@opam:2.1.0@d39daa6f","@opam/ocamlformat@opam:0.21.0@b395910b","@opam/ocaml-lsp-server@opam:1.9.0@671f2077","@discopotty/opus@link:vendor/opus/package.json""@opam/mtime@opam:1.2.0@acd670b8", "@opam/ke@opam:0.6@9ad9641b","@opam/hxd@opam:0.3.2@e56508b0","@opam/httpaf@github:anmonteiro/httpaf:httpaf.opam#395aad2@d41d8cd9","@opam/gluten@github:anmonteiro/gluten:gluten.opam#7257692@d41d8cd9","@opam/eio_luv@github:quartz55/eio:eio_luv.opam#2c68f46@d41d8cd9","@opam/eio@github:quartz55/eio:eio.opam#2c68f46@d41d8cd9","@opam/dune@opam:2.9.3@f57a6d69","@opam/ptime@opam:0.8.6@5df936b0","esy-libsodium@archive:https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz#sha1:795b73e3f92a362fabee238a71735579bf46bb97@a5898027","@opam/uri@opam:4.1.0@4aeee2d3", "@opam/toml@opam:6.0.0@c2b6eda1","@opam/tls@opam:0.15.2@49c3e04e","@opam/streaming@github:odis-labs/streaming:streaming.opam#74a4863@d41d8cd9","@opam/stdint@opam:0.7.0@b96a8a2c","@opam/yojson@opam:1.7.0@69d87312","@opam/websocketaf@github:quartz55/websocketaf:websocketaf.opam#49bb812@d41d8cd9","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","relog@github:quartz55/relog-native#15a27a8@d41d8cd9","dependencies": ["@opam/conf-texinfo@github:esy-packages/esy-texinfo:package.json#4a05feafbbcc4c57d5d25899fbdab98961b9a69c@d41d8cd9"],]},"overrides": [],"dependencies": [],"devDependencies": []},"esy-libsodium@archive:https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz#sha1:795b73e3f92a362fabee238a71735579bf46bb97@a5898027": {"id":"esy-libsodium@archive:https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz#sha1:795b73e3f92a362fabee238a71735579bf46bb97@a5898027","name": "esy-libsodium","version":"archive:https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz#sha1:795b73e3f92a362fabee238a71735579bf46bb97","source": {"type": "install","source": ["archive:https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz#sha1:795b73e3f92a362fabee238a71735579bf46bb97"]},"overrides": [ "esy.lock/overrides/a589802762d4c745d460324213040534" ],"dependencies": [],"devDependencies": []},"esy-libopus@archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b@24aa01e3": {"id":"esy-libopus@archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b@24aa01e3","name": "esy-libopus","version":"archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b","source": {"type": "install","source": ["archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b"]},"overrides": [ "vendor/esy-libopus/package.json" ],"dependencies": ["@opam/conf-autoconf@github:esy-packages/esy-autoconf:package.json#fb93edf@d41d8cd9"],"devDependencies": []},"name": "esy-libffi","source": {"type": "install","source": ["archive:https://registry.npmjs.org/esy-libffi/-/esy-libffi-3.3.1.tgz#sha1:96945e52a2984e3f97d6fc28c1a378041bdae28d""version": "3.3.1","esy-libffi@3.3.1@d41d8cd9": {"id": "esy-libffi@3.3.1@d41d8cd9","@opam/conf-pkg-config@opam:1.3@d5a0b3fd","source": [ "github:quartz55/ocaml#8899e5d" ]"version": "github:quartz55/ocaml#8899e5d","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9": {"id": "ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","ocaml@github:quartz55/ocaml#8899e5d@d41d8cd9","@opam/yojson@opam:1.7.0@69d87312","@opam/ptime@opam:0.8.6@5df936b0", "@opam/dune@opam:2.9.3@f57a6d69","@opam/reason@opam:3.8.0@0af856e0","source": [ "github:quartz55/relog-native#15a27a8" ]"version": "github:quartz55/relog-native#15a27a8","relog@github:quartz55/relog-native#15a27a8@d41d8cd9": {"id": "relog@github:quartz55/relog-native#15a27a8@d41d8cd9","checksum": "ed171674fa106c6d67f3f8aa6e584d4a",
{"name": "discopotty","scripts": {},"devDependencies": {"@opam/ocamlformat": "*","@opam/odoc": "*","@opam/qcheck-alcotest": "*","@opam/qcheck-core": "*"},"resolutions": {"@opam/conf-pkg-config": "1.3","@opam/conf-libssl": "2","@opam/conf-libsodium": {"source": "github:EduardoRFS/esy-libsodium:libsodium.opam#caeedd7","override": {"dependencies": {"esy-libsodium": "github:EduardoRFS/esy-libsodium#caeedd7"}}},"@opam/sodium": {"source": "github:quartz55/ocaml-sodium:sodium.opam#6088c1c","override": {"dependencies": {"@opam/conf-libsodium": "*"}}},"@discopotty/opus": "link:./vendor/opus/package.json","@opam/conf-libopus": {"source": "link:./vendor/esy-libopus/conf-libopus.opam","override": {"dependencies": {"esy-libopus": "./vendor/esy-libopus"}}},},"repository": {"type": "git","url": "git+https://github.com/quartz55/discopotty-re.git"},"author": "","license": "ISC","homepage": "https://github.com/quartz55/discopotty-re#readme"}"bugs": {"url": "https://github.com/quartz55/discopotty-re/issues"},"esy-libopus": "./vendor/esy-libopus/package.json""ocaml": "quartz55/ocaml#8899e5d","@opam/streaming": "odis-labs/streaming:streaming.opam#74a4863","@opam/eio": "quartz55/eio:eio.opam#2c68f46","@opam/eio_luv": "quartz55/eio:eio_luv.opam#2c68f46","@opam/httpaf": "anmonteiro/httpaf:httpaf.opam#395aad2","@opam/websocketaf": "quartz55/websocketaf:websocketaf.opam#49bb812","@opam/gluten": "anmonteiro/gluten:gluten.opam#7257692","@opam/alcotest": "*","@opam/merlin": "4.4-412","@opam/ocaml-lsp-server": "1.9.0","@opam/earlybird": "1.1.0","bot": "esy x discopotty","test": "esy dune test","format": "esy dune build @fmt --auto-promote","doc": "esy dune build @doc"},"dependencies": {"@discopotty/opus": "*","@opam/conf-libsodium": "*","@opam/eio": "*","@opam/eio_luv": "*","@opam/mtime": "~1.2.0","@opam/ocamlfind": "<1.9.0","@opam/ppx_yojson_conv": "v0.14.0","@opam/sodium": "*","@opam/websocketaf": "*","esy-libsodium": "github:EduardoRFS/esy-libsodium#caeedd7","ocaml": "*","relog": "github:quartz55/relog-native#15a27a8""@opam/yojson": "~1.7.0","@opam/gluten": "*","@opam/stdint": "~0.7.0","@opam/streaming": "*","@opam/tls": "0.15.2","@opam/toml": "~6.0.0","@opam/uri": "~4.1.0","@opam/ptime": "~0.8.5","@opam/ppx_deriving": "~5.2.1","@opam/httpaf": "*","@opam/hxd": "~0.3.1","@opam/ke": ">=0.4","@opam/containers": "~3.2","@opam/containers-data": "~3.2","@opam/dune": "~2.9.0","@opam/angstrom": "~0.15.0","version": "0.0.1","description": "","esy": {},"build": "dune build --profile=release","buildDev": "dune build --promote-install-files --root ."
*.ctf# nix artifactsresult
{ocamlPackages}:with ocamlPackages;buildDunePackage {pname = "disco";version = "0.0.1";src = ./.;propagatedBuildInputs = [disco-opusangstromcontainerscontainers-dataeiohttpafhxdkemtimeppx_derivingppx_yojson_convptimesodiumstdintstreamingtlstomluriwebsocketafglutenyojsonrelog];}
{ lib, stdenv, ocamlPackages, ocaml }:stdenv.mkDerivation {pname = "discopotty";version = "0.0.1";src = lib.filterGitSource {src = ./.;dirs = [ "bin" ];files = [ "dune" "dune-project" "discopotty.opam" ];};nativeBuildInputs = [ocamlPackages.duneocaml# findlib];buildInputs = with ocamlPackages; [discoangstromcontainerstomlrelogeio_luv];buildPhase = ''dune build bin/bot/discopotty.exe --display=short --profile=release'';installPhase = ''mkdir -p $out/binmv _build/default/bin/bot/discopotty.exe $out/bin/discopotty'';}
"type": "github"}},"flake-utils": {"locked": {"lastModified": 1637014545,"narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=","owner": "numtide","repo": "flake-utils","rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4","type": "github"},"original": {"owner": "numtide","repo": "flake-utils",
}},"nixpkgs-2021_03_20": {"flake": false,"locked": {"narHash": "sha256-88Pu2xh1p2tixNxdijfqoCqq9ymkEx0d6jc7ycWavLo=","type": "tarball","url": "https://github.com/nixos/nixpkgs/archive/f5e8bdd07d1a.tar.gz"},"original": {"type": "tarball","url": "https://github.com/nixos/nixpkgs/archive/f5e8bdd07d1a.tar.gz"
overlays = [ (import ocaml-overlays) ];
overlays = [ocaml-overlays.overlay(self: super: { ocamlPackages = super.ocaml-ng.ocamlPackages_5_00; })(self: super: {ocamlPackages = super.ocamlPackages // {ppx_yojson_conv = super.ocamlPackages.buildDunePackage rec {pname = "ppx_yojson_conv";version = "0.15.0";src = builtins.fetchurl {url = "https://github.com/janestreet/ppx_yojson_conv/archive/refs/tags/v${version}.tar.gz";sha256 = sha256:0lyhvw73cq2sw1bwackmxk1bricw9y5p03g2qvjqphaaq9fi74lj;};propagatedBuildInputs = with self.ocamlPackages; [baseppx_js_styleppx_yojson_conv_libppxlib];};streaming = super.ocamlPackages.buildDunePackage rec {pname = "streaming";version = "master";rev = "74a48634f81eefc5ff98103016b4be9645c1ea01";src = builtins.fetchurl {url = "https://github.com/odis-labs/streaming/archive/${rev}.tar.gz";sha256 = sha256:0ckc1k3waq1ax873nmzqs67cnd15di7yskfba5vddzncc6jsn6rv;};propagatedBuildInputs = with self.ocamlPackages; [ stdlib-shims ];};stdint = super.ocamlPackages.stdint.overrideAttrs (_: rec {rev = "cb95ca6dff6bd58aa555b872a5db6558837d52db";src = builtins.fetchurl {url = "https://github.com/kit-ty-kate/ocaml-stdint/archive/${rev}.tar.gz";sha256 = sha256:0ib82j20zjq5111rwhl2281lbccbsi2cqibvbqcanim5ffd008l1;};patches = [];});eio = super.ocamlPackages.buildDunePackage {pname = "eio";version = "0.2";src = builtins.fetchurl {url = "https://github.com/ocaml-multicore/eio/archive/refs/tags/v0.2.tar.gz";sha256 = sha256:047qsiajrcglnws1fmcbikkfgm7prl05rvf1ylfbd69vdxd9ykjm;};propagatedBuildInputs = with self.ocamlPackages; [cstructlwt-dllistoptintpsqfmtmtime];};eio_luv = super.ocamlPackages.buildDunePackage {pname = "eio_luv";inherit (self.ocamlPackages.eio) version src;propagatedBuildInputs = with self.ocamlPackages; [eioluvluv_unixlogsfmt];};luv_unix = super.ocamlPackages.buildDunePackage {pname = "luv_unix";inherit (self.ocamlPackages.luv) version src;propagatedBuildInputs = with self.ocamlPackages; [luvctypesresult];};ctypes-foreign = super.ocamlPackages.buildDunePackage {pname = "${self.ocamlPackages.ctypes.pname}-foreign";inherit (self.ocamlPackages.ctypes) version src;buildInputs = with self; [ libffi ];};disco-opus = super.callPackage ./vendor/opus { };relog = super.ocamlPackages.buildDunePackage rec {pname = "relog";version = "master";rev = "15a27a87dc15b1a6092f2197effd51577ca0eaf7";src = builtins.fetchurl {url = "https://github.com/quartz55/relog-native/archive/${rev}.tar.gz";sha256 = sha256:01j75d8h22aj26wh7hw541gxdzmy7pb78dncyvxd52nv1xrc0fvf;};buildInputs = with self.ocamlPackages; [ reason ];propagatedBuildInputs = with self.ocamlPackages; [containersptimeyojson];postPatch = ''substituteInPlace lib/Formatter.re --replace "Bi_outbuf" "Buffer"'';};disco = super.callPackage ./. { };};})];
discopotty = pkgs.callPackage ./. { inherit pkgs; };docker = pkgs.dockerTools.buildImage {name = "discopotty";config = {Cmd = [ "${packages.discopotty}/bin/discopotty" ];};};
disco = pkgs.ocamlPackages.disco;discopotty = pkgs.callPackage ./discopotty.nix { };# docker = pkgs.dockerTools.buildImage {# name = "discopotty";# config = {# Cmd = [ "${packages.discopotty}/bin/discopotty" ];# };# };
type voice = { user_limit : int; bitrate : int; rtc_region : string option }[@@deriving yojson, show] [@@yojson.allow_extra_fields]
type voice = { user_limit : int; bitrate : int; rtc_region : string option }[@@deriving yojson, show] [@@yojson.allow_extra_fields]
type guild = {guild_id : Snowflake.t option; [@yojson.option]position : int;permission_overwrites : R.overwrite list;name : string;topic : string option;nsfw : bool;last_message_id : Snowflake.t option;last_pin_timestamp : string option;rate_limit_per_user : int option; [@yojson.option]parent_id : Snowflake.t option;}[@@deriving yojson, show] [@@yojson.allow_extra_fields]end
type guild = {guild_id : Snowflake.t option; [@yojson.option]position : int;permission_overwrites : R.overwrite list;name : string;topic : string option;nsfw : bool;last_message_id : Snowflake.t option;last_pin_timestamp : string option;rate_limit_per_user : int option; [@yojson.option]parent_id : Snowflake.t option;}[@@deriving yojson, show] [@@yojson.allow_extra_fields]end
let t_of_yojson j =let id = Yojson.Safe.Util.(member "id" j |> Snowflake.t_of_yojson) inlet chan =match Yojson.Safe.Util.(member "type" j |> to_int) with| 0 -> Guild_text| 1 -> DM| 2 -> Guild_voice| 3 -> Group_DM| 4 -> Guild_category| 5 -> Guild_news| 6 -> Guild_store| 13 -> Guild_stage_voice| _n -> failwith "unsupported channel type"in(id, chan) *)
let t_of_yojson j =let id = Yojson.Safe.Util.(member "id" j |> Snowflake.t_of_yojson) inlet chan =match Yojson.Safe.Util.(member "type" j |> to_int) with| 0 -> Guild_text| 1 -> DM| 2 -> Guild_voice| 3 -> Group_DM| 4 -> Guild_category| 5 -> Guild_news| 6 -> Guild_store| 13 -> Guild_stage_voice| _n -> failwith "unsupported channel type"in(id, chan) *)
endmodule Source = structtype 'a t = 'a sourceendlet make () =let sink = make_sink () inlet key = gen_key () inlet sinks = Seq.pure (key, sink) |> Cache.of_seq inlet source = Source.make ~sinks () in(source, { key; source })let close source =if source.closed then Lwt.return_unitelse Cache.iter source.sinks ~f:(fun _ -> drop_sink)let subscribe source = make_sink () |> connect sourcelet write source v =let f _ sink =(* Printf.printf "handle %d: " k; *)if sink.dropped then ()elselet rec f q =match Ke.Fke.pop q with| Some ((p, u), tl) when Lwt.is_sleeping p ->(* print_endline "waking up reader"; *)sink.readers <- tl;Lwt.wakeup_later u @@ Some v| Some (_, tl) ->(* print_endline "skipping cancelled reader"; *)f tl| None ->(* print_endline "pushed to buffer"; *)sink.readers <- Ke.Fke.empty;sink.buf <- Ke.Fke.push sink.buf vinf sink.readersinCache.iter source.sinks ~flet make ?(sinks = Cache.make ()) () = { sinks; closed = false }type 'a source = { sinks : 'a sink Cache.t; mutable closed : bool }and 'a sink = {mutable readers : 'a reader Ke.Fke.t;mutable buf : 'a Ke.Fke.t;mutable dropped : bool;}and 'a reader = 'a option Lwt.t * 'a option Lwt.utype 'a handle = { key : Cache.key; source : 'a source }let gen_key () =Random.self_init ();K (Random.bits ())let make_sink () ={ readers = Ke.Fke.empty; buf = Ke.Fke.empty; dropped = false }let connect source sink =let sink = { sink with dropped = source.closed } inlet key = gen_key () inCache.add source.sinks ~key sink >|= fun () -> { key; source }let drop_sink t =if not t.dropped then (t.dropped <- true;Ke.Fke.iter(fun (p, u) -> if Lwt.is_sleeping p then Lwt.wakeup_later u None)t.readers;t.readers <- Ke.Fke.empty)module Sink = structtype 'a t = 'a handlelet get { key; source } = Cache.find source.sinks ~keylet peek t = get t >|= fun t -> Ke.Fke.peek t.buflet pull t =get t >>= fun t ->match Ke.Fke.pop t.buf with| Some (v, tl) ->t.buf <- tl;Lwt.return @@ Some v| None when t.dropped -> Lwt.return None| None ->let p, u = Lwt.task () int.readers <- Ke.Fke.push t.readers (p, u);plet drop t = get t >|= drop_sinklet clone t = get t >>= fun sink -> connect t.source sinktype t = keyend))let hash = Hashtbl.seeded_hashmodule Cache = MakeCache (Ephemeron.K1.MakeSeeded (structlet equal (K l) (K r) = l = rtype key = K of intlet of_seq seq =let tbl, mtx = make () inSeq.iter (fun (k, v) -> Table.add tbl k v) seq;(tbl, mtx)endlet clean t = access t Table.cleanlet reset t = access t Table.resetlet remove t ~key = access t @@ fun table -> Table.remove table keylet mem t ~key = access t @@ fun table -> Table.mem table keylet iter t ~f = access t @@ fun table -> Table.iter f tablelet find_opt t ~key = access t @@ fun table -> Table.find_opt table keylet find t ~key = access t @@ fun table -> Table.find table keylet add t ~key value = access t @@ fun table -> Table.add table key valuelet access (table, lock) f =Lwt_mutex.with_lock lock @@ fun () -> table |> f |> Lwt.returnlet make () = (Table.create ~random:true 32, Lwt_mutex.create ())type 'a t = 'a Table.t * Lwt_mutex.ttype key = Table.keymodule MakeCache (T : Ephemeron.SeededS) = structmodule Table = Topen! Containersopen Lwt.Infix
open Containersopen Eio.Stdmodule L = (val Relog.logger ~namespace:__MODULE__ ())module Lf_queue = Eio_utils.Lf_queue(* author's note: decided to go with unboxed intsin the end, I don't expect this to be used in systemsother than 64 bit (and 63 bits is more than enough) *)type t = {sleep : float -> unit;capacity : int;capacity_ns : int;ns_per_token : int;bucket : bucket Atomic.t;attending : bool Atomic.t;waiters : waiter Lf_queue.t;}and bucket = { tokens : int; ts : Mtime.Span.t }and waiter = Waiter of int * unit Promise.u * unit Promise.tlet check_capacity ~n { capacity; _ } =if n > capacity thenraise (Invalid_argument "can't take more than bucket's capacity")let make ~capacity ?init rate =let sleep secs = Eio_unix.sleep secs inlet ns_per_token = Int.of_float (1e9 /. rate |> ceil) inlet init = match init with Some i -> min capacity i | None -> capacity inlet bucket = { tokens = init * ns_per_token; ts = Mtime_clock.elapsed () } in{sleep;capacity;capacity_ns = capacity * ns_per_token;ns_per_token;bucket = Atomic.make bucket;attending = Atomic.make false;waiters = Lf_queue.create ();}let capacity { capacity; _ } = capacitylet rate { ns_per_token; _ } = 1. /. (float ns_per_token /. 1e9)let is_full { capacity_ns; bucket; _ } =let { tokens; _ } = Atomic.get bucket intokens >= capacity_nslet fill t =let b = Backoff.create () inlet rec loop () =let bucket = Atomic.get t.bucket inmatch bucket with| { tokens; _ } when tokens >= t.capacity_ns -> t| { tokens; ts } ->let now = Mtime_clock.elapsed () inlet span = Mtime.Span.abs_diff now ts inlet diff_ns = Mtime.Span.to_uint64_ns span |> Int64.to_int inlet tokens = min t.capacity_ns (tokens + diff_ns) inif Atomic.compare_and_set t.bucket bucket { tokens; ts = now } then telse (Backoff.once b;loop ())inloop ()let try_take_ns_unsafe ~n t =let b = Backoff.create () inlet rec take' t =let ({ tokens; _ } as bucket) = Atomic.get t.bucket inlet cas tokens =Atomic.compare_and_set t.bucket bucket { bucket with tokens }inmatch tokens - n with| n when n < 0 -> false| n when cas n -> true| _ ->Backoff.once b;take' tinif take' t then true else fill t |> take'let try_take ?(n = 1) t =check_capacity ~n t;if Atomic.compare_and_set t.attending false true then (let n_ns = n * t.ns_per_token inlet out = try_take_ns_unsafe ~n:n_ns t inAtomic.set t.attending false;out)else falselet attend_waiters t =let b = Backoff.create () inlet rec attend ?(n = 0) () =traceln "Attending...";match Lf_queue.pop t.waiters with| None when n = 0 ->Backoff.once b;attend ()| None -> Atomic.set t.attending false| Some (Waiter (n, u, _)) when try_take_ns_unsafe ~n t ->Promise.resolve u ();attend ~n:(n + 1) ()| Some (Waiter (n, _, _) as waiter) ->Lf_queue.push_head t.waiters waiter;let { tokens; _ } = Atomic.get t.bucket inlet wait_ns = max (n - tokens) 0 inlet wait_secs = float wait_ns /. 1e9 int.sleep wait_secs;attend ~n ()inattend ~n:0let take ~sw ?(n = 1) t =check_capacity ~n t;let n_ns = n * t.ns_per_token inlet enqueue' () =let p, u = Promise.create () inLf_queue.push t.waiters (Waiter (n_ns, u, p));pinmatch Atomic.compare_and_set t.attending false true with| false -> Promise.await @@ enqueue' ()| true when try_take_ns_unsafe ~n:n_ns t -> Atomic.set t.attending false| true ->let p = enqueue' () inFiber.fork ~sw @@ attend_waiters t;Promise.await p
open Containersopen Eio.Stdmodule L = (val Relog.logger ~namespace:__MODULE__ ())module Lf_queue = Eio_utils.Lf_queue(* author's note: decided to go with unboxed intsin the end, I don't expect this to be used in systemsother than 64 bit (and 63 bits is more than enough) *)type t = {sleep : float -> unit;capacity : int;capacity_ns : int;ns_per_token : int;bucket : bucket Atomic.t;attending : bool Atomic.t;waiters : waiter Lf_queue.t;}and bucket = { tokens : int; ts : Mtime.Span.t }and waiter = Waiter of int * unit Promise.u * unit Promise.tlet check_capacity ~n { capacity; _ } =if n > capacity thenraise (Invalid_argument "can't take more than bucket's capacity")let make ~capacity ?init rate =let sleep secs = Eio_unix.sleep secs inlet ns_per_token = Int.of_float (1e9 /. rate |> ceil) inlet init = match init with Some i -> min capacity i | None -> capacity inlet bucket = { tokens = init * ns_per_token; ts = Mtime_clock.elapsed () } in{sleep;capacity;capacity_ns = capacity * ns_per_token;ns_per_token;bucket = Atomic.make bucket;attending = Atomic.make false;waiters = Lf_queue.create ();}let capacity { capacity; _ } = capacitylet rate { ns_per_token; _ } = 1. /. (float ns_per_token /. 1e9)let is_full { capacity_ns; bucket; _ } =let { tokens; _ } = Atomic.get bucket intokens >= capacity_nslet fill t =let b = Backoff.create () inlet rec loop () =let bucket = Atomic.get t.bucket inmatch bucket with| { tokens; _ } when tokens >= t.capacity_ns -> t| { tokens; ts } ->let now = Mtime_clock.elapsed () inlet span = Mtime.Span.abs_diff now ts inlet diff_ns = Mtime.Span.to_uint64_ns span |> Int64.to_int inlet tokens = min t.capacity_ns (tokens + diff_ns) inif Atomic.compare_and_set t.bucket bucket { tokens; ts = now } then telse (Backoff.once b;loop ())inloop ()let try_take_ns_unsafe ~n t =let b = Backoff.create () inlet rec take' t =let ({ tokens; _ } as bucket) = Atomic.get t.bucket inlet cas tokens =Atomic.compare_and_set t.bucket bucket { bucket with tokens }inmatch tokens - n with| n when n < 0 -> false| n when cas n -> true| _ ->Backoff.once b;take' tinif take' t then true else fill t |> take'let try_take ?(n = 1) t =check_capacity ~n t;if Atomic.compare_and_set t.attending false true then (let n_ns = n * t.ns_per_token inlet out = try_take_ns_unsafe ~n:n_ns t inAtomic.set t.attending false;out)else falselet attend_waiters t =let b = Backoff.create () inlet rec attend ?(n = 0) () =traceln "Attending...";match Lf_queue.pop t.waiters with| None when n = 0 ->Backoff.once b;attend ()| None -> Atomic.set t.attending false| Some (Waiter (n, u, _)) when try_take_ns_unsafe ~n t ->Promise.resolve u ();attend ~n:(n + 1) ()| Some (Waiter (n, _, _) as waiter) ->Lf_queue.push_head t.waiters waiter;let { tokens; _ } = Atomic.get t.bucket inlet wait_ns = max (n - tokens) 0 inlet wait_secs = float wait_ns /. 1e9 int.sleep wait_secs;attend ~n ()inattend ~n:0let take ~sw ?(n = 1) t =check_capacity ~n t;let n_ns = n * t.ns_per_token inlet enqueue' () =let p, u = Promise.create () inLf_queue.push t.waiters (Waiter (n_ns, u, p));pinmatch Atomic.compare_and_set t.attending false true with| false -> Promise.await @@ enqueue' ()| true when try_take_ns_unsafe ~n:n_ns t -> Atomic.set t.attending false| true ->let p = enqueue' () inFiber.fork ~sw @@ attend_waiters t;Promise.await p
{ pkgs, stdenv, lib, self }:letdiscoPkgs = pkgs.recurseIntoAttrs self.packages.${stdenv.system};discoDrvs = lib.filterAttrs (_: value: lib.isDerivation value) discoPkgs;filterDrvs = inputs:lib.filter(drv:!(lib.hasAttr "pname" drv) ||drv.pname == null ||!(lib.any(name: name == drv.pname || name == drv.name)(lib.attrNames discoDrvs)))inputs;in(pkgs.mkShell {OCAMLRUNPARAM = "b";inputsFrom = lib.attrValues discoDrvs;# inputsFrom = [ self.packages.${stdenv.system}.discopotty ];buildInputs = with pkgs; [ocamlocamlPackages.ocaml-lspocamlPackages.duneocamlformatocamlPackages.merlinocamlPackages.utopffmpegyoutube-dl];})# .overrideAttrs (o: {# propagatedBuildInputs = filterDrvs o.propagatedBuildInputs;# buildInputs = filterDrvs o.buildInputs;# })
{"name": "esy-libogg","version": "1.3.1","description": "Mirror of libogg","license": "BSD","source": "https://downloads.xiph.org/releases/ogg/libogg-1.3.4.tar.gz#851cef020b346d44893e5d1c3dab83c675d479d9","override": {"build": [["./configure","--prefix=$cur__install","--disable-dependency-tracking"],["make","-j4"]],"install": [["make","install"]],"buildsInSource": true,"exportedEnv": {"LD_LIBRARY_PATH": {"val": "#{self.lib : $LD_LIBRARY_PATH}","scope": "global"},"OGG_LIB_PATH": {"val": "#{self.lib}","scope": "global"},"OGG_INCLUDE_PATH": {"val": "#{self.install / 'include'}","scope": "global"},"PKG_CONFIG_PATH": {"val": "#{self.lib / 'pkgconfig' }:$PKG_CONFIG_PATH","scope": "global"}},"dependencies": {"@opam/conf-autoconf": "esy-packages/esy-autoconf:package.json#fb93edf","@opam/conf-pkg-config": "*"}}}
opam-version: "2.0"maintainer: "https://github.com/ocaml/opam-repository/issues"homepage: "https://xiph.org/ogg/"bug-reports: "https://github.com/ocaml/opam-repository/issues"authors: "Xiph.Org Foundation"license: "BSD"build: ["pkg-config" "--exists" "ogg"]depends: ["conf-pkg-config" {build}]depexts: [["libogg-dev"] {os-distribution = "alpine"}["libogg"] {os-distribution = "arch"}["libogg-dev"] {os-family = "debian"}["libogg-devel"] {os-distribution = "centos"}["libogg-devel"] {os-distribution = "fedora"}["libogg-devel"] {os-family = "suse"}["libogg"] {os-distribution = "nixos"}["libogg"] {os-family = "bsd"}["libogg"] {os = "macos" & os-distribution = "homebrew"}]synopsis: "Virtual package relying on libogg"description:"This package can only install if the ogg library is installed on the system."flags: conf
{"name": "esy-libopus","version": "1.3.1","description": "Mirror of libopus","license": "BSD","source": "https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#ed226536537861c9f0f1ef7ca79dffc225bc181b","override": {"build": [["./configure","--prefix=$cur__install"],["make","-j4"]],"install": [["make","install"]],"buildsInSource": true,"exportedEnv": {"LD_LIBRARY_PATH": {"val": "#{self.lib : $LD_LIBRARY_PATH}","scope": "global"},"OPUS_LIB_PATH": {"val": "#{self.lib}","scope": "global"},"OPUS_INCLUDE_PATH": {"val": "#{self.install / 'include'}","scope": "global"},"PKG_CONFIG_PATH": {"val": "#{self.lib / 'pkgconfig' }:$PKG_CONFIG_PATH","scope": "global"}},"dependencies": {"@opam/conf-autoconf": "esy-packages/esy-autoconf:package.json#fb93edf","@opam/conf-pkg-config": "*"}}}
opam-version: "2.0"maintainer: "https://github.com/ocaml/opam-repository/issues"homepage: "https://opus-codec.org/"bug-reports: "https://github.com/ocaml/opam-repository/issues"authors: "Xiph.Org Foundation"license: "BSD"build: ["pkg-config" "--exists" "opus"]depends: ["conf-pkg-config" {build}]depexts: [["libopus-dev"] {os-distribution = "alpine"}["libopus"] {os-distribution = "arch"}["libopus-dev"] {os-family = "debian"}["libopus-devel"] {os-distribution = "centos"}["libopus-devel"] {os-distribution = "fedora"}["libopus-devel"] {os-family = "suse"}["libopus"] {os-distribution = "nixos"}["libopus"] {os-family = "bsd"}["libopus"] {os = "macos" & os-distribution = "homebrew"}]synopsis: "Virtual package relying on libopus"description:"This package can only install if the opus library is installed on the system."flags: conf
{"build": [["bash","-c","#{os == 'windows' ? 'patch -p1 < findlib-1.8.1.patch' : 'true'}"],["./configure","-bindir","#{self.bin}","-sitelib","#{self.lib}","-mandir","#{self.man}","-config","#{self.lib}/findlib.conf","-no-custom","-no-topfind"],["make","all"],["make","opt"]],"install": [["make","install"],["install","-m","0755","ocaml-stub","#{self.bin}/ocaml"],["mkdir","-p","#{self.toplevel}"],["install","-m","0644","src/findlib/topfind","#{self.toplevel}/topfind"]],"exportedEnv": {"OCAML_TOPLEVEL_PATH": {"val": "#{self.toplevel}","scope": "global"}}}
--- ./Makefile+++ ./Makefile@@ -57,16 +57,16 @@cat findlib.conf.in | \$(SH) tools/patch '@SITELIB@' '$(OCAML_SITELIB)' >findlib.confif ./tools/cmd_from_same_dir ocamlc; then \- echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \+ echo 'ocamlc="ocamlc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fiif ./tools/cmd_from_same_dir ocamlopt; then \- echo 'ocamlopt="ocamlopt.opt"' >>findlib.conf; \+ echo 'ocamlopt="ocamlopt.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fiif ./tools/cmd_from_same_dir ocamldep; then \- echo 'ocamldep="ocamldep.opt"' >>findlib.conf; \+ echo 'ocamldep="ocamldep.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fiif ./tools/cmd_from_same_dir ocamldoc; then \- echo 'ocamldoc="ocamldoc.opt"' >>findlib.conf; \+ echo 'ocamldoc="ocamldoc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \fi.PHONY: install-doc--- ./src/findlib/findlib_config.mlp+++ ./src/findlib/findlib_config.mlp@@ -24,3 +24,5 @@| "MacOS" -> "" (* don't know *)| _ -> failwith "Unknown Sys.os_type";;++let exec_suffix = "@EXEC_SUFFIX@";;--- ./src/findlib/findlib.ml+++ ./src/findlib/findlib.ml@@ -28,15 +28,20 @@let conf_ldconf = ref "";;let conf_ignore_dups_in = ref ([] : string list);;-let ocamlc_default = "ocamlc";;-let ocamlopt_default = "ocamlopt";;-let ocamlcp_default = "ocamlcp";;-let ocamloptp_default = "ocamloptp";;-let ocamlmklib_default = "ocamlmklib";;-let ocamlmktop_default = "ocamlmktop";;-let ocamldep_default = "ocamldep";;-let ocamlbrowser_default = "ocamlbrowser";;-let ocamldoc_default = "ocamldoc";;+let add_exec str =+ match Findlib_config.exec_suffix with+ | "" -> str+ | a -> str ^ a ;;+let ocamlc_default = add_exec "ocamlc";;+let ocamlopt_default = add_exec "ocamlopt";;+let ocamlcp_default = add_exec "ocamlcp";;+let ocamloptp_default = add_exec "ocamloptp";;+let ocamlmklib_default = add_exec "ocamlmklib";;+let ocamlmktop_default = add_exec "ocamlmktop";;+let ocamldep_default = add_exec "ocamldep";;+let ocamlbrowser_default = add_exec "ocamlbrowser";;+let ocamldoc_default = add_exec "ocamldoc";;+let init_manually--- ./src/findlib/fl_package_base.ml+++ ./src/findlib/fl_package_base.ml@@ -133,7 +133,15 @@List.find (fun def -> def.def_var = "exists_if") p.package_defs inlet files = Fl_split.in_words def.def_value inList.exists- (fun file -> Sys.file_exists (Filename.concat d' file))+ (fun file ->+ let fln = Filename.concat d' file in+ let e = Sys.file_exists fln in+ (* necessary for ppx executables *)+ if e || Sys.os_type <> "Win32" || Filename.check_suffix fln ".exe" then+ e+ else+ Sys.file_exists (fln ^ ".exe")+ )fileswith Not_found -> true in--- ./src/findlib/fl_split.ml+++ ./src/findlib/fl_split.ml@@ -126,10 +126,17 @@| '/' | '\\' -> true| _ -> false inlet norm_dir_win() =- if l >= 1 && s.[0] = '/' then- Buffer.add_char b '\\' else Buffer.add_char b s.[0];- if l >= 2 && s.[1] = '/' then- Buffer.add_char b '\\' else Buffer.add_char b s.[1];+ if l >= 1 then (+ if s.[0] = '/' then+ Buffer.add_char b '\\'+ else+ Buffer.add_char b s.[0] ;+ if l >= 2 then+ if s.[1] = '/' then+ Buffer.add_char b '\\'+ else+ Buffer.add_char b s.[1];+ );for k = 2 to l - 1 dolet c = s.[k] inif is_slash c then (--- ./src/findlib/frontend.ml+++ ./src/findlib/frontend.ml@@ -31,10 +31,18 @@elseSys_error (arg ^ ": " ^ Unix.error_message code)+let is_win = Sys.os_type = "Win32"++let () =+ match Findlib_config.system with+ | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" ->+ (try set_binary_mode_out stdout true with _ -> ());+ (try set_binary_mode_out stderr true with _ -> ());+ | _ -> ()let slashify s =match Findlib_config.system with- | "mingw" | "mingw64" | "cygwin" ->+ | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" ->let b = Buffer.create 80 inString.iter(function@@ -49,7 +57,7 @@let out_path ?(prefix="") s =match Findlib_config.system with- | "mingw" | "mingw64" | "cygwin" ->+ | "win32" | "win64" | "mingw" | "mingw64" | "cygwin" ->let u = slashify s inprefix ^(if String.contains u ' ' then@@ -273,11 +281,9 @@let identify_dir d =- match Sys.os_type with- | "Win32" ->- failwith "identify_dir" (* not available *)- | _ ->- let s = Unix.stat d in+ if is_win then+ failwith "identify_dir"; (* not available *)+ let s = Unix.stat d in(s.Unix.st_dev, s.Unix.st_ino);;@@ -459,6 +465,96 @@)packages+let rewrite_cmd s =+ if s = "" || not is_win then+ s+ else+ let s =+ let l = String.length s in+ let b = Buffer.create l in+ for i = 0 to pred l do+ match s.[i] with+ | '/' -> Buffer.add_char b '\\'+ | x -> Buffer.add_char b x+ done;+ Buffer.contents b+ in+ if (Filename.is_implicit s && String.contains s '\\' = false) ||+ Filename.check_suffix (String.lowercase s) ".exe" then+ s+ else+ let s' = s ^ ".exe" in+ if Sys.file_exists s' then+ s'+ else+ s++let rewrite_cmd s =+ if s = "" || not is_win then s else+ let s =+ let l = String.length s in+ let b = Buffer.create l in+ for i = 0 to pred l do+ match s.[i] with+ | '/' -> Buffer.add_char b '\\'+ | x -> Buffer.add_char b x+ done;+ Buffer.contents b+ in+ if (Filename.is_implicit s && String.contains s '\\' = false) ||+ Filename.check_suffix (String.lowercase s) ".exe" then+ s+ else+ let s' = s ^ ".exe" in+ if Sys.file_exists s' then+ s'+ else+ s++let rewrite_pp cmd =+ if not is_win then cmd else+ let module T = struct exception Keep end in+ let is_whitespace = function+ | ' ' | '\011' | '\012' | '\n' | '\r' | '\t' -> true+ | _ -> false in+ (* characters that triggers special behaviour (cmd.exe, not unix shell) *)+ let is_unsafe_char = function+ | '(' | ')' | '%' | '!' | '^' | '<' | '>' | '&' -> true+ | _ -> false in+ let len = String.length cmd in+ let buf = Buffer.create (len + 4) in+ let buf_cmd = Buffer.create len in+ let rec iter_ws i =+ if i >= len then () else+ let cur = cmd.[i] in+ if is_whitespace cur then (+ Buffer.add_char buf cur;+ iter_ws (succ i)+ )+ else+ iter_cmd i+ and iter_cmd i =+ if i >= len then add_buf_cmd () else+ let cur = cmd.[i] in+ if is_unsafe_char cur || cur = '"' || cur = '\'' then+ raise T.Keep;+ if is_whitespace cur then (+ add_buf_cmd ();+ Buffer.add_substring buf cmd i (len - i)+ )+ else (+ Buffer.add_char buf_cmd cur;+ iter_cmd (succ i)+ )+ and add_buf_cmd () =+ if Buffer.length buf_cmd > 0 then+ Buffer.add_string buf (rewrite_cmd (Buffer.contents buf_cmd))+ in+ try+ iter_ws 0;+ Buffer.contents buf+ with+ | T.Keep -> cmdlet process_pp_spec syntax_preds packages pp_opts =(* Returns: pp_command *)@@ -549,7 +645,7 @@None -> []| Some cmd ->["-pp";- cmd ^ " " ^+ (rewrite_cmd cmd) ^ " " ^String.concat " " (List.map Filename.quote pp_i_options) ^ " " ^String.concat " " (List.map Filename.quote pp_archives) ^ " " ^String.concat " " (List.map Filename.quote pp_opts)]@@ -625,9 +721,11 @@intrylet preprocessor =+ rewrite_cmd (resolve_path~base ~explicit:true- (package_property predicates pname "ppx") in+ (package_property predicates pname "ppx") )+ in["-ppx"; String.concat " " (preprocessor :: options)]with Not_found -> [])@@ -895,6 +993,14 @@switch (e.g. -L<path> instead of -L <path>)*)+(* We may need to remove files on which we do not have complete control.+ On Windows, removing a read-only file fails so try to change the+ mode of the file first. *)+let remove_file fname =+ try Sys.remove fname+ with Sys_error _ when is_win ->+ (try Unix.chmod fname 0o666 with Unix.Unix_error _ -> ());+ Sys.remove fnamelet ocamlc which () =@@ -1022,9 +1128,12 @@"-intf",Arg.String (fun s -> pass_files := !pass_files @ [ Intf(slashify s) ]);-+"-pp",- Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" s);+ Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" (rewrite_pp s));++ "-ppx",+ Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s));"-thread",Arg.Unit (fun _ -> threads := threads_default);@@ -1237,7 +1346,7 @@withany ->close_out initl;- Sys.remove initl_file_name;+ remove_file initl_file_name;raise anyend;@@ -1245,9 +1354,9 @@at_exit(fun () ->let tr f x = try f x with _ -> () in- tr Sys.remove initl_file_name;- tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmi");- tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmo");+ tr remove_file initl_file_name;+ tr remove_file (Filename.chop_extension initl_file_name ^ ".cmi");+ tr remove_file (Filename.chop_extension initl_file_name ^ ".cmo"););let exclude_list = [ stdlibdir; threads_dir; vmthreads_dir ] in@@ -1493,7 +1602,9 @@[ "-v", Arg.Unit (fun () -> verbose := Verbose);"-pp", Arg.String (fun s ->pp_specified := true;- options := !options @ ["-pp"; s]);+ options := !options @ ["-pp"; rewrite_pp s]);+ "-ppx", Arg.String (fun s ->+ options := !options @ ["-ppx"; rewrite_pp s]);]))@@ -1672,7 +1783,9 @@Arg.String (fun s -> add_spec_fn "-I" (slashify (resolve_path s)));"-pp", Arg.String (fun s -> pp_specified := true;- add_spec_fn "-pp" s);+ add_spec_fn "-pp" (rewrite_pp s));+ "-ppx", Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s));+]))@@ -1830,7 +1943,10 @@output_string ch_out append;close_out ch_out;close_in ch_in;- Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime;+ (try Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime+ with Unix.Unix_error(e,_,_) ->+ prerr_endline("Warning: setting utimes for " ^ outpath+ ^ ": " ^ Unix.error_message e));prerr_endline("Installed " ^ outpath);with@@ -1882,6 +1998,8 @@Unix.openfile (Filename.concat dir owner_file) [Unix.O_RDONLY] 0 inlet f =Unix.in_channel_of_descr fd in+ if is_win then+ set_binary_mode_in f false;trylet line = input_line f inlet is_my_file = (line = pkg) in@@ -2208,7 +2326,7 @@let lines = read_ldconf !ldconf inlet dlldir_norm = Fl_split.norm_dir dlldir inlet dlldir_norm_lc = string_lowercase_ascii dlldir_norm in- let ci_filesys = (Sys.os_type = "Win32") in+ let ci_filesys = is_win inlet check_dir d =let d' = Fl_split.norm_dir d in(d' = dlldir_norm) ||@@ -2356,7 +2474,7 @@List.iter(fun file ->let absfile = Filename.concat dlldir file in- Sys.remove absfile;+ remove_file absfile;prerr_endline ("Removed " ^ absfile))dll_files@@ -2365,7 +2483,7 @@(* Remove the files from the package directory: *)if Sys.file_exists pkgdir then beginlet files = Sys.readdir pkgdir in- Array.iter (fun f -> Sys.remove (Filename.concat pkgdir f)) files;+ Array.iter (fun f -> remove_file (Filename.concat pkgdir f)) files;Unix.rmdir pkgdir;prerr_endline ("Removed " ^ pkgdir)end@@ -2415,7 +2533,9 @@let print_configuration() =+ let sl = slashify inlet dir s =+ let s = sl s inif Sys.file_exists s thenselse@@ -2453,27 +2573,27 @@if md = "" then "the corresponding package directories" else dir md);Printf.printf "The standard library is assumed to reside in:\n %s\n"- (Findlib.ocaml_stdlib());+ (sl (Findlib.ocaml_stdlib()));Printf.printf "The ld.conf file can be found here:\n %s\n"- (Findlib.ocaml_ldconf());+ (sl (Findlib.ocaml_ldconf()));flush stdout| Some "conf" ->- print_endline (Findlib.config_file())+ print_endline (sl (Findlib.config_file()))| Some "path" ->- List.iter print_endline (Findlib.search_path())+ List.iter ( fun x -> print_endline (sl x)) (Findlib.search_path())| Some "destdir" ->- print_endline (Findlib.default_location())+ print_endline ( sl (Findlib.default_location()))| Some "metadir" ->- print_endline (Findlib.meta_directory())+ print_endline ( sl (Findlib.meta_directory()))| Some "metapath" ->let mdir = Findlib.meta_directory() inlet ddir = Findlib.default_location() in- print_endline- (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META")+ print_endline ( sl+ (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META"))| Some "stdlib" ->- print_endline (Findlib.ocaml_stdlib())+ print_endline ( sl (Findlib.ocaml_stdlib()))| Some "ldconf" ->- print_endline (Findlib.ocaml_ldconf())+ print_endline ( sl (Findlib.ocaml_ldconf()))| _ ->assert false;;@@ -2481,7 +2601,7 @@let ocamlcall pkg cmd =let dir = package_directory pkg in- let path = Filename.concat dir cmd in+ let path = rewrite_cmd (Filename.concat dir cmd) inbegintry Unix.access path [ Unix.X_OK ]with@@ -2647,6 +2767,10 @@| Sys_error f ->prerr_endline ("ocamlfind: " ^ f);exit 2+ | Unix.Unix_error (e, fn, f) ->+ prerr_endline ("ocamlfind: " ^ fn ^ " " ^ f+ ^ ": " ^ Unix.error_message e);+ exit 2| Findlib.No_such_package(pkg,info) ->prerr_endline ("ocamlfind: Package `" ^ pkg ^ "' not found" ^(if info <> "" then " - " ^ info else ""));--- ./src/findlib/Makefile+++ ./src/findlib/Makefile@@ -90,6 +90,7 @@cat findlib_config.mlp | \$(SH) $(TOP)/tools/patch '@CONFIGFILE@' '$(OCAMLFIND_CONF)' | \$(SH) $(TOP)/tools/patch '@STDLIB@' '$(OCAML_CORE_STDLIB)' | \+ $(SH) $(TOP)/tools/patch '@EXEC_SUFFIX@' '$(EXEC_SUFFIX)' | \sed -e 's;@AUTOLINK@;$(OCAML_AUTOLINK);g' \-e 's;@SYSTEM@;$(SYSTEM);g' \>findlib_config.ml
{"build": [["bash","-c","#{os == 'windows' ? 'patch -p1 < ocamlbuild-0.14.0.patch' : 'true'}"],["make","-f","configure.make","all","OCAMLBUILD_PREFIX=#{self.install}","OCAMLBUILD_BINDIR=#{self.bin}","OCAMLBUILD_LIBDIR=#{self.lib}","OCAMLBUILD_MANDIR=#{self.man}","OCAMLBUILD_NATIVE=true","OCAMLBUILD_NATIVE_TOOLS=true"],["make","check-if-preinstalled","all","#{os == 'windows' ? 'install' : 'opam-install'}"]]}
--- ./Makefile+++ ./Makefile@@ -213,7 +213,7 @@rm -f man/ocamlbuild.1man/options_man.byte: src/ocamlbuild_pack.cmo- $(OCAMLC) $^ -I src man/options_man.ml -o man/options_man.byte+ $(OCAMLC) -I +unix unix.cma $^ -I src man/options_man.ml -o man/options_man.byteclean::rm -f man/options_man.cm*--- ./src/command.ml+++ ./src/command.ml@@ -148,9 +148,10 @@let self = string_of_command_spec_with_calls call_with_tags call_with_target resolve_virtuals inlet b = Buffer.create 256 in(* The best way to prevent bash from switching to its windows-style- * quote-handling is to prepend an empty string before the command name. *)+ * quote-handling is to prepend an empty string before the command name.+ * space seems to work, too - and the ouput is nicer *)if Sys.os_type = "Win32" then- Buffer.add_string b "''";+ Buffer.add_char b ' ';let first = ref true inlet put_space () =if !first then@@ -260,7 +261,7 @@let execute_many ?(quiet=false) ?(pretend=false) cmds =add_parallel_stat (List.length cmds);- let degraded = !*My_unix.is_degraded || Sys.os_type = "Win32" in+ let degraded = !*My_unix.is_degraded inlet jobs = !jobs inif jobs < 0 then invalid_arg "jobs < 0";let max_jobs = if jobs = 0 then None else Some jobs in--- ./src/findlib.ml+++ ./src/findlib.ml@@ -66,9 +66,6 @@(fun command -> lexer & Lexing.from_string & run_and_read command)command-let run_and_read command =- Printf.ksprintf run_and_read command-let rec query name =tryHashtbl.find packages name@@ -135,7 +132,8 @@with Not_found -> slet list () =- List.map before_space (split_nl & run_and_read "%s list" ocamlfind)+ let cmd = Shell.quote_filename_if_needed ocamlfind ^ " list" in+ List.map before_space (split_nl & run_and_read cmd)(* The closure algorithm is easy because the dependencies are already closedand sorted for each package. We only have to make the union. We could also--- ./src/main.ml+++ ./src/main.ml@@ -162,6 +162,9 @@Tags.mem "traverse" tags|| List.exists (Pathname.is_prefix path_name) !Options.include_dirs|| List.exists (Pathname.is_prefix path_name) target_dirs)+ && ((* beware: !Options.build_dir is an absolute directory *)+ Pathname.normalize !Options.build_dir+ <> Pathname.normalize (Pathname.pwd/path_name))endendend--- ./src/my_std.ml+++ ./src/my_std.ml@@ -271,13 +271,107 @@try Array.iter (fun x -> if x = basename then raise Exit) a; falsewith Exit -> true+let command_plain = function+| [| |] -> 0+| margv ->+ let rec waitpid a b =+ match Unix.waitpid a b with+ | exception (Unix.Unix_error(Unix.EINTR,_,_)) -> waitpid a b+ | x -> x+ in+ let pid = Unix.(create_process margv.(0) margv stdin stdout stderr) in+ let pid', process_status = waitpid [] pid in+ assert (pid = pid');+ match process_status with+ | Unix.WEXITED n -> n+ | Unix.WSIGNALED _ -> 2 (* like OCaml's uncaught exceptions *)+ | Unix.WSTOPPED _ -> 127++(* can't use Lexers because of circular dependency *)+let split_path_win str =+ let rec aux pos =+ try+ let i = String.index_from str pos ';' in+ let len = i - pos in+ if len = 0 then+ aux (succ i)+ else+ String.sub str pos (i - pos) :: aux (succ i)+ with Not_found | Invalid_argument _ ->+ let len = String.length str - pos in+ if len = 0 then [] else [String.sub str pos len]+ in+ aux 0++let windows_shell = lazy begin+ let rec iter = function+ | [] -> [| "bash.exe" ; "--norc" ; "--noprofile" |]+ | hd::tl ->+ let dash = Filename.concat hd "dash.exe" in+ if Sys.file_exists dash then [|dash|] else+ let bash = Filename.concat hd "bash.exe" in+ if Sys.file_exists bash = false then iter tl else+ (* if sh.exe and bash.exe exist in the same dir, choose sh.exe *)+ let sh = Filename.concat hd "sh.exe" in+ if Sys.file_exists sh then [|sh|] else [|bash ; "--norc" ; "--noprofile"|]+ in+ split_path_win (try Sys.getenv "PATH" with Not_found -> "") |> iter+end++let prep_windows_cmd cmd =+ (* workaround known ocaml bug, remove later *)+ if String.contains cmd '\t' && String.contains cmd ' ' = false then+ " " ^ cmd+ else+ cmd++let run_with_shell = function+| "" -> 0+| cmd ->+ let cmd = prep_windows_cmd cmd in+ let shell = Lazy.force windows_shell in+ let qlen = Filename.quote cmd |> String.length in+ (* old versions of dash had problems with bs *)+ try+ if qlen < 7_900 then+ command_plain (Array.append shell [| "-ec" ; cmd |])+ else begin+ (* it can still work, if the called command is a cygwin tool *)+ let ch_closed = ref false in+ let file_deleted = ref false in+ let fln,ch =+ Filename.open_temp_file+ ~mode:[Open_binary]+ "ocamlbuildtmp"+ ".sh"+ in+ try+ let f_slash = String.map ( fun x -> if x = '\\' then '/' else x ) fln in+ output_string ch cmd;+ ch_closed:= true;+ close_out ch;+ let ret = command_plain (Array.append shell [| "-e" ; f_slash |]) in+ file_deleted:= true;+ Sys.remove fln;+ ret+ with+ | x ->+ if !ch_closed = false then+ close_out_noerr ch;+ if !file_deleted = false then+ (try Sys.remove fln with _ -> ());+ raise x+ end+ with+ | (Unix.Unix_error _) as x ->+ (* Sys.command doesn't raise an exception, so run_with_shell also won't+ raise *)+ Printexc.to_string x ^ ":" ^ cmd |> prerr_endline;+ 1+let sys_command =- match Sys.os_type with- | "Win32" -> fun cmd ->- if cmd = "" then 0 else- let cmd = "bash --norc -c " ^ Filename.quote cmd in- Sys.command cmd- | _ -> fun cmd -> if cmd = "" then 0 else Sys.command cmd+ if Sys.win32 then run_with_shell+ else fun cmd -> if cmd = "" then 0 else Sys.command cmd(* FIXME warning fix and use Filename.concat *)let filename_concat x y =--- ./src/my_std.mli+++ ./src/my_std.mli@@ -69,3 +69,6 @@val split_ocaml_version : (int * int * int * string) option(** (major, minor, patchlevel, rest) *)++val windows_shell : string array Lazy.t+val prep_windows_cmd : string -> string--- ./src/ocamlbuild_executor.ml+++ ./src/ocamlbuild_executor.ml@@ -34,6 +34,8 @@job_stdin : out_channel;job_stderr : in_channel;job_buffer : Buffer.t;+ job_pid : int;+ job_tmp_file: string option;mutable job_dying : bool;};;@@ -76,6 +78,61 @@inloop 0;;++let open_process_full_win cmd env =+ let (in_read, in_write) = Unix.pipe () in+ let (out_read, out_write) = Unix.pipe () in+ let (err_read, err_write) = Unix.pipe () in+ Unix.set_close_on_exec in_read;+ Unix.set_close_on_exec out_write;+ Unix.set_close_on_exec err_read;+ let inchan = Unix.in_channel_of_descr in_read in+ let outchan = Unix.out_channel_of_descr out_write in+ let errchan = Unix.in_channel_of_descr err_read in+ let shell = Lazy.force Ocamlbuild_pack.My_std.windows_shell in+ let test_cmd =+ String.concat " " (List.map Filename.quote (Array.to_list shell)) ^+ "-ec " ^+ Filename.quote (Ocamlbuild_pack.My_std.prep_windows_cmd cmd) in+ let argv,tmp_file =+ if String.length test_cmd < 7_900 then+ Array.append+ shell+ [| "-ec" ; Ocamlbuild_pack.My_std.prep_windows_cmd cmd |],None+ else+ let fln,ch = Filename.open_temp_file ~mode:[Open_binary] "ocamlbuild" ".sh" in+ output_string ch (Ocamlbuild_pack.My_std.prep_windows_cmd cmd);+ close_out ch;+ let fln' = String.map (function '\\' -> '/' | c -> c) fln in+ Array.append+ shell+ [| "-c" ; fln' |], Some fln in+ let pid =+ Unix.create_process_env argv.(0) argv env out_read in_write err_write in+ Unix.close out_read;+ Unix.close in_write;+ Unix.close err_write;+ (pid, inchan, outchan, errchan,tmp_file)++let close_process_full_win (pid,inchan, outchan, errchan, tmp_file) =+ let delete tmp_file =+ match tmp_file with+ | None -> ()+ | Some x -> try Sys.remove x with Sys_error _ -> () in+ let tmp_file_deleted = ref false in+ try+ close_in inchan;+ close_out outchan;+ close_in errchan;+ let res = snd(Unix.waitpid [] pid) in+ tmp_file_deleted := true;+ delete tmp_file;+ res+ with+ | x when tmp_file <> None && !tmp_file_deleted = false ->+ delete tmp_file;+ raise x+(* ***)(*** execute *)(* XXX: Add test for non reentrancy *)@@ -130,10 +187,16 @@(*** add_job *)let add_job cmd rest result id =(*display begin fun oc -> fp oc "Job %a is %s\n%!" print_job_id id cmd; end;*)- let (stdout', stdin', stderr') = open_process_full cmd env in+ let (pid,stdout', stdin', stderr', tmp_file) =+ if Sys.win32 then open_process_full_win cmd env else+ let a,b,c = open_process_full cmd env in+ -1,a,b,c,None+ inincr jobs_active;- set_nonblock (doi stdout');- set_nonblock (doi stderr');+ if not Sys.win32 then (+ set_nonblock (doi stdout');+ set_nonblock (doi stderr');+ );let job ={ job_id = id;job_command = cmd;@@ -143,7 +206,9 @@job_stdin = stdin';job_stderr = stderr';job_buffer = Buffer.create 1024;- job_dying = false }+ job_dying = false;+ job_tmp_file = tmp_file;+ job_pid = pid }inoutputs := FDM.add (doi stdout') job (FDM.add (doi stderr') job !outputs);jobs := JS.add job !jobs;@@ -199,6 +264,7 @@tryread fd u 0 (Bytes.length u)with+ | Unix.Unix_error(Unix.EPIPE,_,_) when Sys.win32 -> 0| Unix.Unix_error(e,_,_) ->let msg = error_message e indisplay (fun oc -> fp oc@@ -241,14 +307,19 @@decr jobs_active;(* PR#5371: we would get EAGAIN below otherwise *)- clear_nonblock (doi job.job_stdout);- clear_nonblock (doi job.job_stderr);-+ if not Sys.win32 then (+ clear_nonblock (doi job.job_stdout);+ clear_nonblock (doi job.job_stderr);+ );do_read ~loop:true (doi job.job_stdout) job;do_read ~loop:true (doi job.job_stderr) job;outputs := FDM.remove (doi job.job_stdout) (FDM.remove (doi job.job_stderr) !outputs);jobs := JS.remove job !jobs;- let status = close_process_full (job.job_stdout, job.job_stdin, job.job_stderr) in+ let status =+ if Sys.win32 then+ close_process_full_win (job.job_pid, job.job_stdout, job.job_stdin, job.job_stderr, job.job_tmp_file)+ else+ close_process_full (job.job_stdout, job.job_stdin, job.job_stderr) inlet shown = ref false in--- ./src/ocamlbuild_unix_plugin.ml+++ ./src/ocamlbuild_unix_plugin.ml@@ -48,12 +48,22 @@endlet run_and_open s kont =+ let s_orig = s in+ let s =+ (* Be consistent! My_unix.run_and_open uses My_std.sys_command and+ sys_command uses bash. *)+ if Sys.win32 = false then s else+ let l = match Lazy.force My_std.windows_shell |> Array.to_list with+ | hd::tl -> (Filename.quote hd)::tl+ | _ -> assert false in+ "\"" ^ (String.concat " " l) ^ " -ec " ^ Filename.quote (" " ^ s) ^ "\""+ inlet ic = Unix.open_process_in s inlet close () =match Unix.close_process_in ic with| Unix.WEXITED 0 -> ()| Unix.WEXITED _ | Unix.WSIGNALED _ | Unix.WSTOPPED _ ->- failwith (Printf.sprintf "Error while running: %s" s) in+ failwith (Printf.sprintf "Error while running: %s" s_orig) inlet res = trykont icwith e -> (close (); raise e)--- ./src/options.ml+++ ./src/options.ml@@ -174,11 +174,24 @@build_dir := Filename.concat (Sys.getcwd ()) selsebuild_dir := s++let slashify =+ if Sys.win32 then fun p -> String.map (function '\\' -> '/' | x -> x) p+ else fun p ->p++let sb () =+ match Sys.os_type with+ | "Win32" ->+ (try set_binary_mode_out stdout true with _ -> ());+ | _ -> ()++let spec = ref (let print_version () =+ sb ();Printf.printf "ocamlbuild %s\n%!" Ocamlbuild_config.version; raise Exit_OKin- let print_vnum () = print_endline Ocamlbuild_config.version; raise Exit_OK in+ let print_vnum () = sb (); print_endline Ocamlbuild_config.version; raise Exit_OK inArg.align["-version", Unit print_version , " Display the version";@@ -257,8 +270,8 @@"-build-dir", String set_build_dir, "<path> Set build directory (implies no-links)";"-install-lib-dir", Set_string Ocamlbuild_where.libdir, "<path> Set the install library directory";"-install-bin-dir", Set_string Ocamlbuild_where.bindir, "<path> Set the install binary directory";- "-where", Unit (fun () -> print_endline !Ocamlbuild_where.libdir; raise Exit_OK), " Display the install library directory";- "-which", String (fun cmd -> print_endline (find_tool cmd); raise Exit_OK), "<command> Display path to the tool command";+ "-where", Unit (fun () -> sb (); print_endline (slashify !Ocamlbuild_where.libdir); raise Exit_OK), " Display the install library directory";+ "-which", String (fun cmd -> sb (); print_endline (slashify (find_tool cmd)); raise Exit_OK), "<command> Display path to the tool command";"-ocamlc", set_cmd ocamlc, "<command> Set the OCaml bytecode compiler";"-plugin-ocamlc", set_cmd plugin_ocamlc, "<command> Set the OCaml bytecode compiler \used when building myocamlbuild.ml (only)";--- ./src/pathname.ml+++ ./src/pathname.ml@@ -84,6 +84,26 @@| x :: xs -> x :: normalize_list xslet normalize x =+ let x =+ if Sys.win32 = false then+ x+ else+ let len = String.length x in+ let b = Bytes.create len in+ for i = 0 to pred len do+ match x.[i] with+ | '\\' -> Bytes.set b i '/'+ | c -> Bytes.set b i c+ done;+ if len > 1 then (+ let c1 = Bytes.get b 0 in+ let c2 = Bytes.get b 1 in+ if c2 = ':' && c1 >= 'a' && c1 <= 'z' &&+ ( len = 2 || Bytes.get b 2 = '/') then+ Bytes.set b 0 (Char.uppercase_ascii c1)+ );+ Bytes.unsafe_to_string b+ inif Glob.eval not_normal_form_re x thenlet root, paths = split x injoin root (normalize_list paths)--- ./src/shell.ml+++ ./src/shell.ml@@ -24,12 +24,26 @@| 'a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '-' | '/' | '_' | ':' | '@' | '+' | ',' -> loop (pos + 1)| _ -> false inloop 0++let generic_quote quotequote s =+ let l = String.length s in+ let b = Buffer.create (l + 20) in+ Buffer.add_char b '\'';+ for i = 0 to l - 1 do+ if s.[i] = '\''+ then Buffer.add_string b quotequote+ else Buffer.add_char b s.[i]+ done;+ Buffer.add_char b '\'';+ Buffer.contents b+let unix_quote = generic_quote "'\\''"+let quote_filename_if_needed s =if is_simple_filename s then s(* We should probably be using [Filename.unix_quote] except that function* isn't exported. Users on Windows will have to live with not being able to* install OCaml into c:\o'caml. Too bad. *)- else if Sys.os_type = "Win32" then Printf.sprintf "'%s'" s+ else if Sys.os_type = "Win32" then unix_quote selse Filename.quote slet chdir dir =reset_filesys_cache ();@@ -37,7 +51,7 @@let run args target =reset_readdir_cache ();let cmd = String.concat " " (List.map quote_filename_if_needed args) in- if !*My_unix.is_degraded || Sys.os_type = "Win32" then+ if !*My_unix.is_degraded thenbeginLog.event cmd target Tags.empty;let st = sys_command cmd in
{"exportedEnv": {"CAML_LD_LIBRARY_PATH": {"val": "#{self.lib / 'ctypes' : $CAML_LD_LIBRARY_PATH}","scope": "global"}}}
opam-version: "2.0"maintainer: "martin@mjambon.com"authors: ["Martin Jambon"]homepage: "https://github.com/ocaml-community/yojson"bug-reports: "https://github.com/ocaml-community/yojson/issues"dev-repo: "git+https://github.com/ocaml-community/yojson.git"doc: "https://ocaml-community.github.io/yojson/"build: [["dune" "build" "-p" name "-j" jobs]]run-test: [["dune" "runtest" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.02.3"}"dune""cppo" {build}"easy-format""biniou" {>= "1.2.0"}"alcotest" {with-test & >= "0.8.5"}]synopsis:"Yojson is an optimized parsing and printing library for the JSON format"description: """Yojson is an optimized parsing and printing library for the JSON format.It addresses a few shortcomings of json-wheel including 2x speedup,polymorphic variants and optional syntax for tuples and variants.ydump is a pretty-printing command-line program provided with theyojson package.The program atdgen can be used to derive OCaml-JSON serializers anddeserializers from type definitions."""url {src:"https://github.com/ocaml-community/yojson/releases/download/1.7.0/yojson-1.7.0.tbz"checksum: "md5=b89d39ca3f8c532abe5f547ad3b8f84d"}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]homepage: "http://erratique.ch/software/uutf"doc: "http://erratique.ch/software/uutf/doc/Uutf"dev-repo: "git+http://erratique.ch/repos/uutf.git"bug-reports: "https://github.com/dbuenzli/uutf/issues"tags: [ "unicode" "text" "utf-8" "utf-16" "codec" "org:erratique" ]license: "ISC"depends: ["ocaml" {>= "4.01.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build}"uchar"]depopts: ["cmdliner"]conflicts: ["cmdliner" { < "0.9.6"} ]build: [["ocaml" "pkg/pkg.ml" "build""--pinned" "%{pinned}%""--with-cmdliner" "%{cmdliner:installed}%" ]]synopsis: """Non-blocking streaming Unicode codec for OCaml"""description: """\Uutf is a non-blocking streaming codec to decode and encode the UTF-8,UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficientlywork character by character without blocking on IO. Decoders performcharacter position tracking and support newline normalization.Functions are also provided to fold over the characters of UTF encodedOCaml string values and to directly encode characters in OCamlBuffer.t values.Uutf has no dependency and is distributed under the ISC license."""url {archive: "http://erratique.ch/software/uutf/releases/uutf-1.0.2.tbz"checksum: "a7c542405a39630c689a82bd7ef2292c"}
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]homepage: "http://ocaml.org"doc: "https://ocaml.github.io/uchar/"dev-repo: "git+https://github.com/ocaml/uchar.git"bug-reports: "https://github.com/ocaml/uchar/issues"tags: [ "text" "character" "unicode" "compatibility" "org:ocaml.org" ]license: "typeof OCaml system"depends: ["ocaml" {>= "3.12.0"}"ocamlbuild" {build}]build: [["ocaml" "pkg/git.ml"]["ocaml""pkg/build.ml""native=%{ocaml:native}%""native-dynlink=%{ocaml:native-dynlink}%"]]synopsis: "Compatibility library for OCaml's Uchar module"description: """The `uchar` package provides a compatibility library for the[`Uchar`][1] module introduced in OCaml 4.03.The `uchar` package is distributed under the license of the OCamlcompiler. See [LICENSE](LICENSE) for details.[1]: http://caml.inria.fr/pub/docs/manual-ocaml/libref/Uchar.html"""url {src:"https://github.com/ocaml/uchar/releases/download/v0.0.2/uchar-0.0.2.tbz"checksum: "md5=c9ba2c738d264c420c642f7bb1cf4a36"}
opam-version: "2.0"homepage: "https://github.com/janestreet/stdio"bug-reports: "https://github.com/janestreet/stdio/issues"dev-repo: "git+https://github.com/janestreet/stdio.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/stdio/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"base" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}]synopsis: "Standard IO library for OCaml"description: "Stdio implements simple input/output functionalities for OCaml.It re-exports the input/output functions of the OCaml standardlibraries using a more consistent API."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/stdio-v0.14.0.tar.gz"checksum: "md5=4cbdf15f0be88c3258aaeff9e04e00e9"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"homepage: "https://github.com/janestreet/sexplib0"bug-reports: "https://github.com/janestreet/sexplib0/issues"dev-repo: "git+https://github.com/janestreet/sexplib0.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/sexplib0/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.04.2"}"dune" {>= "2.0.0"}]synopsis: "Library containing the definition of S-expressions and some base converters"description: "Part of Jane Street's Core libraryThe Core suite of libraries is an industrial strength alternative toOCaml's standard library that was developed by Jane Street, thelargest industrial user of OCaml."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/sexplib0-v0.14.0.tar.gz"checksum: "md5=37aff0af8f8f6f759249475684aebdc4"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"maintainer: " "authors: " "homepage: " "depends: ["ocaml" {>= "4.07.0"}]dev-repo: "git+https://github.com/ocaml/ocaml.git"bug-reports: "https://caml.inria.fr/mantis/main_page.php"synopsis:"Compatibility package for OCaml's standard iterator type starting from 4.07."extra-files: [["seq.install" "md5=026b31e1df290373198373d5aaa26e42"]["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"]]
opam-version: "2.0"homepage: "https://github.com/janestreet/result"dev-repo: "git+https://github.com/janestreet/result.git"bug-reports: "https://github.com/janestreet/result/issues"license: "BSD-3-Clause"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml""dune" {>= "1.0"}]synopsis: "Compatibility Result module"description: """Projects that want to use the new result type defined in OCaml >= 4.03while staying compatible with older version of OCaml should use theResult module defined in this library."""url {src:"https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz"checksum: "md5=1b82dec78849680b49ae9a8a365b831b"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"homepage: "https://github.com/janestreet/ppx_yojson_conv_lib"bug-reports: "https://github.com/janestreet/ppx_yojson_conv_lib/issues"dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv_lib.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv_lib/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.02.3"}"dune" {>= "2.0.0"}"yojson" {>= "1.7.0"}]synopsis: "Runtime lib for ppx_yojson_conv"description: "Part of the Jane Street's PPX rewriters collection."url {src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz"checksum: "md5=e23c5593a7211ad4fb09e26e9a74698a"}maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
opam-version: "2.0"synopsis: "A library manager for OCaml"maintainer: "Thomas Gazagnaire <thomas@gazagnaire.org>"authors: "Gerd Stolpmann <gerd@gerd-stolpmann.de>"homepage: "http://projects.camlcity.org/projects/findlib.html"bug-reports: "https://gitlab.camlcity.org/gerd/lib-findlib/issues"dev-repo: "git+https://gitlab.camlcity.org/gerd/lib-findlib.git"description: """Findlib is a library manager for OCaml. It provides a convention howto store libraries, and a file format ("META") to describe theproperties of libraries. There is also a tool (ocamlfind) forinterpreting the META files, so that it is very easy to use librariesin programs and scripts."""build: [["./configure""-bindir"bin"-sitelib"lib"-mandir"man"-config""%{lib}%/findlib.conf""-no-custom""-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}"-no-topfind" {ocaml:preinstalled}][make "all"][make "opt"] {ocaml:native}]install: [["./configure""-bindir"bin"-sitelib"lib"-mandir"man"-config""%{lib}%/findlib.conf""-no-custom""-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}"-no-topfind" {ocaml:preinstalled}][make "install"]["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled}]depends: ["ocaml" {>= "4.00.0" & < "4.13"}"conf-m4" {build}]extra-files: [["ocamlfind.install" "md5=06f2c282ab52d93aa6adeeadd82a2543"]["ocaml-stub" "md5=181f259c9e0bad9ef523e7d4abfdf87a"]]url {src: "http://download.camlcity.org/download/findlib-1.8.1.tar.gz"checksum: "md5=18ca650982c15536616dea0e422cbd8c"mirrors: "http://download2.camlcity.org/download/findlib-1.8.1.tar.gz"}depopts: ["graphics"]
opam-version: "2.0"maintainer: "Gabriel Scherer <gabriel.scherer@gmail.com>"authors: ["Nicolas Pouillard" "Berke Durak"]homepage: "https://github.com/ocaml/ocamlbuild/"bug-reports: "https://github.com/ocaml/ocamlbuild/issues"doc: "https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc"dev-repo: "git+https://github.com/ocaml/ocamlbuild.git"build: [[make"-f""configure.make""all""OCAMLBUILD_PREFIX=%{prefix}%""OCAMLBUILD_BINDIR=%{bin}%""OCAMLBUILD_LIBDIR=%{lib}%""OCAMLBUILD_MANDIR=%{man}%""OCAML_NATIVE=%{ocaml:native}%""OCAML_NATIVE_TOOLS=%{ocaml:native}%"][make "check-if-preinstalled" "all" "opam-install"]]conflicts: ["base-ocamlbuild""ocamlfind" {< "1.6.2"}]synopsis:"OCamlbuild is a build system with builtin rules to easily build most OCaml projects."depends: ["ocaml" {>= "4.03"}]url {src: "https://github.com/ocaml/ocamlbuild/archive/0.14.0.tar.gz"checksum: "sha256=87b29ce96958096c0a1a8eeafeb6268077b2d11e1bf2b3de0f5ebc9cf8d42e78"}license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["The fpath programmers"]homepage: "https://erratique.ch/software/fpath"doc: "https://erratique.ch/software/fpath/doc"dev-repo: "git+https://erratique.ch/repos/fpath.git"bug-reports: "https://github.com/dbuenzli/fpath/issues"tags: [ "file" "system" "path" "org:erratique" ]license: "ISC"depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "0.9.0"}"astring"]build: [["ocaml" "pkg/pkg.ml" "build""--dev-pkg=true" {dev} ]]synopsis: """File system paths for OCaml"""description: """\Fpath is an OCaml module for handling file system paths with POSIX orWindows conventions. Fpath processes paths without accessing the filesystem and is independent from any system library.Fpath depends on [Astring][astring] and is distributed under the ISClicense.[astring]: http://erratique.ch/software/astring"""url {archive: "https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz"checksum: "0740b530e8fed5b0adc5eee8463cfc2f"}
opam-version: "2.0"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}["dune" "build" "-p" name "@doc"] {with-doc}]maintainer: ["martin@mjambon.com" "rudi.grinberg@gmail.com"]authors: ["Martin Jambon"]bug-reports: "https://github.com/mjambon/easy-format/issues"homepage: "https://github.com/mjambon/easy-format"doc: "https://mjambon.github.io/easy-format/"license: "BSD-3-Clause"dev-repo: "git+https://github.com/mjambon/easy-format.git"synopsis:"High-level and functional interface to the Format module of the OCaml standard library"description: """This module offers a high-level and functional interface to the Format module ofthe OCaml standard library. It is a pretty-printing facility, i.e. it takes asinput some code represented as a tree and formats this code into the mostvisually satisfying result, breaking and indenting lines of code whereappropriate.Input data must be first modelled and converted into a tree using 3 kinds ofnodes:* atoms* lists* labelled nodesAtoms represent any text that is guaranteed to be printed as-is. Lists can modelany sequence of items such as arrays of data or lists of definitions that arelabelled with something like "int main", "let x =" or "x:"."""depends: ["dune" {>= "1.10"}"ocaml" {>= "4.02.3"}]url {src:"https://github.com/mjambon/easy-format/releases/download/1.3.2/easy-format-1.3.2.tbz"checksum: ["sha256=3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926""sha512=e39377a2ff020ceb9ac29e8515a89d9bdbc91dfcfa871c4e3baafa56753fac2896768e5d9822a050dc1e2ade43c8967afb69391a386c0a8ecd4e1f774e236135"]}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "defree@gmail.com"authors: "The Merlin team"synopsis: "Reads config files for merlin"homepage: "https://github.com/ocaml/merlin"bug-reports: "https://github.com/ocaml/merlin/issues"dev-repo: "git+https://github.com/ocaml/merlin.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.06.1" }"dune" {>= "2.7.0"}"yojson" {>= "1.6.0"}"ocamlfind" {>= "1.6.0"}"csexp" {>= "1.2.3"}"result" {>= "1.5"}]description:"Helper process: reads .merlin files and gives the normalized content to merlin"x-commit-hash: "ab02f60994c81166820791b5f465f467d752b8dc"url {src:"https://github.com/ocaml/merlin/releases/download/v4.1/dot-merlin-reader-v4.1.tbz"checksum: ["sha256=14a36d6fb8646a5df4530420a7861722f1a4ee04753717947305e3676031e7cd""sha512=65fd4ab08904c05651a7ef8971802ffaa428daa920765dbcf162e3c56e8047e4c9e4356daa45efccce7c73a586635c8f6cf8118fd3059789de9aff68579bd436"]}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "yallop@gmail.com"homepage: "https://github.com/ocamllabs/ocaml-ctypes"dev-repo: "git+http://github.com/ocamllabs/ocaml-ctypes.git"bug-reports: "http://github.com/ocamllabs/ocaml-ctypes/issues"depends: ["conf-libffi" {>= "2.0.0"}]tags: ["org:ocamllabs" "org:mirage"]post-messages: ["This package requires libffi on your system" {failure}]synopsis: "Virtual package for enabling the ctypes.foreign subpackage."description: """`ctypes-foreign` is just a virtual OPAM package that determineswhether the foreign subpackage should built as part of ctypes.In order to actually get the ctypes package, you should also:opam install ctypes ctypes-foreignYou can verify the existence of the ocamlfind subpackage by:ocamlfind list | grep ctypesWhich should output something like:ctypes (version: 0.4.1)ctypes.foreign (version: 0.4.1)ctypes.foreign.base (version: 0.4.1)ctypes.foreign.threaded (version: 0.4.1)ctypes.foreign.unthreaded (version: 0.4.1)ctypes.stubs (version: 0.4.1)ctypes.top (version: 0.4.1)"""authors: "yallop@gmail.com"
opam-version: "2.0"maintainer: "unixjunkie@sdf.org"authors: ["Francois Berenger"]homepage: "http://www.freedesktop.org/wiki/Software/pkg-config/"bug-reports: "https://github.com/ocaml/opam-repository/issues"license: "GPL-1.0-or-later"build: [["pkg-config" "--help"]]install: [["ln" "-s" "/usr/local/bin/pkgconf" "%{bin}%/pkg-config"] {os = "openbsd"}]remove: [["rm" "-f" "%{bin}%/pkg-config"] {os = "openbsd"}]post-messages: ["conf-pkg-config: A symlink to /usr/local/bin/pkgconf has been installed in the OPAM bin directory (%{bin}%) on your PATH as 'pkg-config'. This is necessary for correct operation." {os = "openbsd"}]depexts: [["pkg-config"] {os-family = "debian"}["pkgconf"] {os-distribution = "arch"}["pkgconfig"] {os-distribution = "fedora"}["pkgconfig"] {os-distribution = "centos" & os-version <= "7"}["pkgconfig"] {os-distribution = "mageia"}["pkgconfig"] {os-distribution = "rhel" & os-version <= "7"}["pkgconfig"] {os-distribution = "ol"}["pkgconf"] {os-distribution = "alpine"}["pkgconfig"] {os-distribution = "nixos"}["devel/pkgconf"] {os = "openbsd"}["pkg-config"] {os = "macos" & os-distribution = "homebrew"}["pkgconfig"] {os = "macos" & os-distribution = "macports"}["pkgconf"] {os = "freebsd"}["pkgconf-pkg-config"] {os-distribution = "rhel" & os-version >= "8"}["pkgconf-pkg-config"] {os-distribution = "centos" & os-version >= "8"}["pkg-config"] {os-distribution = "cygwinports"}]synopsis: "Virtual package relying on pkg-config installation"description: """This package can only install if the pkg-config package is installedon the system."""flags: conf
opam-version: "2.0"maintainer: "tim@gfxmonk.net"homepage: "http://www.gnu.org/software/m4/m4.html"bug-reports: "https://github.com/ocaml/opam-repository/issues"authors: "GNU Project"license: "GPL-3.0-only"build: [["sh" "-exc" "echo | m4"]]depexts: [["m4"] {os-family = "debian"}["m4"] {os-distribution = "fedora"}["m4"] {os-distribution = "rhel"}["m4"] {os-distribution = "centos"}["m4"] {os-distribution = "alpine"}["m4"] {os-distribution = "nixos"}["m4"] {os-family = "suse"}["m4"] {os-distribution = "ol"}["m4"] {os-distribution = "arch"}]synopsis: "Virtual package relying on m4"description:"This package can only install if the m4 binary is installed on the system."flags: conf
opam-version: "2.0"maintainer: "blue-prawn"authors: ["Anthony Green"]homepage: "http://sourceware.org/libffi/"license: "MIT"build: ["pkg-config" "libffi"]depexts: [["libffi"] {os = "macos" & os-distribution = "homebrew"}["libffi"] {os = "macos" & os-distribution = "macports"}["libffi-dev"] {os-distribution = "alpine"}["libffi-dev"] {os-family = "debian"}["libffi-devel"] {os-distribution = "centos"}["libffi-devel"] {os-distribution = "fedora"}["libffi-devel"] {os-distribution = "mageia"}["libffi-devel"] {os-distribution = "ol"}["libffi-devel"] {os-family = "suse"}]synopsis: "Virtual package relying on libffi system installation"description: "This package can only install if libffi is installed on the system."depends: ["conf-pkg-config" {build}]bug-reports: "https://github.com/ocaml/opam-repository/issues"flags: conf["libffi"] {os = "freebsd"}
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]homepage: "http://erratique.ch/software/cmdliner"doc: "http://erratique.ch/software/cmdliner/doc/Cmdliner"dev-repo: "git+http://erratique.ch/repos/cmdliner.git"bug-reports: "https://github.com/dbuenzli/cmdliner/issues"tags: [ "cli" "system" "declarative" "org:erratique" ]license: "ISC"depends:[ "ocaml" {>= "4.03.0"} ]build: [[ make "all" "PREFIX=%{prefix}%" ]]install:[[make "install" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%" ][make "install-doc" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%" ]]synopsis: """Declarative definition of command line interfaces for OCaml"""description: """\Cmdliner allows the declarative definition of command line interfacesfor OCaml.It provides a simple and compositional mechanism to convert commandline arguments to OCaml values and pass them to your functions. Themodule automatically handles syntax errors, help messages and UNIX manpage generation. It supports programs with single or multiple commandsand respects most of the [POSIX][1] and [GNU][2] conventions.Cmdliner has no dependencies and is distributed under the ISC license.[1]: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html[2]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html"""url {archive: "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.4.tbz"checksum: "fe2213d0bc63b1e10a2d0aa66d2fc8d9"}
opam-version: "2.0"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}["dune" "build" "-p" name "@doc"] {with-doc}]maintainer: ["martin@mjambon.com"]authors: ["Martin Jambon"]bug-reports: "https://github.com/mjambon/biniou/issues"homepage: "https://github.com/mjambon/biniou"doc: "https://mjambon.github.io/biniou/"license: "BSD-3-Clause"dev-repo: "git+https://github.com/mjambon/biniou.git"synopsis:"Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve"description: """Biniou (pronounced "be new") is a binary data format designed for speed, safety,ease of use and backward compatibility as protocols evolve. Biniou is vastlyequivalent to JSON in terms of functionality but allows implementations severaltimes faster (4 times faster than yojson), with 25-35% space savings.Biniou data can be decoded into human-readable form without knowledge of typedefinitions except for field and variant names which are represented by 31-bithashes. A program named bdump is provided for routine visualization of binioudata files.The program atdgen is used to derive OCaml-Biniou serializers and deserializersfrom type definitions.Biniou format specification: mjambon.github.io/atdgen-doc/biniou-format.txt"""depends: ["easy-format""dune" {>= "1.10"}"ocaml" {>= "4.02.3"}]url {src:"https://github.com/mjambon/biniou/releases/download/1.2.1/biniou-1.2.1.tbz"checksum: ["sha256=35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335""sha512=82670cc77bf3e869ee26e5fbe5a5affa45a22bc8b6c4bd7e85473912780e0111baca59b34a2c14feae3543ce6e239d7fddaeab24b686a65bfe642cdb91d27ebf"]}["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["The astring programmers"]homepage: "https://erratique.ch/software/astring"doc: "https://erratique.ch/software/astring/doc"dev-repo: "git+http://erratique.ch/repos/astring.git"bug-reports: "https://github.com/dbuenzli/astring/issues"tags: [ "string" "org:erratique" ]license: "ISC"depends: ["ocaml" {>= "4.05.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build} ]build: [[ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" ]]synopsis: """Alternative String module for OCaml"""description: """\Astring exposes an alternative `String` module for OCaml. This moduletries to balance minimality and expressiveness for basic, index-free,string processing and provides types and functions for substrings,string sets and string maps.Remaining compatible with the OCaml `String` module is a non-goal. The`String` module exposed by Astring has exception safe functions,removes deprecated and rarely used functions, alters some signaturesand names, adds a few missing functions and fully exploits OCaml'snewfound string immutability.Astring depends only on the OCaml standard library. It is distributedunder the ISC license."""url {archive: "https://erratique.ch/software/astring/releases/astring-0.8.5.tbz"checksum: "e148907c24157d1df43bec89b58b3ec8"}
opam-version: "2.0"authors: ["The uuseg programmers"]homepage: "https://erratique.ch/software/uuseg"dev-repo: "git+https://erratique.ch/repos/uuseg.git"bug-reports: "https://github.com/dbuenzli/uuseg/issues"Uuseg is an OCaml library for segmenting Unicode text. It implementsthe locale independent [Unicode text segmentation algorithms][1] todetect grapheme cluster, word and sentence boundaries and the[Unicode line breaking algorithm][2] to detect line breakopportunities.The library is independent from any IO mechanism or Unicode text datastructure and it can process text without a complete in-memoryrepresentation.Uuseg depends on [Uucp](http://erratique.ch/software/uucp) andoptionally on [Uutf](http://erratique.ch/software/uutf) for support onOCaml UTF-X encoded strings. It is distributed under the ISC license.[1]: http://www.unicode.org/reports/tr29/[2]: http://www.unicode.org/reports/tr14/Homepage: http://erratique.ch/software/uuseg"""license: ["ISC"]tags: ["unicode" "text" "segmentation" "org:erratique"]depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}"uucp" {>= "14.0.0" & < "15.0.0"}]depopts: ["uutf""cmdliner"]conflicts: ["uutf" {< "1.0.0"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-uutf" "%{uutf:installed}%""--with-cmdliner" "%{cmdliner:installed}%" ]]url {src: "https://erratique.ch/software/uuseg/releases/uuseg-14.0.0.tbz"checksum: "sha512=3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa"}description: """doc: "https://erratique.ch/software/uuseg/doc/"synopsis: """Unicode text segmentation for OCaml"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
opam-version: "2.0"synopsis: """Unicode character properties for OCaml"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The uucp programmers"]homepage: "https://erratique.ch/software/uucp"doc: "https://erratique.ch/software/uucp/doc/"dev-repo: "git+https://erratique.ch/repos/uucp.git"bug-reports: "https://github.com/dbuenzli/uucp/issues"license: ["ISC"]tags: ["unicode" "text" "character" "org:erratique"]depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}"uucd" {with-test}"uunf" {with-test}"uutf" {with-test}]depopts: ["uutf""uunf""cmdliner"]conflicts: ["uutf" {< "1.0.1"}"cmdliner" {< "1.0.0"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-uutf" "%{uutf:installed}%""--with-uunf" "%{uunf:installed}%""--with-cmdliner" "%{cmdliner:installed}%" ]]description: """Uucp is an OCaml library providing efficient access to a selection ofcharacter properties of the [Unicode character database][1].Uucp is independent from any Unicode text data structure and has nodependencies. It is distributed under the ISC license.[1]: http://www.unicode.org/reports/tr44/Home page: http://erratique.ch/software/uucp"""url {src: "https://erratique.ch/software/uucp/releases/uucp-14.0.0.tbz"checksum: "sha512=2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899"}post-messages: ["If the build fails with \"ocamlopt.opt got signal and exited\", issue 'ulimit -s unlimited' and retry."{failure & (arch = "ppc64" | arch = "arm64")}]
opam-version: "2.0"synopsis: "A library for building correct HTML and SVG documents"description:"TyXML provides a set of convenient combinators that uses the OCaml type system to ensure the validity of the generated documents. TyXML can be used with any representation of HTML and SVG: the textual one, provided directly by this package, or DOM trees (`js_of_ocaml-tyxml`) virtual DOM (`virtual-dom`) and reactive or replicated trees (`eliom`). You can also create your own representation and use it to instantiate a new set of combinators."maintainer: ["dev@ocsigen.org"]authors: ["The ocsigen team"]license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"homepage: "https://github.com/ocsigen/tyxml"doc: "https://ocsigen.org/tyxml/latest/manual/intro"bug-reports: "https://github.com/ocsigen/tyxml/issues"depends: ["dune" {>= "2.0"}"ocaml" {>= "4.02"}"alcotest" {with-test}"re" {>= "1.5.0"}"seq""uutf" {>= "1.0.0"}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocsigen/tyxml.git"x-commit-hash: "ef431a4bceaefb2d9248e79092e6c1a1a9420095"url {src:"https://github.com/ocsigen/tyxml/releases/download/4.5.0/tyxml-4.5.0.tbz"checksum: ["sha256=c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068""sha512=772535441b09c393d53c27152e65f404a0a541aa0cea1bda899a8d751ab64d1729237e583618c3ff33d75e3865d53503d1ea413c6bbc8c68c413347efd1709b3"]}
opam-version: "2.0"bug-reports: "https://github.com/dbuenzli/topkg/issues"tags: ["packaging" "ocamlbuild" "org:erratique"]Topkg is a packager for distributing OCaml software. It provides anAPI to describe the files a package installs in a given buildconfiguration and to specify information about the package'sdistribution, creation and publication procedures.The optional topkg-care package provides the `topkg` command line toolwhich helps with various aspects of a package's life cycle: creatingand linting a distribution, releasing it on the WWW, publish itsdocumentation, add it to the OCaml opam repository, etc.Topkg is distributed under the ISC license and has **no**dependencies. This is what your packages will need as a *build*dependency.Topkg-care is distributed under the ISC license it depends on[fmt][fmt], [logs][logs], [bos][bos], [cmdliner][cmdliner],[webbrowser][webbrowser] and `opam-format`.[fmt]: http://erratique.ch/software/fmt[logs]: http://erratique.ch/software/logs[bos]: http://erratique.ch/software/bos[cmdliner]: http://erratique.ch/software/cmdliner[webbrowser]: http://erratique.ch/software/webbrowserHome page: http://erratique.ch/software/topkg"""depends: ["ocaml" {>= "4.05.0"}"ocamlfind" {build & >= "1.6.1"}"ocamlbuild"]build: [["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name"--dev-pkg" "%{dev}%"]]url {src: "https://erratique.ch/software/topkg/releases/topkg-1.0.5.tbz"checksum: "sha512=9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab"}description: """license: ["ISC"]synopsis: """The transitory OCaml software packager"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The topkg programmers"]homepage: "https://erratique.ch/software/topkg"doc: "https://erratique.ch/software/topkg/doc"dev-repo: "git+https://erratique.ch/repos/topkg.git"
opam-version: "2.0"synopsis: "Spawning sub-processes"description: """Spawn is a small library exposing only one functionality: spawning sub-process.It has three main goals:1. provide missing features of Unix.create_process such as providing aworking directory2. provide better errors when a system call fails in thesub-process. For instance if a command is not found, you get a proper[Unix.Unix_error] exception3. improve performance by using vfork when available. It is oftenclaimed that nowadays fork is as fast as vfork, however in practicefork takes time proportional to the process memory while vfork isconstant time. In application using a lot of memory, vfork can bethousands of times faster than fork."""maintainer: ["Jane Street developers"]authors: ["Jane Street Group, LLC"]license: "MIT"homepage: "https://github.com/janestreet/spawn"doc: "https://janestreet.github.io/spawn/"bug-reports: "https://github.com/janestreet/spawn/issues"depends: ["dune" {>= "2.8"}"ppx_expect" {with-test}"ocaml" {>= "4.05"}"odoc" {with-doc}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/janestreet/spawn.git"x-commit-hash: "b5a25cab2f53a5ee9e10a7b8a96506cc61ce1198"url {src:"https://github.com/janestreet/spawn/archive/v0.15.0.tar.gz"checksum: ["sha256=310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7""sha512=3a775b57a73efee6adbc30b32fa779f27d11c7008a46f90fdb9da6288533e2d83fc49dbcd770c087f2e4560c5586ff72a9a2985d8929955773cc10d83f126013"]}
opam-version: "2.0"maintainer: "rudi.grinberg@gmail.com"authors: ["Jerome Vouillon""Thomas Gazagnaire""Anil Madhavapeddy""Rudi Grinberg""Gabriel Radanne"]homepage: "https://github.com/ocaml/ocaml-re"bug-reports: "https://github.com/ocaml/ocaml-re/issues"dev-repo: "git+https://github.com/ocaml/ocaml-re.git"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["ocaml" {>= "4.02"}"ounit" {with-test}"seq"]synopsis: "RE is a regular expression library for OCaml"description: """Pure OCaml regular expressions with:* Perl-style regular expressions (module Re.Perl)* Posix extended regular expressions (module Re.Posix)* Emacs-style regular expressions (module Re.Emacs)* Shell-style file globbing (module Re.Glob)* Compatibility layer for OCaml's built-in Str module (module Re.Str)"""url {src:}x-commit-hash: "c5d5df80e128c3d7646b7d8b1322012c5fcc35f3""https://github.com/ocaml/ocaml-re/releases/download/1.10.3/re-1.10.3.tbz"checksum: ["sha256=846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb""sha512=d02103b7b8b8d8bc797341dcc933554745427f3c1b51b54b4ac9ff81badfd68c94726c57548b08e00ca99f3e09741b54b6500e97c19fc0e8fcefd6dfbe71da7f"]"dune" {>= "2.0"}["dune" "subst"] {pinned}license: "LGPL-2.0 with OCaml linking exception"
opam-version: "2.0"synopsis: "Pretty-printing library"description: """This library provides a lean alternative to the Format [1] module ofthe OCaml standard library. It aims to make it easy for users to dothe right thing. If you have tried Format before but find its APIcomplicated and difficult to use, then Pp might be a good choice foryou.Pp uses the same concepts of boxes and break hints, and the finalrendering is done to formatter from the Format module. However itdefines its own algebra which some might find easier to work with andreason about. No previous knowledge is required to start using thislibrary, however the various guides for the Format module such as thisone [2] should be applicable to Pp as well.[1]: https://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html[2]: http://caml.inria.fr/resources/doc/guides/format.en.html"""maintainer: ["Jeremie Dimino <jeremie@dimino.org>"]authors: ["Jane Street Group, LLC""Jeremie Dimino <jeremie@dimino.org>"]license: "MIT"homepage: "https://github.com/ocaml-dune/pp"doc: "https://ocaml-dune.github.io/pp/"bug-reports: "https://github.com/ocaml-dune/pp/issues"depends: ["dune" {>= "2.0"}"ocaml" {>= "4.08.0"}"ppx_expect" {with-test}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-dune/pp.git"x-commit-hash: "395b95c89cfe2c6d538dad9d56721b6a7278d46c"url {src:"https://github.com/ocaml-dune/pp/releases/download/1.1.2/pp-1.1.2.tbz"checksum: ["sha256=e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56""sha512=58f78b083483006b40814be9aac33c895349eb1c6427d2762b4d760192613401262478bd5deff909763517560b06af7bf013c6a6f87d549aafa77b26345303f2"]}
opam-version: "2.0"homepage: "http://github.com/ocaml/odoc"doc: "https://ocaml.github.io/odoc/"bug-reports: "https://github.com/ocaml/odoc/issues"license: "ISC"authors: ["Thomas Refis <trefis@janestreet.com>""David Sheets <sheets@alum.mit.edu>""Leo White <leo@lpw25.net>""Anton Bachin <antonbachin@yahoo.com>""Jon Ludlam <jon@recoil.org>"]dev-repo: "git+https://github.com/ocaml/odoc.git"synopsis: "OCaml documentation generator"description: """Odoc is a documentation generator for OCaml. It reads doc comments,delimited with `(** ... *)`, and outputs HTML."""depends: ["astring""fpath""result""tyxml" {>= "4.3.0"}]build: [["dune" "build" "-p" name "-j" jobs]]url {checksum: []}x-commit-hash: "b266aabde8a1bd8094bd1bca9401748a7195076a""sha256=41fb15e43f49a3b1f436115d1358a0c7a61d38fea9a2b56861af859863629ff0""sha512=4762ee06d0a58fe22b44f6a0c0dda4890f919e6eaa0bd07706a425c00bd39f4a74e0222f2bd5810e3ea9347596ac6a7e835932a440362c82a22c0e1eb61f2a58"src: "https://github.com/ocaml/odoc/releases/download/2.0.2/odoc-2.0.2.tbz"["dune" "subst"] {dev}"ocaml-version" {with-test & >= "2.3.0"}"lwt" {with-test}"alcotest" {with-test & >= "0.8.3"}"markup" {with-test & >= "1.0.0"}"ocamlfind" {with-test}"yojson" {with-test}("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})"conf-jq" {with-test}"bisect_ppx" {dev & = "2.5.0"}"ppx_expect" {with-test}("ocaml" {< "4.03.0" & with-test} | "mdx" {with-test})"bos" {with-test}"ocaml-migrate-parsetree" {>= "1.0.6"}"fmt""logs""re" {>= "1.7.2"}"ocaml" {>= "4.02.0"}"cmdliner" {>= "1.0.0"}"cppo" {build & >= "1.1.0"}"dune" {>= "2.9.1"}"odoc-parser" {>= "0.9.0"}maintainer: "Jon Ludlam <jon@recoil.org>""Jules Aguillon <juloo.dsi@gmail.com>""Lubega Simon <lubegasimon73@gmail.com>"
opam-version: "2.0"synopsis: "Parser for ocaml documentation comments"description: """Odoc_parser is a library for parsing the contents of OCaml documentationcomments, formatted using 'odoc' syntax, an extension of the languageunderstood by ocamldoc."""maintainer: ["Jon Ludlam <jon@recoil.org>"]authors: ["Anton Bachin <antonbachin@yahoo.com>"]license: "ISC"homepage: "https://github.com/ocaml-doc/odoc-parser"bug-reports: "https://github.com/ocaml-doc/odoc-parser/issues"dev-repo: "git+https://github.com/ocaml-doc/odoc-parser.git"# This template exists because without it dune pop is dependencies and build rules# involving odoc. Since odoc depends on this package, this doesn't work.doc: "https://ocaml-doc.github.io/odoc-parser/"depends: ["dune" {>= "2.8"}"ocaml" {>= "4.02.0"}"astring""result""ppx_expect" {with-test}("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}]]url {src:"https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.0/odoc-parser-1.0.0.tbz"checksum: ["sha256=b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1""sha512=b5caee3a0d288aeaa95e3f32de8e5f75f169ad2691d75f8d6c932e4fb0e6cb188813ac2d92d4076fe75b12217130e6999c46e7890cf0fa765070870f85a96d63"]}x-commit-hash: "b13ffc2f30ca20ca5bb733be4f630d46bd274fd6"
opam-version: "2.0"maintainer: "contact@ocamlpro.com"synopsis: "A simple tool to indent OCaml programs"description: """Ocp-indent is based on an approximate, tolerant OCaml parser and a simple stackmachine ; this is much faster and more reliable than using regexps. Presets andconfiguration options available, with the possibility to set them project-wide.Supports most common syntax extensions, and extensible for others.Includes:- An indentor program, callable from the command-line or from within editors- Bindings for popular editors- A library that can be directly used by editor writers, or just forfault-tolerant/approximate parsing."""authors: ["Louis Gesbert <louis.gesbert@ocamlpro.com>""Thomas Gazagnaire <thomas@gazagnaire.org>""Jun Furuse"]homepage: "http://www.typerex.org/ocp-indent.html"bug-reports: "https://github.com/OCamlPro/ocp-indent/issues"license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"tags: ["org:ocamlpro" "org:typerex"]dev-repo: "git+https://github.com/OCamlPro/ocp-indent.git"build: [["dune" "build" "-p" name "-j" jobs]]run-test: [["dune" "runtest" "-p" name "-j" jobs]]depends: ["ocaml""dune" {>= "1.0"}"cmdliner" {>= "1.0.0"}"ocamlfind""base-bytes"]post-messages: ["This package requires additional configuration for use in editors. Install package 'user-setup', or manually:* for Emacs, add these lines to ~/.emacs:(add-to-list 'load-path \"%{share}%/emacs/site-lisp\")(require 'ocp-indent)* for Vim, add this line to ~/.vimrc:set rtp^=\"%{share}%/ocp-indent/vim\""{success & !user-setup:installed}]url {src: "https://github.com/OCamlPro/ocp-indent/archive/1.8.1.tar.gz"checksum: ["md5=70db6649a8c08a682ad63730c9752e31""sha512=565353de333dd44375366fff75e85a6256c3cd9ff52b3db79803141f975e77cda04dfe32f5e0f2d4c82c59be8f04e9c2bf4d066b113b2cdf267f4c3dcfa401da"]}
opam-version: "2.0"synopsis: "Auto-formatter for OCaml code"description:"OCamlFormat is a tool to automatically format OCaml code in a uniform style."authors: ["Josh Berdine <jjb@fb.com>"]homepage: "https://github.com/ocaml-ppx/ocamlformat"bug-reports: "https://github.com/ocaml-ppx/ocamlformat/issues"depends: ["alcotest" {with-test}"base" {>= "v0.12.0" & < "v0.15"}"cmdliner""dune-build-info""fix""fpath""stdio" {< "v0.15"}"uuseg" {>= "10.0.0"}"uutf" {>= "1.0.1"}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-ppx/ocamlformat.git"url {src:checksum: []}x-commit-hash: "74668925ca977e252acb084bd139b3077cf95b58" # OCamlFormat is distributed under the MIT license. Parts of the OCaml library are vendored for OCamlFormat and distributed under their original LGPL 2.1 license"sha256=7d3a51645416fa78287344fa03af6b78450067a1a61e4790bf1b29779cd10235""sha512=8cc8bc9ebf822b18cf54f2f5b0b61c7bf775a1de9b984f57448dcee391627a08d43e7b15a2cfbd287f5ae16b3b9dd18c42086b59ccfbe3174184418652c4f668""https://github.com/ocaml-ppx/ocamlformat/releases/download/0.20.1/ocamlformat-0.20.1.tbz"license: ["MIT" "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"]"odoc" {with-doc}"menhir" {>= "20201216"}"menhirLib" {>= "20201216"}"menhirSdk" {>= "20201216"}"ocaml-version" {>= "3.3.0"}"ocp-indent""odoc-parser" {>= "1.0.0"}"re" {>= "1.7.2"}"either""dune" {>= "2.8"}"ocaml" {>= "4.08" & < "4.15"}maintainer: ["OCamlFormat Team <ocamlformat-dev@lists.ocaml.org>"]
opam-version: "2.0"synopsis: "Auto-formatter for OCaml code (RPC mode)"description:"OCamlFormat is a tool to automatically format OCaml code in a uniform style. This package defines a RPC interface to OCamlFormat"maintainer: ["OCamlFormat Team <ocamlformat-dev@lists.ocaml.org>"]authors: ["Josh Berdine <jjb@fb.com>"]license: "MIT"homepage: "https://github.com/ocaml-ppx/ocamlformat"bug-reports: "https://github.com/ocaml-ppx/ocamlformat/issues"depends: ["dune" {>= "2.8"}"ocaml" {>= "4.08" & < "4.14"}"csexp""sexplib0""odoc" {with-doc}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/ocaml-ppx/ocamlformat.git"url {src:"https://github.com/ocaml-ppx/ocamlformat/releases/download/0.19.0/ocamlformat-0.19.0.tbz"checksum: ["sha256=62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46""sha512=408b3af533169f201d7492be869f8ae4acde5583e01693c586929f44b76d569d3d6d555bc056378743d7cb3bd8e11ebc9cbd178ca196bcb82db33127d14902f8"]}x-commit-hash: "ba67af28ddca8718ef8816b2b0dc1e5b2f5e9591"
opam-version: "2.0"maintainer: "Anil Madhavapeddy <anil@recoil.org>"authors: "Anil Madhavapeddy <anil@recoil.org>"license: "ISC"tags: "org:ocamllabs"homepage: "https://github.com/ocurrent/ocaml-version"doc: "https://ocurrent.github.io/ocaml-version/doc"bug-reports: "https://github.com/ocurrent/ocaml-version/issues"depends: ["ocaml" {>= "4.07.0"}"alcotest" {with-test}]build: [["dune" "build" "-p" name "-j" jobs]]dev-repo: "git+https://github.com/ocurrent/ocaml-version.git"synopsis: "Manipulate, parse and generate OCaml compiler version strings"description: """This library provides facilities to parse version numbers of the OCamlcompiler, and enumerates the various official OCaml releases and configurationvariants.OCaml version numbers are of the form `major.minor.patch+extra`, where the`patch` and `extra` fields are optional. This library offers the followingfunctionality:- Functions to parse and serialise OCaml compiler version numbers.- Enumeration of official OCaml compiler version releases.- Test compiler versions for a particular feature (e.g. the `bytes` type)- [opam](https://opam.ocaml.org) compiler switch enumeration.### Further information- **Discussion:** Post on <https://discuss.ocaml.org/> with the `ocaml` tag underthe Ecosystem category.- **Bugs:** <https://github.com/ocurrent/ocaml-version/issues>- **Docs:** <http://docs.mirage.io/ocaml-version>"""url {src:checksum: []}x-commit-hash: "c535ad2f463664b31001888fc99495dd01632747""sha256=d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25""sha512=215e5b0c4ea5fa5461cdc0fc81fbd84a2a319a246a19504d0a0abc8c891e252a9e41644356150a1dc25d56b3f7e084db7a0b15becab4e1339992e645fc3d8ef1""https://github.com/ocurrent/ocaml-version/releases/download/v3.4.0/ocaml-version-v3.4.0.tbz"["dune" "subst"] {dev}"dune" {>= "1.0"}
opam-version: "2.0"maintainer: "frederic.bour@lakaban.net"authors: ["Frédéric Bour <frederic.bour@lakaban.net>""Jérémie Dimino <jeremie@dimino.org>"]homepage: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree"bug-reports: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree/issues"dev-repo: "git+https://github.com/ocaml-ppx/ocaml-migrate-parsetree.git"doc: "https://ocaml-ppx.github.io/ocaml-migrate-parsetree/"tags: [ "syntax" "org:ocamllabs" ]]]synopsis: "Convert OCaml parsetrees between different versions"description: """Convert OCaml parsetrees between different versionsThis library converts parsetrees, outcometree and ast mappers betweendifferent OCaml versions. High-level functions help making PPXrewriters independent of a compiler version."""url {src:checksum: []}x-commit-hash: "7ef6ff49bfd7d6d816be61d3acea460af25d7d99""sha256=108126b247f190e04c8afd3d72ced0b63ffdf73c3f801f09be5db0cd7280bf0a""sha512=cccd766d33e2c70015735e050c2b7cdacf9f046e2874b563ef64b77706f56d004aa9b9df7d5cc201e5f3ba6e3267f95f654e1e3de58891b91f9c28a61988a9ee""https://github.com/ocaml-ppx/ocaml-migrate-parsetree/releases/download/v2.3.0/ocaml-migrate-parsetree-2.3.0.tbz"conflicts: ["base-effects"build: ["dune" "build" "-p" name "-j" jobs]run-test: ["dune" "runtest" "-p" name "-j" jobs]depends: ["dune" {>= "2.3"}"ocaml" {>= "4.02.3" & < "4.15"}"cinaps" {with-test & >= "v0.13.0"}license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
opam-version: "2.0"synopsis: "LSP Server for OCaml"description: "An LSP server for OCaml."authors: ["Andrey Popp <8mayday@gmail.com>""Rusty Key <iam@stfoo.ru>""Louis Roché <louis@louisroche.net>""Oleksiy Golovko <alexei.golovko@gmail.com>""Rudi Grinberg <me@rgrinberg.com>""Sacha Ayoun <sachaayoun@gmail.com>""cannorin <cannorin@gmail.com>"]license: "ISC"homepage: "https://github.com/ocaml/ocaml-lsp"bug-reports: "https://github.com/ocaml/ocaml-lsp/issues"depends: ["yojson""dune-build-info""result" {>= "1.5"}"odoc" {with-doc}]build: [["dune" "subst"] {dev}]url {src:checksum: []}x-commit-hash: "16a83262b0964b4c82db43f6c7a81dd6526b703d""sha256=7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9""sha512=591fcf1fd2308b56ca2b5f60383d9a24e59aea49bf0dfe4f3b3e1d3a44f0537be07c650523e7f229122c7914fca78bccaafd01c5f79793e38617959f1bcfc7e1""https://github.com/ocaml/ocaml-lsp/releases/download/1.9.0/jsonrpc-1.9.0.tbz"["dune""build""-j"jobs"ocaml-lsp-server.install""--release"]dev-repo: "git+https://github.com/ocaml/ocaml-lsp.git""ocaml" {>= "4.12" & < "4.13"}"ocamlformat-rpc-lib" {>= "0.18.0" & < "0.20.0"}"pp" {>= "1.1.2"}"csexp" {>= "1.5"}"spawn""ppx_yojson_conv_lib" {>= "v0.14"}"re" {>= "1.5.0"}"dune" {>= "2.9"}"Ulugbek Abdullaev <ulugbekna@gmail.com>""Thibaut Mattio <thibaut.mattio@gmail.com>""Max Lantas <mnxndev@outlook.com>"maintainer: ["Rudi Grinberg <me@rgrinerg.com>"]
opam-version: "2.0"maintainer: "defree@gmail.com"authors: "The Merlin team"homepage: "https://github.com/ocaml/merlin"bug-reports: "https://github.com/ocaml/merlin/issues"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" "merlin,dot-merlin-reader" "-j" "1"] {with-test}]depends: ["dot-merlin-reader" {>= "4.0"}"yojson" {>= "1.6.0"}"conf-jq" {with-test}"csexp" {>= "1.2.3"}"result" {>= "1.5"}"menhir" {dev}"menhirLib" {dev}"menhirSdk" {dev}]synopsis:"Editor helper, provides completion, typing and source browsing in Vim and Emacs"description:"Merlin is an assistant for editing OCaml code. It aims to provide the features available in modern IDEs: error reporting, auto completion, source browsing and much more."post-messages: ["merlin installed.Quick setup for VIM-------------------Append this to your .vimrc to add merlin to vim's runtime-path:let g:opamshare = substitute(system('opam var share'),'\\n$','','''')execute \"set rtp+=\" . g:opamshare . \"/merlin/vim\"Also run the following line in vim to index the documentation::execute \"helptags \" . g:opamshare . \"/merlin/vim/doc\"Quick setup for EMACS-------------------Add opam emacs directory to your load-path by appending this to your .emacs:(when (and opam-share (file-directory-p opam-share));; Register Merlin(add-to-list 'load-path (expand-file-name \"emacs/site-lisp\" opam-share))(autoload 'merlin-mode \"merlin\" nil t nil);; Automatically start it in OCaml buffers(add-hook 'tuareg-mode-hook 'merlin-mode t)(add-hook 'caml-mode-hook 'merlin-mode t);; Use opam switch to lookup ocamlmerlin binary(setq merlin-command 'opam)))Take a look at https://github.com/ocaml/merlin for more informationQuick setup with opam-user-setup--------------------------------Opam-user-setup support Merlin.$ opam user-setup installshould take care of basic setup.See https://github.com/OCamlPro/opam-user-setup"{success & !user-setup:installed}]url {src:checksum: []}x-commit-hash: "5497c563b06f868d72d4f74bd8026c1c1aeb6595""sha256=16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3""sha512=f51b2875b75215d0be378de86b9dca0957b5e62241ce625a46c6341c219582510d37af94dedf67e1d3db61ebacfef8fa764e4719fac16c0b4b99bb85d0b991d4""https://github.com/ocaml/merlin/releases/download/v4.4-412/merlin-4.4-412.tbz"(let ((opam-share (ignore-errors (car (process-lines \"opam\" \"var\" \"share\")))))"ocaml" {>= "4.12" & < "4.13"}"dune" {>= "2.9.0"}["dune" "subst"] {dev}dev-repo: "git+https://github.com/ocaml/merlin.git"license: "MIT"
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>""Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"]homepage: "http://gitlab.inria.fr/fpottier/menhir"dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: []conflicts: ["menhir" { != version }]synopsis: "Compile-time library for auxiliary tools related to Menhir"url {src:checksum: []}"md5=ff8b8c4c58b1365128d0d2aeaad85d1c""sha512=361d4d81ac92fbe78a88ca731e8ec7e3287bf536b430949c88f87a7dca63e0d65ec30130331e5f00692b7cbbfcec8f3b2a7733cf023fe71067419bcc38ced91e""https://gitlab.inria.fr/fpottier/menhir/-/archive/20211230/archive.tar.gz""ocaml" { >= "4.03.0" }"dune" { >= "2.8.0" }bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>""Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"]homepage: "http://gitlab.inria.fr/fpottier/menhir"dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: []conflicts: ["menhir" { != version }]synopsis: "Runtime support library for parsers generated by Menhir"url {src:checksum: []}"md5=ff8b8c4c58b1365128d0d2aeaad85d1c""sha512=361d4d81ac92fbe78a88ca731e8ec7e3287bf536b430949c88f87a7dca63e0d65ec30130331e5f00692b7cbbfcec8f3b2a7733cf023fe71067419bcc38ced91e""https://gitlab.inria.fr/fpottier/menhir/-/archive/20211230/archive.tar.gz""ocaml" { >= "4.03.0" }"dune" { >= "2.8.0" }bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>""Yann Régis-Gianas <yrg@pps.univ-paris-diderot.fr>"]homepage: "http://gitlab.inria.fr/fpottier/menhir"dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["menhirLib" {= version}"menhirSdk" {= version}]synopsis: "An LR(1) parser generator"url {src:checksum: []}"md5=ff8b8c4c58b1365128d0d2aeaad85d1c""sha512=361d4d81ac92fbe78a88ca731e8ec7e3287bf536b430949c88f87a7dca63e0d65ec30130331e5f00692b7cbbfcec8f3b2a7733cf023fe71067419bcc38ced91e""https://gitlab.inria.fr/fpottier/menhir/-/archive/20211230/archive.tar.gz""ocaml" {>= "4.03.0" & < "5.00"}"dune" {>= "2.8.0"}bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
opam-version: "2.0"maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"authors: ["The logs programmers"]homepage: "https://erratique.ch/software/logs"doc: "https://erratique.ch/software/logs/doc"dev-repo: "git+https://erratique.ch/repos/logs.git"bug-reports: "https://github.com/dbuenzli/logs/issues"tags: [ "log" "system" "org:erratique" ]license: "ISC"depends: ["ocaml" {>= "4.03.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build}"mtime" {with-test} ]depopts: ["js_of_ocaml""fmt""cmdliner""lwt""base-threads"]conflicts: ["cmdliner" {< "0.9.8"}"js_of_ocaml" { < "3.3.0" }]build: [["ocaml" "pkg/pkg.ml" "build""--pinned" "%{pinned}%""--with-js_of_ocaml" "%{js_of_ocaml:installed}%""--with-fmt" "%{fmt:installed}%""--with-cmdliner" "%{cmdliner:installed}%""--with-lwt" "%{lwt:installed}%""--with-base-threads" "%{base-threads:installed}%"]]synopsis: """Logging infrastructure for OCaml"""description: """\Logs provides a logging infrastructure for OCaml. Logging is performedon sources whose reporting level can be set independently. Log messagereport is decoupled from logging and is handled by a reporter.A few optional log reporters are distributed with the base library andthe API easily allows to implement your own.`Logs` has no dependencies. The optional `Logs_fmt` reporter on OCamlformatters depends on [Fmt][fmt]. The optional `Logs_browser`reporter that reports to the web browser console depends on[js_of_ocaml][jsoo]. The optional `Logs_cli` library that providescommand line support for controlling Logs depends on[`Cmdliner`][cmdliner]. The optional `Logs_lwt` library that providesLwt logging functions depends on [`Lwt`][lwt]Logs and its reporters are distributed under the ISC license.[fmt]: http://erratique.ch/software/fmt[jsoo]: http://ocsigen.org/js_of_ocaml/[cmdliner]: http://erratique.ch/software/cmdliner[lwt]: http://ocsigen.org/lwt/"""url {archive: "https://erratique.ch/software/logs/releases/logs-0.7.0.tbz"checksum: "2bf021ca13331775e33cf34ab60246f7"}
opam-version: "2.0"maintainer: "yallop@gmail.com"authors: ["Jeremy Yallop""Demi Obenour""Stephane Glondu""Andreas Hauptmann"]homepage: "https://github.com/ocamllabs/ocaml-integers"bug-reports: "https://github.com/ocamllabs/ocaml-integers/issues"dev-repo: "git+https://github.com/ocamllabs/ocaml-integers.git"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]depends: ["dune"]doc: "http://ocamllabs.github.io/ocaml-integers/api.docdir/"synopsis: "Various signed and unsigned integer types for OCaml"url {}src: "https://github.com/ocamllabs/ocaml-integers/archive/0.5.1.tar.gz"checksum: "md5=24d629966763b4956edfb7e64d6c5427""ocaml" {>= "4.03"}["dune" "subst"] {dev}
opam-version: "2.0"synopsis: """OCaml Format pretty-printer combinators"""maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]authors: ["The fmt programmers"]homepage: "https://erratique.ch/software/fmt"doc: "https://erratique.ch/software/fmt/doc/"dev-repo: "git+https://erratique.ch/repos/fmt.git"bug-reports: "https://github.com/dbuenzli/fmt/issues"license: ["ISC"]tags: ["string" "format" "pretty-print" "org:erratique"]depends: ["ocaml" {>= "4.08.0"}"ocamlfind" {build}"ocamlbuild" {build}"topkg" {build & >= "1.0.3"}]depopts: ["base-unix""cmdliner"]conflicts: ["cmdliner" {< "0.9.8"}]build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%""--with-base-unix" "%{base-unix:installed}%""--with-cmdliner" "%{cmdliner:installed}%"]]url {src: "https://erratique.ch/software/fmt/releases/fmt-0.9.0.tbz"checksum: "sha512=66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b"}description: """Fmt exposes combinators to devise `Format` pretty-printing functions.Fmt depends only on the OCaml standard library. The optional `Fmt_tty`library that allows to setup formatters for terminal color outputdepends on the Unix library. The optional `Fmt_cli` library thatprovides command line support for Fmt depends on [`Cmdliner`][cmdliner].Fmt is distributed under the ISC license.[cmdliner]: http://erratique.ch/software/cmdlinerHome page: http://erratique.ch/software/fmt"""
opam-version: "2.0"maintainer: "francois.pottier@inria.fr"authors: ["François Pottier <francois.pottier@inria.fr>"]homepage: "https://gitlab.inria.fr/fpottier/fix"dev-repo: "git+https://gitlab.inria.fr/fpottier/fix.git"bug-reports: "francois.pottier@inria.fr"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" { >= "4.03" }]url {src:checksum: []}"md5=48d8a5bdff23cf7fbf9288877df2b6aa""sha512=a851d8783c0c519c6e55359a5c471af433058872409c29a1a7bdfd0076813341ad2c0ebd1ce9e28bff4d4c729dfbc808c41c084fe12a42b45a2b5e391e77ccd2""https://gitlab.inria.fr/fpottier/fix/-/archive/20220121/archive.tar.gz"synopsis: "Algorithmic building blocks for memoization, recursion, and more""dune" { >= "1.3" }license: "LGPL-2.0-only"
opam-version: "2.0"synopsis: "Compatibility Either module"description: """Projects that want to use the Either module defined in OCaml 4.12.0 whilestaying compatible with older versions of OCaml should use this libraryinstead."""maintainer: ["Craig Ferguson <me@craigfe.io>"]authors: ["Craig Ferguson <me@craigfe.io>"]license: "MIT"homepage: "https://github.com/mirage/either"doc: "https://mirage.github.io/either"bug-reports: "https://github.com/mirage/either/issues"depends: ["dune" {>= "2.0"}]build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@runtest" {with-test}"@doc" {with-doc}]]dev-repo: "git+https://github.com/mirage/either.git"x-commit-hash: "a270ceac58e3e5bed6fe7e8bfb7132b14ee9c322"url {src:"https://github.com/mirage/either/releases/download/1.0.0/either-1.0.0.tbz"checksum: ["sha256=bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884""sha512=147854c09f897dd028b18a9f19acea8666107aaa7b1aab3c92f568af531364f57298edcaf3897d74246d3857d52e9bfb7ad0fc39220d988d9f14694ca1d5e9ed"]}
opam-version: "2.0"synopsis: "Fast, portable, and opinionated build system"description: """dune is a build system that was designed to simplify the release ofJane Street packages. It reads metadata from "dune" files following avery simple s-expression syntax.dune is fast, has very low-overhead, and supports parallel builds onall platforms. It has no system dependencies; all you need to builddune or packages using dune is OCaml. You don't need make or bashas long as the packages themselves don't use bash explicitly.dune supports multi-package development by simply dropping multiplerepositories into the same directory.It also supports multi-context builds, such as building againstseveral opam roots/switches simultaneously. This helps maintainingpackages across several versions of OCaml and gives cross-compilationfor free."""license: "MIT"homepage: "https://github.com/ocaml/dune"doc: "https://dune.readthedocs.io/"bug-reports: "https://github.com/ocaml/dune/issues"conflicts: ["merlin" {< "3.4.0"}"ocaml-lsp-server" {< "1.3.0"}"dune-configurator" {< "2.3.0"}"odoc" {< "1.3.0"}"dune-release" {< "1.3.0"}"js_of_ocaml-compiler" {< "3.6.0"}"jbuilder" {= "transition"}]dev-repo: "git+https://github.com/ocaml/dune.git"build: [# opam 2 sets OPAM_SWITCH_PREFIX, so we don't need a hardcoded path["ocaml" "configure.ml" "--libdir" lib] {opam-version < "2"}["ocaml" "bootstrap.ml" "-j" jobs]["./dune.exe" "build" "-p" name "--profile" "dune-bootstrap" "-j" jobs]]depends: [# Please keep the lower bound in sync with .github/workflows/workflow.yml,# dune-project and min_ocaml_version in bootstrap.ml"base-unix""base-threads"]url {checksum: []}x-commit-hash: "dea03875affccc0620e902d28fed8d6b4351e112""sha256=3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""sha512=04b48501ac16c3608e3b6bfbdbabf810df0fb844ea3b7d25ba50f03b9d6cb1d2c933cf747d694029d82a9777a774e48e5c38ab010fe53ce1eae367da0ed04d6d"src:"https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz"("ocaml" {>= "4.08"} | ("ocaml" {< "4.08~~"} & "ocamlfind-secondary"))maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
opam-version: "2.0"synopsis: "Helper library for gathering system configuration"description: """dune-configurator is a small library that helps writing OCaml scripts thattest features available on the system, in order to generate config.hfiles for instance.Among other things, dune-configurator allows one to:- test if a C program compiles- query pkg-config- import #define from OCaml header files- generate config.h file"""license: "MIT"homepage: "https://github.com/ocaml/dune"doc: "https://dune.readthedocs.io/"bug-reports: "https://github.com/ocaml/dune/issues"depends: ["ocaml" {>= "4.03.0"}"result""csexp" {>= "1.3.0"}"odoc" {with-doc}]dev-repo: "git+https://github.com/ocaml/dune.git"build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@doc" {with-doc}]]url {checksum: []}x-commit-hash: "dea03875affccc0620e902d28fed8d6b4351e112""sha256=3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""sha512=04b48501ac16c3608e3b6bfbdbabf810df0fb844ea3b7d25ba50f03b9d6cb1d2c933cf747d694029d82a9777a774e48e5c38ab010fe53ce1eae367da0ed04d6d"src:"https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz""dune" {>= "2.9"}maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
opam-version: "2.0"synopsis: "Embed build informations inside executable"description: """The build-info library allows to access information about how theexecutable was built, such as the version of the project at which itwas built or the list of statically linked libraries with theirversions. It supports reporting the version from the version controlsystem during development to get an precise reference of when theexecutable was built."""license: "MIT"homepage: "https://github.com/ocaml/dune"doc: "https://dune.readthedocs.io/"bug-reports: "https://github.com/ocaml/dune/issues"depends: ["odoc" {with-doc}]dev-repo: "git+https://github.com/ocaml/dune.git"build: [["dune" "subst"] {dev}["dune""build""-p"name"-j"jobs"@install""@doc" {with-doc}]]url {checksum: []}x-commit-hash: "dea03875affccc0620e902d28fed8d6b4351e112""sha256=3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""sha512=04b48501ac16c3608e3b6bfbdbabf810df0fb844ea3b7d25ba50f03b9d6cb1d2c933cf747d694029d82a9777a774e48e5c38ab010fe53ce1eae367da0ed04d6d"src:"https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz""dune" {>= "2.9"}maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
opam-version: "2.0"maintainer: "yallop@gmail.com"homepage: "https://github.com/ocamllabs/ocaml-ctypes"doc: "http://ocamllabs.github.io/ocaml-ctypes"dev-repo: "git+http://github.com/ocamllabs/ocaml-ctypes.git"bug-reports: "http://github.com/ocamllabs/ocaml-ctypes/issues"license: "MIT"build: [[make "XEN=%{mirage-xen:enable}%" "libffi.config"]{ctypes-foreign:installed}["touch" "libffi.config"] {!ctypes-foreign:installed}[make "XEN=%{mirage-xen:enable}%" "ctypes-base" "ctypes-stubs"][make "XEN=%{mirage-xen:enable}%" "ctypes-foreign"]{ctypes-foreign:installed}[make "test"] {with-test}]install: [[make "install" "XEN=%{mirage-xen:enable}%"]]depends: ["integers" { >= "0.3.0" }"ocamlfind" {build}"lwt" {with-test & >= "3.2.0"}"ctypes-foreign" {with-test}"ounit" {with-test}"conf-ncurses" {with-test}"bigarray-compat"]depopts: ["ctypes-foreign""mirage-xen"]tags: ["org:ocamllabs" "org:mirage"]synopsis: "Combinators for binding to C libraries without writing any C"description: """ctypes is a library for binding to C libraries using pure OCaml. The primaryaim is to make writing C extensions as straightforward as possible.The core of ctypes is a set of combinators for describing the structure of Ctypes -- numeric types, arrays, pointers, structs, unions and functions. Youcan use these combinators to describe the types of the functions that you wantto call, then bind directly to those functions -- all without writing orgenerating any C!To install the optional `ctypes.foreign` interface (which uses `libffi` toprovide dynamic access to foreign libraries), you will need to also installthe `ctypes-foreign` optional dependency:opam install ctypes ctypes-foreignThis will make the `ctypes.foreign` ocamlfind subpackage available."""authors: "yallop@gmail.com"url {}conflicts: ["mirage-xen" {>= "6.0.0"}]src: "https://github.com/ocamllabs/ocaml-ctypes/archive/0.20.0.tar.gz"checksum: "md5=e286bc69e536e581529f01059dd4bbb3""ocaml" {>= "4.03.0"}
opam-version: "2.0"synopsis: "Parsing and printing of S-expressions in Canonical form"description: """This library provides minimal support for Canonical S-expressions[1]. Canonical S-expressions are a binary encoding of S-expressionsthat is super simple and well suited for communication betweenprograms.This library only provides a few helpers for simple applications. Ifyou need more advanced support, such as parsing from more fancy inputsources, you should consider copying the code of this library givenhow simple parsing S-expressions in canonical form is.To avoid a dependency on a particular S-expression library, the onlymodule of this library is parameterised by the type of S-expressions.[1] https://en.wikipedia.org/wiki/Canonical_S-expressions"""maintainer: ["Jeremie Dimino <jeremie@dimino.org>"]authors: ["Quentin Hocquet <mefyl@gruntech.org>""Jeremie Dimino <jeremie@dimino.org>"]license: "MIT"homepage: "https://github.com/ocaml-dune/csexp"doc: "https://ocaml-dune.github.io/csexp/"bug-reports: "https://github.com/ocaml-dune/csexp/issues"depends: ["dune" {>= "1.11"}]dev-repo: "git+https://github.com/ocaml-dune/csexp.git"build: [["dune""build""-p"name"-j"jobs"@install""@doc" {with-doc}]]url {src:checksum: []}"sha256=d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02""sha512=d785bbabaff9f6bf601399149ef0a42e5e99647b54e27f97ef1625907793dda22a45bf83e0e8a1eba2c63634c5484b54739ff0904ef556f5fc592efa38af7505""https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz"x-commit-hash: "7eeb86206819d2b1782d6cde1be9d6cf8b5fc851"# Tests disabled because of a cyclic dependency with csexp, dune-configurator and ppx_expect# "@runtest" {with-test}["dune" "subst"] {dev}"ocaml" {>= "4.03.0"}# "ppx_expect" {with-test & >= "v0.14"}"odoc" {with-doc}"Jane Street Group, LLC"
opam-version: "2.0"maintainer: "martin@mjambon.com"authors: "Martin Jambon"license: "BSD-3-Clause"homepage: "https://github.com/ocaml-community/cppo"doc: "https://ocaml-community.github.io/cppo/"bug-reports: "https://github.com/ocaml-community/cppo/issues"depends: ["ocaml" {>= "4.02.3"}"dune" {>= "1.0"}"base-unix"]build: [["dune" "build" "-p" name "-j" jobs]["dune" "runtest" "-p" name "-j" jobs] {with-test}]dev-repo: "git+https://github.com/ocaml-community/cppo.git"synopsis: "Code preprocessor like cpp for OCaml"description: """Cppo is an equivalent of the C preprocessor for OCaml programs.It allows the definition of simple macros and file inclusion.Cppo is:* more OCaml-friendly than cpp* easy to learn without consulting a manual* reasonably fast* simple to install and to maintain"""url {checksum: []}"md5=fed401197d86f9089e89f6cbdf1d660d""sha512=069bbe0ef09c03b0dc4b5795f909c3ef872fe99c6f1e6704a0fa97594b1570b3579226ec67fe11d696ccc349a4585055bbaf07c65eff423aa45af28abf38c858"src: "https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz"["dune" "subst"] {dev}
opam-version: "2.0"maintainer: "Lucas Pluvinage <lucas.pluvinage@gmail.com>"license: "ISC"homepage: "https://github.com/mirage/bigarray-compat"bug-reports: "https://github.com/mirage/bigarray-compat/issues"depends: ["ocaml" {>= "4.02.3"}"dune" {>= "1.0"}]url {checksum: []}x-commit-hash: "2ea842ba4ab2cfee7b711f7ad927917f3179a6f9""sha256=434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5""sha512=7be283fd957ee168ce1e62835d22114da405e4b7da9619b4f2030a832d45ca210a0c8f1d1c57c92e224f3512308a8a0f0923b94f44b6f582acbe0e7728d179d4"src:"https://github.com/mirage/bigarray-compat/releases/download/v1.1.0/bigarray-compat-1.1.0.tbz"synopsis:"Compatibility library to use Stdlib.Bigarray when possible"dev-repo: "git+https://github.com/mirage/bigarray-compat.git"build: [["dune" "subst"] {dev}["dune" "build" "-p" name "-j" jobs]]authors: [ "Lucas Pluvinage <lucas.pluvinage@gmail.com>" ]
opam-version: "2.0"homepage: "https://github.com/janestreet/base"bug-reports: "https://github.com/janestreet/base/issues"dev-repo: "git+https://github.com/janestreet/base.git"doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/base/index.html"license: "MIT"build: [["dune" "build" "-p" name "-j" jobs]]depends: ["ocaml" {>= "4.08.0"}"sexplib0" {>= "v0.14" & < "v0.15"}"dune" {>= "2.0.0"}"dune-configurator"]synopsis: "Full standard library replacement for OCaml"description: "Full standard library replacement for OCamlBase is a complete and portable alternative to the OCaml standardlibrary. It provides all standard functionalities one would expectfrom a language standard library. It uses consistent conventionsacross all of its module.Base aims to be usable in any context. As a result system dependentfeatures such as I/O are not offered by Base. They are insteadprovided by companion libraries such as stdio:https://github.com/janestreet/stdio"url {}src: "https://github.com/janestreet/base/archive/v0.14.3.tar.gz"checksum: "sha256=e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a"maintainer: "Jane Street developers"authors: ["Jane Street Group, LLC"]
{"root": "@discopotty/opus@link-dev:./package.json","node": {"yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79@d41d8cd9": {"id":"yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79@d41d8cd9","name": "yarn-pkg-config","version":"github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79","source": {"type": "install","source": ["github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79"]},"overrides": [],"dependencies": [],"devDependencies": []},"name": "ocaml","source": {"type": "install","source": []},"overrides": [],"dependencies": [],"devDependencies": []},"esy-m4@github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7@d41d8cd9": {"id":"esy-m4@github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7@d41d8cd9","name": "esy-m4","version":"github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7","source": {"type": "install","source": ["github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7"]},"overrides": [],"dependencies": [],"devDependencies": []},"esy-libopus@archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b@a8705a59": {"id":"esy-libopus@archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b@a8705a59","name": "esy-libopus","version":"archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b","source": {"type": "install","source": ["archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b"]},"overrides": [ "../esy-libopus" ],"dependencies": ["@opam/conf-pkg-config@opam:1.3@93481236","@opam/conf-autoconf@github:esy-packages/esy-autoconf:package.json#fb93edf@d41d8cd9"],"devDependencies": []},"esy-libffi@github:esy-ocaml/libffi#c61127dba57b18713039ab9c1892c9f2563e280c@d41d8cd9": {"id":"esy-libffi@github:esy-ocaml/libffi#c61127dba57b18713039ab9c1892c9f2563e280c@d41d8cd9","name": "esy-libffi","version":"github:esy-ocaml/libffi#c61127dba57b18713039ab9c1892c9f2563e280c","source": {"type": "install","source": ["github:esy-ocaml/libffi#c61127dba57b18713039ab9c1892c9f2563e280c"]},"overrides": [],"dependencies": [],"devDependencies": []},"esy-help2man@github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443@d41d8cd9": {"id":"esy-help2man@github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443@d41d8cd9","name": "esy-help2man","version":"github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443","source": {"type": "install","source": ["github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443"]},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/yojson","version": "opam:1.7.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/b8/b89d39ca3f8c532abe5f547ad3b8f84d#md5:b89d39ca3f8c532abe5f547ad3b8f84d","archive:https://github.com/ocaml-community/yojson/releases/download/1.7.0/yojson-1.7.0.tbz#md5:b89d39ca3f8c532abe5f547ad3b8f84d"],"opam": {"name": "yojson","version": "1.7.0","path": "esy.lock/opam/yojson.1.7.0"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/uutf@opam:1.0.2@4440868f": {"id": "@opam/uutf@opam:1.0.2@4440868f","name": "@opam/uutf","version": "opam:1.0.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/a7/a7c542405a39630c689a82bd7ef2292c#md5:a7c542405a39630c689a82bd7ef2292c","archive:http://erratique.ch/software/uutf/releases/uutf-1.0.2.tbz#md5:a7c542405a39630c689a82bd7ef2292c"],"opam": {"name": "uutf","version": "1.0.2","path": "esy.lock/opam/uutf.1.0.2"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/cmdliner@opam:1.0.4@93208aac","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/uuseg","source": {"type": "install","source": [],"opam": {"name": "uuseg",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/cmdliner@opam:1.0.4@93208aac","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/uucp","source": {"type": "install","source": [],"opam": {"name": "uucp",}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/cmdliner@opam:1.0.4@93208aac","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"@opam/uchar@opam:0.0.2@c8218eea": {"id": "@opam/uchar@opam:0.0.2@c8218eea","name": "@opam/uchar","version": "opam:0.0.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/c9/c9ba2c738d264c420c642f7bb1cf4a36#md5:c9ba2c738d264c420c642f7bb1cf4a36","archive:https://github.com/ocaml/uchar/releases/download/v0.0.2/uchar-0.0.2.tbz#md5:c9ba2c738d264c420c642f7bb1cf4a36"],"opam": {"name": "uchar","version": "0.0.2","path": "esy.lock/opam/uchar.0.0.2"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/tyxml","source": {"type": "install","source": [],"opam": {"name": "tyxml",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/topkg","source": {"type": "install","source": [],"opam": {"name": "topkg",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/sexplib0","version": "opam:v0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/37/37aff0af8f8f6f759249475684aebdc4#md5:37aff0af8f8f6f759249475684aebdc4","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/sexplib0-v0.14.0.tar.gz#md5:37aff0af8f8f6f759249475684aebdc4"],"opam": {"name": "sexplib0","version": "v0.14.0","path": "esy.lock/opam/sexplib0.v0.14.0"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/seq@opam:base@d8d7de1d": {"id": "@opam/seq@opam:base@d8d7de1d","name": "@opam/seq","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "seq","version": "base","path": "esy.lock/opam/seq.base"}},"overrides": [],"dependencies": [],},"name": "@opam/result","version": "opam:1.5","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/1b/1b82dec78849680b49ae9a8a365b831b#md5:1b82dec78849680b49ae9a8a365b831b","archive:https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz#md5:1b82dec78849680b49ae9a8a365b831b"],"opam": {"name": "result","version": "1.5","path": "esy.lock/opam/result.1.5"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/re","source": {"type": "install","source": [],"opam": {"name": "re",}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@opam/cmdliner@opam:1.0.4@93208aac","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/cmdliner@opam:1.0.4@93208aac",]},"name": "@opam/ocamlformat","source": {"type": "install","source": [],"opam": {"name": "ocamlformat",}},"overrides": [],"dependencies": ["@opam/fpath@opam:0.7.3@674d8125","@opam/cmdliner@opam:1.0.4@93208aac","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/fpath@opam:0.7.3@674d8125","@opam/cmdliner@opam:1.0.4@93208aac",]},"@opam/ocamlfind@opam:1.8.1@b7dc3072": {"id": "@opam/ocamlfind@opam:1.8.1@b7dc3072","name": "@opam/ocamlfind","version": "opam:1.8.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/18/18ca650982c15536616dea0e422cbd8c#md5:18ca650982c15536616dea0e422cbd8c","archive:http://download2.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c","archive:http://download.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c"],"opam": {"name": "ocamlfind","version": "1.8.1","path": "esy.lock/opam/ocamlfind.1.8.1"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override"}],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],},"name": "@opam/ocamlbuild","version": "opam:0.14.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/87/87b29ce96958096c0a1a8eeafeb6268077b2d11e1bf2b3de0f5ebc9cf8d42e78#sha256:87b29ce96958096c0a1a8eeafeb6268077b2d11e1bf2b3de0f5ebc9cf8d42e78","archive:https://github.com/ocaml/ocamlbuild/archive/0.14.0.tar.gz#sha256:87b29ce96958096c0a1a8eeafeb6268077b2d11e1bf2b3de0f5ebc9cf8d42e78"],"opam": {"name": "ocamlbuild","version": "0.14.0","path": "esy.lock/opam/ocamlbuild.0.14.0"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override"}],"dependencies": [],},"name": "@opam/ocaml-version","source": {"type": "install","source": [],"opam": {"name": "ocaml-version",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/ocaml-migrate-parsetree","source": {"type": "install","source": [],"opam": {"name": "ocaml-migrate-parsetree",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/ocaml-lsp-server","source": {"type": "install","source": [],"opam": {"name": "ocaml-lsp-server",}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],"devDependencies": []},"source": {"type": "install","source": [],"opam": {}},"overrides": [],"dependencies": [],},"name": "@opam/integers","source": {"type": "install","source": [],"opam": {"name": "integers",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/fpath@opam:0.7.3@674d8125": {"id": "@opam/fpath@opam:0.7.3@674d8125","name": "@opam/fpath","version": "opam:0.7.3","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/07/0740b530e8fed5b0adc5eee8463cfc2f#md5:0740b530e8fed5b0adc5eee8463cfc2f","archive:https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz#md5:0740b530e8fed5b0adc5eee8463cfc2f"],"opam": {"name": "fpath","version": "0.7.3","path": "esy.lock/opam/fpath.0.7.3"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/astring@opam:0.8.5@1300cee8","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/fix","source": {"type": "install","source": [],"opam": {"name": "fix",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/easy-format","version": "opam:1.3.2","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/34/3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926#sha256:3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926","archive:https://github.com/mjambon/easy-format/releases/download/1.3.2/easy-format-1.3.2.tbz#sha256:3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926"],"opam": {"name": "easy-format","version": "1.3.2","path": "esy.lock/opam/easy-format.1.3.2"}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/dune-configurator","source": {"type": "install","source": [],"opam": {"name": "dune-configurator",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/dune-build-info","source": {"type": "install","source": [],"opam": {"name": "dune-build-info",}},"overrides": [],"dependencies": [],},"name": "@opam/dune","source": {"type": "install","source": [],"opam": {"name": "dune",}},"overrides": [],"dependencies": ["@opam/base-threads@opam:base@36803084","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-threads@opam:base@36803084"]},"name": "@opam/dot-merlin-reader","version": "opam:4.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/14/14a36d6fb8646a5df4530420a7861722f1a4ee04753717947305e3676031e7cd#sha256:14a36d6fb8646a5df4530420a7861722f1a4ee04753717947305e3676031e7cd","archive:https://github.com/ocaml/merlin/releases/download/v4.1/dot-merlin-reader-v4.1.tbz#sha256:14a36d6fb8646a5df4530420a7861722f1a4ee04753717947305e3676031e7cd"],"opam": {"name": "dot-merlin-reader","version": "4.1","path": "esy.lock/opam/dot-merlin-reader.4.1"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072",]},"@opam/ctypes-foreign@opam:0.4.0@6d218780": {"id": "@opam/ctypes-foreign@opam:0.4.0@6d218780","name": "@opam/ctypes-foreign","version": "opam:0.4.0","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "ctypes-foreign","version": "0.4.0","path": "esy.lock/opam/ctypes-foreign.0.4.0"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__ctypes_foreign_opam__c__0.4.0_opam_override"}],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9","@esy-ocaml/libffi@3.2.10@d41d8cd9"],},"name": "@opam/ctypes","source": {"type": "install","source": [],"opam": {"name": "ctypes",}},"overrides": [{"opamoverride":}],"dependencies": ["@opam/ctypes-foreign@opam:0.4.0@6d218780","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/csexp","source": {"type": "install","source": [],"opam": {"name": "csexp",}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/cppo","source": {"type": "install","source": [],"opam": {"name": "cppo",}},"overrides": [],"dependencies": ["@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["@opam/base-unix@opam:base@87d0b2eb"]},"@opam/conf-pkg-config@opam:1.3@93481236": {"id": "@opam/conf-pkg-config@opam:1.3@93481236","name": "@opam/conf-pkg-config","version": "opam:1.3","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-pkg-config","version": "1.3","path": "esy.lock/opam/conf-pkg-config.1.3"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__conf_pkg_config_opam__c__1.3_opam_override"}],"dependencies": ["yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/conf-m4@opam:1@196bf219": {"id": "@opam/conf-m4@opam:1@196bf219","name": "@opam/conf-m4","version": "opam:1","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-m4","version": "1","path": "esy.lock/opam/conf-m4.1"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override"}],"dependencies": ["esy-m4@github:esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7@d41d8cd9","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/conf-libopus@link:../esy-libopus/conf-libopus.opam": {"id": "@opam/conf-libopus@link:../esy-libopus/conf-libopus.opam","name": "@opam/conf-libopus","version": "link:../esy-libopus/conf-libopus.opam","source": {"type": "link","path": "../esy-libopus","manifest": "conf-libopus.opam"},"overrides": [{ "dependencies": { "esy-libopus": "../esy-libopus" } }],"dependencies": ["esy-libopus@archive:https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz#sha1:ed226536537861c9f0f1ef7ca79dffc225bc181b@a8705a59","@opam/conf-pkg-config@opam:1.3@93481236","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"name": "@opam/conf-libffi","version": "opam:2.0.0","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "conf-libffi","version": "2.0.0","path": "esy.lock/opam/conf-libffi.2.0.0"}},"overrides": [{"opamoverride":"esy.lock/overrides/opam__s__conf_libffi_opam__c__2.0.0_opam_override"}],"dependencies": ["esy-libffi@github:esy-ocaml/libffi#c61127dba57b18713039ab9c1892c9f2563e280c@d41d8cd9","@opam/conf-pkg-config@opam:1.3@93481236","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/conf-autoconf@github:esy-packages/esy-autoconf:package.json#fb93edf@d41d8cd9": {"id":"@opam/conf-autoconf@github:esy-packages/esy-autoconf:package.json#fb93edf@d41d8cd9","name": "@opam/conf-autoconf","version": "github:esy-packages/esy-autoconf:package.json#fb93edf","source": {"type": "install","source": [ "github:esy-packages/esy-autoconf:package.json#fb93edf" ]},"overrides": [],"dependencies": ["esy-help2man@github:esy-packages/esy-help2man#c8e6931d1dcf58a81bd801145a777fd3b115c443@d41d8cd9"],"devDependencies": []},"@opam/cmdliner@opam:1.0.4@93208aac": {"id": "@opam/cmdliner@opam:1.0.4@93208aac","name": "@opam/cmdliner","version": "opam:1.0.4","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/fe/fe2213d0bc63b1e10a2d0aa66d2fc8d9#md5:fe2213d0bc63b1e10a2d0aa66d2fc8d9","archive:http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.4.tbz#md5:fe2213d0bc63b1e10a2d0aa66d2fc8d9"],"opam": {"name": "cmdliner","version": "1.0.4","path": "esy.lock/opam/cmdliner.1.0.4"}},"overrides": [],"dependencies": [],},"name": "@opam/biniou","version": "opam:1.2.1","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/35/35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335#sha256:35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335","archive:https://github.com/mjambon/biniou/releases/download/1.2.1/biniou-1.2.1.tbz#sha256:35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335"],"opam": {"name": "biniou","version": "1.2.1","path": "esy.lock/opam/biniou.1.2.1"}},"overrides": [],"dependencies": [],"devDependencies": []},"name": "@opam/bigarray-compat","source": {"type": "install","source": [],"opam": {"name": "bigarray-compat",}},"overrides": [],"dependencies": ["@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": []},"@opam/base-unix@opam:base@87d0b2eb": {"id": "@opam/base-unix@opam:base@87d0b2eb","name": "@opam/base-unix","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-unix","version": "base","path": "esy.lock/opam/base-unix.base"}},"overrides": [],"dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ],"devDependencies": []},"@opam/base-threads@opam:base@36803084": {"id": "@opam/base-threads@opam:base@36803084","name": "@opam/base-threads","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-threads","version": "base","path": "esy.lock/opam/base-threads.base"}},"overrides": [],"dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ],"devDependencies": []},"name": "@opam/base","source": {"type": "install","source": [],"opam": {"name": "base",}},"overrides": [],"dependencies": [],"devDependencies": []},"@opam/astring@opam:0.8.5@1300cee8": {"id": "@opam/astring@opam:0.8.5@1300cee8","name": "@opam/astring","version": "opam:0.8.5","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/md5/e1/e148907c24157d1df43bec89b58b3ec8#md5:e148907c24157d1df43bec89b58b3ec8","archive:https://erratique.ch/software/astring/releases/astring-0.8.5.tbz#md5:e148907c24157d1df43bec89b58b3ec8"],"opam": {"name": "astring","version": "0.8.5","path": "esy.lock/opam/astring.0.8.5"}},"overrides": [],"dependencies": ["@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],},"@esy-ocaml/substs@0.0.1@d41d8cd9": {"id": "@esy-ocaml/substs@0.0.1@d41d8cd9","name": "@esy-ocaml/substs","version": "0.0.1","source": {"type": "install","source": ["archive:https://registry.npmjs.org/@esy-ocaml/substs/-/substs-0.0.1.tgz#sha1:59ebdbbaedcda123fc7ed8fb2b302b7d819e9a46"]},"overrides": [],"dependencies": [],"devDependencies": []},"@esy-ocaml/libffi@3.2.10@d41d8cd9": {"id": "@esy-ocaml/libffi@3.2.10@d41d8cd9","name": "@esy-ocaml/libffi","version": "3.2.10","source": {"type": "install","source": ["archive:https://registry.npmjs.org/@esy-ocaml/libffi/-/libffi-3.2.10.tgz#sha1:72697f135ee228b94294ec32f0d5b0fa313de403"]},"overrides": [],"dependencies": [],"devDependencies": []},"@discopotty/opus@link-dev:./package.json": {"id": "@discopotty/opus@link-dev:./package.json","name": "@discopotty/opus","version": "link-dev:./package.json","source": {"type": "link-dev","path": ".","manifest": "package.json"},"overrides": [],"dependencies": ["@opam/ctypes-foreign@opam:0.4.0@6d218780","@opam/conf-libopus@link:../esy-libopus/conf-libopus.opam"],"devDependencies": []}}}"@opam/odoc@opam:2.0.2@8ef5ea1b","@opam/ocamlformat@opam:0.20.1@6e37e311","@opam/ocaml-lsp-server@opam:1.9.0@671f2077","@opam/merlin@opam:4.4-412@c7695ce2""@opam/ctypes@opam:0.20.0@4e68beca","ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.0@0dee4078","ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51","ocaml@4.12.0@d41d8cd9", "@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune-configurator@opam:2.9.3@174e411b","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "v0.14.3","path": "esy.lock/opam/base.v0.14.3""archive:https://opam.ocaml.org/cache/sha256/e3/e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a#sha256:e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a","archive:https://github.com/janestreet/base/archive/v0.14.3.tar.gz#sha256:e34dc0dd052a386c84f5f67e71a90720dff76e0edd01f431604404bee86ebe5a""version": "opam:v0.14.3","@opam/base-bytes@opam:base@19d0c2ff": {"id": "@opam/base-bytes@opam:base@19d0c2ff","name": "@opam/base-bytes","version": "opam:base","source": {"type": "install","source": [ "no-source:" ],"opam": {"name": "base-bytes","version": "base","path": "esy.lock/opam/base-bytes.base"}},"overrides": [],"dependencies": ["ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@b7dc3072","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@b7dc3072"]},"@opam/base@opam:v0.14.3@b3ddb868": {"id": "@opam/base@opam:v0.14.3@b3ddb868","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","version": "1.1.0","path": "esy.lock/opam/bigarray-compat.1.1.0""archive:https://opam.ocaml.org/cache/sha256/43/434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5#sha256:434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5","archive:https://github.com/mirage/bigarray-compat/releases/download/v1.1.0/bigarray-compat-1.1.0.tbz#sha256:434469a48d5c84e80d621b13d95eb067f8138c1650a1fd5ae6009a19b93718d5""version": "opam:1.1.0","@opam/bigarray-compat@opam:1.1.0@84cda9d0": {"id": "@opam/bigarray-compat@opam:1.1.0@84cda9d0","ocaml@4.12.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/biniou@opam:1.2.1@420bda02": {"id": "@opam/biniou@opam:1.2.1@420bda02","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"ocaml@4.12.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/conf-libffi@opam:2.0.0@a3db0b0d": {"id": "@opam/conf-libffi@opam:2.0.0@a3db0b0d","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","version": "1.6.8","path": "esy.lock/opam/cppo.1.6.8""archive:https://opam.ocaml.org/cache/md5/fe/fed401197d86f9089e89f6cbdf1d660d#md5:fed401197d86f9089e89f6cbdf1d660d","archive:https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz#md5:fed401197d86f9089e89f6cbdf1d660d""version": "opam:1.6.8","@opam/cppo@opam:1.6.8@7e48217d": {"id": "@opam/cppo@opam:1.6.8@7e48217d","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.5.1","path": "esy.lock/opam/csexp.1.5.1""archive:https://opam.ocaml.org/cache/sha256/d6/d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02#sha256:d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02","archive:https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz#sha256:d605e4065fa90a58800440ef2f33a2d931398bf2c22061a8acb7df845c0aac02""version": "opam:1.5.1","@opam/csexp@opam:1.5.1@8a8fb3a7": {"id": "@opam/csexp@opam:1.5.1@8a8fb3a7","ocaml@4.12.0@d41d8cd9", "@opam/integers@opam:0.5.1@8fb996f8","@opam/bigarray-compat@opam:1.1.0@84cda9d0""@opam/bigarray-compat@opam:1.1.0@84cda9d0","ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/integers@opam:0.5.1@8fb996f8","esy.lock/overrides/opam__s__ctypes_opam__c__0.20.0_opam_override""version": "0.20.0","path": "esy.lock/opam/ctypes.0.20.0""archive:https://opam.ocaml.org/cache/md5/e2/e286bc69e536e581529f01059dd4bbb3#md5:e286bc69e536e581529f01059dd4bbb3","archive:https://github.com/ocamllabs/ocaml-ctypes/archive/0.20.0.tar.gz#md5:e286bc69e536e581529f01059dd4bbb3""version": "opam:0.20.0","@opam/ctypes@opam:0.20.0@4e68beca": {"id": "@opam/ctypes@opam:0.20.0@4e68beca","devDependencies": [ "@opam/conf-libffi@opam:2.0.0@a3db0b0d" ]"@opam/conf-libffi@opam:2.0.0@a3db0b0d","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/result@opam:1.5@1c6a6533","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7","ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/result@opam:1.5@1c6a6533","@opam/dot-merlin-reader@opam:4.1@84436e1c": {"id": "@opam/dot-merlin-reader@opam:4.1@84436e1c","ocaml@4.12.0@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb","ocaml@4.12.0@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb","version": "2.9.3","path": "esy.lock/opam/dune.2.9.3""archive:https://opam.ocaml.org/cache/sha256/3e/3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6","archive:https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""version": "opam:2.9.3","@opam/dune@opam:2.9.3@f57a6d69": {"id": "@opam/dune@opam:2.9.3@f57a6d69","devDependencies": [ "@opam/dune@opam:2.9.3@f57a6d69" ]"@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "2.9.3","path": "esy.lock/opam/dune-build-info.2.9.3""archive:https://opam.ocaml.org/cache/sha256/3e/3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6","archive:https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""version": "opam:2.9.3","@opam/dune-build-info@opam:2.9.3@ae518c8c": {"id": "@opam/dune-build-info@opam:2.9.3@ae518c8c","ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7","version": "2.9.3","path": "esy.lock/opam/dune-configurator.2.9.3""archive:https://opam.ocaml.org/cache/sha256/3e/3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6","archive:https://github.com/ocaml/dune/releases/download/2.9.3/dune-site-2.9.3.tbz#sha256:3e65ec73ab2c80d50d4ffd6c46cbfb22eacd0e5587a4be8af8ae69547d5f88d6""version": "opam:2.9.3","@opam/dune-configurator@opam:2.9.3@174e411b": {"id": "@opam/dune-configurator@opam:2.9.3@174e411b","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@opam/either@opam:1.0.0@be5a1416": {"id": "@opam/either@opam:1.0.0@be5a1416","name": "@opam/either","version": "opam:1.0.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/bf/bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884#sha256:bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884","archive:https://github.com/mirage/either/releases/download/1.0.0/either-1.0.0.tbz#sha256:bf674de3312dee7b7215f07df1e8a96eb3d679164b8a918cdd95b8d97e505884"],"opam": {"name": "either","version": "1.0.0","path": "esy.lock/opam/either.1.0.0"}},"overrides": [],"dependencies": ["@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "@opam/dune@opam:2.9.3@f57a6d69" ]},"@opam/easy-format@opam:1.3.2@1ea9f987": {"id": "@opam/easy-format@opam:1.3.2@1ea9f987","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","version": "20220121","path": "esy.lock/opam/fix.20220121""archive:https://opam.ocaml.org/cache/md5/48/48d8a5bdff23cf7fbf9288877df2b6aa#md5:48d8a5bdff23cf7fbf9288877df2b6aa","archive:https://gitlab.inria.fr/fpottier/fix/-/archive/20220121/archive.tar.gz#md5:48d8a5bdff23cf7fbf9288877df2b6aa""version": "opam:20220121","@opam/fmt@opam:0.9.0@87213963": {"id": "@opam/fmt@opam:0.9.0@87213963","name": "@opam/fmt","version": "opam:0.9.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha512/66/66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b#sha512:66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b","archive:https://erratique.ch/software/fmt/releases/fmt-0.9.0.tbz#sha512:66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b"],"opam": {"name": "fmt","version": "0.9.0","path": "esy.lock/opam/fmt.0.9.0"}},"overrides": [],"dependencies": ["ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/ocamlbuild@opam:0.14.0@0dee4078","@opam/cmdliner@opam:1.0.4@93208aac","@opam/base-unix@opam:base@87d0b2eb","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]},"@opam/fix@opam:20220121@17b9a1a4": {"id": "@opam/fix@opam:20220121@17b9a1a4","ocaml@4.12.0@d41d8cd9", "@opam/astring@opam:0.8.5@1300cee8""@opam/ocamlbuild@opam:0.14.0@0dee4078","ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","version": "0.5.1","path": "esy.lock/opam/integers.0.5.1""archive:https://opam.ocaml.org/cache/md5/24/24d629966763b4956edfb7e64d6c5427#md5:24d629966763b4956edfb7e64d6c5427","archive:https://github.com/ocamllabs/ocaml-integers/archive/0.5.1.tar.gz#md5:24d629966763b4956edfb7e64d6c5427""version": "opam:0.5.1","@opam/integers@opam:0.5.1@8fb996f8": {"id": "@opam/integers@opam:0.5.1@8fb996f8","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"ocaml@4.12.0@d41d8cd9", "@opam/topkg@opam:1.0.5@0aa59f51","@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/ocamlbuild@opam:0.14.0@0dee4078","@opam/fmt@opam:0.9.0@87213963","@opam/cmdliner@opam:1.0.4@93208aac","@opam/base-threads@opam:base@36803084","@esy-ocaml/substs@0.0.1@d41d8cd9""name": "logs","version": "0.7.0","path": "esy.lock/opam/logs.0.7.0""archive:https://opam.ocaml.org/cache/md5/2b/2bf021ca13331775e33cf34ab60246f7#md5:2bf021ca13331775e33cf34ab60246f7","archive:https://erratique.ch/software/logs/releases/logs-0.7.0.tbz#md5:2bf021ca13331775e33cf34ab60246f7""@opam/logs@opam:0.7.0@46a3dffc": {"id": "@opam/logs@opam:0.7.0@46a3dffc","name": "@opam/logs","version": "opam:0.7.0","ocaml@4.12.0@d41d8cd9", "@opam/menhirSdk@opam:20211230@9e0306fc","@opam/menhirLib@opam:20211230@bd2ff9c1","@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/menhirSdk@opam:20211230@9e0306fc","@opam/menhirLib@opam:20211230@bd2ff9c1","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "menhir","version": "20211230","path": "esy.lock/opam/menhir.20211230""archive:https://opam.ocaml.org/cache/md5/ff/ff8b8c4c58b1365128d0d2aeaad85d1c#md5:ff8b8c4c58b1365128d0d2aeaad85d1c","archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20211230/archive.tar.gz#md5:ff8b8c4c58b1365128d0d2aeaad85d1c""@opam/menhir@opam:20211230@5b69400c": {"id": "@opam/menhir@opam:20211230@5b69400c","name": "@opam/menhir","version": "opam:20211230","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","name": "menhirLib","version": "20211230","path": "esy.lock/opam/menhirLib.20211230""archive:https://opam.ocaml.org/cache/md5/ff/ff8b8c4c58b1365128d0d2aeaad85d1c#md5:ff8b8c4c58b1365128d0d2aeaad85d1c","archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20211230/archive.tar.gz#md5:ff8b8c4c58b1365128d0d2aeaad85d1c""@opam/menhirLib@opam:20211230@bd2ff9c1": {"id": "@opam/menhirLib@opam:20211230@bd2ff9c1","name": "@opam/menhirLib","version": "opam:20211230","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9""name": "menhirSdk","version": "20211230","path": "esy.lock/opam/menhirSdk.20211230""archive:https://opam.ocaml.org/cache/md5/ff/ff8b8c4c58b1365128d0d2aeaad85d1c#md5:ff8b8c4c58b1365128d0d2aeaad85d1c","archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20211230/archive.tar.gz#md5:ff8b8c4c58b1365128d0d2aeaad85d1c""@opam/menhirSdk@opam:20211230@9e0306fc": {"id": "@opam/menhirSdk@opam:20211230@9e0306fc","name": "@opam/menhirSdk","version": "opam:20211230","ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/dot-merlin-reader@opam:4.1@84436e1c","@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/result@opam:1.5@1c6a6533", "@opam/dune@opam:2.9.3@f57a6d69","@opam/dot-merlin-reader@opam:4.1@84436e1c","@opam/csexp@opam:1.5.1@8a8fb3a7", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "merlin","version": "4.4-412","path": "esy.lock/opam/merlin.4.4-412""archive:https://opam.ocaml.org/cache/sha256/16/16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3#sha256:16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3","archive:https://github.com/ocaml/merlin/releases/download/v4.4-412/merlin-4.4-412.tbz#sha256:16d879496882d44ee0a5392e20b3824240e70f1585b9ae6d936ff5f3a3beb2a3""@opam/merlin@opam:4.4-412@c7695ce2": {"id": "@opam/merlin@opam:4.4-412@c7695ce2","name": "@opam/merlin","version": "opam:4.4-412","ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/spawn@opam:v0.15.0@4a27a4cb","@opam/result@opam:1.5@1c6a6533", "@opam/re@opam:1.10.3@0585c65d","@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","@opam/pp@opam:1.1.2@89ad03b5","@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7""ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/spawn@opam:v0.15.0@4a27a4cb","@opam/result@opam:1.5@1c6a6533", "@opam/re@opam:1.10.3@0585c65d","@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","@opam/pp@opam:1.1.2@89ad03b5","@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7","@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.9.0","path": "esy.lock/opam/ocaml-lsp-server.1.9.0""archive:https://opam.ocaml.org/cache/sha256/70/7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9#sha256:7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9","archive:https://github.com/ocaml/ocaml-lsp/releases/download/1.9.0/jsonrpc-1.9.0.tbz#sha256:7046491eb9d0417d23d2a0ce39f9bc3bb9b75521453106f723c8e5f18c2584a9""version": "opam:1.9.0","@opam/ocaml-lsp-server@opam:1.9.0@671f2077": {"id": "@opam/ocaml-lsp-server@opam:1.9.0@671f2077","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","version": "2.3.0","path": "esy.lock/opam/ocaml-migrate-parsetree.2.3.0""archive:https://opam.ocaml.org/cache/sha256/10/108126b247f190e04c8afd3d72ced0b63ffdf73c3f801f09be5db0cd7280bf0a#sha256:108126b247f190e04c8afd3d72ced0b63ffdf73c3f801f09be5db0cd7280bf0a","archive:https://github.com/ocaml-ppx/ocaml-migrate-parsetree/releases/download/v2.3.0/ocaml-migrate-parsetree-2.3.0.tbz#sha256:108126b247f190e04c8afd3d72ced0b63ffdf73c3f801f09be5db0cd7280bf0a""version": "opam:2.3.0","@opam/ocaml-migrate-parsetree@opam:2.3.0@c1e63238": {"id": "@opam/ocaml-migrate-parsetree@opam:2.3.0@c1e63238","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","version": "3.4.0","path": "esy.lock/opam/ocaml-version.3.4.0""archive:https://opam.ocaml.org/cache/sha256/d8/d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25#sha256:d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25","archive:https://github.com/ocurrent/ocaml-version/releases/download/v3.4.0/ocaml-version-v3.4.0.tbz#sha256:d8c1beb5e8d8ebb7710b5f434ce66a3ec8b752b1e4d6ba87c4fe27452bdb8a25""version": "opam:3.4.0","@opam/ocaml-version@opam:3.4.0@b6cd49e1": {"id": "@opam/ocaml-version@opam:3.4.0@b6cd49e1","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"ocaml@4.12.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9""@opam/ocamlbuild@opam:0.14.0@0dee4078": {"id": "@opam/ocamlbuild@opam:0.14.0@0dee4078","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"ocaml@4.12.0@d41d8cd9", "@opam/conf-m4@opam:1@196bf219","@opam/base@opam:v0.14.3@b3ddb868""@opam/fix@opam:20220121@17b9a1a4","@opam/either@opam:1.0.0@be5a1416","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69","ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f","@opam/uuseg@opam:14.0.0@7d21466b","@opam/stdio@opam:v0.14.0@a5affb43", "@opam/re@opam:1.10.3@0585c65d","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/ocp-indent@opam:1.8.1@e32a3c50","@opam/ocaml-version@opam:3.4.0@b6cd49e1","@opam/menhirSdk@opam:20211230@9e0306fc","@opam/menhirLib@opam:20211230@bd2ff9c1","@opam/menhir@opam:20211230@5b69400c","@opam/base@opam:v0.14.3@b3ddb868","@opam/fix@opam:20220121@17b9a1a4","@opam/either@opam:1.0.0@be5a1416","@opam/dune-build-info@opam:2.9.3@ae518c8c","@opam/dune@opam:2.9.3@f57a6d69","ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f","@opam/uuseg@opam:14.0.0@7d21466b","@opam/stdio@opam:v0.14.0@a5affb43", "@opam/re@opam:1.10.3@0585c65d","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/ocp-indent@opam:1.8.1@e32a3c50","@opam/ocaml-version@opam:3.4.0@b6cd49e1","@opam/menhirSdk@opam:20211230@9e0306fc","@opam/menhirLib@opam:20211230@bd2ff9c1","@opam/menhir@opam:20211230@5b69400c","version": "0.20.1","path": "esy.lock/opam/ocamlformat.0.20.1""archive:https://opam.ocaml.org/cache/sha256/7d/7d3a51645416fa78287344fa03af6b78450067a1a61e4790bf1b29779cd10235#sha256:7d3a51645416fa78287344fa03af6b78450067a1a61e4790bf1b29779cd10235","archive:https://github.com/ocaml-ppx/ocamlformat/releases/download/0.20.1/ocamlformat-0.20.1.tbz#sha256:7d3a51645416fa78287344fa03af6b78450067a1a61e4790bf1b29779cd10235""version": "opam:0.20.1","@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d": {"id": "@opam/ocamlformat-rpc-lib@opam:0.19.0@125cf11d","name": "@opam/ocamlformat-rpc-lib","version": "opam:0.19.0","source": {"type": "install","source": ["archive:https://opam.ocaml.org/cache/sha256/62/62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46#sha256:62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46","archive:https://github.com/ocaml-ppx/ocamlformat/releases/download/0.19.0/ocamlformat-0.19.0.tbz#sha256:62fc46aae8f0a4a33ce7f8d7726d7109bff615ea6fcb50d1482f21d20ee50f46"],"opam": {"name": "ocamlformat-rpc-lib","version": "0.19.0","path": "esy.lock/opam/ocamlformat-rpc-lib.0.19.0"}},"overrides": [],"dependencies": ["ocaml@4.12.0@d41d8cd9", "@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7","@esy-ocaml/substs@0.0.1@d41d8cd9"],"devDependencies": ["ocaml@4.12.0@d41d8cd9", "@opam/sexplib0@opam:v0.14.0@155c136c","@opam/dune@opam:2.9.3@f57a6d69", "@opam/csexp@opam:1.5.1@8a8fb3a7"]},"@opam/ocamlformat@opam:0.20.1@6e37e311": {"id": "@opam/ocamlformat@opam:0.20.1@6e37e311","@opam/base-bytes@opam:base@19d0c2ff""ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/dune@opam:2.9.3@f57a6d69","@opam/base-bytes@opam:base@19d0c2ff","ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/dune@opam:2.9.3@f57a6d69","name": "ocp-indent","version": "1.8.1","path": "esy.lock/opam/ocp-indent.1.8.1""archive:https://opam.ocaml.org/cache/md5/70/70db6649a8c08a682ad63730c9752e31#md5:70db6649a8c08a682ad63730c9752e31","archive:https://github.com/OCamlPro/ocp-indent/archive/1.8.1.tar.gz#md5:70db6649a8c08a682ad63730c9752e31""@opam/ocp-indent@opam:1.8.1@e32a3c50": {"id": "@opam/ocp-indent@opam:1.8.1@e32a3c50","name": "@opam/ocp-indent","version": "opam:1.8.1","ocaml@4.12.0@d41d8cd9", "@opam/tyxml@opam:4.5.0@0a609297","@opam/result@opam:1.5@1c6a6533", "@opam/re@opam:1.10.3@0585c65d","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/ocaml-migrate-parsetree@opam:2.3.0@c1e63238","@opam/logs@opam:0.7.0@46a3dffc", "@opam/fpath@opam:0.7.3@674d8125","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/cmdliner@opam:1.0.4@93208aac","@opam/astring@opam:0.8.5@1300cee8""ocaml@4.12.0@d41d8cd9", "@opam/tyxml@opam:4.5.0@0a609297","@opam/result@opam:1.5@1c6a6533", "@opam/re@opam:1.10.3@0585c65d","@opam/odoc-parser@opam:1.0.0@b1029bdf","@opam/ocaml-migrate-parsetree@opam:2.3.0@c1e63238","@opam/logs@opam:0.7.0@46a3dffc", "@opam/fpath@opam:0.7.3@674d8125","@opam/fmt@opam:0.9.0@87213963", "@opam/dune@opam:2.9.3@f57a6d69","@opam/cppo@opam:1.6.8@7e48217d","@opam/cmdliner@opam:1.0.4@93208aac","@opam/astring@opam:0.8.5@1300cee8","name": "odoc","version": "2.0.2","path": "esy.lock/opam/odoc.2.0.2""archive:https://opam.ocaml.org/cache/sha256/41/41fb15e43f49a3b1f436115d1358a0c7a61d38fea9a2b56861af859863629ff0#sha256:41fb15e43f49a3b1f436115d1358a0c7a61d38fea9a2b56861af859863629ff0","archive:https://github.com/ocaml/odoc/releases/download/2.0.2/odoc-2.0.2.tbz#sha256:41fb15e43f49a3b1f436115d1358a0c7a61d38fea9a2b56861af859863629ff0""@opam/odoc@opam:2.0.2@8ef5ea1b": {"id": "@opam/odoc@opam:2.0.2@8ef5ea1b","name": "@opam/odoc","version": "opam:2.0.2","ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533","@opam/dune@opam:2.9.3@f57a6d69", "@opam/astring@opam:0.8.5@1300cee8""ocaml@4.12.0@d41d8cd9", "@opam/result@opam:1.5@1c6a6533","@opam/dune@opam:2.9.3@f57a6d69","@opam/astring@opam:0.8.5@1300cee8","name": "odoc-parser","version": "1.0.0","path": "esy.lock/opam/odoc-parser.1.0.0""archive:https://opam.ocaml.org/cache/sha256/b6/b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1#sha256:b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1","archive:https://github.com/ocaml-doc/odoc-parser/releases/download/1.0.0/odoc-parser-1.0.0.tbz#sha256:b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1""@opam/odoc-parser@opam:1.0.0@b1029bdf": {"id": "@opam/odoc-parser@opam:1.0.0@b1029bdf","name": "@opam/odoc-parser","version": "opam:1.0.0","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@esy-ocaml/substs@0.0.1@d41d8cd9""name": "pp","version": "1.1.2","path": "esy.lock/opam/pp.1.1.2""archive:https://opam.ocaml.org/cache/sha256/e4/e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56#sha256:e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56","archive:https://github.com/ocaml-dune/pp/releases/download/1.1.2/pp-1.1.2.tbz#sha256:e4a4e98d96b1bb76950fcd6da4e938c86d989df4d7e48f02f7a44595f5af1d56""@opam/pp@opam:1.1.2@89ad03b5": {"id": "@opam/pp@opam:1.1.2@89ad03b5","name": "@opam/pp","version": "opam:1.1.2","ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/yojson@opam:1.7.0@69d87312","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""name": "ppx_yojson_conv_lib","version": "v0.14.0","path": "esy.lock/opam/ppx_yojson_conv_lib.v0.14.0""archive:https://opam.ocaml.org/cache/md5/e2/e23c5593a7211ad4fb09e26e9a74698a#md5:e23c5593a7211ad4fb09e26e9a74698a","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/ppx_yojson_conv_lib-v0.14.0.tar.gz#md5:e23c5593a7211ad4fb09e26e9a74698a""@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997": {"id": "@opam/ppx_yojson_conv_lib@opam:v0.14.0@605a6997","name": "@opam/ppx_yojson_conv_lib","version": "opam:v0.14.0","ocaml@4.12.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d","@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "1.10.3","path": "esy.lock/opam/re.1.10.3""archive:https://opam.ocaml.org/cache/sha256/84/846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb#sha256:846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb","archive:https://github.com/ocaml/ocaml-re/releases/download/1.10.3/re-1.10.3.tbz#sha256:846546967f3fe31765935dd40a6460a9424337ecce7b12727fcba49480790ebb""version": "opam:1.10.3","@opam/re@opam:1.10.3@0585c65d": {"id": "@opam/re@opam:1.10.3@0585c65d","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@opam/result@opam:1.5@1c6a6533": {"id": "@opam/result@opam:1.5@1c6a6533","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"ocaml@4.12.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@opam/sexplib0@opam:v0.14.0@155c136c": {"id": "@opam/sexplib0@opam:v0.14.0@155c136c","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","name": "spawn","version": "v0.15.0","path": "esy.lock/opam/spawn.v0.15.0""archive:https://opam.ocaml.org/cache/sha256/31/310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7#sha256:310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7","archive:https://github.com/janestreet/spawn/archive/v0.15.0.tar.gz#sha256:310fb2a50ac7f64c738182cbabd9d27c1aeae1a08107fe14da8d35a87cbb57c7""@opam/spawn@opam:v0.15.0@4a27a4cb": {"id": "@opam/spawn@opam:v0.15.0@4a27a4cb","name": "@opam/spawn","version": "opam:v0.15.0","ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@opam/base@opam:v0.14.3@b3ddb868""ocaml@4.12.0@d41d8cd9", "@opam/dune@opam:2.9.3@f57a6d69","@opam/base@opam:v0.14.3@b3ddb868","name": "stdio","version": "v0.14.0","path": "esy.lock/opam/stdio.v0.14.0""archive:https://opam.ocaml.org/cache/md5/4c/4cbdf15f0be88c3258aaeff9e04e00e9#md5:4cbdf15f0be88c3258aaeff9e04e00e9","archive:https://ocaml.janestreet.com/ocaml-core/v0.14/files/stdio-v0.14.0.tar.gz#md5:4cbdf15f0be88c3258aaeff9e04e00e9""@opam/stdio@opam:v0.14.0@a5affb43": {"id": "@opam/stdio@opam:v0.14.0@a5affb43","name": "@opam/stdio","version": "opam:v0.14.0","ocaml@4.12.0@d41d8cd9", "@opam/ocamlbuild@opam:0.14.0@0dee4078""ocaml@4.12.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@b7dc3072","@opam/ocamlbuild@opam:0.14.0@0dee4078","version": "1.0.5","path": "esy.lock/opam/topkg.1.0.5""archive:https://opam.ocaml.org/cache/sha512/94/9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab#sha512:9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab","archive:https://erratique.ch/software/topkg/releases/topkg-1.0.5.tbz#sha512:9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab""version": "opam:1.0.5","@opam/topkg@opam:1.0.5@0aa59f51": {"id": "@opam/topkg@opam:1.0.5@0aa59f51","ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f","@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.10.3@0585c65d","@opam/dune@opam:2.9.3@f57a6d69""ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f","@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.10.3@0585c65d","@opam/dune@opam:2.9.3@f57a6d69", "@esy-ocaml/substs@0.0.1@d41d8cd9""version": "4.5.0","path": "esy.lock/opam/tyxml.4.5.0""archive:https://opam.ocaml.org/cache/sha256/c6/c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068#sha256:c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068","archive:https://github.com/ocsigen/tyxml/releases/download/4.5.0/tyxml-4.5.0.tbz#sha256:c69accef5df4dd89d38f6aa0baad01e8fda4e9e98bb7dad61bec1452c5716068""version": "opam:4.5.0","@opam/tyxml@opam:4.5.0@0a609297": {"id": "@opam/tyxml@opam:4.5.0@0a609297","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"ocaml@4.12.0@d41d8cd9", "@opam/ocamlbuild@opam:0.14.0@0dee4078","devDependencies": [ "ocaml@4.12.0@d41d8cd9" ]"@opam/ocamlbuild@opam:0.14.0@0dee4078","ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f","@opam/topkg@opam:1.0.5@0aa59f51","version": "14.0.0","path": "esy.lock/opam/uucp.14.0.0""archive:https://opam.ocaml.org/cache/sha512/2d/2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899#sha512:2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899","archive:https://erratique.ch/software/uucp/releases/uucp-14.0.0.tbz#sha512:2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899""version": "opam:14.0.0","@opam/uucp@opam:14.0.0@8715110e": {"id": "@opam/uucp@opam:14.0.0@8715110e","ocaml@4.12.0@d41d8cd9", "@opam/uucp@opam:14.0.0@8715110e""@opam/ocamlbuild@opam:0.14.0@0dee4078","ocaml@4.12.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f","@opam/uucp@opam:14.0.0@8715110e", "@opam/topkg@opam:1.0.5@0aa59f51","version": "14.0.0","path": "esy.lock/opam/uuseg.14.0.0""archive:https://opam.ocaml.org/cache/sha512/3f/3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa#sha512:3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa","archive:https://erratique.ch/software/uuseg/releases/uuseg-14.0.0.tbz#sha512:3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa""version": "opam:14.0.0","@opam/uuseg@opam:14.0.0@7d21466b": {"id": "@opam/uuseg@opam:14.0.0@7d21466b","ocaml@4.12.0@d41d8cd9", "@opam/uchar@opam:0.0.2@c8218eea""@opam/ocamlbuild@opam:0.14.0@0dee4078","ocaml@4.12.0@d41d8cd9", "@opam/uchar@opam:0.0.2@c8218eea","@opam/topkg@opam:1.0.5@0aa59f51","ocaml@4.12.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69", "@opam/biniou@opam:1.2.1@420bda02""ocaml@4.12.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@1ea9f987","@opam/dune@opam:2.9.3@f57a6d69", "@opam/cppo@opam:1.6.8@7e48217d","@opam/biniou@opam:1.2.1@420bda02","@opam/yojson@opam:1.7.0@69d87312": {"id": "@opam/yojson@opam:1.7.0@69d87312","archive:https://registry.npmjs.org/ocaml/-/ocaml-4.12.0.tgz#sha1:2a979f37535faaded8aa3fdf82b6f16f2c71e284""version": "4.12.0","ocaml@4.12.0@d41d8cd9": {"id": "ocaml@4.12.0@d41d8cd9","checksum": "ed03989ebc65f0126662db3762d67334",
{"name": "@discopotty/opus","version": "1.3.1","description": "OCaml libopus bindings","license": "BSD","esy": {"build": "dune build -p opus","buildDev":"dune build --promote-install-files --root . --only-package opus"},"dependencies": {"@opam/conf-libopus": "*","@opam/ctypes-foreign": "<0.18.0","@opam/ocamlfind": "<1.9.0",},"devDependencies": {"@opam/ocaml-lsp-server": "*","@opam/odoc": "*"},"resolutions": {"@opam/conf-pkg-config": "1.3","@opam/conf-libopus": {"source": "link:../esy-libopus/conf-libopus.opam","override": { "dependencies": { "esy-libopus": "../esy-libopus" } }}}}"@opam/ocamlformat": "*","@opam/merlin": "4.4-412","ocaml": "~4.12.0""@opam/dune": "~2.9.0","@opam/dune-configurator": "2.9.3","@opam/ctypes": "~0.20.0",
{ocamlPackages, pkg-config, libopus}:with ocamlPackages;buildDunePackage {pname = "opus";version = "1.3.1";src = ./.;propagatedBuildInputs = [pkg-configlibopusctypesdune-configurator];}