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.conf
if ./tools/cmd_from_same_dir ocamlc; then \
- echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \
+ echo 'ocamlc="ocamlc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \
fi
if ./tools/cmd_from_same_dir ocamlopt; then \
- echo 'ocamlopt="ocamlopt.opt"' >>findlib.conf; \
+ echo 'ocamlopt="ocamlopt.opt$(EXEC_SUFFIX)"' >>findlib.conf; \
fi
if ./tools/cmd_from_same_dir ocamldep; then \
- echo 'ocamldep="ocamldep.opt"' >>findlib.conf; \
+ echo 'ocamldep="ocamldep.opt$(EXEC_SUFFIX)"' >>findlib.conf; \
fi
if ./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 in
let files = Fl_split.in_words def.def_value in
List.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")
+ )
files
with Not_found -> true in
--- ./src/findlib/fl_split.ml
+++ ./src/findlib/fl_split.ml
@@ -126,10 +126,17 @@
| '/' | '\\' -> true
| _ -> false in
let 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 do
let c = s.[k] in
if is_slash c then (
--- ./src/findlib/frontend.ml
+++ ./src/findlib/frontend.ml
@@ -31,10 +31,18 @@
else
Sys_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 in
String.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 in
prefix ^
(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 -> cmd
let 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 @@
in
try
let 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 fname
let 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 @@
with
any ->
close_out initl;
- Sys.remove initl_file_name;
+ remove_file initl_file_name;
raise any
end;
@@ -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 in
let f =
Unix.in_channel_of_descr fd in
+ if is_win then
+ set_binary_mode_in f false;
try
let line = input_line f in
let is_my_file = (line = pkg) in
@@ -2208,7 +2326,7 @@
let lines = read_ldconf !ldconf in
let dlldir_norm = Fl_split.norm_dir dlldir in
let dlldir_norm_lc = string_lowercase_ascii dlldir_norm in
- let ci_filesys = (Sys.os_type = "Win32") in
+ let ci_filesys = is_win in
let 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 begin
let 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 in
let dir s =
+ let s = sl s in
if Sys.file_exists s then
s
else
@@ -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() in
let 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) in
begin
try 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 @@
in
rule "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 2001
From: Manas Jayanth <3097018+ManasJayanth@users.noreply.github.com>
Date: Fri, 28 Jan 2022 01:44:03 +0530
Subject: [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.c
index 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.install
ifeq ($(OCAML_NATIVE), true)
echo ' "ocamlbuild.native" {"ocamlbuild.native"}' >> ocamlbuild.install
- echo ' "ocamlbuild.native" {"ocamlbuild"}' >> ocamlbuild.install
+ echo " \"ocamlbuild.native\" {\"ocamlbuild${EXE}\"}" >> ocamlbuild.install
else
echo ' "ocamlbuild.byte" {"ocamlbuild"}' >> ocamlbuild.install
endif
{
"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/Makefile
index 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 644
INSTALL_DLL=install
INSTALL_DIR=install -d
STDLIBDIR=$(shell $(OCAMLC) -where)
DESTDIR ?=
-include $(STDLIBDIR)/Makefile.config
+include $(STDLIBDIR)/Makefile.config
ifeq "$(filter i386 amd64 arm64 power,$(ARCH))" ""
# Unsupported architecture
BNG_ARCH=generic
@@ -86,14 +86,14 @@ endif
VERSION=$(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 META
rm -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)/stublibs
endif
findlib-install:
@@ -105,9 +105,9 @@ findlib-uninstall:
$(OCAMLFIND) remove num
uninstall: 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)
endif
clean:
{
"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: esy
on: [push, pull_request]
jobs:
native:
name: Build for Native
strategy:
matrix:
system: [ubuntu, macos]
runs-on: ${{ matrix.system }}-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- uses: actions/setup-node@v2-beta
with:
node-version: 14
- name: Install esy
run: npm install -g esy
- name: Create esy wrapper
run: |
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 lock
run: esy @build solve
- uses: esy/github-action@master
with:
manifest: ./build.json
cache-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 the
yojson package.
The program atdgen can be used to derive OCaml-JSON serializers and
deserializers 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) specification
for 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 the
Stringext 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 to
use 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 standard
libraries 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 library
The Core suite of libraries is an industrial strength alternative to
OCaml's standard library that was developed by Jane Street, the
largest 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.03
while staying compatible with older version of OCaml should use the
Result 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 scratched
your 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 generating
code based on type definitions, and a set of useful plugins
for 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 allow
ppx_deriving and ppx_type_conv to inter-operate gracefully when linked
as 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 how
to store libraries, and a file format ("META") to describe the
properties of libraries. There is also a tool (ocamlfind) for
interpreting the META files, so that it is very easy to use libraries
in 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 older
compilers, 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 time
in pure OCaml. This time increases monotonically and is not subject to
operating system calendar time adjustments. The library has types to
represent nanosecond precision timestamps and time spans.
The additional Mtime_clock library provide access to a system
monotonic clock.
Mtime has a no dependency. Mtime_clock depends on your system library.
The optional JavaScript support depends on [js_of_ocaml][jsoo]. Mtime
and 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 performed
on sources whose reporting level can be set independently. Log message
report is decoupled from logging and is handled by a reporter.
A few optional log reporters are distributed with the base library and
the API easily allows to implement your own.
`Logs` has no dependencies. The optional `Logs_fmt` reporter on OCaml
formatters 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 provides
command line support for controlling Logs depends on
[`Cmdliner`][cmdliner]. The optional `Logs_lwt` library that provides
Lwt 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 or
Windows conventions. Fpath processes paths without accessing the file
system and is independent from any system library.
Fpath depends on [Astring][astring] and is distributed under the ISC
license.
[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 over
arbitrary-precision integers. It uses GMP to efficiently implement
arithmetic over big integers. Small integers are represented as Caml
unboxed 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 consists
of certificates which include public keys and identifiers, signed by an
authority. Authorities must be exchanged over a second channel to establish the
trust 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 efficiently
work character by character without blocking on IO. Decoders perform
character position tracking and support newline normalization.
Functions are also provided to fold over the characters of UTF encoded
OCaml string values and to directly encode characters in OCaml
Buffer.t values. **Note** that since OCaml 4.14, that functionality
can 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/uutf
Contact: 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 security
protocol on the Internet. It provides communication privacy to prevent
eavesdropping, tampering, and message forgery. Furthermore, it optionally
provides authentication of the involved endpoints. TLS is commonly deployed for
securing 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 optionally
authenticate (using X.509) either or both endpoints. It provides algorithmic
agility, which means that the key exchange method, symmetric encryption
algorithm, 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 of
the OCaml standard library. It is a pretty-printing facility, i.e. it takes as
input some code represented as a tree and formats this code into the most
visually satisfying result, breaking and indenting lines of code where
appropriate.
Input data must be first modelled and converted into a tree using 3 kinds of
nodes:
* atoms
* lists
* labelled nodes
Atoms represent any text that is guaranteed to be printed as-is. Lists can model
any sequence of items such as arrays of data or lists of definitions that are
labelled 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 nanoseconds
since 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 library
The Core suite of libraries is an industrial strength alternative to
OCaml's standard library that was developed by Jane Street, the
largest 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 like
JavaScript. 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). It
provides support to program with time varying values : declarative
events and signals. React doesn't define any primitive event or
signal, it lets the client chooses the concrete timeline.
React is made of a single, independent, module and distributed under
the 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 programs
that manipulate the in-memory reprensation of OCaml programs, a.k.a
the "Parsetree".
It also comes bundled with two ppx rewriters that are commonly used to
write tools that manipulate and/or generate Parsetree values;
`ppxlib.metaquot` which allows to construct Parsetree values using the
OCaml syntax directly and `ppxlib.traverse` which provides various
ways of automatically traversing values of a given type, in particular
allowing 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 provides
a 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-like
structures directly from OCaml. It supports both reading and writing to these
structures, 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 installed
on 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 a
verification 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 from
strings or other medium.
The library is focused on performances but still provide full generic
parsers 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 so
that one can recover original positions in order to report properly
located errors at little cost
- the Concrete Syntax Tree parsers, produce values of type
[Parsexp.Cst.t] which record the concrete layout of the s-expression
syntax, including comments
This library is portable and doesn't provide IO functions. To read
s-expressions from files or other external sources, you should use
parsexp_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 vastly
equivalent to JSON in terms of functionality but allows implementations several
times faster (4 times faster than yojson), with 25-35% space savings.
Biniou data can be decoded into human-readable form without knowledge of type
definitions except for field and variant names which are represented by 31-bit
hashes. A program named bdump is provided for routine visualization of biniou
data files.
The program atdgen is used to derive OCaml-Biniou serializers and deserializers
from 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`, which
guarantee efficient representation on 64-bit architectures and provide a
best-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: make
install: [
["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 represent
binary data in an ASCII string format by translating it into a radix-64
representation. 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), and
hashes (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 module
tries 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 signatures
and names, adds a few missing functions and fully exploits OCaml's
newfound string immutability.
Astring depends only on the OCaml standard library. It is distributed
under 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, and
implementations: Fortuna, HMAC-DRBG, getrandom/getentropy based (in the unix
sublibrary)
"""
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. It
exposes monadic and applicative interfaces for composition, and supports
incremental input through buffered and unbuffered interfaces. Both interfaces
give the user total control over the blocking behavior of their application,
with the unbuffered interface enabling zero-copy IO. Parsers are backtracking by
default 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 are
resolved by Lwt in parallel.
Meanwhile, OCaml code, including code creating and waiting on promises, runs in
a single thread by default. This reduces the need for locks or other
synchronization 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 does
asynchronous I/O in Node.js and runs its main loop.
Besides asynchronous I/O, libuv also supports multiprocessing and
multithreading. Multiple event loops can be run in different threads. libuv also
exposes a lot of other functionality, amounting to a full OS API, and an
alternative 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, and
Async.
This package has an unstable interface; it is intended only to share configuration between
different packages from Jane Street. Future updates may not be backward-compatible, and we
do 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) data
structure.
"""
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 implements
the locale independent [Unicode text segmentation algorithms][1] to
detect grapheme cluster, word and sentence boundaries and the
[Unicode line breaking algorithm][2] to detect line break
opportunities.
The library is independent from any IO mechanism or Unicode text data
structure and it can process text without a complete in-memory
representation.
Uuseg depends on [Uucp](http://erratique.ch/software/uucp) and
optionally on [Uutf](http://erratique.ch/software/uutf) for support on
OCaml 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. This
has a range of up to 584 years. Functions provided check the input and raise
on 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 of
character properties of the [Unicode character database][1].
Uucp is independent from any Unicode text data structure and has no
dependencies. 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 an
API to describe the files a package installs in a given build
configuration and to specify information about the package's
distribution, creation and publication procedures.
The optional topkg-care package provides the `topkg` command line tool
which helps with various aspects of a package's life cycle: creating
and linting a distribution, releasing it on the WWW, publish its
documentation, 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/webbrowser
Home 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 63
charactes. The total length of a domain name is limited to 253 (byte
representation is 255), but other protocols (such as SMTP) may apply even
smaller limits. A domain name label is case preserving, comparison is done in a
case 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 primary
aim is to make writing C extensions as straightforward as possible.
The core of ctypes is a set of combinators for describing the structure of C
types -- numeric types, arrays, pointers, structs, unions and functions. You
can use these combinators to describe the types of the functions that you want
to call, then bind directly to those functions -- all without writing or
generating any C!
To install the optional `ctypes.foreign` interface (which uses `libffi` to
provide dynamic access to foreign libraries), you will need to also install
the `ctypes-foreign` optional dependency:
opam install ctypes ctypes-foreign
This 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 a
working directory
2. provide better errors when a system call fails in the
sub-process. For instance if a command is not found, you get a proper
[Unix.Unix_error] exception
3. improve performance by using vfork when available. It is often
claimed that nowadays fork is as fast as vfork, however in practice
fork takes time proportional to the process memory while vfork is
constant time. In application using a lot of memory, vfork can be
thousands 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-like
structures directly from OCaml. It supports both reading and writing to these
structures, 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-like
structures directly from OCaml. It supports both reading and writing to these
structures, 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. It
provides a type to represent a well-defined range of POSIX timestamps
with picosecond precision, conversion with date-time values,
conversion with [RFC 3339 timestamps][rfc3339] and pretty printing to a
human-readable, locale-independent representation.
The additional Ptime_clock library provides access to a system POSIX
clock and to the system's current time zone offset.
Ptime is not a calendar library.
Ptime has no dependency. Ptime_clock depends on your system
library. Ptime_clock's optional JavaScript support depends on
[js_of_ocaml][jsoo]. Ptime and its libraries are distributed under the
ISC 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 and
corresponds 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"
#endif
void 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 interfaces
for OCaml.
It provides a simple and compositional mechanism to convert command
line arguments to OCaml values and pass them to your functions. The
module automatically handles syntax errors, help messages and UNIX man
page generation. It supports programs with single or multiple commands
and 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 {
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/memmove
The OCaml compiler has a bunch of intrinsics for Bigstrings, but they're not
widely-known, sometimes misused, and so programs that use Bigstrings are slower
than they have to be. And even if a library got that part right and exposed the
intrinsics properly, the compiler doesn't have any fast blits between
Bigstrings 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 documentation
comments, formatted using 'odoc' syntax, an extension of the language
understood 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 notation
part of ASN.1, and embed the abstract syntax directly in the language. These
abstract syntax representations can be used for parsing, serialization, or
random 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 stack
machine ; this is much faster and more reliable than using regexps. Presets and
configuration 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 for
fault-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 OCaml
compiler, and enumerates the various official OCaml releases and configuration
variants.
OCaml version numbers are of the form `major.minor.patch+extra`, where the
`patch` and `extra` fields are optional. This library offers the following
functionality:
- 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 under
the 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 under
the 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 information
Quick setup with opam-user-setup
--------------------------------
Opam-user-setup support Merlin.
$ opam user-setup install
should 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 support
the 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 output
depends on the Unix library. The optional `Fmt_cli` library that
provides command line support for Fmt depends on [`Cmdliner`][cmdliner].
Fmt is distributed under the ISC license.
[cmdliner]: http://erratique.ch/software/cmdliner
Home 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. Its
core type and related operation gives the user fine-grained control over
copying and allocation behavior while serializing user-defined types, and
presents the output in a form that makes it possible to use vectorized write
operations, such as the writev system call, or any other platform or
application-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 fixed
widths: 8, 16, 24, 32, 40, 48, 56, 64 and 128 bit.
This interface is similar to Int32 and Int64 from the base library but provides
more functions and constants like arithmetic and bit-wise operations, constants
like maximum and minimum values, infix operators conversion to and from every
other integer type (including int, float and nativeint), parsing from and
conversion to readable strings (binary, octal, decimal, hexademical), conversion
to 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 while
staying compatible with older versions of OCaml should use this library
instead.
"""
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 of
Jane Street packages. It reads metadata from "dune" files following a
very simple s-expression syntax.
dune is fast, has very low-overhead, and supports parallel builds on
all platforms. It has no system dependencies; all you need to build
dune or packages using dune is OCaml. You don't need make or bash
as long as the packages themselves don't use bash explicitly.
dune supports multi-package development by simply dropping multiple
repositories into the same directory.
It also supports multi-context builds, such as building against
several opam roots/switches simultaneously. This helps maintaining
packages across several versions of OCaml and gives cross-compilation
for 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 that
test features available on the system, in order to generate config.h
files 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 the
executable was built, such as the version of the project at which it
was built or the list of statically linked libraries with their
versions. It supports reporting the version from the version control
system during development to get an precise reference of when the
executable 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 OCaml
Base is a complete and portable alternative to the OCaml standard
library. It provides all standard functionalities one would expect
from a language standard library. It uses consistent conventions
across all of its module.
Base aims to be usable in any context. As a result system dependent
features such as I/O are not offered by Base. They are instead
provided 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 exposes
a simple TESTABLE module type, a check function to assert test
predicates and a run function to perform a list of unit -> unit
test callbacks.
Alcotest provides a quiet and colorful output where only faulty runs
are fully displayed at the end of the run (with the full logs ready to
inspect), with a simple (yet expressive) query language to select the
tests 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 determines
whether the foreign subpackage should built as part of ctypes.
In order to actually get the ctypes package, you should also:
opam install ctypes ctypes-foreign
You can verify the existence of the ocamlfind subpackage by:
ocamlfind list | grep ctypes
Which 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 to
enforce 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 final
rendering is done to formatter from the Format module. However it
defines its own algebra which some might find easier to work with and
reason about. No previous knowledge is required to start using this
library, however the various guides for the Format module such as this
one [2] should be applicable to Pp as well.
This library provides a lean alternative to the Format [1] module of
the OCaml standard library. It aims to make it easy for users to do
the right thing. If you have tried Format before but find its API
complicated and difficult to use, then Pp might be a good choice for
you.
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-expressions
that is super simple and well suited for communication between
programs.
This library only provides a few helpers for simple applications. If
you need more advanced support, such as parsing from more fancy input
sources, you should consider copying the code of this library given
how simple parsing S-expressions in canonical form is.
To avoid a dependency on a particular S-expression library, the only
module 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 artifacts
result
{
ocamlPackages
}:
with ocamlPackages;
buildDunePackage {
pname = "disco";
version = "0.0.1";
src = ./.;
propagatedBuildInputs = [
disco-opus
angstrom
containers
containers-data
eio
httpaf
hxd
ke
mtime
ppx_deriving
ppx_yojson_conv
ptime
sodium
stdint
streaming
tls
toml
uri
websocketaf
gluten
yojson
relog
];
}
{ 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.dune
ocaml
# findlib
];
buildInputs = with ocamlPackages; [
disco
angstrom
containers
toml
relog
eio_luv
];
buildPhase = ''
dune build bin/bot/discopotty.exe --display=short --profile=release
'';
installPhase = ''
mkdir -p $out/bin
mv _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; [
base
ppx_js_style
ppx_yojson_conv_lib
ppxlib
];
};
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; [
cstruct
lwt-dllist
optint
psq
fmt
mtime
];
};
eio_luv = super.ocamlPackages.buildDunePackage {
pname = "eio_luv";
inherit (self.ocamlPackages.eio) version src;
propagatedBuildInputs = with self.ocamlPackages; [
eio
luv
luv_unix
logs
fmt
];
};
luv_unix = super.ocamlPackages.buildDunePackage {
pname = "luv_unix";
inherit (self.ocamlPackages.luv) version src;
propagatedBuildInputs = with self.ocamlPackages; [
luv
ctypes
result
];
};
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; [
containers
ptime
yojson
];
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) in
let 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) in
let 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) *)
end
module Source = struct
type 'a t = 'a source
end
let make () =
let sink = make_sink () in
let key = gen_key () in
let sinks = Seq.pure (key, sink) |> Cache.of_seq in
let source = Source.make ~sinks () in
(source, { key; source })
let close source =
if source.closed then Lwt.return_unit
else Cache.iter source.sinks ~f:(fun _ -> drop_sink)
let subscribe source = make_sink () |> connect source
let write source v =
let f _ sink =
(* Printf.printf "handle %d: " k; *)
if sink.dropped then ()
else
let 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 v
in
f sink.readers
in
Cache.iter source.sinks ~f
let 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.u
type '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 } in
let key = gen_key () in
Cache.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 = struct
type 'a t = 'a handle
let get { key; source } = Cache.find source.sinks ~key
let peek t = get t >|= fun t -> Ke.Fke.peek t.buf
let 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 () in
t.readers <- Ke.Fke.push t.readers (p, u);
p
let drop t = get t >|= drop_sink
let clone t = get t >>= fun sink -> connect t.source sink
type t = key
end))
let hash = Hashtbl.seeded_hash
module Cache = MakeCache (Ephemeron.K1.MakeSeeded (struct
let equal (K l) (K r) = l = r
type key = K of int
let of_seq seq =
let tbl, mtx = make () in
Seq.iter (fun (k, v) -> Table.add tbl k v) seq;
(tbl, mtx)
end
let clean t = access t Table.clean
let reset t = access t Table.reset
let remove t ~key = access t @@ fun table -> Table.remove table key
let mem t ~key = access t @@ fun table -> Table.mem table key
let iter t ~f = access t @@ fun table -> Table.iter f table
let find_opt t ~key = access t @@ fun table -> Table.find_opt table key
let find t ~key = access t @@ fun table -> Table.find table key
let add t ~key value = access t @@ fun table -> Table.add table key value
let access (table, lock) f =
Lwt_mutex.with_lock lock @@ fun () -> table |> f |> Lwt.return
let make () = (Table.create ~random:true 32, Lwt_mutex.create ())
type 'a t = 'a Table.t * Lwt_mutex.t
type key = Table.key
module MakeCache (T : Ephemeron.SeededS) = struct
module Table = T
open! Containers
open Lwt.Infix
open Containers
open Eio.Std
module L = (val Relog.logger ~namespace:__MODULE__ ())
module Lf_queue = Eio_utils.Lf_queue
(* author's note: decided to go with unboxed ints
in the end, I don't expect this to be used in systems
other 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.t
let check_capacity ~n { capacity; _ } =
if n > capacity then
raise (Invalid_argument "can't take more than bucket's capacity")
let make ~capacity ?init rate =
let sleep secs = Eio_unix.sleep secs in
let ns_per_token = Int.of_float (1e9 /. rate |> ceil) in
let init = match init with Some i -> min capacity i | None -> capacity in
let 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; _ } = capacity
let rate { ns_per_token; _ } = 1. /. (float ns_per_token /. 1e9)
let is_full { capacity_ns; bucket; _ } =
let { tokens; _ } = Atomic.get bucket in
tokens >= capacity_ns
let fill t =
let b = Backoff.create () in
let rec loop () =
let bucket = Atomic.get t.bucket in
match bucket with
| { tokens; _ } when tokens >= t.capacity_ns -> t
| { tokens; ts } ->
let now = Mtime_clock.elapsed () in
let span = Mtime.Span.abs_diff now ts in
let diff_ns = Mtime.Span.to_uint64_ns span |> Int64.to_int in
let tokens = min t.capacity_ns (tokens + diff_ns) in
if Atomic.compare_and_set t.bucket bucket { tokens; ts = now } then t
else (
Backoff.once b;
loop ())
in
loop ()
let try_take_ns_unsafe ~n t =
let b = Backoff.create () in
let rec take' t =
let ({ tokens; _ } as bucket) = Atomic.get t.bucket in
let cas tokens =
Atomic.compare_and_set t.bucket bucket { bucket with tokens }
in
match tokens - n with
| n when n < 0 -> false
| n when cas n -> true
| _ ->
Backoff.once b;
take' t
in
if 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 in
let out = try_take_ns_unsafe ~n:n_ns t in
Atomic.set t.attending false;
out)
else false
let attend_waiters t =
let b = Backoff.create () in
let 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 in
let wait_ns = max (n - tokens) 0 in
let wait_secs = float wait_ns /. 1e9 in
t.sleep wait_secs;
attend ~n ()
in
attend ~n:0
let take ~sw ?(n = 1) t =
check_capacity ~n t;
let n_ns = n * t.ns_per_token in
let enqueue' () =
let p, u = Promise.create () in
Lf_queue.push t.waiters (Waiter (n_ns, u, p));
p
in
match 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' () in
Fiber.fork ~sw @@ attend_waiters t;
Promise.await p
open Containers
open Eio.Std
module L = (val Relog.logger ~namespace:__MODULE__ ())
module Lf_queue = Eio_utils.Lf_queue
(* author's note: decided to go with unboxed ints
in the end, I don't expect this to be used in systems
other 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.t
let check_capacity ~n { capacity; _ } =
if n > capacity then
raise (Invalid_argument "can't take more than bucket's capacity")
let make ~capacity ?init rate =
let sleep secs = Eio_unix.sleep secs in
let ns_per_token = Int.of_float (1e9 /. rate |> ceil) in
let init = match init with Some i -> min capacity i | None -> capacity in
let 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; _ } = capacity
let rate { ns_per_token; _ } = 1. /. (float ns_per_token /. 1e9)
let is_full { capacity_ns; bucket; _ } =
let { tokens; _ } = Atomic.get bucket in
tokens >= capacity_ns
let fill t =
let b = Backoff.create () in
let rec loop () =
let bucket = Atomic.get t.bucket in
match bucket with
| { tokens; _ } when tokens >= t.capacity_ns -> t
| { tokens; ts } ->
let now = Mtime_clock.elapsed () in
let span = Mtime.Span.abs_diff now ts in
let diff_ns = Mtime.Span.to_uint64_ns span |> Int64.to_int in
let tokens = min t.capacity_ns (tokens + diff_ns) in
if Atomic.compare_and_set t.bucket bucket { tokens; ts = now } then t
else (
Backoff.once b;
loop ())
in
loop ()
let try_take_ns_unsafe ~n t =
let b = Backoff.create () in
let rec take' t =
let ({ tokens; _ } as bucket) = Atomic.get t.bucket in
let cas tokens =
Atomic.compare_and_set t.bucket bucket { bucket with tokens }
in
match tokens - n with
| n when n < 0 -> false
| n when cas n -> true
| _ ->
Backoff.once b;
take' t
in
if 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 in
let out = try_take_ns_unsafe ~n:n_ns t in
Atomic.set t.attending false;
out)
else false
let attend_waiters t =
let b = Backoff.create () in
let 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 in
let wait_ns = max (n - tokens) 0 in
let wait_secs = float wait_ns /. 1e9 in
t.sleep wait_secs;
attend ~n ()
in
attend ~n:0
let take ~sw ?(n = 1) t =
check_capacity ~n t;
let n_ns = n * t.ns_per_token in
let enqueue' () =
let p, u = Promise.create () in
Lf_queue.push t.waiters (Waiter (n_ns, u, p));
p
in
match 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' () in
Fiber.fork ~sw @@ attend_waiters t;
Promise.await p
{ pkgs, stdenv, lib, self }:
let
discoPkgs = 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; [
ocaml
ocamlPackages.ocaml-lsp
ocamlPackages.dune
ocamlformat
ocamlPackages.merlin
ocamlPackages.utop
ffmpeg
youtube-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.conf
if ./tools/cmd_from_same_dir ocamlc; then \
- echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \
+ echo 'ocamlc="ocamlc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \
fi
if ./tools/cmd_from_same_dir ocamlopt; then \
- echo 'ocamlopt="ocamlopt.opt"' >>findlib.conf; \
+ echo 'ocamlopt="ocamlopt.opt$(EXEC_SUFFIX)"' >>findlib.conf; \
fi
if ./tools/cmd_from_same_dir ocamldep; then \
- echo 'ocamldep="ocamldep.opt"' >>findlib.conf; \
+ echo 'ocamldep="ocamldep.opt$(EXEC_SUFFIX)"' >>findlib.conf; \
fi
if ./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 in
let files = Fl_split.in_words def.def_value in
List.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")
+ )
files
with Not_found -> true in
--- ./src/findlib/fl_split.ml
+++ ./src/findlib/fl_split.ml
@@ -126,10 +126,17 @@
| '/' | '\\' -> true
| _ -> false in
let 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 do
let c = s.[k] in
if is_slash c then (
--- ./src/findlib/frontend.ml
+++ ./src/findlib/frontend.ml
@@ -31,10 +31,18 @@
else
Sys_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 in
String.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 in
prefix ^
(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 -> cmd
let 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 @@
in
try
let 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 fname
let 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 @@
with
any ->
close_out initl;
- Sys.remove initl_file_name;
+ remove_file initl_file_name;
raise any
end;
@@ -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 in
let f =
Unix.in_channel_of_descr fd in
+ if is_win then
+ set_binary_mode_in f false;
try
let line = input_line f in
let is_my_file = (line = pkg) in
@@ -2208,7 +2326,7 @@
let lines = read_ldconf !ldconf in
let dlldir_norm = Fl_split.norm_dir dlldir in
let dlldir_norm_lc = string_lowercase_ascii dlldir_norm in
- let ci_filesys = (Sys.os_type = "Win32") in
+ let ci_filesys = is_win in
let 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 begin
let 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 in
let dir s =
+ let s = sl s in
if Sys.file_exists s then
s
else
@@ -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() in
let 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) in
begin
try 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.1
man/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.byte
clean::
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 in
let 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 in
let 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 in
let jobs = !jobs in
if 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 =
try
Hashtbl.find packages name
@@ -135,7 +132,8 @@
with Not_found -> s
let 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 closed
and 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))
end
end
end
--- ./src/my_std.ml
+++ ./src/my_std.ml
@@ -271,13 +271,107 @@
try Array.iter (fun x -> if x = basename then raise Exit) a; false
with 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 @@
in
loop 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
+ in
incr 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 }
in
outputs := FDM.add (doi stdout') job (FDM.add (doi stderr') job !outputs);
jobs := JS.add job !jobs;
@@ -199,6 +264,7 @@
try
read 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 in
display (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) in
let shown = ref false in
--- ./src/ocamlbuild_unix_plugin.ml
+++ ./src/ocamlbuild_unix_plugin.ml
@@ -48,12 +48,22 @@
end
let 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) ^ "\""
+ in
let ic = Unix.open_process_in s in
let 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) in
let res = try
kont ic
with e -> (close (); raise e)
--- ./src/options.ml
+++ ./src/options.ml
@@ -174,11 +174,24 @@
build_dir := Filename.concat (Sys.getcwd ()) s
else
build_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_OK
in
- let print_vnum () = print_endline Ocamlbuild_config.version; raise Exit_OK in
+ let print_vnum () = sb (); print_endline Ocamlbuild_config.version; raise Exit_OK in
Arg.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 xs
let 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
+ in
if Glob.eval not_normal_form_re x then
let root, paths = split x in
join root (normalize_list paths)
--- ./src/shell.ml
+++ ./src/shell.ml
@@ -24,12 +24,26 @@
| 'a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '-' | '/' | '_' | ':' | '@' | '+' | ',' -> loop (pos + 1)
| _ -> false in
loop 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 s
else Filename.quote s
let 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 then
begin
Log.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 the
yojson package.
The program atdgen can be used to derive OCaml-JSON serializers and
deserializers 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 efficiently
work character by character without blocking on IO. Decoders perform
character position tracking and support newline normalization.
Functions are also provided to fold over the characters of UTF encoded
OCaml string values and to directly encode characters in OCaml
Buffer.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 OCaml
compiler. 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 standard
libraries 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 library
The Core suite of libraries is an industrial strength alternative to
OCaml's standard library that was developed by Jane Street, the
largest 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.03
while staying compatible with older version of OCaml should use the
Result 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 how
to store libraries, and a file format ("META") to describe the
properties of libraries. There is also a tool (ocamlfind) for
interpreting the META files, so that it is very easy to use libraries
in 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 or
Windows conventions. Fpath processes paths without accessing the file
system and is independent from any system library.
Fpath depends on [Astring][astring] and is distributed under the ISC
license.
[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 of
the OCaml standard library. It is a pretty-printing facility, i.e. it takes as
input some code represented as a tree and formats this code into the most
visually satisfying result, breaking and indenting lines of code where
appropriate.
Input data must be first modelled and converted into a tree using 3 kinds of
nodes:
* atoms
* lists
* labelled nodes
Atoms represent any text that is guaranteed to be printed as-is. Lists can model
any sequence of items such as arrays of data or lists of definitions that are
labelled 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 determines
whether the foreign subpackage should built as part of ctypes.
In order to actually get the ctypes package, you should also:
opam install ctypes ctypes-foreign
You can verify the existence of the ocamlfind subpackage by:
ocamlfind list | grep ctypes
Which 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 installed
on 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 interfaces
for OCaml.
It provides a simple and compositional mechanism to convert command
line arguments to OCaml values and pass them to your functions. The
module automatically handles syntax errors, help messages and UNIX man
page generation. It supports programs with single or multiple commands
and 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 vastly
equivalent to JSON in terms of functionality but allows implementations several
times faster (4 times faster than yojson), with 25-35% space savings.
Biniou data can be decoded into human-readable form without knowledge of type
definitions except for field and variant names which are represented by 31-bit
hashes. A program named bdump is provided for routine visualization of biniou
data files.
The program atdgen is used to derive OCaml-Biniou serializers and deserializers
from 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 module
tries 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 signatures
and names, adds a few missing functions and fully exploits OCaml's
newfound string immutability.
Astring depends only on the OCaml standard library. It is distributed
under 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 implements
the locale independent [Unicode text segmentation algorithms][1] to
detect grapheme cluster, word and sentence boundaries and the
[Unicode line breaking algorithm][2] to detect line break
opportunities.
The library is independent from any IO mechanism or Unicode text data
structure and it can process text without a complete in-memory
representation.
Uuseg depends on [Uucp](http://erratique.ch/software/uucp) and
optionally on [Uutf](http://erratique.ch/software/uutf) for support on
OCaml 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 of
character properties of the [Unicode character database][1].
Uucp is independent from any Unicode text data structure and has no
dependencies. 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 an
API to describe the files a package installs in a given build
configuration and to specify information about the package's
distribution, creation and publication procedures.
The optional topkg-care package provides the `topkg` command line tool
which helps with various aspects of a package's life cycle: creating
and linting a distribution, releasing it on the WWW, publish its
documentation, 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/webbrowser
Home 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 a
working directory
2. provide better errors when a system call fails in the
sub-process. For instance if a command is not found, you get a proper
[Unix.Unix_error] exception
3. improve performance by using vfork when available. It is often
claimed that nowadays fork is as fast as vfork, however in practice
fork takes time proportional to the process memory while vfork is
constant time. In application using a lot of memory, vfork can be
thousands 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 of
the OCaml standard library. It aims to make it easy for users to do
the right thing. If you have tried Format before but find its API
complicated and difficult to use, then Pp might be a good choice for
you.
Pp uses the same concepts of boxes and break hints, and the final
rendering is done to formatter from the Format module. However it
defines its own algebra which some might find easier to work with and
reason about. No previous knowledge is required to start using this
library, however the various guides for the Format module such as this
one [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 documentation
comments, formatted using 'odoc' syntax, an extension of the language
understood 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 stack
machine ; this is much faster and more reliable than using regexps. Presets and
configuration 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 for
fault-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 OCaml
compiler, and enumerates the various official OCaml releases and configuration
variants.
OCaml version numbers are of the form `major.minor.patch+extra`, where the
`patch` and `extra` fields are optional. This library offers the following
functionality:
- 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 under
the 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 versions
This library converts parsetrees, outcometree and ast mappers between
different OCaml versions. High-level functions help making PPX
rewriters 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 information
Quick setup with opam-user-setup
--------------------------------
Opam-user-setup support Merlin.
$ opam user-setup install
should 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 performed
on sources whose reporting level can be set independently. Log message
report is decoupled from logging and is handled by a reporter.
A few optional log reporters are distributed with the base library and
the API easily allows to implement your own.
`Logs` has no dependencies. The optional `Logs_fmt` reporter on OCaml
formatters 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 provides
command line support for controlling Logs depends on
[`Cmdliner`][cmdliner]. The optional `Logs_lwt` library that provides
Lwt 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 output
depends on the Unix library. The optional `Fmt_cli` library that
provides command line support for Fmt depends on [`Cmdliner`][cmdliner].
Fmt is distributed under the ISC license.
[cmdliner]: http://erratique.ch/software/cmdliner
Home 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 while
staying compatible with older versions of OCaml should use this library
instead.
"""
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 of
Jane Street packages. It reads metadata from "dune" files following a
very simple s-expression syntax.
dune is fast, has very low-overhead, and supports parallel builds on
all platforms. It has no system dependencies; all you need to build
dune or packages using dune is OCaml. You don't need make or bash
as long as the packages themselves don't use bash explicitly.
dune supports multi-package development by simply dropping multiple
repositories into the same directory.
It also supports multi-context builds, such as building against
several opam roots/switches simultaneously. This helps maintaining
packages across several versions of OCaml and gives cross-compilation
for 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 that
test features available on the system, in order to generate config.h
files 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 the
executable was built, such as the version of the project at which it
was built or the list of statically linked libraries with their
versions. It supports reporting the version from the version control
system during development to get an precise reference of when the
executable 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 primary
aim is to make writing C extensions as straightforward as possible.
The core of ctypes is a set of combinators for describing the structure of C
types -- numeric types, arrays, pointers, structs, unions and functions. You
can use these combinators to describe the types of the functions that you want
to call, then bind directly to those functions -- all without writing or
generating any C!
To install the optional `ctypes.foreign` interface (which uses `libffi` to
provide dynamic access to foreign libraries), you will need to also install
the `ctypes-foreign` optional dependency:
opam install ctypes ctypes-foreign
This 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-expressions
that is super simple and well suited for communication between
programs.
This library only provides a few helpers for simple applications. If
you need more advanced support, such as parsing from more fancy input
sources, you should consider copying the code of this library given
how simple parsing S-expressions in canonical form is.
To avoid a dependency on a particular S-expression library, the only
module 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 OCaml
Base is a complete and portable alternative to the OCaml standard
library. It provides all standard functionalities one would expect
from a language standard library. It uses consistent conventions
across all of its module.
Base aims to be usable in any context. As a result system dependent
features such as I/O are not offered by Base. They are instead
provided 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-config
libopus
ctypes
dune-configurator
];
}