From 8fd380c64998b553532b7c9325256930966b7d35 Mon Sep 17 00:00:00 2001 From: Zach Baylin Date: Sat, 6 Jun 2020 20:01:49 +0200 Subject: [PATCH] feat(reason-skia): bind to sk_fontmgr_t (#900) * Skia: add FontManager type * Make returned typeface optional * Unref the typeface we get from the manager when we're done * Update lockfiles * Add font discovery example in Skia CLI * Add delete function for FontManager * Refactor problematic font-manager out of SkiaCli * Add SkiaFontManagerCli to CI --- .ci/esy-build-steps.yml | 4 + .gitignore | 1 + examples.esy.lock/index.json | 336 +++++-------- .../opam/{dune.2.5.1 => dune.2.5.0}/opam | 6 +- ...Don-t-build-manpages-for-stdlib-docs.patch | 24 - ...1-Fix-failure-to-install-tools-links.patch | 26 - .../ocaml-secondary-compiler.4.08.1-1/opam | 48 -- .../ocamlfind-secondary.1.8.1/files/META.in | 3 - .../files/ocaml-secondary-compiler.conf.in | 10 - .../opam/ocamlfind-secondary.1.8.1/opam | 32 -- .../package.json | 34 -- .../files/clone-flexdll | 16 - .../files/configure-windows | 22 - .../files/esy-build | 24 - .../files/esy-configure | 29 -- .../package.json | 28 -- .../files/findlib-1.8.1.patch | 471 ------------------ .../files/gen-findlib-conf.sh | 14 - .../files/gen-meta.sh | 7 - .../package.json | 47 -- .../SkiaFontManagerCli.re | 53 ++ examples/skia-font-manager-cli/dune | 11 + src/reason-skia/Skia.re | 20 + src/reason-skia/Skia.rei | 7 + .../wrapped/bindings/SkiaWrappedBindings.re | 21 + .../wrapped/types/SkiaWrappedTypes.re | 7 + 26 files changed, 259 insertions(+), 1042 deletions(-) rename examples.esy.lock/opam/{dune.2.5.1 => dune.2.5.0}/opam (85%) delete mode 100644 examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Don-t-build-manpages-for-stdlib-docs.patch delete mode 100644 examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Fix-failure-to-install-tools-links.patch delete mode 100644 examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam delete mode 100644 examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/META.in delete mode 100644 examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/ocaml-secondary-compiler.conf.in delete mode 100644 examples.esy.lock/opam/ocamlfind-secondary.1.8.1/opam delete mode 100644 examples.esy.lock/overrides/opam__s__dune_opam__c__2.5.1_opam_override/package.json delete mode 100755 examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/clone-flexdll delete mode 100755 examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/configure-windows delete mode 100755 examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-build delete mode 100755 examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-configure delete mode 100644 examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/package.json delete mode 100644 examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch delete mode 100644 examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-findlib-conf.sh delete mode 100644 examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-meta.sh delete mode 100644 examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/package.json create mode 100644 examples/skia-font-manager-cli/SkiaFontManagerCli.re create mode 100644 examples/skia-font-manager-cli/dune diff --git a/.ci/esy-build-steps.yml b/.ci/esy-build-steps.yml index d5d8cf8a6..0de312311 100644 --- a/.ci/esy-build-steps.yml +++ b/.ci/esy-build-steps.yml @@ -21,3 +21,7 @@ steps: displayName: '@esy @examples x SkiaCli' - script: esy @examples x SkiaCli.bc displayName: '@esy @examples x SkiaCli.bc' + - script: esy @examples x SkiaFontManagerCli + displayName: 'esy @examples x SkiaFontManagerCli' + - script: esy @examples x SkiaFontManagerCli.bc + displayName: 'esy @examples x SkiaFontManagerCli.bc' diff --git a/.gitignore b/.gitignore index c193d91eb..f8d6c5446 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ _esy/ .DS_Store skia-c-example.png +skia-font-manager-output.png diff --git a/examples.esy.lock/index.json b/examples.esy.lock/index.json index 83f9a91ab..46c3c55a6 100644 --- a/examples.esy.lock/index.json +++ b/examples.esy.lock/index.json @@ -1,5 +1,5 @@ { - "checksum": "27d4504041c93f751d6244dbbfcf235c", + "checksum": "22f96f5c60d12383383be95d2b5d1754", "root": "revery@link-dev:./package.json", "node": { "yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#db3a0b63883606dd57c54a7158d560d6cba8cd79@d41d8cd9": { @@ -28,7 +28,7 @@ "source": [ "github:revery-ui/revery-text-wrap#966383e" ] }, "overrides": [], - "dependencies": [ "@opam/dune@opam:2.5.1@f38f376e" ], + "dependencies": [ "@opam/dune@opam:2.5.0@aef1678b" ], "devDependencies": [] }, "revery@link-dev:./package.json": { @@ -45,7 +45,7 @@ "revery-text-wrap@github:revery-ui/revery-text-wrap#966383e@d41d8cd9", "reperf@1.5.0@d41d8cd9", "rench@1.9.1@d41d8cd9", "rebez@github:jchavarri/rebez#03fa3b7@d41d8cd9", - "reason-native-crash-utils@github:onivim/reason-native-crash-utils#38c8f003a0ab26d6e94932e88af9b58ce758f9a6@d41d8cd9", + "reason-native-crash-utils@github:onivim/reason-native-crash-utils#38c8f00@d41d8cd9", "flex@1.2.3@d41d8cd9", "esy-skia@github:revery-ui/esy-skia#d60e5fe@d41d8cd9", "esy-sdl2@2.0.10008@d41d8cd9", "esy-harfbuzz@1.9.1008@d41d8cd9", @@ -56,7 +56,7 @@ "@opam/lwt_ppx@opam:2.0.1@ab0debb8", "@opam/lwt@opam:4.5.0@677655b4", "@opam/lru@github:bryphe/lru:lru.opam#2708c70@d41d8cd9", "@opam/dune-configurator@opam:2.5.1@aeb9d8d5", - "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/ctypes@opam:0.15.1@b0227b2f", "@glennsl/timber@1.2.0@d41d8cd9", "@esy-ocaml/reason@3.6.0@d41d8cd9", "@brisk/brisk-reconciler@github:briskml/brisk-reconciler#10cab2d@d41d8cd9" @@ -81,7 +81,7 @@ "dependencies": [ "refmterr@3.3.2@d41d8cd9", "ocaml@4.10.0@d41d8cd9", "@reason-native/pastel@0.1.0@d41d8cd9", - "@opam/printbox@opam:0.5@82f5d436", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/printbox@opam:0.5@82f5d436", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] @@ -102,7 +102,7 @@ "@reason-native/console@0.0.3@d41d8cd9", "@opam/lwt@opam:4.5.0@677655b4", "@opam/lambda-term@opam:3.1.0@8adc2660", - "@opam/fpath@opam:0.7.2@45477b93", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/fpath@opam:0.7.2@45477b93", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] @@ -121,7 +121,7 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@reason-native/pastel@0.1.0@d41d8cd9", "@reason-native/console@0.0.3@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.0@aef1678b", "@opam/atdgen@opam:2.2.1@d73fda11", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], @@ -137,28 +137,25 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] }, - "reason-native-crash-utils@github:onivim/reason-native-crash-utils#38c8f003a0ab26d6e94932e88af9b58ce758f9a6@d41d8cd9": { + "reason-native-crash-utils@github:onivim/reason-native-crash-utils#38c8f00@d41d8cd9": { "id": - "reason-native-crash-utils@github:onivim/reason-native-crash-utils#38c8f003a0ab26d6e94932e88af9b58ce758f9a6@d41d8cd9", + "reason-native-crash-utils@github:onivim/reason-native-crash-utils#38c8f00@d41d8cd9", "name": "reason-native-crash-utils", - "version": - "github:onivim/reason-native-crash-utils#38c8f003a0ab26d6e94932e88af9b58ce758f9a6", + "version": "github:onivim/reason-native-crash-utils#38c8f00", "source": { "type": "install", - "source": [ - "github:onivim/reason-native-crash-utils#38c8f003a0ab26d6e94932e88af9b58ce758f9a6" - ] + "source": [ "github:onivim/reason-native-crash-utils#38c8f00" ] }, "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/dune-configurator@opam:2.5.1@aeb9d8d5", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9" ] }, @@ -188,7 +185,7 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] @@ -335,7 +332,7 @@ "@reason-native/file-context-printer@0.0.3@d41d8cd9", "@reason-native/cli@0.0.1-alpha@d41d8cd9", "@opam/re@opam:1.9.0@d4d5e13d", "@opam/junit@opam:2.0.2@0b7bd730", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/reason@3.6.0@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] }, @@ -351,7 +348,7 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] @@ -369,7 +366,7 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@reason-native/pastel@0.1.0@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] @@ -386,7 +383,7 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] @@ -404,7 +401,7 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@reason-native/pastel@0.1.0@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] @@ -428,7 +425,7 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/react@opam:1.2.1@0e11855f", - "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/charInfo_width@opam:1.1.0@9d8d61b2", "@opam/camomile@opam:1.0.2@51b42ad8", "@opam/base-bytes@opam:base@19d0c2ff", @@ -436,7 +433,7 @@ ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/react@opam:1.2.1@0e11855f", - "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/charInfo_width@opam:1.1.0@9d8d61b2", "@opam/camomile@opam:1.0.2@51b42ad8", "@opam/base-bytes@opam:base@19d0c2ff" @@ -461,13 +458,13 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/cppo@opam:1.6.6@f4f83858", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/cppo@opam:1.6.6@f4f83858", "@opam/biniou@opam:1.2.1@d7570399", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/biniou@opam:1.2.1@d7570399" + "@opam/dune@opam:2.5.0@aef1678b", "@opam/biniou@opam:1.2.1@d7570399" ] }, "@opam/uutf@opam:1.0.2@4440868f": { @@ -541,12 +538,12 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f", "@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f", "@opam/seq@opam:base@d8d7de1d", "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/trie@opam:1.0.0@d2efc587": { @@ -567,11 +564,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/topkg@opam:1.0.1@a42c631e": { @@ -618,11 +615,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/stdio@opam:v0.14.0@a624e254": { @@ -643,12 +640,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base@opam:v0.14.0@b8817fc1", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base@opam:v0.14.0@b8817fc1" ] }, @@ -670,11 +667,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/seq@opam:base@d8d7de1d": { @@ -714,11 +711,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/react@opam:1.2.1@0e11855f": { @@ -765,11 +762,11 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ptime@opam:0.8.5@0051d642": { @@ -819,11 +816,11 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/printbox@opam:0.5@82f5d436": { @@ -845,12 +842,12 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/uutf@opam:1.0.2@4440868f", - "@opam/tyxml@opam:4.4.0@1dca5713", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/tyxml@opam:4.4.0@1dca5713", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base-bytes@opam:base@19d0c2ff", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base-bytes@opam:base@19d0c2ff" ] }, @@ -876,7 +873,7 @@ "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", "@opam/ocaml-compiler-libs@opam:v0.12.1@5c34eb0d", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/base@opam:v0.14.0@b8817fc1", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/base@opam:v0.14.0@b8817fc1", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ @@ -884,7 +881,7 @@ "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", "@opam/ocaml-compiler-libs@opam:v0.12.1@5c34eb0d", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/base@opam:v0.14.0@b8817fc1" + "@opam/dune@opam:2.5.0@aef1678b", "@opam/base@opam:v0.14.0@b8817fc1" ] }, "@opam/ppxfind@opam:1.4@1e01d2a5": { @@ -907,12 +904,12 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@ff07b0f9", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/ocamlfind@opam:1.8.1@ff07b0f9", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ppx_yojson_conv_lib@opam:v0.14.0@116b53d6": { @@ -934,11 +931,11 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ppx_tools_versioned@opam:5.4.0@48c10ee1": { @@ -961,12 +958,12 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ppx_tools@opam:6.1+4.10.0@d7f16ed7": { @@ -987,11 +984,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ppx_deriving@opam:4.5@bb81afdc": { @@ -1017,7 +1014,7 @@ "@opam/ppx_tools@opam:6.1+4.10.0@d7f16ed7", "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/cppo@opam:1.6.6@f4f83858", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/cppo@opam:1.6.6@f4f83858", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ @@ -1025,7 +1022,7 @@ "@opam/ppx_tools@opam:6.1+4.10.0@d7f16ed7", "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ppx_derivers@opam:1.2.1@ecf0aa45": { @@ -1046,11 +1043,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/omd@github:ocaml/omd:omd.opam#1535e3c@d41d8cd9": { @@ -1063,7 +1060,7 @@ }, "overrides": [], "dependencies": [ - "@opam/uchar@opam:0.0.2@c8218eea", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/uchar@opam:0.0.2@c8218eea", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base-bytes@opam:base@19d0c2ff", "@opam/base-bigarray@opam:base@b03491b0", "@esy-ocaml/substs@0.0.1@d41d8cd9" @@ -1092,49 +1089,16 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/cppo@opam:1.6.6@f4f83858", "@opam/base-bytes@opam:base@19d0c2ff", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base-bytes@opam:base@19d0c2ff" ] }, - "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2": { - "id": "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", - "name": "@opam/ocamlfind-secondary", - "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-secondary", - "version": "1.8.1", - "path": "examples.esy.lock/opam/ocamlfind-secondary.1.8.1" - } - }, - "overrides": [ - { - "opamoverride": - "examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override" - } - ], - "dependencies": [ - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/ocaml-secondary-compiler@opam:4.08.1-1@ba28931b", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/ocaml-secondary-compiler@opam:4.08.1-1@ba28931b" - ] - }, "@opam/ocamlfind@opam:1.8.1@ff07b0f9": { "id": "@opam/ocamlfind@opam:1.8.1@ff07b0f9", "name": "@opam/ocamlfind", @@ -1191,33 +1155,6 @@ ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9" ] }, - "@opam/ocaml-secondary-compiler@opam:4.08.1-1@ba28931b": { - "id": "@opam/ocaml-secondary-compiler@opam:4.08.1-1@ba28931b", - "name": "@opam/ocaml-secondary-compiler", - "version": "opam:4.08.1-1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/72/723b6bfe8cf5abcbccc6911143f71055#md5:723b6bfe8cf5abcbccc6911143f71055", - "archive:https://github.com/ocaml/ocaml/archive/4.08.1.tar.gz#md5:723b6bfe8cf5abcbccc6911143f71055" - ], - "opam": { - "name": "ocaml-secondary-compiler", - "version": "4.08.1-1", - "path": "examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1" - } - }, - "overrides": [ - { - "opamoverride": - "examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override" - } - ], - "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ "ocaml@4.10.0@d41d8cd9" ] - }, "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47": { "id": "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", "name": "@opam/ocaml-migrate-parsetree", @@ -1238,12 +1175,12 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/result@opam:1.5@6b753c82", "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/result@opam:1.5@6b753c82", "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ocaml-lsp-server@github:ocaml/ocaml-lsp:ocaml-lsp-server.opam#38bd51a15c98b4f6ff841e5c914a8cdacee15ea6@d41d8cd9": { @@ -1266,7 +1203,7 @@ "@opam/ocamlfind@opam:1.8.1@ff07b0f9", "@opam/menhir@opam:20200211@26571604", "@opam/dune-build-info@opam:2.5.1@921e5578", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", @@ -1275,7 +1212,7 @@ "@opam/ocamlfind@opam:1.8.1@ff07b0f9", "@opam/menhir@opam:20200211@26571604", "@opam/dune-build-info@opam:2.5.1@921e5578", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/ocaml-compiler-libs@opam:v0.12.1@5c34eb0d": { @@ -1296,11 +1233,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/mmap@opam:1.1.0@b85334ff": { @@ -1321,11 +1258,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/mew_vi@opam:0.5.0@cf66c299": { @@ -1347,12 +1284,12 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/react@opam:1.2.1@0e11855f", - "@opam/mew@opam:0.1.0@a74f69d6", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/mew@opam:0.1.0@a74f69d6", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/react@opam:1.2.1@0e11855f", - "@opam/mew@opam:0.1.0@a74f69d6", "@opam/dune@opam:2.5.1@f38f376e" + "@opam/mew@opam:0.1.0@a74f69d6", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/mew@opam:0.1.0@a74f69d6": { @@ -1374,12 +1311,12 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/trie@opam:1.0.0@d2efc587", - "@opam/result@opam:1.5@6b753c82", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/result@opam:1.5@6b753c82", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/trie@opam:1.0.0@d2efc587", - "@opam/result@opam:1.5@6b753c82", "@opam/dune@opam:2.5.1@f38f376e" + "@opam/result@opam:1.5@6b753c82", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/merlin-extend@opam:0.5@675b1611": { @@ -1400,11 +1337,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/cppo@opam:1.6.6@f4f83858", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/menhirSdk@opam:20200211@b2a79ec0": { @@ -1425,11 +1362,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/menhirLib@opam:20200211@93d0f001": { @@ -1450,11 +1387,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/menhir@opam:20200211@26571604": { @@ -1482,13 +1419,13 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/menhirSdk@opam:20200211@b2a79ec0", "@opam/menhirLib@opam:20200211@93d0f001", - "@opam/fix@opam:20200131@0ecd2f01", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/fix@opam:20200131@0ecd2f01", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/menhirSdk@opam:20200211@b2a79ec0", "@opam/menhirLib@opam:20200211@93d0f001", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/lwt_react@opam:1.1.3@72987fcf": { @@ -1510,12 +1447,12 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/react@opam:1.2.1@0e11855f", - "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/react@opam:1.2.1@0e11855f", - "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.1@f38f376e" + "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/lwt_ppx@opam:2.0.1@ab0debb8": { @@ -1539,14 +1476,14 @@ "ocaml@4.10.0@d41d8cd9", "@opam/ppx_tools_versioned@opam:5.4.0@48c10ee1", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/ppx_tools_versioned@opam:5.4.0@48c10ee1", "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", - "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.1@f38f376e" + "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/lwt_log@opam:1.1.1@2d7a797f": { @@ -1567,11 +1504,11 @@ }, "overrides": [], "dependencies": [ - "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.1@f38f376e" + "@opam/lwt@opam:4.5.0@677655b4", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/lwt@opam:4.5.0@677655b4": { @@ -1597,7 +1534,7 @@ "@opam/ocplib-endian@opam:1.1@84c1ca88", "@opam/mmap@opam:1.1.0@b85334ff", "@opam/dune-configurator@opam:2.5.1@aeb9d8d5", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/cppo@opam:1.6.6@f4f83858", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/cppo@opam:1.6.6@f4f83858", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084", "@esy-ocaml/substs@0.0.1@d41d8cd9" @@ -1608,7 +1545,7 @@ "@opam/ocplib-endian@opam:1.1@84c1ca88", "@opam/mmap@opam:1.1.0@b85334ff", "@opam/dune-configurator@opam:2.5.1@aeb9d8d5", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/lru@github:bryphe/lru:lru.opam#2708c70@d41d8cd9": { @@ -1622,7 +1559,7 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/psq@opam:0.2.0@247756d4", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/psq@opam:0.2.0@247756d4" @@ -1678,7 +1615,7 @@ "@opam/mew_vi@opam:0.5.0@cf66c299", "@opam/lwt_react@opam:1.1.3@72987fcf", "@opam/lwt_log@opam:1.1.1@2d7a797f", "@opam/lwt@opam:4.5.0@677655b4", - "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/camomile@opam:1.0.2@51b42ad8", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], @@ -1688,7 +1625,7 @@ "@opam/mew_vi@opam:0.5.0@cf66c299", "@opam/lwt_react@opam:1.1.3@72987fcf", "@opam/lwt_log@opam:1.1.1@2d7a797f", "@opam/lwt@opam:4.5.0@677655b4", - "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/camomile@opam:1.0.2@51b42ad8" ] }, @@ -1711,11 +1648,11 @@ "overrides": [], "dependencies": [ "@opam/tyxml@opam:4.4.0@1dca5713", "@opam/ptime@opam:0.8.5@0051d642", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "@opam/tyxml@opam:4.4.0@1dca5713", "@opam/ptime@opam:0.8.5@0051d642", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/integers@opam:0.4.0@f7acfaeb": { @@ -1736,11 +1673,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/fpath@opam:0.7.2@45477b93": { @@ -1822,11 +1759,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/easy-format@opam:1.3.2@0484b3c4": { @@ -1847,11 +1784,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/dune-private-libs@opam:2.5.1@60c1661f": { @@ -1872,11 +1809,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/dune-configurator@opam:2.5.1@aeb9d8d5": { @@ -1898,11 +1835,11 @@ "overrides": [], "dependencies": [ "@opam/dune-private-libs@opam:2.5.1@60c1661f", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "@opam/dune-private-libs@opam:2.5.1@60c1661f", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/dune-build-info@opam:2.5.1@921e5578": { @@ -1923,43 +1860,34 @@ }, "overrides": [], "dependencies": [ - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [ "@opam/dune@opam:2.5.1@f38f376e" ] + "devDependencies": [ "@opam/dune@opam:2.5.0@aef1678b" ] }, - "@opam/dune@opam:2.5.1@f38f376e": { - "id": "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b": { + "id": "@opam/dune@opam:2.5.0@aef1678b", "name": "@opam/dune", - "version": "opam:2.5.1", + "version": "opam:2.5.0", "source": { "type": "install", "source": [ - "archive:https://opam.ocaml.org/cache/sha256/8f/8f77d3a87f208e0d7cccaa1c48c4bb1bb87d62d07c3f25e9b8ba298e028ce52b#sha256:8f77d3a87f208e0d7cccaa1c48c4bb1bb87d62d07c3f25e9b8ba298e028ce52b", - "archive:https://github.com/ocaml/dune/releases/download/2.5.1/dune-2.5.1.tbz#sha256:8f77d3a87f208e0d7cccaa1c48c4bb1bb87d62d07c3f25e9b8ba298e028ce52b" + "archive:https://opam.ocaml.org/cache/sha256/9c/9cc1661b9b173dd183867edcf8ee28a9ce79079a7d00316b719bdcba1d78d7da#sha256:9cc1661b9b173dd183867edcf8ee28a9ce79079a7d00316b719bdcba1d78d7da", + "archive:https://github.com/ocaml/dune/releases/download/2.5.0/dune-2.5.0.tbz#sha256:9cc1661b9b173dd183867edcf8ee28a9ce79079a7d00316b719bdcba1d78d7da" ], "opam": { "name": "dune", - "version": "2.5.1", - "path": "examples.esy.lock/opam/dune.2.5.1" + "version": "2.5.0", + "path": "examples.esy.lock/opam/dune.2.5.0" } }, - "overrides": [ - { - "opamoverride": - "examples.esy.lock/overrides/opam__s__dune_opam__c__2.5.1_opam_override" - } - ], + "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", - "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", - "@opam/base-unix@opam:base@87d0b2eb", + "ocaml@4.10.0@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", - "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", - "@opam/base-unix@opam:base@87d0b2eb", + "ocaml@4.10.0@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", "@opam/base-threads@opam:base@36803084" ] }, @@ -2015,12 +1943,12 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base-unix@opam:base@87d0b2eb", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@opam/base-unix@opam:base@87d0b2eb" ] }, @@ -2085,13 +2013,13 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/result@opam:1.5@6b753c82", - "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/camomile@opam:1.0.2@51b42ad8", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/result@opam:1.5@6b753c82", - "@opam/dune@opam:2.5.1@f38f376e", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/camomile@opam:1.0.2@51b42ad8" ] }, @@ -2113,11 +2041,11 @@ }, "overrides": [], "dependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e", + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ - "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.1@f38f376e" + "ocaml@4.10.0@d41d8cd9", "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/biniou@opam:1.2.1@d7570399": { @@ -2139,11 +2067,11 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/base-unix@opam:base@87d0b2eb": { @@ -2239,12 +2167,12 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/sexplib0@opam:v0.14.0@ddeb6438", "@opam/dune-configurator@opam:2.5.1@aeb9d8d5", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/sexplib0@opam:v0.14.0@ddeb6438", "@opam/dune-configurator@opam:2.5.1@aeb9d8d5", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/atdgen-runtime@opam:2.2.1@6a3a6395": { @@ -2266,13 +2194,13 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", - "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.0@aef1678b", "@opam/biniou@opam:1.2.1@d7570399", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", - "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.1@f38f376e", + "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.5.0@aef1678b", "@opam/biniou@opam:1.2.1@d7570399" ] }, @@ -2295,13 +2223,13 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/biniou@opam:1.2.1@d7570399", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/biniou@opam:1.2.1@d7570399", "@opam/atdgen-runtime@opam:2.2.1@6a3a6395", "@opam/atd@opam:2.2.1@071ab6bd", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", - "@opam/dune@opam:2.5.1@f38f376e", "@opam/biniou@opam:1.2.1@d7570399", + "@opam/dune@opam:2.5.0@aef1678b", "@opam/biniou@opam:1.2.1@d7570399", "@opam/atdgen-runtime@opam:2.2.1@6a3a6395", "@opam/atd@opam:2.2.1@071ab6bd" ] @@ -2327,13 +2255,13 @@ "ocaml@4.10.0@d41d8cd9", "@opam/re@opam:1.9.0@d4d5e13d", "@opam/menhir@opam:20200211@26571604", "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/substs@0.0.1@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/substs@0.0.1@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/re@opam:1.9.0@d4d5e13d", "@opam/menhir@opam:20200211@26571604", "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.5.1@f38f376e" + "@opam/dune@opam:2.5.0@aef1678b" ] }, "@opam/astring@opam:0.8.3@4e5e17d5": { @@ -2378,7 +2306,7 @@ "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/re@opam:1.9.0@d4d5e13d", "@opam/logs@opam:0.7.0@1d03143e", "@opam/fmt@opam:0.8.8@01c3a23c", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/reason@3.6.0@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [] }, @@ -2413,7 +2341,7 @@ "@opam/ocaml-migrate-parsetree@opam:1.7.3@dbcf3b47", "@opam/merlin-extend@opam:0.5@675b1611", "@opam/menhir@opam:20200211@26571604", - "@opam/fix@opam:20200131@0ecd2f01", "@opam/dune@opam:2.5.1@f38f376e" + "@opam/fix@opam:20200131@0ecd2f01", "@opam/dune@opam:2.5.0@aef1678b" ], "devDependencies": [] }, @@ -2443,7 +2371,7 @@ "overrides": [], "dependencies": [ "ocaml@4.10.0@d41d8cd9", "@opam/ppxlib@opam:0.13.0@65a9c7cc", - "@opam/dune@opam:2.5.1@f38f376e", "@esy-ocaml/reason@3.6.0@d41d8cd9" + "@opam/dune@opam:2.5.0@aef1678b", "@esy-ocaml/reason@3.6.0@d41d8cd9" ], "devDependencies": [ "ocaml@4.10.0@d41d8cd9" ] } diff --git a/examples.esy.lock/opam/dune.2.5.1/opam b/examples.esy.lock/opam/dune.2.5.0/opam similarity index 85% rename from examples.esy.lock/opam/dune.2.5.1/opam rename to examples.esy.lock/opam/dune.2.5.0/opam index dae256a8a..7441e4dd3 100644 --- a/examples.esy.lock/opam/dune.2.5.1/opam +++ b/examples.esy.lock/opam/dune.2.5.0/opam @@ -46,9 +46,9 @@ depends: [ "base-threads" ] url { - src: "https://github.com/ocaml/dune/releases/download/2.5.1/dune-2.5.1.tbz" + src: "https://github.com/ocaml/dune/releases/download/2.5.0/dune-2.5.0.tbz" checksum: [ - "sha256=8f77d3a87f208e0d7cccaa1c48c4bb1bb87d62d07c3f25e9b8ba298e028ce52b" - "sha512=f209f12ced10c1abf8782bdb0143f4cec77795f7174d2cc75130afb1e01550b01f2f77b9e3ec4888efdad83d2f9878d179b39126f824f4e522f3ef4da34bf27e" + "sha256=9cc1661b9b173dd183867edcf8ee28a9ce79079a7d00316b719bdcba1d78d7da" + "sha512=fa29986243b73caa6ca01acbc55cfba5e454e069e737f53c32bee5abc7e3c4679fecdec232d34af63954287bebf0fb1cabe4a95c56147f457d82d1a72dd44223" ] } diff --git a/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Don-t-build-manpages-for-stdlib-docs.patch b/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Don-t-build-manpages-for-stdlib-docs.patch deleted file mode 100644 index cda19dd2d..000000000 --- a/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Don-t-build-manpages-for-stdlib-docs.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0cf3c6ad7ce2a2b2806faceccfb0a9321da5e22a Mon Sep 17 00:00:00 2001 -From: David Allsopp -Date: Fri, 26 Jul 2019 12:12:19 +0100 -Subject: [PATCH] Don't build manpages for stdlib docs ---- - ocamldoc/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ocamldoc/Makefile b/ocamldoc/Makefile -index b109815071..e31e441f61 100644 ---- a/ocamldoc/Makefile -+++ b/ocamldoc/Makefile -@@ -170,7 +170,7 @@ LIBCMIFILES = $(LIBCMOFILES:.cmo=.cmi) - - - .PHONY: all --all: lib exe generators manpages -+all: lib exe generators - - manpages: generators - --- -2.20.1 - diff --git a/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Fix-failure-to-install-tools-links.patch b/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Fix-failure-to-install-tools-links.patch deleted file mode 100644 index 41f5f7704..000000000 --- a/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Fix-failure-to-install-tools-links.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 705739fa54260b7a0e6cbba0b5a99e52c79f9c09 Mon Sep 17 00:00:00 2001 -From: David Allsopp -Date: Tue, 6 Aug 2019 09:23:06 +0100 -Subject: [PATCH] Fix failure to install tools links - -In --disable-installing-bytecode-programs mode, the .opt version of the -tools is installed, but the symlink for the tool itself is not created. ---- - tools/Makefile | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tools/Makefile b/tools/Makefile -index 530dd37f34..1b3014a3ab 100644 ---- a/tools/Makefile -+++ b/tools/Makefile -@@ -197,6 +197,7 @@ else - do \ - if test -f "$$i".opt; then \ - $(INSTALL_PROG) "$$i.opt" "$(INSTALL_BINDIR)/$$i.opt$(EXE)"; \ -+ (cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \ - fi; \ - done - endif --- -2.20.1 - diff --git a/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam b/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam deleted file mode 100644 index a6438b04a..000000000 --- a/examples.esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam +++ /dev/null @@ -1,48 +0,0 @@ -opam-version: "2.0" -synopsis: "OCaml 4.08.1 Secondary Switch Compiler" -maintainer: "platform@lists.ocaml.org" -authors: "Xavier Leroy and many contributors" -homepage: "https://ocaml.org" -bug-reports: "https://github.com/ocaml/ocaml/issues" -dev-repo: "git://github.com/ocaml/ocaml" -depends: "ocaml" {< "4.08.0" | >= "4.09~"} -build: [ - [ - "./configure" - "--prefix=%{_:share}%" - "--libdir=%{_:share}%/lib" - "--disable-debugger" - "--disable-installing-bytecode-programs" - "--disable-debug-runtime" - "--disable-instrumented-runtime" - "--disable-graph-lib" - "CC=cc" {os = "openbsd" | os = "freebsd" | os = "macos"} - "ASPP=cc -c" {os = "openbsd" | os = "freebsd" | os = "macos"} - ] - [make "-j%{jobs}%" {os != "cygwin"} "world.opt"] -] -install: [make "install"] -url { - src: "https://github.com/ocaml/ocaml/archive/4.08.1.tar.gz" - checksum: "md5=723b6bfe8cf5abcbccc6911143f71055" -} -extra-files: [ - ["0001-Don-t-build-manpages-for-stdlib-docs.patch" "md5=6caa580fe6031c109d2dc96b19bd40cd"] - ["0001-Fix-failure-to-install-tools-links.patch" "md5=e973762c0b3d62b0b25a26468086fae3"] -] -patches: [ - "0001-Don-t-build-manpages-for-stdlib-docs.patch" - "0001-Fix-failure-to-install-tools-links.patch" -] -post-messages: [ - "A failure in the middle of the build may be caused by build parallelism - (enabled by default). - Please file a bug report at https://github.com/ocaml/ocaml/issues" - {failure & jobs > 1 & os != "cygwin"} - "You can try installing again including --jobs=1 - to force a sequential build instead." - {failure & jobs > 1 & os != "cygwin" & opam-version >= "2.0.5"} -] -description: "Installs an additional compiler to the opam switch in -%{_:share}%/ocaml-secondary-compiler which can be accessed using -`ocamlfind -toolchain secondary`." diff --git a/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/META.in b/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/META.in deleted file mode 100644 index 12e3ee661..000000000 --- a/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/META.in +++ /dev/null @@ -1,3 +0,0 @@ -description = "OCaml Secondary Compiler" -version = "%{ocaml-secondary-compiler:version}%" -directory = "%{ocaml-secondary-compiler:share}%/bin" diff --git a/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/ocaml-secondary-compiler.conf.in b/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/ocaml-secondary-compiler.conf.in deleted file mode 100644 index d13023c9f..000000000 --- a/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/files/ocaml-secondary-compiler.conf.in +++ /dev/null @@ -1,10 +0,0 @@ -path(secondary) = "%{ocaml-secondary-compiler:share}%/lib" -destdir(secondary) = "%{ocaml-secondary-compiler:share}%/lib" -stdlib(secondary) = "%{ocaml-secondary-compiler:share}%/lib" -ocamlc(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlc" -ocamlopt(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlopt" -ocamlcp(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlcp" -ocamlmklib(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlmklib" -ocamlmktop(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlmktop" -ocamldoc(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamldoc" -ocamldep(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamldep" diff --git a/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/opam b/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/opam deleted file mode 100644 index acdb57645..000000000 --- a/examples.esy.lock/opam/ocamlfind-secondary.1.8.1/opam +++ /dev/null @@ -1,32 +0,0 @@ -opam-version: "2.0" -maintainer: "David Allsopp " -homepage: "https://github.com/ocaml/opam-repository" -bug-reports: "https://github.com/ocaml/opam-repository/issues" -build: ["./configure" "-sitelib" "%{ocaml-secondary-compiler:share}%/lib" "-no-camlp4"] -install: [ - [make "install-meta"] - ["mkdir" "-p" "%{lib}%/findlib.conf.d/"] - ["cp" "ocaml-secondary-compiler.conf" "%{lib}%/findlib.conf.d/"] - ["mkdir" "-p" "%{ocaml-secondary-compiler:share}%/lib/ocaml"] - ["cp" "META" "%{ocaml-secondary-compiler:share}%/lib/ocaml"] -] -depends: [ - "ocaml-secondary-compiler" - "ocamlfind" {= "1.8.1"} -] -synopsis: "ocamlfind support for ocaml-secondary-compiler" -description: """ -Exposes the compiler built by the ocaml-secondary-compielr package via --toolchain secondary. A virtual package called ocaml is also installed to -locate the binary directory via `ocamlfind -toolchain secondary query ocaml`.""" -authors: ["Gerd Stolpmann " "David Allsopp "] -substs: ["META" "ocaml-secondary-compiler.conf"] -extra-files: [ - ["META.in" "md5=8c6ea8a0158a33ed87e6c38a7d686d49"] - ["ocaml-secondary-compiler.conf.in" "md5=367a7bb68e2e1e65a31356421ddc809c"] -] -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" -} diff --git a/examples.esy.lock/overrides/opam__s__dune_opam__c__2.5.1_opam_override/package.json b/examples.esy.lock/overrides/opam__s__dune_opam__c__2.5.1_opam_override/package.json deleted file mode 100644 index f2b2e9f48..000000000 --- a/examples.esy.lock/overrides/opam__s__dune_opam__c__2.5.1_opam_override/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "buildsInSource": true, - "build": [ - [ - "ocaml", - "configure.ml", - "--libdir", - "#{self.lib}" - ], - [ - "env", - "-u", - "OCAMLLIB", - "ocaml", - "bootstrap.ml" - ], - [ - "./dune.exe", - "build", - "-p", - "dune", - "--profile", - "dune-bootstrap" - ] - ], - "install": "esy-installer dune.install", - "buildEnv": { - "OCAMLFIND_CONF": "$OCAMLFIND_SECONDARY_PREFIX/lib/findlib.conf.d/ocaml-secondary-compiler.conf", - "OCAMLPATH": "#{ $OCAMLFIND_SECONDARY_PREFIX / 'lib' : ocaml.lib : $OCAML_SECONDARY_COMPILER_PREFIX / 'share' / 'ocaml-secondary-compiler' / 'lib' }" - }, - "dependencies": { - "ocaml": "*" - } -} diff --git a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/clone-flexdll b/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/clone-flexdll deleted file mode 100755 index 26301ddd3..000000000 --- a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/clone-flexdll +++ /dev/null @@ -1,16 +0,0 @@ -#! /bin/sh - -# clone-flexdll -# -# Brings in flexdll, if necessary - -if [ -d "flexdll" ] && [ -f "flexdll/flexdll.c" ]; then - echo "[Flexdll] Already present, no need to clone." -else - echo "[Flexdll] Cloning..." - git clone https://github.com/esy-ocaml/flexdll.git - cd flexdll - git checkout f84baaeae463f96f9582883a9cfb7dd1096757ff - cd .. - echo "[Flexdll] Clone successful!" -fi \ No newline at end of file diff --git a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/configure-windows b/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/configure-windows deleted file mode 100755 index 4040b49ea..000000000 --- a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/configure-windows +++ /dev/null @@ -1,22 +0,0 @@ -#! /bin/sh - -# configure-windows -# -# Creates a native Windows MingW build, based on: -# https://github.com/ocaml/ocaml/blob/trunk/README.win32.adoc - - -export prefix=C:/ocamlmgw64 -while : ; do - case "$1" in - "") break;; - -prefix|--prefix) - prefix=$2; shift;; - esac - shift -done - -echo "[configure-windows] Setting up flexdll" -./clone-flexdll -./configure --build=x86_64-unknown-cygwin --host=x86_64-w64-mingw32 --prefix=$prefix -make flexdll diff --git a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-build b/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-build deleted file mode 100755 index b95356a53..000000000 --- a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-build +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env bash - -# esy-build -# -# Wrapper to execute appropriate build strategy, based on platform - -set -u -set -e -set -o pipefail - -case "$(uname -s)" in - CYGWIN*|MINGW32*|MSYS*) - echo "[esy-build] Detected windows environment..." - make -j4 world.opt - make flexlink.opt - ;; - *) - echo "[esy-build] Detected OSX / Linux environment" - make -j4 world.opt - ;; -esac - -# Common build steps -make install \ No newline at end of file diff --git a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-configure b/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-configure deleted file mode 100755 index fd196c517..000000000 --- a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-configure +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env bash - -# esy-configure -# -# Wrapper to delegate to configuration to the -# appropriate `configure` strategy based on the active platform. -# -# Today, OCaml has separate build strategies: -# - Linux, OSX, Cygwin (gcc) - https://github.com/ocaml/ocaml/blob/trunk/INSTALL.adoc -# - Windows, Cygin (mingw) - https://github.com/ocaml/ocaml/blob/trunk/README.win32.adoc -# -# We want `esy` to work cross-platform, so this is a shim script that will delegate to the -# appropriate script depending on the platform. We assume that if the platform is `CYGWIN` -# that the `mingw` (native executable) strategy is desired. - -set -u -set -e -set -o pipefail - -case "$(uname -s)" in - CYGWIN*|MINGW32*|MSYS*) - echo "[esy-configure] Detected windows environment..." - ./configure-windows "$@" - ;; - *) - echo "[esy-configure] Detected OSX / Linux environment" - ./configure "$@" - ;; -esac \ No newline at end of file diff --git a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/package.json b/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/package.json deleted file mode 100644 index 948455caf..000000000 --- a/examples.esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "buildEnv": { - "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" - }, - "build": [ - [ - "env", - "-u", - "OCAMLLIB", - "bash", "./esy-configure", - "--disable-cfi", - "--prefix", "$cur__install/share/ocaml-secondary-compiler", - "--libdir", "$cur__install/share/ocaml-secondary-compiler/lib", - "--disable-debugger", - "--disable-installing-bytecode-programs", - "--disable-debug-runtime", - "--disable-instrumented-runtime", - "--disable-graph-lib" - ], - [ - "env", - "-u", - "OCAMLLIB", - "bash", "./esy-build" - ] - ], - "buildsInSource": true -} diff --git a/examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch b/examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch deleted file mode 100644 index 3e3ee5a24..000000000 --- a/examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch +++ /dev/null @@ -1,471 +0,0 @@ ---- ./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 instead of -L ) - *) - -+(* 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 diff --git a/examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-findlib-conf.sh b/examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-findlib-conf.sh deleted file mode 100644 index c923ef49e..000000000 --- a/examples.esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-findlib-conf.sh +++ /dev/null @@ -1,14 +0,0 @@ -OCAML_SECONDARY_COMPILER=$1 - -cat >ocaml-secondary-compiler.conf <META < { + let image = Surface.makeImageSnapshot(surface); + let data = Image.encodeToData(image); + let dataString = Data.makeString(data); + let fileOutputChannel = open_out_bin(path); + output_string(fileOutputChannel, dataString); + close_out(fileOutputChannel); +}; + +let makeSurface = (width, height) => { + let imageInfo = ImageInfo.make(width, height, Rgba8888, Premul, None); + Surface.makeRaster(imageInfo, 0, None); +}; + +let draw = canvas => { + let fontManager = FontManager.makeDefault(); + let style = FontStyle.make(400, 5, Upright); + let maybeTypeface = + FontManager.matchFamilyStyle(fontManager, "Arial", style); + let fill = Paint.make(); + + Paint.setColor(fill, Color.makeArgb(0xFFl, 0xFFl, 0xFFl, 0xFFl)); + Paint.setTextSize(fill, 16.); + Paint.setSubpixelText(fill, true); + + switch (maybeTypeface) { + | None => + print_endline("Normal Arial not found. Ensure you have it available.") + | Some(typeface) => + Paint.setTypeface(fill, typeface); + Canvas.drawText(canvas, "Arial (System)", 10., 20., fill); + }; + + let maybeTypeface = + FontManager.matchFamilyStyle(fontManager, "Times New Roman", style); + switch (maybeTypeface) { + | None => + print_endline( + "Normal Times New Roman not found. Ensure you have it available.", + ) + | Some(typeface) => + Paint.setTypeface(fill, typeface); + Canvas.drawText(canvas, "Times New Roman (System)", 10., 40., fill); + }; +}; + +let surface = makeSurface(640l, 480l); +let canvas = Surface.getCanvas(surface); +draw(canvas); +emitPng("skia-font-manager-output.png", surface); +print_endline("Done!"); diff --git a/examples/skia-font-manager-cli/dune b/examples/skia-font-manager-cli/dune new file mode 100644 index 000000000..de6346277 --- /dev/null +++ b/examples/skia-font-manager-cli/dune @@ -0,0 +1,11 @@ +(executables + (names SkiaFontManagerCli) + (package ReveryExamples) + (public_names SkiaFontManagerCli) + (modes native byte) + (libraries skia skia.wrapped.bindings skia.wrapped)) + +(install + (section bin) + (package ReveryExamples) + (files SkiaFontManagerCli.bc)) diff --git a/src/reason-skia/Skia.re b/src/reason-skia/Skia.re index 57d5ef522..e5ee0424d 100644 --- a/src/reason-skia/Skia.re +++ b/src/reason-skia/Skia.re @@ -486,6 +486,26 @@ module Typeface = { let makeFromFile = SkiaWrapped.Typeface.makeFromFile; }; +module FontManager = { + type t = SkiaWrapped.FontManager.t; + + let makeDefault = () => { + let mgr = SkiaWrapped.FontManager.makeDefault(); + Gc.finalise(SkiaWrapped.FontManager.delete, mgr); + mgr; + }; + let matchFamilyStyle = (mgr, family, style) => { + let typeface = + SkiaWrapped.FontManager.matchFamilyStyle(mgr, family, style); + switch (typeface) { + | Some(tf) => + Gc.finalise(SkiaWrapped.Typeface.delete, tf); + Some(tf); + | None => None + }; + }; +}; + module RRect = { type t = SkiaWrapped.RRect.t; type rRectType = SkiaWrapped.RRect.rRectType; diff --git a/src/reason-skia/Skia.rei b/src/reason-skia/Skia.rei index 7fb60b22b..24e372a2a 100644 --- a/src/reason-skia/Skia.rei +++ b/src/reason-skia/Skia.rei @@ -36,6 +36,13 @@ module Typeface: { let makeFromFile: (string, int) => option(t); }; +module FontManager: { + type t; + + let makeDefault: unit => t; + let matchFamilyStyle: (t, string, FontStyle.t) => option(Typeface.t); +}; + module FontMetrics: { type t = SkiaWrapped.FontMetrics.t; diff --git a/src/reason-skia/wrapped/bindings/SkiaWrappedBindings.re b/src/reason-skia/wrapped/bindings/SkiaWrappedBindings.re index a23610476..83ca611e1 100644 --- a/src/reason-skia/wrapped/bindings/SkiaWrappedBindings.re +++ b/src/reason-skia/wrapped/bindings/SkiaWrappedBindings.re @@ -59,6 +59,27 @@ module M = (F: FOREIGN) => { "sk_typeface_create_from_file", string @-> int @-> returning(ptr_opt(SkiaTypes.Typeface.t)), ); + + let delete = foreign("sk_typeface_unref", t @-> returning(void)); + }; + + module FontManager = { + type t = ptr(structure(SkiaTypes.FontManager.t)); + let t = ptr(SkiaTypes.FontManager.t); + + let makeDefault = + foreign("sk_fontmgr_create_default", void @-> returning(t)); + + let matchFamilyStyle = + foreign( + "sk_fontmgr_match_family_style", + t + @-> string + @-> FontStyle.t + @-> returning(ptr_opt(SkiaTypes.Typeface.t)), + ); + + let delete = foreign("sk_fontmgr_unref", t @-> returning(void)); }; module FontMetrics = { diff --git a/src/reason-skia/wrapped/types/SkiaWrappedTypes.re b/src/reason-skia/wrapped/types/SkiaWrappedTypes.re index 6ce063dc2..d83d8e8bb 100644 --- a/src/reason-skia/wrapped/types/SkiaWrappedTypes.re +++ b/src/reason-skia/wrapped/types/SkiaWrappedTypes.re @@ -81,6 +81,13 @@ module M = (T: TYPE) => { let t = typedef(t, "sk_typeface_t"); }; + module FontManager = { + type t; + + let t: typ(structure(t)) = structure("sk_fontmgr_t"); + let t = typedef(t, "sk_fontmgr_t"); + }; + module FontMetrics = { type t; let t: typ(structure(t)) = structure("sk_fontmetrics_t");