diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 02a1667..755162b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,55 +11,40 @@ on: jobs: build: name: Build and test on ${{ matrix.os }} - runs-on: ${{ matrix.os }} strategy: matrix: - node-version: [14.x] - os: [ubuntu-latest, macOS-latest, windows-2016] + os: + - macos-latest + - ubuntu-18.04 + - windows-latest - steps: - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} + runs-on: ${{ matrix.os }} + steps: - name: Checkout repository uses: actions/checkout@v2 - name: Checkout submodules run: git submodule update --init --recursive - - name: Install esy - run: npm i -g esy@0.6.10 - - - name: Restore esy install cache - uses: actions/cache@v1 + - name: Use Node.js 14 + uses: actions/setup-node@v2 with: - path: ~/.esy/source - key: source-${{ hashFiles('**/index.json') }} - - - name: esy install - run: esy install + node-version: 14 - - name: Get esy cache folder - id: print_esy_cache - run: node .github/workflows/print_esy_cache.js - - - name: Restore esy build cache - uses: actions/cache@v1 + - name: Use OCaml 4.06.1 + uses: ocaml/setup-ocaml@v2 with: - path: ${{ steps.print_esy_cache.outputs.esy_cache }} - key: build-${{ matrix.os }}-${{ hashFiles('**/index.json') }} - restore-keys: build-${{ matrix.os }}- + ocaml-compiler: 4.06.1 + + - name: OPAM install + run: opam install . --deps-only --with-test - name: Build - run: | - esy build - # Cleanup build cache in case dependencies have changed - esy cleanup . + run: opam exec -- dune build - name: Test - run: esy test + run: opam exec -- dune runtest - name: (release only) Get artifact filenames id: get_filenames @@ -69,13 +54,7 @@ jobs: - name: (release only) Get exe if: github.event_name != 'pull_request' shell: bash - run: | - # from https://stackoverflow.com/a/24848739/617787 - s=$(pwd); d=$(dirname $(esy x which Extract.exe)); - while [ "${d#$s/}" == "${d}" ] - do s=$(dirname $s);b="../${b}"; done; - ESY__BINARY_PATH=${b}${d#$s/}/Extract.exe - mv "$ESY__BINARY_PATH" ${{ steps.get_filenames.outputs.exe_name }} + run: mv _build/default/bin/Extract.exe ${{ steps.get_filenames.outputs.exe_name }} - name: (release only) Upload artifact ${{ matrix.os }} if: github.event_name != 'pull_request' diff --git a/.github/workflows/get_filenames.js b/.github/workflows/get_filenames.js index 22e4d59..90fc812 100644 --- a/.github/workflows/get_filenames.js +++ b/.github/workflows/get_filenames.js @@ -1,9 +1,7 @@ const fs = require("fs"); const os = require("os"); -const packageJson = fs.readFileSync("package.json"); -const { version } = JSON.parse(packageJson); - +const version = getVersion(); const exeName = getExeName(); const platform = getPlatformName(); const artifactName = `rescript-react-intl-extractor-${version}-${platform}`; @@ -12,6 +10,13 @@ const artifactName = `rescript-react-intl-extractor-${version}-${platform}`; console.log(`::set-output name=exe_name::${exeName}`); console.log(`::set-output name=artifact_name::${artifactName}`); +function getVersion() { + const duneProject = fs.readFileSync("dune-project"); + const match = /\(version (.*)\)/.exec(duneProject); + + return match[1]; +} + function getPlatformName() { const platform = os.platform(); diff --git a/.github/workflows/print_esy_cache.js b/.github/workflows/print_esy_cache.js deleted file mode 100644 index 0dd53bd..0000000 --- a/.github/workflows/print_esy_cache.js +++ /dev/null @@ -1,21 +0,0 @@ -const fs = require("fs"); -const os = require("os"); -const path = require("path"); - -const ESY_FOLDER = process.env.ESY__PREFIX - ? process.env.ESY__PREFIX - : path.join(os.homedir(), ".esy"); - -const esy3 = fs - .readdirSync(ESY_FOLDER) - .filter((name) => name.length > 0 && name[0] === "3") - .sort() - .pop(); - -const esyCachePath = path.join(ESY_FOLDER, esy3, "i"); - -// For logging -console.log(`esy cache path is ${esyCachePath}`); - -// For passing output to subsequent GitHub actions -console.log(`::set-output name=esy_cache::${esyCachePath}`); diff --git a/.gitignore b/.gitignore index dd247ff..8b59a62 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,3 @@ -npm-debug.log +_build/ .merlin -yarn-error.log -node_modules -_build -_esy -_release -*.byte -*.native -rescript-react-intl-extractor.install .DS_Store diff --git a/.vscode/settings.json b/.vscode/settings.json index 781b576..ad050fa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,4 @@ { - "reason.codelens.enabled": true, - "reason.format.width": 120, - "reason_language_server.per_value_codelens": true, - "reason_language_server.format_width": 120, - "editor.rulers": [120], "editor.tabSize": 2, "editor.renderIndentGuides": false, "files.insertFinalNewline": true diff --git a/README.md b/README.md index 5cf5a1a..716205d 100644 --- a/README.md +++ b/README.md @@ -136,25 +136,20 @@ The ReScript parser is included as a git submodule. Therefore, after checking ou git submodule update --init --recursive -Install [esy] as follows: +Install Ocaml and OPAM, and create an OPAM switch with OCaml version 4.06.1. - % npm install -g esy +Then run -Then you can install the project dependencies using: + opam pin add rescript-react-intl-extractor.dev . --no-action + opam install . --deps-only --with-doc --with-test - % esy install +To build the project, run -Then build the project dependencies along with the project itself: + opam exec -- dune build - % esy build +To run the tests, do -Run the compiled executable: - - % esy x Extract.exe - -Run the tests: - - % esy test + opam exec -- dune runtest [rescript]: https://rescript-lang.org/ [reason]: https://reasonml.github.io diff --git a/bin/dune b/bin/dune index eb17e76..d0c0031 100644 --- a/bin/dune +++ b/bin/dune @@ -1,5 +1,4 @@ (executable - (name Extract) - (public_name Extract.exe) - (libraries lib) -) + (name Extract) + (public_name Extract.exe) + (libraries lib)) diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 46bbe43..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM ubuntu:18.04 - -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs npm git rsync m4 curl zip \ - && rm -rf /var/lib/apt/lists/* - -RUN npm i -g esy@0.6.10 diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index fe9a456..0000000 --- a/docker/README.md +++ /dev/null @@ -1 +0,0 @@ -Docker image for running esy and building rescript-react-intl-extractor on Linux. diff --git a/dune-project b/dune-project index 9be2dd6..7f1041f 100644 --- a/dune-project +++ b/dune-project @@ -1,2 +1,36 @@ -(lang dune 2.0) +(lang dune 2.7) + +(name rescript-react-intl-extractor) + +(version 0.12.0) + +(generate_opam_files true) + +(license MIT) + +(authors "Christoph Knittel ") + +(maintainers "Christoph Knittel ") + +(source + (github cca-io/rescript-react-intl-extractor)) + +(bug_reports + "https://github.com/cca-io/rescript-react-intl-extractor/issues") + +(homepage "https://github.com/cca-io/rescript-react-intl-extractor") + +(documentation "https://github.com/cca-io/rescript-react-intl-extractor") + +(package (name rescript-react-intl-extractor) + (synopsis "Extracts messages for localization from ReScript source files") + (depends + (alcotest :with-test) + (ocaml + (= 4.06.1)) + (reason + (= 3.7.0)) + (yojson + (= 1.7.0)) + dune)) diff --git a/esy.lock/.gitattributes b/esy.lock/.gitattributes deleted file mode 100644 index e0b4e26..0000000 --- a/esy.lock/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ - -# Set eol to LF so files aren't converted to CRLF-eol on Windows. -* text eol=lf linguist-generated diff --git a/esy.lock/.gitignore b/esy.lock/.gitignore deleted file mode 100644 index a221be2..0000000 --- a/esy.lock/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ - -# Reset any possible .gitignore, we want all esy.lock to be un-ignored. -!* diff --git a/esy.lock/index.json b/esy.lock/index.json deleted file mode 100644 index 8d1e552..0000000 --- a/esy.lock/index.json +++ /dev/null @@ -1,1164 +0,0 @@ -{ - "checksum": "6394b56e11509c4d42263090a443bb05", - "root": "rescript-react-intl-extractor@link-dev:./package.json", - "node": { - "refmterr@3.3.2@d41d8cd9": { - "id": "refmterr@3.3.2@d41d8cd9", - "name": "refmterr", - "version": "3.3.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/refmterr/-/refmterr-3.3.2.tgz#sha1:0536990e8a9f69684bdaa1e441904da6722fbb5a" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@reason-native/pastel@0.3.0@d41d8cd9", - "@reason-native/console@0.1.0@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/atdgen@opam:2.2.1@d73fda11", - "@esy-ocaml/reason@3.6.2@d41d8cd9" - ], - "devDependencies": [] - }, - "ocaml@4.6.1003@d41d8cd9": { - "id": "ocaml@4.6.1003@d41d8cd9", - "name": "ocaml", - "version": "4.6.1003", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ocaml/-/ocaml-4.6.1003.tgz#sha1:6a391e80b4d1859bdb1943fd3ef6221c7f0a9a49" - ] - }, - "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": [] - }, - "rescript-react-intl-extractor@link-dev:./package.json": { - "id": "rescript-react-intl-extractor@link-dev:./package.json", - "name": "rescript-react-intl-extractor", - "version": "link-dev:./package.json", - "source": { - "type": "link-dev", - "path": ".", - "manifest": "package.json" - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/reason@3.6.2@d41d8cd9" - ], - "devDependencies": [ - "refmterr@3.3.2@d41d8cd9", - "@reason-native/rely@3.2.1@d41d8cd9", - "@opam/merlin@opam:3.4.2@9a4d1fd4" - ] - }, - "@reason-native/rely@3.2.1@d41d8cd9": { - "id": "@reason-native/rely@3.2.1@d41d8cd9", - "name": "@reason-native/rely", - "version": "3.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@reason-native/rely/-/rely-3.2.1.tgz#sha1:7945ac6a51773a97b8f8cfd97d2855ac7ac4ecb2" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@reason-native/pastel@0.3.0@d41d8cd9", - "@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.7.1@f5f493bc", - "@esy-ocaml/reason@3.6.2@d41d8cd9" - ], - "devDependencies": [] - }, - "@reason-native/pastel@0.3.0@d41d8cd9": { - "id": "@reason-native/pastel@0.3.0@d41d8cd9", - "name": "@reason-native/pastel", - "version": "0.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@reason-native/pastel/-/pastel-0.3.0.tgz#sha1:07da3c5a0933e61bc3b353bc85aa71ac7c0f311c" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/reason@3.6.2@d41d8cd9" - ], - "devDependencies": [] - }, - "@reason-native/file-context-printer@0.0.3@d41d8cd9": { - "id": "@reason-native/file-context-printer@0.0.3@d41d8cd9", - "name": "@reason-native/file-context-printer", - "version": "0.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@reason-native/file-context-printer/-/file-context-printer-0.0.3.tgz#sha1:b92eec7b10107ccb27528f9eea9bb51252bca491" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@reason-native/pastel@0.3.0@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/reason@3.6.2@d41d8cd9" - ], - "devDependencies": [] - }, - "@reason-native/console@0.1.0@d41d8cd9": { - "id": "@reason-native/console@0.1.0@d41d8cd9", - "name": "@reason-native/console", - "version": "0.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@reason-native/console/-/console-0.1.0.tgz#sha1:3b56f0e9e1be8464329793df29020aa90e71c22c" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/reason@3.6.2@d41d8cd9" - ], - "devDependencies": [] - }, - "@reason-native/cli@0.0.1-alpha@d41d8cd9": { - "id": "@reason-native/cli@0.0.1-alpha@d41d8cd9", - "name": "@reason-native/cli", - "version": "0.0.1-alpha", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@reason-native/cli/-/cli-0.0.1-alpha.tgz#sha1:0b911053fa7cc661eac10ead50d6ea6cc1fcd94d" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@reason-native/pastel@0.3.0@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/reason@3.6.2@d41d8cd9" - ], - "devDependencies": [] - }, - "@opam/yojson@opam:1.7.0@7056d985": { - "id": "@opam/yojson@opam:1.7.0@7056d985", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/cppo@opam:1.6.7@c28ac3ae", - "@opam/biniou@opam:1.2.1@d7570399", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/biniou@opam:1.2.1@d7570399" - ] - }, - "@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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/uchar@opam:0.0.2@c8218eea", - "@opam/topkg@opam:1.0.3@e4e10f1c", - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/ocamlbuild@opam:0.14.0@6ac75d03", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/uchar@opam:0.0.2@c8218eea" - ] - }, - "@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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/ocamlbuild@opam:0.14.0@6ac75d03", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": ["ocaml@4.6.1003@d41d8cd9"] - }, - "@opam/tyxml@opam:4.4.0@1dca5713": { - "id": "@opam/tyxml@opam:4.4.0@1dca5713", - "name": "@opam/tyxml", - "version": "opam:4.4.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/51/516394dd4a5c31726997c51d66aa31cacb91e3c46d4e16c7699130e204042530#sha256:516394dd4a5c31726997c51d66aa31cacb91e3c46d4e16c7699130e204042530", - "archive:https://github.com/ocsigen/tyxml/releases/download/4.4.0/tyxml-4.4.0.tbz#sha256:516394dd4a5c31726997c51d66aa31cacb91e3c46d4e16c7699130e204042530" - ], - "opam": { - "name": "tyxml", - "version": "4.4.0", - "path": "esy.lock/opam/tyxml.4.4.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/uutf@opam:1.0.2@4440868f", - "@opam/seq@opam:0.2.2@e9144e45", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/uutf@opam:1.0.2@4440868f", - "@opam/seq@opam:0.2.2@e9144e45", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/topkg@opam:1.0.3@e4e10f1c": { - "id": "@opam/topkg@opam:1.0.3@e4e10f1c", - "name": "@opam/topkg", - "version": "opam:1.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/e2/e285f7a296d77ee7d831ba9a6bfb396f#md5:e285f7a296d77ee7d831ba9a6bfb396f", - "archive:http://erratique.ch/software/topkg/releases/topkg-1.0.3.tbz#md5:e285f7a296d77ee7d831ba9a6bfb396f" - ], - "opam": { - "name": "topkg", - "version": "1.0.3", - "path": "esy.lock/opam/topkg.1.0.3" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/ocamlbuild@opam:0.14.0@6ac75d03", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/ocamlbuild@opam:0.14.0@6ac75d03" - ] - }, - "@opam/seq@opam:0.2.2@e9144e45": { - "id": "@opam/seq@opam:0.2.2@e9144e45", - "name": "@opam/seq", - "version": "opam:0.2.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/90/9033e02283aa3bde9f97f24e632902e3#md5:9033e02283aa3bde9f97f24e632902e3", - "archive:https://github.com/c-cube/seq/archive/0.2.2.tar.gz#md5:9033e02283aa3bde9f97f24e632902e3" - ], - "opam": { - "name": "seq", - "version": "0.2.2", - "path": "esy.lock/opam/seq.0.2.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/result@opam:1.5@6b753c82": { - "id": "@opam/result@opam:1.5@6b753c82", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/re@opam:1.9.0@d4d5e13d": { - "id": "@opam/re@opam:1.9.0@d4d5e13d", - "name": "@opam/re", - "version": "opam:1.9.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/bd/bddaed4f386a22cace7850c9c7dac296#md5:bddaed4f386a22cace7850c9c7dac296", - "archive:https://github.com/ocaml/ocaml-re/releases/download/1.9.0/re-1.9.0.tbz#md5:bddaed4f386a22cace7850c9c7dac296" - ], - "opam": { - "name": "re", - "version": "1.9.0", - "path": "esy.lock/opam/re.1.9.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/seq@opam:0.2.2@e9144e45", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/seq@opam:0.2.2@e9144e45", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/ptime@opam:0.8.5@0051d642": { - "id": "@opam/ptime@opam:0.8.5@0051d642", - "name": "@opam/ptime", - "version": "opam:0.8.5", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/4d/4d48055d623ecf2db792439b3e96a520#md5:4d48055d623ecf2db792439b3e96a520", - "archive:https://erratique.ch/software/ptime/releases/ptime-0.8.5.tbz#md5:4d48055d623ecf2db792439b3e96a520" - ], - "opam": { - "name": "ptime", - "version": "0.8.5", - "path": "esy.lock/opam/ptime.0.8.5" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/topkg@opam:1.0.3@e4e10f1c", - "@opam/result@opam:1.5@6b753c82", - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/ocamlbuild@opam:0.14.0@6ac75d03", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/result@opam:1.5@6b753c82" - ] - }, - "@opam/ppx_derivers@opam:1.2.1@ecf0aa45": { - "id": "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@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": "esy.lock/opam/ocamlfind-secondary.1.8.1" - } - }, - "overrides": [ - { - "opamoverride": "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@85df5d8f", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/ocaml-secondary-compiler@opam:4.08.1-1@85df5d8f" - ] - }, - "@opam/ocamlfind@opam:1.8.1@ff07b0f9": { - "id": "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/conf-m4@opam:1@196bf219", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": ["ocaml@4.6.1003@d41d8cd9"] - }, - "@opam/ocamlbuild@opam:0.14.0@6ac75d03": { - "id": "@opam/ocamlbuild@opam:0.14.0@6ac75d03", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": ["ocaml@4.6.1003@d41d8cd9"] - }, - "@opam/ocaml-secondary-compiler@opam:4.08.1-1@85df5d8f": { - "id": "@opam/ocaml-secondary-compiler@opam:4.08.1-1@85df5d8f", - "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": "esy.lock/opam/ocaml-secondary-compiler.4.08.1-1" - } - }, - "overrides": [ - { - "opamoverride": "esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override" - } - ], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": ["ocaml@4.6.1003@d41d8cd9"] - }, - "@opam/merlin-extend@opam:0.6@404f814c": { - "id": "@opam/merlin-extend@opam:0.6@404f814c", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/cppo@opam:1.6.7@c28ac3ae", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/merlin@opam:3.4.2@9a4d1fd4": { - "id": "@opam/merlin@opam:3.4.2@9a4d1fd4", - "name": "@opam/merlin", - "version": "opam:3.4.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/e1/e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81#sha256:e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81", - "archive:https://github.com/ocaml/merlin/releases/download/v3.4.2/merlin-v3.4.2.tbz#sha256:e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81" - ], - "opam": { - "name": "merlin", - "version": "3.4.2", - "path": "esy.lock/opam/merlin.3.4.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/result@opam:1.5@6b753c82", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/dot-merlin-reader@opam:3.4.2@55baebb0", - "@opam/csexp@opam:1.3.2@5cea14af", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/result@opam:1.5@6b753c82", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/dot-merlin-reader@opam:3.4.2@55baebb0", - "@opam/csexp@opam:1.3.2@5cea14af" - ] - }, - "@opam/menhirSdk@opam:20201216@5e08e674": { - "id": "@opam/menhirSdk@opam:20201216@5e08e674", - "name": "@opam/menhirSdk", - "version": "opam:20201216", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/f2/f27f8f5dedd316eff4c02d9130fced49#md5:f27f8f5dedd316eff4c02d9130fced49", - "archive:https://gitlab.inria.fr/fpottier/menhir/repository/20201216/archive.tar.gz#md5:f27f8f5dedd316eff4c02d9130fced49" - ], - "opam": { - "name": "menhirSdk", - "version": "20201216", - "path": "esy.lock/opam/menhirSdk.20201216" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/menhirLib@opam:20201216@bb5a1851": { - "id": "@opam/menhirLib@opam:20201216@bb5a1851", - "name": "@opam/menhirLib", - "version": "opam:20201216", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/f2/f27f8f5dedd316eff4c02d9130fced49#md5:f27f8f5dedd316eff4c02d9130fced49", - "archive:https://gitlab.inria.fr/fpottier/menhir/repository/20201216/archive.tar.gz#md5:f27f8f5dedd316eff4c02d9130fced49" - ], - "opam": { - "name": "menhirLib", - "version": "20201216", - "path": "esy.lock/opam/menhirLib.20201216" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/menhir@opam:20201216@1a09d886": { - "id": "@opam/menhir@opam:20201216@1a09d886", - "name": "@opam/menhir", - "version": "opam:20201216", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/f2/f27f8f5dedd316eff4c02d9130fced49#md5:f27f8f5dedd316eff4c02d9130fced49", - "archive:https://gitlab.inria.fr/fpottier/menhir/repository/20201216/archive.tar.gz#md5:f27f8f5dedd316eff4c02d9130fced49" - ], - "opam": { - "name": "menhir", - "version": "20201216", - "path": "esy.lock/opam/menhir.20201216" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/menhirSdk@opam:20201216@5e08e674", - "@opam/menhirLib@opam:20201216@bb5a1851", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/menhirSdk@opam:20201216@5e08e674", - "@opam/menhirLib@opam:20201216@bb5a1851", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/junit@opam:2.0.2@0b7bd730": { - "id": "@opam/junit@opam:2.0.2@0b7bd730", - "name": "@opam/junit", - "version": "opam:2.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/fd/fda941b653613a4a5731f9b3557364b12baa341daa13c01676c9eb8d64e96b01#sha256:fda941b653613a4a5731f9b3557364b12baa341daa13c01676c9eb8d64e96b01", - "archive:https://github.com/Khady/ocaml-junit/releases/download/2.0.2/junit-2.0.2.tbz#sha256:fda941b653613a4a5731f9b3557364b12baa341daa13c01676c9eb8d64e96b01" - ], - "opam": { - "name": "junit", - "version": "2.0.2", - "path": "esy.lock/opam/junit.2.0.2" - } - }, - "overrides": [], - "dependencies": [ - "@opam/tyxml@opam:4.4.0@1dca5713", - "@opam/ptime@opam:0.8.5@0051d642", - "@opam/dune@opam:2.7.1@f5f493bc", - "@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.7.1@f5f493bc" - ] - }, - "@opam/fix@opam:20201120@5c318621": { - "id": "@opam/fix@opam:20201120@5c318621", - "name": "@opam/fix", - "version": "opam:20201120", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/7e/7eb570b759635fe66f3556d2b1cc88e3#md5:7eb570b759635fe66f3556d2b1cc88e3", - "archive:https://gitlab.inria.fr/fpottier/fix/repository/20201120/archive.tar.gz#md5:7eb570b759635fe66f3556d2b1cc88e3" - ], - "opam": { - "name": "fix", - "version": "20201120", - "path": "esy.lock/opam/fix.20201120" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/easy-format@opam:1.3.2@0484b3c4": { - "id": "@opam/easy-format@opam:1.3.2@0484b3c4", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/dune@opam:2.7.1@f5f493bc": { - "id": "@opam/dune@opam:2.7.1@f5f493bc", - "name": "@opam/dune", - "version": "opam:2.7.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/c3/c3528f2f8b3a2e3fe18e166fc823e6caeee8b7c78ade6b6fe4d2fa978070925d#sha256:c3528f2f8b3a2e3fe18e166fc823e6caeee8b7c78ade6b6fe4d2fa978070925d", - "archive:https://github.com/ocaml/dune/releases/download/2.7.1/dune-2.7.1.tbz#sha256:c3528f2f8b3a2e3fe18e166fc823e6caeee8b7c78ade6b6fe4d2fa978070925d" - ], - "opam": { - "name": "dune", - "version": "2.7.1", - "path": "esy.lock/opam/dune.2.7.1" - } - }, - "overrides": [ - { - "opamoverride": "esy.lock/overrides/opam__s__dune_opam__c__2.7.1_opam_override" - } - ], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", - "@opam/base-unix@opam:base@87d0b2eb", - "@opam/base-threads@opam:base@36803084", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", - "@opam/base-unix@opam:base@87d0b2eb", - "@opam/base-threads@opam:base@36803084" - ] - }, - "@opam/dot-merlin-reader@opam:3.4.2@55baebb0": { - "id": "@opam/dot-merlin-reader@opam:3.4.2@55baebb0", - "name": "@opam/dot-merlin-reader", - "version": "opam:3.4.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/e1/e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81#sha256:e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81", - "archive:https://github.com/ocaml/merlin/releases/download/v3.4.2/merlin-v3.4.2.tbz#sha256:e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81" - ], - "opam": { - "name": "dot-merlin-reader", - "version": "3.4.2", - "path": "esy.lock/opam/dot-merlin-reader.3.4.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/result@opam:1.5@6b753c82", - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/csexp@opam:1.3.2@5cea14af", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/result@opam:1.5@6b753c82", - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/csexp@opam:1.3.2@5cea14af" - ] - }, - "@opam/csexp@opam:1.3.2@5cea14af": { - "id": "@opam/csexp@opam:1.3.2@5cea14af", - "name": "@opam/csexp", - "version": "opam:1.3.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/f2/f21f427b277f07e8bfd050e00c640a5893c1bf4b689147640fa383255dcf1c4a#sha256:f21f427b277f07e8bfd050e00c640a5893c1bf4b689147640fa383255dcf1c4a", - "archive:https://github.com/ocaml-dune/csexp/releases/download/1.3.2/csexp-1.3.2.tbz#sha256:f21f427b277f07e8bfd050e00c640a5893c1bf4b689147640fa383255dcf1c4a" - ], - "opam": { - "name": "csexp", - "version": "1.3.2", - "path": "esy.lock/opam/csexp.1.3.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/result@opam:1.5@6b753c82", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/result@opam:1.5@6b753c82", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@opam/cppo@opam:1.6.7@c28ac3ae": { - "id": "@opam/cppo@opam:1.6.7@c28ac3ae", - "name": "@opam/cppo", - "version": "opam:1.6.7", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/db/db553e3e6c206df09b1858c3aef5e21e56564d593642a3c78bcedb6af36f529d#sha256:db553e3e6c206df09b1858c3aef5e21e56564d593642a3c78bcedb6af36f529d", - "archive:https://github.com/ocaml-community/cppo/releases/download/v1.6.7/cppo-v1.6.7.tbz#sha256:db553e3e6c206df09b1858c3aef5e21e56564d593642a3c78bcedb6af36f529d" - ], - "opam": { - "name": "cppo", - "version": "1.6.7", - "path": "esy.lock/opam/cppo.1.6.7" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/base-unix@opam:base@87d0b2eb", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/base-unix@opam:base@87d0b2eb" - ] - }, - "@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/biniou@opam:1.2.1@d7570399": { - "id": "@opam/biniou@opam:1.2.1@d7570399", - "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": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@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/atdgen-runtime@opam:2.2.1@6a3a6395": { - "id": "@opam/atdgen-runtime@opam:2.2.1@6a3a6395", - "name": "@opam/atdgen-runtime", - "version": "opam:2.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/db/db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e", - "archive:https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" - ], - "opam": { - "name": "atdgen-runtime", - "version": "2.2.1", - "path": "esy.lock/opam/atdgen-runtime.2.2.1" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/biniou@opam:1.2.1@d7570399", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/biniou@opam:1.2.1@d7570399" - ] - }, - "@opam/atdgen@opam:2.2.1@d73fda11": { - "id": "@opam/atdgen@opam:2.2.1@d73fda11", - "name": "@opam/atdgen", - "version": "opam:2.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/db/db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e", - "archive:https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" - ], - "opam": { - "name": "atdgen", - "version": "2.2.1", - "path": "esy.lock/opam/atdgen.2.2.1" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/dune@opam:2.7.1@f5f493bc", - "@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.6.1003@d41d8cd9", - "@opam/yojson@opam:1.7.0@7056d985", - "@opam/dune@opam:2.7.1@f5f493bc", - "@opam/biniou@opam:1.2.1@d7570399", - "@opam/atdgen-runtime@opam:2.2.1@6a3a6395", - "@opam/atd@opam:2.2.1@071ab6bd" - ] - }, - "@opam/atd@opam:2.2.1@071ab6bd": { - "id": "@opam/atd@opam:2.2.1@071ab6bd", - "name": "@opam/atd", - "version": "opam:2.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/db/db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e", - "archive:https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" - ], - "opam": { - "name": "atd", - "version": "2.2.1", - "path": "esy.lock/opam/atd.2.2.1" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/menhir@opam:20201216@1a09d886", - "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.7.1@f5f493bc", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/re@opam:1.9.0@d4d5e13d", - "@opam/menhir@opam:20201216@1a09d886", - "@opam/easy-format@opam:1.3.2@0484b3c4", - "@opam/dune@opam:2.7.1@f5f493bc" - ] - }, - "@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/reason@3.6.2@d41d8cd9": { - "id": "@esy-ocaml/reason@3.6.2@d41d8cd9", - "name": "@esy-ocaml/reason", - "version": "3.6.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@esy-ocaml/reason/-/reason-3.6.2.tgz#sha1:49bd53c75dd241eb14f46277a85af353908f7e81" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.6.1003@d41d8cd9", - "@opam/result@opam:1.5@6b753c82", - "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", - "@opam/ocamlfind@opam:1.8.1@ff07b0f9", - "@opam/merlin-extend@opam:0.6@404f814c", - "@opam/menhir@opam:20201216@1a09d886", - "@opam/fix@opam:20201120@5c318621", - "@opam/dune@opam:2.7.1@f5f493bc" - ], - "devDependencies": [] - } - } -} diff --git a/esy.lock/opam/atd.2.2.1/opam b/esy.lock/opam/atd.2.2.1/opam deleted file mode 100644 index 6646220..0000000 --- a/esy.lock/opam/atd.2.2.1/opam +++ /dev/null @@ -1,55 +0,0 @@ -opam-version: "2.0" -synopsis: "Parser for the ATD data format description language" -description: """ -ATD is the OCaml library providing a parser for the ATD language and various -utilities. ATD stands for Adjustable Type Definitions in reference to its main -property of supporting annotations that allow a good fit with a variety of data -formats. """ -maintainer: ["Rudi Grinberg "] -authors: [ - "Martin Jambon " - "David Sheets " - "Rudi Grinberg " - "Ivan Jager " - "Jeff Meister " - "Carmelo Piccione " - "Raman Varabets " - "Mathieu Baudet " - "Rauan Mayemir " - "Louis Roché " - "Brendan Long " - "Christophe Troestler " - "Vincent Bernardoff " - "haoyang " -] -license: "MIT" -homepage: "https://github.com/ahrefs/atd" -bug-reports: "https://github.com/ahrefs/atd/issues" -depends: [ - "ocaml" {>= "4.02"} - "dune" {>= "2.0"} - "menhir" - "easy-format" - "re" -] -dev-repo: "git+https://github.com/ahrefs/atd.git" -build: [ - ["dune" "subst"] {pinned} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz" - checksum: [ - "sha256=db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" - "sha512=0c7f1985cc4d87ddd541bb2f7085b72f81aaef69468653319a4a52e6cd6c9318511229784a12cdb413ae500e7a5b8195759e0d8d49946a9b00f62e8dda07e8a2" - ] -} diff --git a/esy.lock/opam/atdgen-runtime.2.2.1/opam b/esy.lock/opam/atdgen-runtime.2.2.1/opam deleted file mode 100644 index 5467898..0000000 --- a/esy.lock/opam/atdgen-runtime.2.2.1/opam +++ /dev/null @@ -1,53 +0,0 @@ -opam-version: "2.0" -synopsis: "Runtime library for code generated by atdgen" -description: """ -This package should be used only in conjunction with the stdgen code -generator""" -maintainer: ["Rudi Grinberg "] -authors: [ - "Martin Jambon " - "David Sheets " - "Rudi Grinberg " - "Ivan Jager " - "Jeff Meister " - "Carmelo Piccione " - "Raman Varabets " - "Mathieu Baudet " - "Rauan Mayemir " - "Louis Roché " - "Brendan Long " - "Christophe Troestler " - "Vincent Bernardoff " - "haoyang " -] -license: "MIT" -homepage: "https://github.com/ahrefs/atd" -bug-reports: "https://github.com/ahrefs/atd/issues" -depends: [ - "ocaml" {>= "4.02"} - "dune" {>= "2.0"} - "yojson" {>= "1.7.0"} - "biniou" {>= "1.0.6"} - "re" -] -dev-repo: "git+https://github.com/ahrefs/atd.git" -build: [ - ["dune" "subst"] {pinned} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz" - checksum: [ - "sha256=db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" - "sha512=0c7f1985cc4d87ddd541bb2f7085b72f81aaef69468653319a4a52e6cd6c9318511229784a12cdb413ae500e7a5b8195759e0d8d49946a9b00f62e8dda07e8a2" - ] -} diff --git a/esy.lock/opam/atdgen.2.2.1/opam b/esy.lock/opam/atdgen.2.2.1/opam deleted file mode 100644 index 8831a69..0000000 --- a/esy.lock/opam/atdgen.2.2.1/opam +++ /dev/null @@ -1,63 +0,0 @@ -opam-version: "2.0" -synopsis: - "Generates efficient JSON serializers, deserializers and validators" -description: """ -Atdgen is a command-line program that takes as input type definitions in the ATD -syntax and produces OCaml code suitable for data serialization and -deserialization. -Two data formats are currently supported, these are biniou and JSON. -Atdgen-biniou and Atdgen-json will refer to Atdgen used in one context or the -other. -Atdgen was designed with efficiency and durability in mind. Software authors are -encouraged to use Atdgen directly and to write tools that may reuse part of -Atdgen’s source code.""" -maintainer: ["Rudi Grinberg "] -authors: [ - "Martin Jambon " - "David Sheets " - "Rudi Grinberg " - "Ivan Jager " - "Jeff Meister " - "Carmelo Piccione " - "Raman Varabets " - "Mathieu Baudet " - "Rauan Mayemir " - "Louis Roché " - "Brendan Long " - "Christophe Troestler " - "Vincent Bernardoff " - "haoyang " -] -license: "MIT" -homepage: "https://github.com/ahrefs/atd" -bug-reports: "https://github.com/ahrefs/atd/issues" -depends: [ - "ocaml" {>= "4.02"} - "dune" {>= "2.0"} - "atd" {>= "2.0.0"} - "atdgen-runtime" {>= "2.0.0"} - "atdgen-codec-runtime" {with-test} - "biniou" {>= "1.0.6"} - "yojson" {>= "1.7.0"} -] -dev-repo: "git+https://github.com/ahrefs/atd.git" -build: [ - ["dune" "subst"] {pinned} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz" - checksum: [ - "sha256=db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" - "sha512=0c7f1985cc4d87ddd541bb2f7085b72f81aaef69468653319a4a52e6cd6c9318511229784a12cdb413ae500e7a5b8195759e0d8d49946a9b00f62e8dda07e8a2" - ] -} diff --git a/esy.lock/opam/base-threads.base/opam b/esy.lock/opam/base-threads.base/opam deleted file mode 100644 index 914ff50..0000000 --- a/esy.lock/opam/base-threads.base/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "2.0" -maintainer: "https://github.com/ocaml/opam-repository/issues" -description: """ -Threads library distributed with the OCaml compiler -""" - diff --git a/esy.lock/opam/base-unix.base/opam b/esy.lock/opam/base-unix.base/opam deleted file mode 100644 index b973540..0000000 --- a/esy.lock/opam/base-unix.base/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "2.0" -maintainer: "https://github.com/ocaml/opam-repository/issues" -description: """ -Unix library distributed with the OCaml compiler -""" - diff --git a/esy.lock/opam/biniou.1.2.1/opam b/esy.lock/opam/biniou.1.2.1/opam deleted file mode 100644 index b706b42..0000000 --- a/esy.lock/opam/biniou.1.2.1/opam +++ /dev/null @@ -1,45 +0,0 @@ -opam-version: "2.0" -build: [ - ["dune" "subst"] {pinned} - ["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" - ] -} diff --git a/esy.lock/opam/conf-m4.1/opam b/esy.lock/opam/conf-m4.1/opam deleted file mode 100644 index c6feb2a..0000000 --- a/esy.lock/opam/conf-m4.1/opam +++ /dev/null @@ -1,22 +0,0 @@ -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 diff --git a/esy.lock/opam/cppo.1.6.7/opam b/esy.lock/opam/cppo.1.6.7/opam deleted file mode 100644 index eddcc1e..0000000 --- a/esy.lock/opam/cppo.1.6.7/opam +++ /dev/null @@ -1,39 +0,0 @@ -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" "subst"] {pinned} - ["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 -""" -x-commit-hash: "7d217864a5fdc4551699e248137a2f8b719d2078" -url { - src: - "https://github.com/ocaml-community/cppo/releases/download/v1.6.7/cppo-v1.6.7.tbz" - checksum: [ - "sha256=db553e3e6c206df09b1858c3aef5e21e56564d593642a3c78bcedb6af36f529d" - "sha512=9722b50fd23aaccf86816313333a3bf8fc7c6b4ef06b153e5e1e1aaf14670cf51a4aac52fb1b4a0e5531699c4047a1eff6c24c969f7e5063e78096c2195b5819" - ] -} diff --git a/esy.lock/opam/csexp.1.3.2/opam b/esy.lock/opam/csexp.1.3.2/opam deleted file mode 100644 index 1508d17..0000000 --- a/esy.lock/opam/csexp.1.3.2/opam +++ /dev/null @@ -1,58 +0,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 "] -authors: [ - "Quentin Hocquet " - "Jane Street Group, LLC " - "Jeremie Dimino " -] -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"} - "ocaml" {>= "4.02.3"} - "result" {>= "1.5"} -] -dev-repo: "git+https://github.com/ocaml-dune/csexp.git" -build: [ - ["dune" "subst"] {pinned} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" -# "@runtest" {with-test & ocaml:version >= "4.04"} - "@doc" {with-doc} - ] -] -x-commit-hash: "19a2e7bc171a707059c73d78dd18e4e3ff03ac9b" -url { - src: - "https://github.com/ocaml-dune/csexp/releases/download/1.3.2/csexp-1.3.2.tbz" - checksum: [ - "sha256=f21f427b277f07e8bfd050e00c640a5893c1bf4b689147640fa383255dcf1c4a" - "sha512=ff1bd6a7c6bb3a73ca9ab0506c9ec1f357657deaa9ecc7eb32955817d9b0f266d976af3e2b8fc34c621cb0caf1fde55f9a609dd184e2054f500bf09afeb83026" - ] -} diff --git a/esy.lock/opam/dot-merlin-reader.3.4.2/opam b/esy.lock/opam/dot-merlin-reader.3.4.2/opam deleted file mode 100644 index e740ed7..0000000 --- a/esy.lock/opam/dot-merlin-reader.3.4.2/opam +++ /dev/null @@ -1,28 +0,0 @@ -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" "subst"] {pinned} - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.02.1" & < "4.12"} - "dune" {>= "1.8.0"} - "yojson" {>= "1.6.0"} - "ocamlfind" {>= "1.6.0"} - "csexp" {>= "1.2.3"} - "result" {>= "1.5"} -] -x-commit-hash: "c9761a552380838e9f530b5c47c0ea3c47c33565" -url { - src: - "https://github.com/ocaml/merlin/releases/download/v3.4.2/merlin-v3.4.2.tbz" - checksum: [ - "sha256=e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81" - "sha512=7c39c70fc923971c4eca9432061077941498574c0b804efc20af244c1c9ab34c9178d7eb50ab750feaac30696e7ff911a0ccd5fb86341b68485bedae472aa15f" - ] -} diff --git a/esy.lock/opam/dune.2.7.1/opam b/esy.lock/opam/dune.2.7.1/opam deleted file mode 100644 index aaa13e6..0000000 --- a/esy.lock/opam/dune.2.7.1/opam +++ /dev/null @@ -1,56 +0,0 @@ -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 "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -conflicts: [ - "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" -] -x-commit-hash: "5472766b2448308a7160dfd0fca1ec711e124a5c" -url { - src: "https://github.com/ocaml/dune/releases/download/2.7.1/dune-2.7.1.tbz" - checksum: [ - "sha256=c3528f2f8b3a2e3fe18e166fc823e6caeee8b7c78ade6b6fe4d2fa978070925d" - "sha512=2b4b311824471dac8196181d7c7267f96b1b73f35341b72019f169cf6d42a19254e90bdfba2d3ecb138ad318e2e2431dd0ec6c38d9efe1da382ec95f5d9e959b" - ] -} diff --git a/esy.lock/opam/easy-format.1.3.2/opam b/esy.lock/opam/easy-format.1.3.2/opam deleted file mode 100644 index 138d0fb..0000000 --- a/esy.lock/opam/easy-format.1.3.2/opam +++ /dev/null @@ -1,46 +0,0 @@ -opam-version: "2.0" -build: [ - ["dune" "subst"] {pinned} - ["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" - ] -} diff --git a/esy.lock/opam/fix.20201120/opam b/esy.lock/opam/fix.20201120/opam deleted file mode 100644 index 31c8a64..0000000 --- a/esy.lock/opam/fix.20201120/opam +++ /dev/null @@ -1,24 +0,0 @@ -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " -] -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" } - "dune" {>= "1.3" } -] -synopsis: "Facilities for memoization and fixed points" -url { - src: - "https://gitlab.inria.fr/fpottier/fix/repository/20201120/archive.tar.gz" - checksum: [ - "md5=7eb570b759635fe66f3556d2b1cc88e3" - "sha512=344dcc619f9e8b8a6c998775b6d2dab2ea5253e6a67abe4797f76dc5dd30bc776568abce1e90477422e9db447821579889737e3531c42139708f813e983ea5d4" - ] -} diff --git a/esy.lock/opam/junit.2.0.2/opam b/esy.lock/opam/junit.2.0.2/opam deleted file mode 100644 index 874cf38..0000000 --- a/esy.lock/opam/junit.2.0.2/opam +++ /dev/null @@ -1,32 +0,0 @@ -opam-version: "2.0" -maintainer: "Louis Roché " -authors: "Louis Roché " -homepage: "https://github.com/Khady/ocaml-junit" -bug-reports: "https://github.com/Khady/ocaml-junit/issues" -license: "LGPLv3+ with OCaml linking exception" -dev-repo: "git+https://github.com/Khady/ocaml-junit.git" -doc: "https://khady.github.io/ocaml-junit/" -tags: ["junit" "jenkins"] -depends: [ - "dune" {>= "1.0"} - "ptime" - "tyxml" {>= "4.0.0"} - "odoc" {with-doc & >= "1.1.1"} -] -build: [ - ["dune" "subst"] {pinned} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} - ["dune" "build" "-p" name "-j" jobs] {with-doc} -] -name: "junit" -synopsis: "JUnit XML reports generation library" -description: "JUnit XML reports generation library" -url { - src: - "https://github.com/Khady/ocaml-junit/releases/download/2.0.2/junit-2.0.2.tbz" - checksum: [ - "sha256=fda941b653613a4a5731f9b3557364b12baa341daa13c01676c9eb8d64e96b01" - "sha512=5a9fa803c4861748bb8482fc51197420bf3cc3b9540989a489c4ffb65fdd02386aaa60437eae29182209dae0903b0e537c095249e19d395a451b8e8214f15f03" - ] -} diff --git a/esy.lock/opam/menhir.20201216/opam b/esy.lock/opam/menhir.20201216/opam deleted file mode 100644 index c5067e7..0000000 --- a/esy.lock/opam/menhir.20201216/opam +++ /dev/null @@ -1,27 +0,0 @@ -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " - "Yann Régis-Gianas " -] -homepage: "http://gitlab.inria.fr/fpottier/menhir" -dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" -bug-reports: "menhir@inria.fr" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.02.3"} - "dune" { >= "2.2.0"} - "menhirLib" {= version} - "menhirSdk" {= version} -] -synopsis: "An LR(1) parser generator" -url { - src: - "https://gitlab.inria.fr/fpottier/menhir/repository/20201216/archive.tar.gz" - checksum: [ - "md5=f27f8f5dedd316eff4c02d9130fced49" - "sha512=50f86fb2f55184f43c4be9c572ada4feb2208eb350ef64b2651351934a1b48a0b7e98c8c752c3c22e95676c5a0f38b0e638b3f845e53ecff1740dad95b50918c" - ] -} diff --git a/esy.lock/opam/menhirLib.20201216/opam b/esy.lock/opam/menhirLib.20201216/opam deleted file mode 100644 index 45d6ba8..0000000 --- a/esy.lock/opam/menhirLib.20201216/opam +++ /dev/null @@ -1,28 +0,0 @@ -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " - "Yann Régis-Gianas " -] -homepage: "http://gitlab.inria.fr/fpottier/menhir" -dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" -bug-reports: "menhir@inria.fr" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" { >= "4.02.3" } - "dune" { >= "2.0.0" } -] -conflicts: [ - "menhir" { != version } -] -synopsis: "Runtime support library for parsers generated by Menhir" -url { - src: - "https://gitlab.inria.fr/fpottier/menhir/repository/20201216/archive.tar.gz" - checksum: [ - "md5=f27f8f5dedd316eff4c02d9130fced49" - "sha512=50f86fb2f55184f43c4be9c572ada4feb2208eb350ef64b2651351934a1b48a0b7e98c8c752c3c22e95676c5a0f38b0e638b3f845e53ecff1740dad95b50918c" - ] -} diff --git a/esy.lock/opam/menhirSdk.20201216/opam b/esy.lock/opam/menhirSdk.20201216/opam deleted file mode 100644 index be1a277..0000000 --- a/esy.lock/opam/menhirSdk.20201216/opam +++ /dev/null @@ -1,28 +0,0 @@ -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " - "Yann Régis-Gianas " -] -homepage: "http://gitlab.inria.fr/fpottier/menhir" -dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" -bug-reports: "menhir@inria.fr" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" { >= "4.02.3" } - "dune" { >= "2.0.0" } -] -conflicts: [ - "menhir" { != version } -] -synopsis: "Compile-time library for auxiliary tools related to Menhir" -url { - src: - "https://gitlab.inria.fr/fpottier/menhir/repository/20201216/archive.tar.gz" - checksum: [ - "md5=f27f8f5dedd316eff4c02d9130fced49" - "sha512=50f86fb2f55184f43c4be9c572ada4feb2208eb350ef64b2651351934a1b48a0b7e98c8c752c3c22e95676c5a0f38b0e638b3f845e53ecff1740dad95b50918c" - ] -} diff --git a/esy.lock/opam/merlin-extend.0.6/opam b/esy.lock/opam/merlin-extend.0.6/opam deleted file mode 100644 index 39b3375..0000000 --- a/esy.lock/opam/merlin-extend.0.6/opam +++ /dev/null @@ -1,30 +0,0 @@ -opam-version: "2.0" -maintainer: "Frederic Bour " -authors: "Frederic Bour " -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" "subst"] {pinned} - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "dune" {>= "1.0"} - "cppo" {build} - "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" - ] -} diff --git a/esy.lock/opam/merlin.3.4.2/opam b/esy.lock/opam/merlin.3.4.2/opam deleted file mode 100644 index 3e22916..0000000 --- a/esy.lock/opam/merlin.3.4.2/opam +++ /dev/null @@ -1,74 +0,0 @@ -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" -dev-repo: "git+https://github.com/ocaml/merlin.git" -build: [ - ["dune" "subst"] {pinned} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" "1"] {with-test & ocaml:version >= "4.03"} -] -depends: [ - "ocaml" {>= "4.02.3" & < "4.12"} - "dune" {>= "1.8.0"} - "dot-merlin-reader" {= version} - "yojson" {>= "1.6.0"} - "mdx" {with-test & >= "1.3.0"} - "conf-jq" {with-test} - "csexp" {>= "1.2.3"} - "result" {>= "1.5"} -] -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 config 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: - (let ((opam-share (ignore-errors (car (process-lines \"opam\" \"config\" \"var\" \"share\"))))) - (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} -] -x-commit-hash: "c9761a552380838e9f530b5c47c0ea3c47c33565" -url { - src: - "https://github.com/ocaml/merlin/releases/download/v3.4.2/merlin-v3.4.2.tbz" - checksum: [ - "sha256=e1b7b897b11119d92995c558530149fd07bd67a4aaf140f55f3c4ffb5e882a81" - "sha512=7c39c70fc923971c4eca9432061077941498574c0b804efc20af244c1c9ab34c9178d7eb50ab750feaac30696e7ff911a0ccd5fb86341b68485bedae472aa15f" - ] -} diff --git a/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Don-t-build-manpages-for-stdlib-docs.patch b/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 cda19dd..0000000 --- a/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/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Fix-failure-to-install-tools-links.patch b/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Fix-failure-to-install-tools-links.patch deleted file mode 100644 index 41f5f77..0000000 --- a/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/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/fix-gcc10.patch b/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/fix-gcc10.patch deleted file mode 100644 index e37b5e8..0000000 --- a/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/fix-gcc10.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 3f10a16153308f967149917585d2bc0b9c06492c -Author: Anil Madhavapeddy -Date: Sun Jun 21 18:40:27 2020 +0100 - - Add `-fcommon` unconditionally to CFLAGS to fix gcc10 build - - Signed-off-by: Anil Madhavapeddy - -diff --git a/configure b/configure -index 9a78a4554..0c54b560b 100755 ---- a/configure -+++ b/configure -@@ -12424,7 +12424,7 @@ $as_echo "$as_me: WARNING: Consider using GCC version 4.2 or above." >&2;}; - -fno-builtin-memcmp"; - internal_cflags="$gcc_warnings" ;; #( - gcc-*) : -- common_cflags="-O2 -fno-strict-aliasing -fwrapv"; -+ common_cflags="-O2 -fno-strict-aliasing -fwrapv -fcommon"; - internal_cflags="$gcc_warnings" ;; #( - msvc-*) : - common_cflags="-nologo -O2 -Gy- -MD" -diff --git a/configure.ac b/configure.ac -index f5d8a2687..775e0e2db 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -540,7 +540,7 @@ AS_CASE([$host], - -fno-builtin-memcmp"; - internal_cflags="$gcc_warnings"], - [gcc-*], -- [common_cflags="-O2 -fno-strict-aliasing -fwrapv"; -+ [common_cflags="-O2 -fno-strict-aliasing -fwrapv -fcommon"; - internal_cflags="$gcc_warnings"], - [msvc-*], - [common_cflags="-nologo -O2 -Gy- -MD" diff --git a/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam b/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam deleted file mode 100644 index 905f9b3..0000000 --- a/esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam +++ /dev/null @@ -1,51 +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"] - ["fix-gcc10.patch" "md5=17ecd696a8f5647a4c543280599f6974"] -] -patches: [ - "0001-Don-t-build-manpages-for-stdlib-docs.patch" - "0001-Fix-failure-to-install-tools-links.patch" - "fix-gcc10.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/esy.lock/opam/ocamlbuild.0.14.0/opam b/esy.lock/opam/ocamlbuild.0.14.0/opam deleted file mode 100644 index 8deabee..0000000 --- a/esy.lock/opam/ocamlbuild.0.14.0/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "2.0" -maintainer: "Gabriel Scherer " -authors: ["Nicolas Pouillard" "Berke Durak"] -homepage: "https://github.com/ocaml/ocamlbuild/" -bug-reports: "https://github.com/ocaml/ocamlbuild/issues" -license: "LGPL-2.1-only with OCaml-LGPL-linking-exception" -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" -} diff --git a/esy.lock/opam/ocamlfind-secondary.1.8.1/files/META.in b/esy.lock/opam/ocamlfind-secondary.1.8.1/files/META.in deleted file mode 100644 index 12e3ee6..0000000 --- a/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/esy.lock/opam/ocamlfind-secondary.1.8.1/files/ocaml-secondary-compiler.conf.in b/esy.lock/opam/ocamlfind-secondary.1.8.1/files/ocaml-secondary-compiler.conf.in deleted file mode 100644 index d13023c..0000000 --- a/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/esy.lock/opam/ocamlfind-secondary.1.8.1/opam b/esy.lock/opam/ocamlfind-secondary.1.8.1/opam deleted file mode 100644 index acdb576..0000000 --- a/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/esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub b/esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub deleted file mode 100644 index e5ad990..0000000 --- a/esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -BINDIR=$(dirname "$(command -v ocamlc)") -"$BINDIR/ocaml" -I "$OCAML_TOPLEVEL_PATH" "$@" diff --git a/esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install b/esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install deleted file mode 100644 index 295c625..0000000 --- a/esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install +++ /dev/null @@ -1,6 +0,0 @@ -bin: [ - "src/findlib/ocamlfind" {"ocamlfind"} - "?src/findlib/ocamlfind_opt" {"ocamlfind"} - "?tools/safe_camlp4" -] -toplevel: ["src/findlib/topfind"] diff --git a/esy.lock/opam/ocamlfind.1.8.1/opam b/esy.lock/opam/ocamlfind.1.8.1/opam deleted file mode 100644 index d757d66..0000000 --- a/esy.lock/opam/ocamlfind.1.8.1/opam +++ /dev/null @@ -1,50 +0,0 @@ -opam-version: "2.0" -synopsis: "A library manager for OCaml" -maintainer: "Thomas Gazagnaire " -authors: "Gerd Stolpmann " -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: [ - [make "install"] - ["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled} -] -depends: [ - "ocaml" {>= "4.00.0"} - "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"] diff --git a/esy.lock/opam/ppx_derivers.1.2.1/opam b/esy.lock/opam/ppx_derivers.1.2.1/opam deleted file mode 100644 index 3d10814..0000000 --- a/esy.lock/opam/ppx_derivers.1.2.1/opam +++ /dev/null @@ -1,23 +0,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" -dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git" -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" -} diff --git a/esy.lock/opam/ptime.0.8.5/opam b/esy.lock/opam/ptime.0.8.5/opam deleted file mode 100644 index ed7c8d9..0000000 --- a/esy.lock/opam/ptime.0.8.5/opam +++ /dev/null @@ -1,49 +0,0 @@ -opam-version: "2.0" -maintainer: "Daniel Bünzli " -authors: ["The ptime programmers"] -homepage: "https://erratique.ch/software/ptime" -doc: "https://erratique.ch/software/ptime/doc" -dev-repo: "git+http://erratique.ch/repos/ptime.git" -bug-reports: "https://github.com/dbuenzli/ptime/issues" -tags: [ "time" "posix" "system" "org:erratique" ] -license: "ISC" -depends: [ - "ocaml" {>= "4.01.0"} - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} - "result" -] -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: """POSIX time for OCaml""" -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 depends on the `result` compatibility package. 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/ -""" -url { -archive: "https://erratique.ch/software/ptime/releases/ptime-0.8.5.tbz" -checksum: "4d48055d623ecf2db792439b3e96a520" -} diff --git a/esy.lock/opam/re.1.9.0/opam b/esy.lock/opam/re.1.9.0/opam deleted file mode 100644 index f798754..0000000 --- a/esy.lock/opam/re.1.9.0/opam +++ /dev/null @@ -1,42 +0,0 @@ -opam-version: "2.0" - -maintainer: "rudi.grinberg@gmail.com" -authors: [ - "Jerome Vouillon" - "Thomas Gazagnaire" - "Anil Madhavapeddy" - "Rudi Grinberg" - "Gabriel Radanne" -] -license: "LGPL-2.0-only with OCaml-LGPL-linking-exception" -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"} - "dune" - "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: - "https://github.com/ocaml/ocaml-re/releases/download/1.9.0/re-1.9.0.tbz" - checksum: "md5=bddaed4f386a22cace7850c9c7dac296" -} diff --git a/esy.lock/opam/result.1.5/opam b/esy.lock/opam/result.1.5/opam deleted file mode 100644 index 671af04..0000000 --- a/esy.lock/opam/result.1.5/opam +++ /dev/null @@ -1,22 +0,0 @@ -opam-version: "2.0" -maintainer: "opensource@janestreet.com" -authors: ["Jane Street Group, LLC "] -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" -} diff --git a/esy.lock/opam/seq.0.2.2/opam b/esy.lock/opam/seq.0.2.2/opam deleted file mode 100644 index 5ed5165..0000000 --- a/esy.lock/opam/seq.0.2.2/opam +++ /dev/null @@ -1,24 +0,0 @@ -opam-version: "2.0" -synopsis: - "Compatibility package for OCaml's standard iterator type starting from 4.07" -maintainer: "simon.cruanes.2007@m4x.org" -license: "LGPL2.1" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "dune" {>= "1.1.0"} - "ocaml" -] -tags: [ "iterator" "seq" "pure" "list" "compatibility" "cascade" ] -homepage: "https://github.com/c-cube/seq/" -bug-reports: "https://github.com/c-cube/seq/issues" -dev-repo: "git+https://github.com/c-cube/seq.git" -authors: "Simon Cruanes" -url { - src: "https://github.com/c-cube/seq/archive/0.2.2.tar.gz" - checksum: [ - "md5=9033e02283aa3bde9f97f24e632902e3" - "sha512=cab0eb4cb6d9788b7cbd7acbefefc15689d706c97ff7f75dd97faf3c21e466af4d0ff110541a24729db587e7172b1a30a3c2967e17ec2e49cbd923360052c07c" - ] -} diff --git a/esy.lock/opam/topkg.1.0.3/opam b/esy.lock/opam/topkg.1.0.3/opam deleted file mode 100644 index 6e073a1..0000000 --- a/esy.lock/opam/topkg.1.0.3/opam +++ /dev/null @@ -1,48 +0,0 @@ -opam-version: "2.0" -maintainer: "Daniel Bünzli " -authors: ["Daniel Bünzli "] -homepage: "http://erratique.ch/software/topkg" -doc: "http://erratique.ch/software/topkg/doc" -license: "ISC" -dev-repo: "git+http://erratique.ch/repos/topkg.git" -bug-reports: "https://github.com/dbuenzli/topkg/issues" -tags: ["packaging" "ocamlbuild" "org:erratique"] -depends: [ - "ocaml" {>= "4.03.0"} - "ocamlfind" {build & >= "1.6.1"} - "ocamlbuild" ] -build: [[ - "ocaml" "pkg/pkg.ml" "build" - "--pkg-name" name - "--dev-pkg" "%{pinned}%" ]] -synopsis: """The transitory OCaml software packager""" -description: """\ - -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 -""" -url { -archive: "http://erratique.ch/software/topkg/releases/topkg-1.0.3.tbz" -checksum: "e285f7a296d77ee7d831ba9a6bfb396f" -} diff --git a/esy.lock/opam/tyxml.4.4.0/opam b/esy.lock/opam/tyxml.4.4.0/opam deleted file mode 100644 index 51532b5..0000000 --- a/esy.lock/opam/tyxml.4.4.0/opam +++ /dev/null @@ -1,47 +0,0 @@ -opam-version: "2.0" -maintainer: "dev@ocsigen.org" -homepage: "https://github.com/ocsigen/tyxml/" -bug-reports: "https://github.com/ocsigen/tyxml/issues" -doc: "https://ocsigen.org/tyxml/manual/" -dev-repo: "git+https://github.com/ocsigen/tyxml.git" -license: "LGPL-2.1 with OCaml linking exception" - -build: [ - ["dune" "subst"] {pinned} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} -] - -depends: [ - "ocaml" {>= "4.02"} - "dune" - "alcotest" {with-test} - "seq" - "uutf" {>= "1.0.0"} - "re" {>= "1.5.0"} -] - -synopsis:"TyXML is 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. - -```ocaml -open Tyxml -let to_ocaml = Html.(a ~a:[a_href "ocaml.org"] [txt "OCaml!"]) -``` -""" -authors: "The ocsigen team" -url { - src: - "https://github.com/ocsigen/tyxml/releases/download/4.4.0/tyxml-4.4.0.tbz" - checksum: [ - "sha256=516394dd4a5c31726997c51d66aa31cacb91e3c46d4e16c7699130e204042530" - "sha512=d5f2187f8410524cec7a14b28e8950837070eb0b6571b015dd06076c2841eb7ccaffa86d5d2307eaf1950ee62f9fb926477dac01c870d9c1a2f525853cb44d0c" - ] -} diff --git a/esy.lock/opam/uchar.0.0.2/opam b/esy.lock/opam/uchar.0.0.2/opam deleted file mode 100644 index 428d7aa..0000000 --- a/esy.lock/opam/uchar.0.0.2/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "2.0" -maintainer: "Daniel Bünzli " -authors: ["Daniel Bünzli "] -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" -} diff --git a/esy.lock/opam/uutf.1.0.2/opam b/esy.lock/opam/uutf.1.0.2/opam deleted file mode 100644 index 3a9f567..0000000 --- a/esy.lock/opam/uutf.1.0.2/opam +++ /dev/null @@ -1,40 +0,0 @@ -opam-version: "2.0" -maintainer: "Daniel Bünzli " -authors: ["Daniel Bünzli "] -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" -} diff --git a/esy.lock/opam/yojson.1.7.0/opam b/esy.lock/opam/yojson.1.7.0/opam deleted file mode 100644 index ffef068..0000000 --- a/esy.lock/opam/yojson.1.7.0/opam +++ /dev/null @@ -1,38 +0,0 @@ -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" "subst"] {pinned} - ["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" -} diff --git a/esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override/package.json b/esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override/package.json deleted file mode 100644 index ca6a373..0000000 --- a/esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "build": "true", - "dependencies": { - "esy-m4": "esy-packages/esy-m4#c7cf0ac9221be2b1f9d90e83559ca08397a629e7" - } -} diff --git a/esy.lock/overrides/opam__s__dune_opam__c__2.7.1_opam_override/files/build.sh b/esy.lock/overrides/opam__s__dune_opam__c__2.7.1_opam_override/files/build.sh deleted file mode 100644 index b2a94f7..0000000 --- a/esy.lock/overrides/opam__s__dune_opam__c__2.7.1_opam_override/files/build.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -SECONDARY_CONF="$OCAMLFIND_SECONDARY_PREFIX/lib/findlib.conf.d/ocaml-secondary-compiler.conf" - -if test -f $SECONDARY_CONF; then - export OCAMLFIND_CONF=$SECONDARY_CONF; -fi - -env -u OCAMLLIB ocaml bootstrap.ml -./dune.exe build -p dune --profile dune-bootstrap diff --git a/esy.lock/overrides/opam__s__dune_opam__c__2.7.1_opam_override/package.json b/esy.lock/overrides/opam__s__dune_opam__c__2.7.1_opam_override/package.json deleted file mode 100644 index c7d77ab..0000000 --- a/esy.lock/overrides/opam__s__dune_opam__c__2.7.1_opam_override/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "buildsInSource": true, - "build": "bash build.sh", - "install": "esy-installer dune.install", - "buildEnv": { - "OCAMLPATH": "#{ $OCAMLFIND_SECONDARY_PREFIX / 'lib' : ocaml.lib : $OCAML_SECONDARY_COMPILER_PREFIX / 'share' / 'ocaml-secondary-compiler' / 'lib' }" - } -} diff --git a/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/clone-flexdll b/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/clone-flexdll deleted file mode 100755 index 26301dd..0000000 --- a/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/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/configure-windows b/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/configure-windows deleted file mode 100755 index 4040b49..0000000 --- a/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/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-build b/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-build deleted file mode 100755 index b95356a..0000000 --- a/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/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-configure b/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-configure deleted file mode 100755 index fd196c5..0000000 --- a/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/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/package.json b/esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/package.json deleted file mode 100644 index 948455c..0000000 --- a/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/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch b/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch deleted file mode 100644 index 4d5bea0..0000000 --- a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch +++ /dev/null @@ -1,463 +0,0 @@ ---- ./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, " Set build directory (implies no-links)"; - "-install-lib-dir", Set_string Ocamlbuild_where.libdir, " Set the install library directory"; - "-install-bin-dir", Set_string Ocamlbuild_where.bindir, " 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), " 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), " Display path to the tool command"; - "-ocamlc", set_cmd ocamlc, " Set the OCaml bytecode compiler"; - "-plugin-ocamlc", set_cmd plugin_ocamlc, " 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 diff --git a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json b/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json deleted file mode 100644 index b24be7b..0000000 --- a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "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'}" - ] - ] -} diff --git a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch deleted file mode 100644 index 3e3ee5a..0000000 --- a/esy.lock/overrides/opam__s__ocamlfind_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/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/package.json b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/package.json deleted file mode 100644 index 9314f87..0000000 --- a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "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" - } - } -} diff --git a/esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch b/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 3e3ee5a..0000000 --- a/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/esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-findlib-conf.sh b/esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-findlib-conf.sh deleted file mode 100644 index c923ef4..0000000 --- a/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 <", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/cca-io/rescript-react-intl-extractor.git" - }, - "esy": { - "build": "dune build -p #{self.name}", - "buildDev": "refmterr dune build --promote-install-files --root . --only-package #{self.name}" - }, - "scripts": { - "test": "esy x RunTests.exe", - "format": "scripts/format.sh", - "setVersion": "node scripts/setVersion.js" - }, - "dependencies": { - "@esy-ocaml/reason": "^3.6.0", - "@opam/dune": "^2.5.1", - "@opam/yojson": "^1.7.0", - "ocaml": "~4.06.1" - }, - "devDependencies": { - "@opam/merlin": "*", - "@reason-native/rely": "^3.2.1", - "refmterr": "*" - } -} diff --git a/rescript-react-intl-extractor.opam b/rescript-react-intl-extractor.opam index e69de29..ad04c9f 100644 --- a/rescript-react-intl-extractor.opam +++ b/rescript-react-intl-extractor.opam @@ -0,0 +1,33 @@ +# This file is generated by dune, edit dune-project instead +opam-version: "2.0" +version: "0.12.0" +synopsis: "Extracts messages for localization from ReScript source files" +maintainer: ["Christoph Knittel "] +authors: ["Christoph Knittel "] +license: "MIT" +homepage: "https://github.com/cca-io/rescript-react-intl-extractor" +doc: "https://github.com/cca-io/rescript-react-intl-extractor" +bug-reports: "https://github.com/cca-io/rescript-react-intl-extractor/issues" +depends: [ + "alcotest" {with-test} + "ocaml" {= "4.06.1"} + "reason" {= "3.7.0"} + "yojson" {= "1.7.0"} + "dune" {>= "2.7"} + "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/cca-io/rescript-react-intl-extractor.git" diff --git a/test/RunTests.re b/test/RunTests.re deleted file mode 100644 index f27fc31..0000000 --- a/test/RunTests.re +++ /dev/null @@ -1 +0,0 @@ -LibTest.TestFramework.cli(); diff --git a/test/Test.re b/test/Test.re new file mode 100644 index 0000000..1ac9150 --- /dev/null +++ b/test/Test.re @@ -0,0 +1,222 @@ +open Lib; + +let extract = (~duplicatesAllowed=?, paths) => { + let messages = Extractor.extract(~duplicatesAllowed?, paths); + + let jsonObj = `List(messages |> List.map(Message.toJson)); + Yojson.Basic.pretty_to_string(jsonObj); +}; + +let testExtract = (~duplicatesAllowed=?, paths, expected) => { + let jsonString = extract(~duplicatesAllowed?, paths); + Alcotest.check(Alcotest.string, "extract", expected, jsonString); +}; + +let testExtractFull = () => + testExtract( + ["testData/test1"], + {|[ + { "id": "test1.msg1.1", "defaultMessage": "This is message 1.1" }, + { "id": "test1.msg1.2", "defaultMessage": "This is message 1.2" }, + { + "id": "test1.msg1.3", + "defaultMessage": "This is message 1.3", + "description": "Description for message 1.3" + }, + { "id": "test1.msg1.4", "defaultMessage": "This is message 1.4" }, + { "id": "test1.msg1.5", "defaultMessage": "This is message 1.5" }, + { "id": "test1.msg1.8", "defaultMessage": "This is message 1.8" }, + { + "id": "test1.msg1.9", + "defaultMessage": "This is message 1.9", + "description": "Description for message 1.9" + }, + { "id": "test1.msg3.1", "defaultMessage": "This is message 3.1" } +]|}, + ); + +let testExtractPartial = () => + testExtract( + ["testData/test1/subdir/Test_1_3.re"], + {|[ { "id": "test1.msg3.1", "defaultMessage": "This is message 3.1" } ]|}, + ); + +let testExtractReScript = () => + testExtract( + ["testData/test4"], + {|[ + { "id": "test4.msg1.1", "defaultMessage": "This is message 1.1" }, + { "id": "test4.msg1.2", "defaultMessage": "This is message 1.2" }, + { + "id": "test4.msg1.3", + "defaultMessage": "This is message 1.3", + "description": "Description for message 1.3" + }, + { "id": "test4.msg1.4", "defaultMessage": "This is message 1.4" }, + { "id": "test4.msg1.5", "defaultMessage": "This is message 1.5" }, + { "id": "test4.msg1.8", "defaultMessage": "This is message 1.8" }, + { + "id": "test4.msg1.9", + "defaultMessage": "This is message 1.9", + "description": "Description for message 1.9" + }, + { "id": "test4.msg3.1", "defaultMessage": "This is message 3.1" } +]|}, + ); + +let testExtractIntlPpx = () => + testExtract( + ["testData/test5"], + {|[ + { + "id": "07ef8ec9f2dd894c45b447292d527f4a", + "defaultMessage": "This is message 5.2.2" + }, + { + "id": "09644115fd7f4e0803e5300442acaa3f", + "defaultMessage": "This is message 5.2.9", + "description": "This is description for message 5.2.9" + }, + { + "id": "50c182276f426aaed9bb73e932749c12", + "defaultMessage": "This is message 5.1.1" + }, + { + "id": "517ecc8330114017ce1fa3358b0e19fb", + "defaultMessage": "This is message 5.2.7", + "description": "This is description for message 5.2.7" + }, + { + "id": "617b406e8ce2d6117eb79e480b7db916", + "defaultMessage": "This is message 5.1.6", + "description": "This is description for message 5.1.6" + }, + { + "id": "705ebca03144cedde0772b42454db9bc", + "defaultMessage": "This is message 5.1.2" + }, + { + "id": "82d39a35baed93572eb9d3e2f31d9549", + "defaultMessage": "This is message 5.1.7", + "description": "This is description for message 5.1.7" + }, + { + "id": "9bd72b86b4707b49e954679611f24389", + "defaultMessage": "This is message 5.1.9", + "description": "This is description for message 5.1.9" + }, + { + "id": "aa90db9568631794111be2c0dbf3f290", + "defaultMessage": "This is message 5.2.4", + "description": "This is description for message 5.2.4" + }, + { + "id": "b5efe6bdb050410f0182c3e2b74b7add", + "defaultMessage": "This is message 5.2.5", + "description": "This is description for message 5.2.5" + }, + { + "id": "bbd2f42ed446c470db8326dd1ea169fe", + "defaultMessage": "This is message 5.2.1" + }, + { + "id": "c26daf229e5a13904d33004e1e48fa87", + "defaultMessage": "This is message 5.2.3" + }, + { + "id": "d48a62aec72f3b16408aacff820de2de", + "defaultMessage": "This is message 5.1.3" + }, + { + "id": "da572261a2f0bc6550f8701e35aa0d13", + "defaultMessage": "This is message 5.2.6", + "description": "This is description for message 5.2.6" + }, + { + "id": "dec09d01d1cf004612cef6f2dc4c81e3", + "defaultMessage": "This is message 5.1.4", + "description": "This is description for message 5.1.4" + }, + { + "id": "deeb9aaca5b6be205f113483625b19e2", + "defaultMessage": "This is message 5.1.8", + "description": "This is description for message 5.1.8" + }, + { + "id": "e4a34c50454eec2a66088d7a5e7f00d5", + "defaultMessage": "This is message 5.2.8", + "description": "This is description for message 5.2.8" + }, + { + "id": "fc63eab6a84654a8a5d05d83f165db1e", + "defaultMessage": "This is message 5.1.5", + "description": "This is description for message 5.1.5" + } +]|}, + ); + +let testPathNotFoundError = () => { + Alcotest.check_raises( + "dir not found", Extractor.PathNotFound("testData/someDir"), () => + extract(["testData/someDir"]) |> ignore + ); + + Alcotest.check_raises( + "file not found", Extractor.PathNotFound("testData/test1/SomeFile.re"), () => + extract(["testData/test1/SomeFile.re"]) |> ignore + ); +}; + +let testDuplicatesOk = () => + testExtract( + ~duplicatesAllowed=true, + ["testData/test3/Test_3_1.re", "testData/test3/Test_3_2.re"], + {|[ + { "id": "test3.msg1.1", "defaultMessage": "This is message 1.1" }, + { "id": "test3.msg1.2", "defaultMessage": "This is message 1.2" }, + { "id": "test3.msg1.3", "defaultMessage": "This is message 1.3" } +]|}, + ); + +let testDuplicatesNok = () => { + Alcotest.check_raises( + "default message not matching", + Extractor.DefaultMessageNotMatching("test3.msg1.1"), + () => + extract( + ~duplicatesAllowed=true, + ["testData/test3/Test_3_1.re", "testData/test3/Test_3_3.re"], + ) + |> ignore + ); +}; + +let testDuplicatesNotAllowed = () => { + Alcotest.check_raises( + "duplicates not allowed", Extractor.DuplicateMessageId("test3.msg1.1"), () => + extract(["testData/test3/Test_3_1.re", "testData/test3/Test_3_2.re"]) + |> ignore + ); +}; + +open Alcotest; + +let testSetExtract = [ + test_case("Extract Reason (full)", `Quick, testExtractFull), + test_case("Extract Reason (partial)", `Quick, testExtractPartial), + test_case("Extract ReScript", `Quick, testExtractReScript), + test_case("Extract Intl PPX", `Quick, testExtractIntlPpx), + test_case("Path not found", `Quick, testPathNotFoundError), +]; + +let testSetDuplicates = [ + test_case("Extract duplicates", `Quick, testDuplicatesOk), + test_case("Default message not matching", `Quick, testDuplicatesNok), + test_case("Duplicates not allowed", `Quick, testDuplicatesNotAllowed), +]; + +let () = + run( + "rescript-react-intl-extractor", + [("extract", testSetExtract), ("duplicates", testSetDuplicates)], + ); diff --git a/test/__snapshots__/Duplicates.cbcdac93.0.snapshot b/test/__snapshots__/Duplicates.cbcdac93.0.snapshot deleted file mode 100644 index e38078a..0000000 --- a/test/__snapshots__/Duplicates.cbcdac93.0.snapshot +++ /dev/null @@ -1,6 +0,0 @@ -Duplicates › allowedOk -[ - { \"id\": \"test3.msg1.1\", \"defaultMessage\": \"This is message 1.1\" }, - { \"id\": \"test3.msg1.2\", \"defaultMessage\": \"This is message 1.2\" }, - { \"id\": \"test3.msg1.3\", \"defaultMessage\": \"This is message 1.3\" } -] diff --git a/test/__snapshots__/Extract.372ae0d1.0.snapshot b/test/__snapshots__/Extract.372ae0d1.0.snapshot deleted file mode 100644 index 1f5001e..0000000 --- a/test/__snapshots__/Extract.372ae0d1.0.snapshot +++ /dev/null @@ -1,2 +0,0 @@ -Extract › partial -[ { \"id\": \"test1.msg3.1\", \"defaultMessage\": \"This is message 3.1\" } ] diff --git a/test/__snapshots__/Extract.a27e9fd5.0.snapshot b/test/__snapshots__/Extract.a27e9fd5.0.snapshot deleted file mode 100644 index e77c662..0000000 --- a/test/__snapshots__/Extract.a27e9fd5.0.snapshot +++ /dev/null @@ -1,19 +0,0 @@ -Extract › full -[ - { \"id\": \"test1.msg1.1\", \"defaultMessage\": \"This is message 1.1\" }, - { \"id\": \"test1.msg1.2\", \"defaultMessage\": \"This is message 1.2\" }, - { - \"id\": \"test1.msg1.3\", - \"defaultMessage\": \"This is message 1.3\", - \"description\": \"Description for message 1.3\" - }, - { \"id\": \"test1.msg1.4\", \"defaultMessage\": \"This is message 1.4\" }, - { \"id\": \"test1.msg1.5\", \"defaultMessage\": \"This is message 1.5\" }, - { \"id\": \"test1.msg1.8\", \"defaultMessage\": \"This is message 1.8\" }, - { - \"id\": \"test1.msg1.9\", - \"defaultMessage\": \"This is message 1.9\", - \"description\": \"Description for message 1.9\" - }, - { \"id\": \"test1.msg3.1\", \"defaultMessage\": \"This is message 3.1\" } -] diff --git a/test/__snapshots__/IntlPpx.0d7c125f.0.snapshot b/test/__snapshots__/IntlPpx.0d7c125f.0.snapshot deleted file mode 100644 index 98f32cb..0000000 --- a/test/__snapshots__/IntlPpx.0d7c125f.0.snapshot +++ /dev/null @@ -1,87 +0,0 @@ -IntlPpx › full -[ - { - \"id\": \"07ef8ec9f2dd894c45b447292d527f4a\", - \"defaultMessage\": \"This is message 5.2.2\" - }, - { - \"id\": \"09644115fd7f4e0803e5300442acaa3f\", - \"defaultMessage\": \"This is message 5.2.9\", - \"description\": \"This is description for message 5.2.9\" - }, - { - \"id\": \"50c182276f426aaed9bb73e932749c12\", - \"defaultMessage\": \"This is message 5.1.1\" - }, - { - \"id\": \"517ecc8330114017ce1fa3358b0e19fb\", - \"defaultMessage\": \"This is message 5.2.7\", - \"description\": \"This is description for message 5.2.7\" - }, - { - \"id\": \"617b406e8ce2d6117eb79e480b7db916\", - \"defaultMessage\": \"This is message 5.1.6\", - \"description\": \"This is description for message 5.1.6\" - }, - { - \"id\": \"705ebca03144cedde0772b42454db9bc\", - \"defaultMessage\": \"This is message 5.1.2\" - }, - { - \"id\": \"82d39a35baed93572eb9d3e2f31d9549\", - \"defaultMessage\": \"This is message 5.1.7\", - \"description\": \"This is description for message 5.1.7\" - }, - { - \"id\": \"9bd72b86b4707b49e954679611f24389\", - \"defaultMessage\": \"This is message 5.1.9\", - \"description\": \"This is description for message 5.1.9\" - }, - { - \"id\": \"aa90db9568631794111be2c0dbf3f290\", - \"defaultMessage\": \"This is message 5.2.4\", - \"description\": \"This is description for message 5.2.4\" - }, - { - \"id\": \"b5efe6bdb050410f0182c3e2b74b7add\", - \"defaultMessage\": \"This is message 5.2.5\", - \"description\": \"This is description for message 5.2.5\" - }, - { - \"id\": \"bbd2f42ed446c470db8326dd1ea169fe\", - \"defaultMessage\": \"This is message 5.2.1\" - }, - { - \"id\": \"c26daf229e5a13904d33004e1e48fa87\", - \"defaultMessage\": \"This is message 5.2.3\" - }, - { - \"id\": \"d48a62aec72f3b16408aacff820de2de\", - \"defaultMessage\": \"This is message 5.1.3\" - }, - { - \"id\": \"da572261a2f0bc6550f8701e35aa0d13\", - \"defaultMessage\": \"This is message 5.2.6\", - \"description\": \"This is description for message 5.2.6\" - }, - { - \"id\": \"dec09d01d1cf004612cef6f2dc4c81e3\", - \"defaultMessage\": \"This is message 5.1.4\", - \"description\": \"This is description for message 5.1.4\" - }, - { - \"id\": \"deeb9aaca5b6be205f113483625b19e2\", - \"defaultMessage\": \"This is message 5.1.8\", - \"description\": \"This is description for message 5.1.8\" - }, - { - \"id\": \"e4a34c50454eec2a66088d7a5e7f00d5\", - \"defaultMessage\": \"This is message 5.2.8\", - \"description\": \"This is description for message 5.2.8\" - }, - { - \"id\": \"fc63eab6a84654a8a5d05d83f165db1e\", - \"defaultMessage\": \"This is message 5.1.5\", - \"description\": \"This is description for message 5.1.5\" - } -] diff --git a/test/__snapshots__/ReScript.18d405ea.0.snapshot b/test/__snapshots__/ReScript.18d405ea.0.snapshot deleted file mode 100644 index add395a..0000000 --- a/test/__snapshots__/ReScript.18d405ea.0.snapshot +++ /dev/null @@ -1,19 +0,0 @@ -ReScript › full -[ - { \"id\": \"test4.msg1.1\", \"defaultMessage\": \"This is message 1.1\" }, - { \"id\": \"test4.msg1.2\", \"defaultMessage\": \"This is message 1.2\" }, - { - \"id\": \"test4.msg1.3\", - \"defaultMessage\": \"This is message 1.3\", - \"description\": \"Description for message 1.3\" - }, - { \"id\": \"test4.msg1.4\", \"defaultMessage\": \"This is message 1.4\" }, - { \"id\": \"test4.msg1.5\", \"defaultMessage\": \"This is message 1.5\" }, - { \"id\": \"test4.msg1.8\", \"defaultMessage\": \"This is message 1.8\" }, - { - \"id\": \"test4.msg1.9\", - \"defaultMessage\": \"This is message 1.9\", - \"description\": \"Description for message 1.9\" - }, - { \"id\": \"test4.msg3.1\", \"defaultMessage\": \"This is message 3.1\" } -] diff --git a/test/dune b/test/dune index 8b6cc18..0c1c08b 100644 --- a/test/dune +++ b/test/dune @@ -1,17 +1,3 @@ -(library - (name libTest) - ; the linkall flag ensures that all of our tests are compiled and the - ; -g flag emits debugging information - (ocamlopt_flags -linkall -g) - (libraries rely.lib lib) - (modules (:standard \ RunTests)) -) - -(executable - (name RunTests) - (public_name RunTests.exe) - (libraries rely.lib libTest) - (modules RunTests) -) - -(include_subdirs unqualified) +(test + (name test) + (libraries alcotest lib)) diff --git a/test/lib/TestFramework.re b/test/lib/TestFramework.re deleted file mode 100644 index e840da0..0000000 --- a/test/lib/TestFramework.re +++ /dev/null @@ -1,3 +0,0 @@ -include Rely.Make({ - let config = Rely.TestFrameworkConfig.initialize({snapshotDir: "test/__snapshots__", projectDir: ""}); -}); diff --git a/test/lib/Tests.re b/test/lib/Tests.re deleted file mode 100644 index 185d29b..0000000 --- a/test/lib/Tests.re +++ /dev/null @@ -1,69 +0,0 @@ -open TestFramework; -open Lib; - -let extractAndGetJson = (~duplicatesAllowed=?, paths) => { - let messages = Extractor.extract(~duplicatesAllowed?, paths); - let jsonObj = `List(messages |> List.map(Message.toJson)); - - Yojson.Basic.pretty_to_string(jsonObj); -}; - -describe("Extract", ({test}) => { - test("full", ({expect}) => { - let json = extractAndGetJson(["testData/test1"]); - expect.string(json).toMatchSnapshot(); - }); - - test("partial", ({expect}) => { - let json = extractAndGetJson(["testData/test1/subdir/Test_1_3.re"]); - expect.string(json).toMatchSnapshot(); - }); -}); - -describe("Duplicates", ({test}) => { - test("allowedOk", ({expect}) => { - let json = - extractAndGetJson(~duplicatesAllowed=true, ["testData/test3/Test_3_1.re", "testData/test3/Test_3_2.re"]); - expect.string(json).toMatchSnapshot(); - }); - - test("allowedNok", ({expect}) => { - let extract = () => - extractAndGetJson(~duplicatesAllowed=true, ["testData/test3/Test_3_1.re", "testData/test3/Test_3_3.re"]); - - expect.fn(extract).toThrowException(Extractor.DefaultMessageNotMatching("test3.msg1.1")); - }); - - test("notAllowed", ({expect}) => { - let extract = () => - extractAndGetJson(~duplicatesAllowed=false, ["testData/test3/Test_3_1.re", "testData/test3/Test_3_3.re"]); - - expect.fn(extract).toThrowException(Extractor.DuplicateMessageId("test3.msg1.1")); - }); -}); - -describe("Path not found", ({test}) => { - test("dirNotFound", ({expect}) => { - let extract = () => extractAndGetJson(["someDir"]); - expect.fn(extract).toThrowException(Extractor.PathNotFound("someDir")); - }); - - test("fileNotFound", ({expect}) => { - let extract = () => extractAndGetJson(["testData/test1/SomeFile.re"]); - expect.fn(extract).toThrowException(Extractor.PathNotFound("testData/test1/SomeFile.re")); - }); -}); - -describe("ReScript", ({test}) => { - test("full", ({expect}) => { - let json = extractAndGetJson(["testData/test4"]); - expect.string(json).toMatchSnapshot(); - }) -}); - -describe("IntlPpx", ({test}) => { - test("full", ({expect}) => { - let json = extractAndGetJson(["testData/test5"]); - expect.string(json).toMatchSnapshot(); - }) -}); diff --git a/testData/test1/Test_1_1.re b/test/testData/test1/Test_1_1.re similarity index 100% rename from testData/test1/Test_1_1.re rename to test/testData/test1/Test_1_1.re diff --git a/testData/test1/subdir/Test_1_3.re b/test/testData/test1/subdir/Test_1_3.re similarity index 100% rename from testData/test1/subdir/Test_1_3.re rename to test/testData/test1/subdir/Test_1_3.re diff --git a/testData/test3/Test_3_1.re b/test/testData/test3/Test_3_1.re similarity index 100% rename from testData/test3/Test_3_1.re rename to test/testData/test3/Test_3_1.re diff --git a/testData/test3/Test_3_2.re b/test/testData/test3/Test_3_2.re similarity index 100% rename from testData/test3/Test_3_2.re rename to test/testData/test3/Test_3_2.re diff --git a/testData/test3/Test_3_3.re b/test/testData/test3/Test_3_3.re similarity index 100% rename from testData/test3/Test_3_3.re rename to test/testData/test3/Test_3_3.re diff --git a/testData/test4/Test_4_1.res b/test/testData/test4/Test_4_1.res similarity index 100% rename from testData/test4/Test_4_1.res rename to test/testData/test4/Test_4_1.res diff --git a/testData/test4/subdir/Test_4_3.res b/test/testData/test4/subdir/Test_4_3.res similarity index 100% rename from testData/test4/subdir/Test_4_3.res rename to test/testData/test4/subdir/Test_4_3.res diff --git a/testData/test5/Test_5_1.re b/test/testData/test5/Test_5_1.re similarity index 100% rename from testData/test5/Test_5_1.re rename to test/testData/test5/Test_5_1.re diff --git a/testData/test5/Test_5_2.res b/test/testData/test5/Test_5_2.res similarity index 100% rename from testData/test5/Test_5_2.res rename to test/testData/test5/Test_5_2.res