├── .github └── workflows │ └── release-ppx.yaml ├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── copyPlatformBinaryInPlace.js ├── dune-project ├── dune-workspace ├── esy.json ├── esy.lock ├── .gitattributes ├── .gitignore ├── index.json ├── opam │ ├── atd.2.2.1 │ │ └── opam │ ├── atdgen-runtime.2.2.1 │ │ └── opam │ ├── atdgen.2.2.1 │ │ └── opam │ ├── base-threads.base │ │ └── opam │ ├── base-unix.base │ │ └── opam │ ├── base.v0.13.2 │ │ └── opam │ ├── biniou.1.2.1 │ │ └── opam │ ├── conf-m4.1 │ │ └── opam │ ├── cppo.1.6.6 │ │ └── opam │ ├── dune-configurator.2.7.0 │ │ └── opam │ ├── dune.2.7.0 │ │ └── opam │ ├── easy-format.1.3.2 │ │ └── opam │ ├── menhir.20200624 │ │ └── opam │ ├── menhirLib.20200624 │ │ └── opam │ ├── menhirSdk.20200624 │ │ └── opam │ ├── merlin-extend.0.6 │ │ └── opam │ ├── merlin.3.3.3 │ │ └── opam │ ├── ocaml-compiler-libs.v0.12.1 │ │ └── opam │ ├── ocaml-migrate-parsetree.1.5.0 │ │ └── opam │ ├── ocaml-secondary-compiler.4.08.1-1 │ │ ├── files │ │ │ ├── 0001-Don-t-build-manpages-for-stdlib-docs.patch │ │ │ ├── 0001-Fix-failure-to-install-tools-links.patch │ │ │ └── fix-gcc10.patch │ │ └── opam │ ├── ocamlfind-secondary.1.8.1 │ │ ├── files │ │ │ ├── META.in │ │ │ └── ocaml-secondary-compiler.conf.in │ │ └── opam │ ├── ocamlfind.1.8.1 │ │ ├── files │ │ │ ├── ocaml-stub │ │ │ └── ocamlfind.install │ │ └── opam │ ├── ppx_derivers.1.2.1 │ │ └── opam │ ├── ppxlib.0.15.0 │ │ └── opam │ ├── re.1.9.0 │ │ └── opam │ ├── result.1.5 │ │ └── opam │ ├── seq.0.2.2 │ │ └── opam │ ├── sexplib0.v0.13.0 │ │ └── opam │ ├── stdlib-shims.0.1.0 │ │ └── opam │ └── yojson.1.7.0 │ │ └── opam └── overrides │ ├── opam__s__dune_opam__c__2.7.0_opam_override │ └── package.json │ ├── opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override │ ├── files │ │ ├── clone-flexdll │ │ ├── configure-windows │ │ ├── esy-build │ │ └── esy-configure │ └── package.json │ ├── opam__s__ocamlfind_opam__c__1.8.1_opam_override │ ├── files │ │ └── findlib-1.8.1.patch │ └── package.json │ └── opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override │ ├── files │ ├── findlib-1.8.1.patch │ ├── gen-findlib-conf.sh │ └── gen-meta.sh │ └── package.json ├── package.json ├── rescript-ppx-let.install └── rescript-ppx-let.opam /.github/workflows/release-ppx.yaml: -------------------------------------------------------------------------------- 1 | name: rescript-ppx-let pipeline 2 | 3 | on: 4 | push: 5 | paths: 6 | - 'package.json' 7 | - './github/workflows/release-ppx.yaml' 8 | 9 | jobs: 10 | build: 11 | name: Build ${{ matrix.os }} 12 | runs-on: ${{ matrix.os }} 13 | strategy: 14 | matrix: 15 | node-version: [12.x] 16 | os: [ubuntu-latest, windows-latest, macOS-latest] 17 | 18 | steps: 19 | - uses: actions/checkout@v1 20 | - name: init submodules 21 | run: | 22 | git submodule init 23 | - name: fix submodule URL 24 | run: | 25 | git config --local submodule.ppx_let.url https://leeor:${ACCESS_TOKEN}@github.com/janestreet/ppx_let 26 | env: 27 | ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} 28 | - name: Checkout submodules 29 | run: | 30 | git submodule update 31 | - name: Use Node.js ${{ matrix.node-version }} 32 | uses: actions/setup-node@v1 33 | with: 34 | node-version: ${{ matrix.node-version }} 35 | - name: setup 36 | run: | 37 | npm install -g esy@latest cross-env 38 | # OCaml 4.06 and BuckleScript 6 39 | - name: install-build 40 | run: | 41 | esy install 42 | esy b 43 | - name: Upload artifacts ${{ matrix.os }} 44 | uses: actions/upload-artifact@master 45 | with: 46 | name: ${{ matrix.os }} 47 | path: _build/install/default/lib/ppx_let/ppx.exe 48 | env: 49 | CI: true 50 | 51 | publish: 52 | needs: build 53 | name: Publish 54 | runs-on: ubuntu-latest 55 | steps: 56 | - uses: actions/checkout@v1 57 | 58 | - name: Download linux artifacts 59 | uses: actions/download-artifact@master 60 | with: 61 | name: ubuntu-latest 62 | path: binaries/linux 63 | 64 | - name: Download macOS artifacts 65 | uses: actions/download-artifact@master 66 | with: 67 | name: macOS-latest 68 | path: binaries/darwin 69 | 70 | - name: Download windows artifacts 71 | uses: actions/download-artifact@master 72 | with: 73 | name: windows-latest 74 | path: binaries/windows 75 | 76 | - name: Move artifacts 77 | run: | 78 | mkdir bin 79 | mv binaries/darwin/ppx.exe bin/ppx-darwin-x64.exe 80 | mv binaries/windows/ppx.exe bin/ppx-win-x64.exe 81 | mv binaries/linux/ppx.exe bin/ppx-linux-x64.exe 82 | rm -rf binaries 83 | 84 | - name: Publish 85 | uses: actions/setup-node@v1 86 | with: 87 | node-version: '12.x' 88 | registry-url: 'https://registry.npmjs.org' 89 | 90 | - run: | 91 | yarn publish --access public 92 | env: 93 | NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} 94 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _build 2 | _esy 3 | node_modules 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "ppx_let"] 2 | path = ppx_let 3 | url = git@github.com:janestreet/ppx_let.git 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Leeor Aharon 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Motivation 2 | 3 | Way before the ReScript compiler moved to OCaml 4.06.1, I liked the richness and interface provided by Jane Street's `ppx_let`, but I haven't had the chance to target native. It was time to give it a try in JavaScript-land. 4 | 5 | ### Installing 6 | 7 | In your terminal, run: 8 | 9 | ```sh 10 | yarn add --dev @leeor/rescript-ppx-let 11 | ``` 12 | 13 | Edit `bsconfig.json`: 14 | 15 | ```json 16 | "ppx-flags": [ 17 | ["@leeor/rescript-ppx-let/ppx.exe", "-as-ppx"] 18 | ] 19 | ``` 20 | 21 | The specifics of using this PPX are very well documented in the original [README](https://github.com/janestreet/ppx_let). 22 | -------------------------------------------------------------------------------- /copyPlatformBinaryInPlace.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var fs = require("fs"); 4 | var path = require("path"); 5 | 6 | var arch = process.arch === "ia32" ? "x86" : process.arch; 7 | var platform = process.platform === "win32" ? "win" : process.platform; 8 | 9 | var rootDir = __dirname; 10 | var sourceExePath = path.join(rootDir, `bin/ppx-${platform}-${arch}.exe`); 11 | var destExePath = path.join(rootDir, "ppx.exe"); 12 | 13 | copyBinary(sourceExePath, destExePath); 14 | 15 | function copyBinary(sourceFilename, destFilename) { 16 | var supported = fs.existsSync(sourceFilename); 17 | 18 | if (!supported) { 19 | console.error("rescript-ppx-let does not support this platform :("); 20 | console.error(""); 21 | console.error("rescript-ppx-let comes prepacked as built binaries to avoid large"); 22 | console.error("dependencies at build-time."); 23 | console.error(""); 24 | console.error("If you want rescript-ppx-let to support this platform natively,"); 25 | console.error( 26 | "please open an issue at our repository, linked above. Please" 27 | ); 28 | console.error("specify that you are on the " + platform + " platform,"); 29 | console.error("on the " + arch + " architecture."); 30 | } 31 | 32 | if (!fs.existsSync(destFilename)) { 33 | copyFileSync(sourceFilename, destFilename); 34 | fs.chmodSync(destFilename, 0755); 35 | } 36 | } 37 | 38 | function copyFileSync(source, dest) { 39 | if (typeof fs.copyFileSync === "function") { 40 | fs.copyFileSync(source, dest); 41 | } else { 42 | fs.writeFileSync(dest, fs.readFileSync(source)); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /dune-project: -------------------------------------------------------------------------------- 1 | (lang dune 1.0) 2 | 3 | (name "rescript-ppx-let") 4 | -------------------------------------------------------------------------------- /dune-workspace: -------------------------------------------------------------------------------- 1 | (lang dune 1.1) 2 | 3 | (env (release-static (flags (:standard -ccopt -static)))) 4 | -------------------------------------------------------------------------------- /esy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rescript-ppx-let", 3 | "devDependencies": { 4 | "@opam/dune": "*", 5 | "@opam/merlin": "3.3.3", 6 | "@opam/ocaml-migrate-parsetree": "1.5.0", 7 | "ocaml": "4.06.1000", 8 | "refmterr": "3.3.0", 9 | "@esy-ocaml/reason": "~3.5.0" 10 | }, 11 | "esy": { 12 | "build": [["dune", "build", "-p", "ppx_let"]], 13 | "buildsInSource": "_build", 14 | "release": { 15 | "lib": ["ppx_let"], 16 | "includePackages": ["root"] 17 | } 18 | }, 19 | "dependencies": { "@opam/base": "v0.13.2", "@opam/ppxlib": "0.15.0" } 20 | } 21 | -------------------------------------------------------------------------------- /esy.lock/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Set eol to LF so files aren't converted to CRLF-eol on Windows. 3 | * text eol=lf linguist-generated 4 | -------------------------------------------------------------------------------- /esy.lock/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Reset any possible .gitignore, we want all esy.lock to be un-ignored. 3 | !* 4 | -------------------------------------------------------------------------------- /esy.lock/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "checksum": "6778af8cccc160a5048a13cdb8938875", 3 | "root": "rescript-ppx-let@link-dev:./esy.json", 4 | "node": { 5 | "rescript-ppx-let@link-dev:./esy.json": { 6 | "id": "rescript-ppx-let@link-dev:./esy.json", 7 | "name": "rescript-ppx-let", 8 | "version": "link-dev:./esy.json", 9 | "source": { "type": "link-dev", "path": ".", "manifest": "esy.json" }, 10 | "overrides": [], 11 | "dependencies": [ 12 | "@opam/ppxlib@opam:0.15.0@6a9d8126", 13 | "@opam/base@opam:v0.13.2@c3150775" 14 | ], 15 | "devDependencies": [ 16 | "refmterr@3.3.0@d41d8cd9", "ocaml@4.6.1000@d41d8cd9", 17 | "@opam/ocaml-migrate-parsetree@opam:1.5.0@a4818723", 18 | "@opam/merlin@opam:3.3.3@d653b06a", "@opam/dune@opam:2.7.0@50e8f3e0", 19 | "@esy-ocaml/reason@3.5.2@d41d8cd9" 20 | ] 21 | }, 22 | "refmterr@3.3.0@d41d8cd9": { 23 | "id": "refmterr@3.3.0@d41d8cd9", 24 | "name": "refmterr", 25 | "version": "3.3.0", 26 | "source": { 27 | "type": "install", 28 | "source": [ 29 | "archive:https://registry.npmjs.org/refmterr/-/refmterr-3.3.0.tgz#sha1:45adde80205093c201b491b3c37dd7740c9b036b" 30 | ] 31 | }, 32 | "overrides": [], 33 | "dependencies": [ 34 | "ocaml@4.6.1000@d41d8cd9", "@reason-native/pastel@0.3.0@d41d8cd9", 35 | "@reason-native/console@0.1.0@d41d8cd9", 36 | "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.7.0@50e8f3e0", 37 | "@opam/atdgen@opam:2.2.1@d73fda11", 38 | "@esy-ocaml/reason@3.5.2@d41d8cd9" 39 | ], 40 | "devDependencies": [] 41 | }, 42 | "ocaml@4.6.1000@d41d8cd9": { 43 | "id": "ocaml@4.6.1000@d41d8cd9", 44 | "name": "ocaml", 45 | "version": "4.6.1000", 46 | "source": { 47 | "type": "install", 48 | "source": [ 49 | "archive:https://registry.npmjs.org/ocaml/-/ocaml-4.6.1000.tgz#sha1:99525ef559353481396454f9a072dedc96b52f44" 50 | ] 51 | }, 52 | "overrides": [], 53 | "dependencies": [], 54 | "devDependencies": [] 55 | }, 56 | "@reason-native/pastel@0.3.0@d41d8cd9": { 57 | "id": "@reason-native/pastel@0.3.0@d41d8cd9", 58 | "name": "@reason-native/pastel", 59 | "version": "0.3.0", 60 | "source": { 61 | "type": "install", 62 | "source": [ 63 | "archive:https://registry.npmjs.org/@reason-native/pastel/-/pastel-0.3.0.tgz#sha1:07da3c5a0933e61bc3b353bc85aa71ac7c0f311c" 64 | ] 65 | }, 66 | "overrides": [], 67 | "dependencies": [ 68 | "ocaml@4.6.1000@d41d8cd9", "@opam/re@opam:1.9.0@d4d5e13d", 69 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/reason@3.5.2@d41d8cd9" 70 | ], 71 | "devDependencies": [] 72 | }, 73 | "@reason-native/console@0.1.0@d41d8cd9": { 74 | "id": "@reason-native/console@0.1.0@d41d8cd9", 75 | "name": "@reason-native/console", 76 | "version": "0.1.0", 77 | "source": { 78 | "type": "install", 79 | "source": [ 80 | "archive:https://registry.npmjs.org/@reason-native/console/-/console-0.1.0.tgz#sha1:3b56f0e9e1be8464329793df29020aa90e71c22c" 81 | ] 82 | }, 83 | "overrides": [], 84 | "dependencies": [ 85 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 86 | "@esy-ocaml/reason@3.5.2@d41d8cd9" 87 | ], 88 | "devDependencies": [] 89 | }, 90 | "@opam/yojson@opam:1.7.0@7056d985": { 91 | "id": "@opam/yojson@opam:1.7.0@7056d985", 92 | "name": "@opam/yojson", 93 | "version": "opam:1.7.0", 94 | "source": { 95 | "type": "install", 96 | "source": [ 97 | "archive:https://opam.ocaml.org/cache/md5/b8/b89d39ca3f8c532abe5f547ad3b8f84d#md5:b89d39ca3f8c532abe5f547ad3b8f84d", 98 | "archive:https://github.com/ocaml-community/yojson/releases/download/1.7.0/yojson-1.7.0.tbz#md5:b89d39ca3f8c532abe5f547ad3b8f84d" 99 | ], 100 | "opam": { 101 | "name": "yojson", 102 | "version": "1.7.0", 103 | "path": "esy.lock/opam/yojson.1.7.0" 104 | } 105 | }, 106 | "overrides": [], 107 | "dependencies": [ 108 | "ocaml@4.6.1000@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", 109 | "@opam/dune@opam:2.7.0@50e8f3e0", "@opam/cppo@opam:1.6.6@f4f83858", 110 | "@opam/biniou@opam:1.2.1@d7570399", 111 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 112 | ], 113 | "devDependencies": [ 114 | "ocaml@4.6.1000@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", 115 | "@opam/dune@opam:2.7.0@50e8f3e0", "@opam/biniou@opam:1.2.1@d7570399" 116 | ] 117 | }, 118 | "@opam/stdlib-shims@opam:0.1.0@8c116481": { 119 | "id": "@opam/stdlib-shims@opam:0.1.0@8c116481", 120 | "name": "@opam/stdlib-shims", 121 | "version": "opam:0.1.0", 122 | "source": { 123 | "type": "install", 124 | "source": [ 125 | "archive:https://opam.ocaml.org/cache/md5/12/12b5704eed70c6bff5ac39a16db1425d#md5:12b5704eed70c6bff5ac39a16db1425d", 126 | "archive:https://github.com/ocaml/stdlib-shims/releases/download/0.1.0/stdlib-shims-0.1.0.tbz#md5:12b5704eed70c6bff5ac39a16db1425d" 127 | ], 128 | "opam": { 129 | "name": "stdlib-shims", 130 | "version": "0.1.0", 131 | "path": "esy.lock/opam/stdlib-shims.0.1.0" 132 | } 133 | }, 134 | "overrides": [], 135 | "dependencies": [ 136 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 137 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 138 | ], 139 | "devDependencies": [ 140 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 141 | ] 142 | }, 143 | "@opam/sexplib0@opam:v0.13.0@3f54c2be": { 144 | "id": "@opam/sexplib0@opam:v0.13.0@3f54c2be", 145 | "name": "@opam/sexplib0", 146 | "version": "opam:v0.13.0", 147 | "source": { 148 | "type": "install", 149 | "source": [ 150 | "archive:https://opam.ocaml.org/cache/md5/f8/f8a715dffda5599cfae0cb4031d57abe#md5:f8a715dffda5599cfae0cb4031d57abe", 151 | "archive:https://ocaml.janestreet.com/ocaml-core/v0.13/files/sexplib0-v0.13.0.tar.gz#md5:f8a715dffda5599cfae0cb4031d57abe" 152 | ], 153 | "opam": { 154 | "name": "sexplib0", 155 | "version": "v0.13.0", 156 | "path": "esy.lock/opam/sexplib0.v0.13.0" 157 | } 158 | }, 159 | "overrides": [], 160 | "dependencies": [ 161 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 162 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 163 | ], 164 | "devDependencies": [ 165 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 166 | ] 167 | }, 168 | "@opam/seq@opam:0.2.2@e9144e45": { 169 | "id": "@opam/seq@opam:0.2.2@e9144e45", 170 | "name": "@opam/seq", 171 | "version": "opam:0.2.2", 172 | "source": { 173 | "type": "install", 174 | "source": [ 175 | "archive:https://opam.ocaml.org/cache/md5/90/9033e02283aa3bde9f97f24e632902e3#md5:9033e02283aa3bde9f97f24e632902e3", 176 | "archive:https://github.com/c-cube/seq/archive/0.2.2.tar.gz#md5:9033e02283aa3bde9f97f24e632902e3" 177 | ], 178 | "opam": { 179 | "name": "seq", 180 | "version": "0.2.2", 181 | "path": "esy.lock/opam/seq.0.2.2" 182 | } 183 | }, 184 | "overrides": [], 185 | "dependencies": [ 186 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 187 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 188 | ], 189 | "devDependencies": [ 190 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 191 | ] 192 | }, 193 | "@opam/result@opam:1.5@6b753c82": { 194 | "id": "@opam/result@opam:1.5@6b753c82", 195 | "name": "@opam/result", 196 | "version": "opam:1.5", 197 | "source": { 198 | "type": "install", 199 | "source": [ 200 | "archive:https://opam.ocaml.org/cache/md5/1b/1b82dec78849680b49ae9a8a365b831b#md5:1b82dec78849680b49ae9a8a365b831b", 201 | "archive:https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz#md5:1b82dec78849680b49ae9a8a365b831b" 202 | ], 203 | "opam": { 204 | "name": "result", 205 | "version": "1.5", 206 | "path": "esy.lock/opam/result.1.5" 207 | } 208 | }, 209 | "overrides": [], 210 | "dependencies": [ 211 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 212 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 213 | ], 214 | "devDependencies": [ 215 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 216 | ] 217 | }, 218 | "@opam/re@opam:1.9.0@d4d5e13d": { 219 | "id": "@opam/re@opam:1.9.0@d4d5e13d", 220 | "name": "@opam/re", 221 | "version": "opam:1.9.0", 222 | "source": { 223 | "type": "install", 224 | "source": [ 225 | "archive:https://opam.ocaml.org/cache/md5/bd/bddaed4f386a22cace7850c9c7dac296#md5:bddaed4f386a22cace7850c9c7dac296", 226 | "archive:https://github.com/ocaml/ocaml-re/releases/download/1.9.0/re-1.9.0.tbz#md5:bddaed4f386a22cace7850c9c7dac296" 227 | ], 228 | "opam": { 229 | "name": "re", 230 | "version": "1.9.0", 231 | "path": "esy.lock/opam/re.1.9.0" 232 | } 233 | }, 234 | "overrides": [], 235 | "dependencies": [ 236 | "ocaml@4.6.1000@d41d8cd9", "@opam/seq@opam:0.2.2@e9144e45", 237 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 238 | ], 239 | "devDependencies": [ 240 | "ocaml@4.6.1000@d41d8cd9", "@opam/seq@opam:0.2.2@e9144e45", 241 | "@opam/dune@opam:2.7.0@50e8f3e0" 242 | ] 243 | }, 244 | "@opam/ppxlib@opam:0.15.0@6a9d8126": { 245 | "id": "@opam/ppxlib@opam:0.15.0@6a9d8126", 246 | "name": "@opam/ppxlib", 247 | "version": "opam:0.15.0", 248 | "source": { 249 | "type": "install", 250 | "source": [ 251 | "archive:https://opam.ocaml.org/cache/sha256/0b/0b630d7f8d74a899a55cc27188b5ce03e735a93f07ea0c2de56532d8fd93b330#sha256:0b630d7f8d74a899a55cc27188b5ce03e735a93f07ea0c2de56532d8fd93b330", 252 | "archive:https://github.com/ocaml-ppx/ppxlib/releases/download/0.15.0/ppxlib-0.15.0.tbz#sha256:0b630d7f8d74a899a55cc27188b5ce03e735a93f07ea0c2de56532d8fd93b330" 253 | ], 254 | "opam": { 255 | "name": "ppxlib", 256 | "version": "0.15.0", 257 | "path": "esy.lock/opam/ppxlib.0.15.0" 258 | } 259 | }, 260 | "overrides": [], 261 | "dependencies": [ 262 | "ocaml@4.6.1000@d41d8cd9", "@opam/stdlib-shims@opam:0.1.0@8c116481", 263 | "@opam/sexplib0@opam:v0.13.0@3f54c2be", 264 | "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", 265 | "@opam/ocaml-migrate-parsetree@opam:1.5.0@a4818723", 266 | "@opam/ocaml-compiler-libs@opam:v0.12.1@5c34eb0d", 267 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 268 | ], 269 | "devDependencies": [ 270 | "ocaml@4.6.1000@d41d8cd9", "@opam/stdlib-shims@opam:0.1.0@8c116481", 271 | "@opam/sexplib0@opam:v0.13.0@3f54c2be", 272 | "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", 273 | "@opam/ocaml-migrate-parsetree@opam:1.5.0@a4818723", 274 | "@opam/ocaml-compiler-libs@opam:v0.12.1@5c34eb0d", 275 | "@opam/dune@opam:2.7.0@50e8f3e0" 276 | ] 277 | }, 278 | "@opam/ppx_derivers@opam:1.2.1@ecf0aa45": { 279 | "id": "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", 280 | "name": "@opam/ppx_derivers", 281 | "version": "opam:1.2.1", 282 | "source": { 283 | "type": "install", 284 | "source": [ 285 | "archive:https://opam.ocaml.org/cache/md5/5d/5dc2bf130c1db3c731fe0fffc5648b41#md5:5dc2bf130c1db3c731fe0fffc5648b41", 286 | "archive:https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz#md5:5dc2bf130c1db3c731fe0fffc5648b41" 287 | ], 288 | "opam": { 289 | "name": "ppx_derivers", 290 | "version": "1.2.1", 291 | "path": "esy.lock/opam/ppx_derivers.1.2.1" 292 | } 293 | }, 294 | "overrides": [], 295 | "dependencies": [ 296 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 297 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 298 | ], 299 | "devDependencies": [ 300 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 301 | ] 302 | }, 303 | "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2": { 304 | "id": "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", 305 | "name": "@opam/ocamlfind-secondary", 306 | "version": "opam:1.8.1", 307 | "source": { 308 | "type": "install", 309 | "source": [ 310 | "archive:https://opam.ocaml.org/cache/md5/18/18ca650982c15536616dea0e422cbd8c#md5:18ca650982c15536616dea0e422cbd8c", 311 | "archive:http://download2.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c", 312 | "archive:http://download.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c" 313 | ], 314 | "opam": { 315 | "name": "ocamlfind-secondary", 316 | "version": "1.8.1", 317 | "path": "esy.lock/opam/ocamlfind-secondary.1.8.1" 318 | } 319 | }, 320 | "overrides": [ 321 | { 322 | "opamoverride": 323 | "esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override" 324 | } 325 | ], 326 | "dependencies": [ 327 | "@opam/ocamlfind@opam:1.8.1@ff07b0f9", 328 | "@opam/ocaml-secondary-compiler@opam:4.08.1-1@85df5d8f", 329 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 330 | ], 331 | "devDependencies": [ 332 | "@opam/ocamlfind@opam:1.8.1@ff07b0f9", 333 | "@opam/ocaml-secondary-compiler@opam:4.08.1-1@85df5d8f" 334 | ] 335 | }, 336 | "@opam/ocamlfind@opam:1.8.1@ff07b0f9": { 337 | "id": "@opam/ocamlfind@opam:1.8.1@ff07b0f9", 338 | "name": "@opam/ocamlfind", 339 | "version": "opam:1.8.1", 340 | "source": { 341 | "type": "install", 342 | "source": [ 343 | "archive:https://opam.ocaml.org/cache/md5/18/18ca650982c15536616dea0e422cbd8c#md5:18ca650982c15536616dea0e422cbd8c", 344 | "archive:http://download2.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c", 345 | "archive:http://download.camlcity.org/download/findlib-1.8.1.tar.gz#md5:18ca650982c15536616dea0e422cbd8c" 346 | ], 347 | "opam": { 348 | "name": "ocamlfind", 349 | "version": "1.8.1", 350 | "path": "esy.lock/opam/ocamlfind.1.8.1" 351 | } 352 | }, 353 | "overrides": [ 354 | { 355 | "opamoverride": 356 | "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override" 357 | } 358 | ], 359 | "dependencies": [ 360 | "ocaml@4.6.1000@d41d8cd9", "@opam/conf-m4@opam:1@3b2b148a", 361 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 362 | ], 363 | "devDependencies": [ "ocaml@4.6.1000@d41d8cd9" ] 364 | }, 365 | "@opam/ocaml-secondary-compiler@opam:4.08.1-1@85df5d8f": { 366 | "id": "@opam/ocaml-secondary-compiler@opam:4.08.1-1@85df5d8f", 367 | "name": "@opam/ocaml-secondary-compiler", 368 | "version": "opam:4.08.1-1", 369 | "source": { 370 | "type": "install", 371 | "source": [ 372 | "archive:https://opam.ocaml.org/cache/md5/72/723b6bfe8cf5abcbccc6911143f71055#md5:723b6bfe8cf5abcbccc6911143f71055", 373 | "archive:https://github.com/ocaml/ocaml/archive/4.08.1.tar.gz#md5:723b6bfe8cf5abcbccc6911143f71055" 374 | ], 375 | "opam": { 376 | "name": "ocaml-secondary-compiler", 377 | "version": "4.08.1-1", 378 | "path": "esy.lock/opam/ocaml-secondary-compiler.4.08.1-1" 379 | } 380 | }, 381 | "overrides": [ 382 | { 383 | "opamoverride": 384 | "esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override" 385 | } 386 | ], 387 | "dependencies": [ 388 | "ocaml@4.6.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" 389 | ], 390 | "devDependencies": [ "ocaml@4.6.1000@d41d8cd9" ] 391 | }, 392 | "@opam/ocaml-migrate-parsetree@opam:1.5.0@a4818723": { 393 | "id": "@opam/ocaml-migrate-parsetree@opam:1.5.0@a4818723", 394 | "name": "@opam/ocaml-migrate-parsetree", 395 | "version": "opam:1.5.0", 396 | "source": { 397 | "type": "install", 398 | "source": [ 399 | "archive:https://opam.ocaml.org/cache/sha256/7f/7f56679c9561552762666de5b6b81c8e4cc2e9fd92272e2269878a2eb534e3c0#sha256:7f56679c9561552762666de5b6b81c8e4cc2e9fd92272e2269878a2eb534e3c0", 400 | "archive:https://github.com/ocaml-ppx/ocaml-migrate-parsetree/releases/download/v1.5.0/ocaml-migrate-parsetree-v1.5.0.tbz#sha256:7f56679c9561552762666de5b6b81c8e4cc2e9fd92272e2269878a2eb534e3c0" 401 | ], 402 | "opam": { 403 | "name": "ocaml-migrate-parsetree", 404 | "version": "1.5.0", 405 | "path": "esy.lock/opam/ocaml-migrate-parsetree.1.5.0" 406 | } 407 | }, 408 | "overrides": [], 409 | "dependencies": [ 410 | "ocaml@4.6.1000@d41d8cd9", "@opam/result@opam:1.5@6b753c82", 411 | "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", 412 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 413 | ], 414 | "devDependencies": [ 415 | "ocaml@4.6.1000@d41d8cd9", "@opam/result@opam:1.5@6b753c82", 416 | "@opam/ppx_derivers@opam:1.2.1@ecf0aa45", 417 | "@opam/dune@opam:2.7.0@50e8f3e0" 418 | ] 419 | }, 420 | "@opam/ocaml-compiler-libs@opam:v0.12.1@5c34eb0d": { 421 | "id": "@opam/ocaml-compiler-libs@opam:v0.12.1@5c34eb0d", 422 | "name": "@opam/ocaml-compiler-libs", 423 | "version": "opam:v0.12.1", 424 | "source": { 425 | "type": "install", 426 | "source": [ 427 | "archive:https://opam.ocaml.org/cache/md5/2f/2f929af7c764a3f681a5671f271210c4#md5:2f929af7c764a3f681a5671f271210c4", 428 | "archive:https://github.com/janestreet/ocaml-compiler-libs/archive/v0.12.1.tar.gz#md5:2f929af7c764a3f681a5671f271210c4" 429 | ], 430 | "opam": { 431 | "name": "ocaml-compiler-libs", 432 | "version": "v0.12.1", 433 | "path": "esy.lock/opam/ocaml-compiler-libs.v0.12.1" 434 | } 435 | }, 436 | "overrides": [], 437 | "dependencies": [ 438 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 439 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 440 | ], 441 | "devDependencies": [ 442 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 443 | ] 444 | }, 445 | "@opam/merlin-extend@opam:0.6@404f814c": { 446 | "id": "@opam/merlin-extend@opam:0.6@404f814c", 447 | "name": "@opam/merlin-extend", 448 | "version": "opam:0.6", 449 | "source": { 450 | "type": "install", 451 | "source": [ 452 | "archive:https://opam.ocaml.org/cache/sha256/c2/c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43#sha256:c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43", 453 | "archive:https://github.com/let-def/merlin-extend/releases/download/v0.6/merlin-extend-v0.6.tbz#sha256:c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43" 454 | ], 455 | "opam": { 456 | "name": "merlin-extend", 457 | "version": "0.6", 458 | "path": "esy.lock/opam/merlin-extend.0.6" 459 | } 460 | }, 461 | "overrides": [], 462 | "dependencies": [ 463 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 464 | "@opam/cppo@opam:1.6.6@f4f83858", "@esy-ocaml/substs@0.0.1@d41d8cd9" 465 | ], 466 | "devDependencies": [ 467 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 468 | ] 469 | }, 470 | "@opam/merlin@opam:3.3.3@d653b06a": { 471 | "id": "@opam/merlin@opam:3.3.3@d653b06a", 472 | "name": "@opam/merlin", 473 | "version": "opam:3.3.3", 474 | "source": { 475 | "type": "install", 476 | "source": [ 477 | "archive:https://opam.ocaml.org/cache/sha256/72/72909ef47eea1f6fca13b4109a34dccf8fe3923a3c026f1ed1db9eb5ee9aae15#sha256:72909ef47eea1f6fca13b4109a34dccf8fe3923a3c026f1ed1db9eb5ee9aae15", 478 | "archive:https://github.com/ocaml/merlin/releases/download/v3.3.3/merlin-v3.3.3.tbz#sha256:72909ef47eea1f6fca13b4109a34dccf8fe3923a3c026f1ed1db9eb5ee9aae15" 479 | ], 480 | "opam": { 481 | "name": "merlin", 482 | "version": "3.3.3", 483 | "path": "esy.lock/opam/merlin.3.3.3" 484 | } 485 | }, 486 | "overrides": [], 487 | "dependencies": [ 488 | "ocaml@4.6.1000@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", 489 | "@opam/ocamlfind@opam:1.8.1@ff07b0f9", 490 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 491 | ], 492 | "devDependencies": [ 493 | "ocaml@4.6.1000@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", 494 | "@opam/ocamlfind@opam:1.8.1@ff07b0f9", 495 | "@opam/dune@opam:2.7.0@50e8f3e0" 496 | ] 497 | }, 498 | "@opam/menhirSdk@opam:20200624@2a05b5a7": { 499 | "id": "@opam/menhirSdk@opam:20200624@2a05b5a7", 500 | "name": "@opam/menhirSdk", 501 | "version": "opam:20200624", 502 | "source": { 503 | "type": "install", 504 | "source": [ 505 | "archive:https://opam.ocaml.org/cache/md5/c3/c37ff53a4a69059e1f8223067b91bb8b#md5:c37ff53a4a69059e1f8223067b91bb8b", 506 | "archive:https://gitlab.inria.fr/fpottier/menhir/repository/20200624/archive.tar.gz#md5:c37ff53a4a69059e1f8223067b91bb8b" 507 | ], 508 | "opam": { 509 | "name": "menhirSdk", 510 | "version": "20200624", 511 | "path": "esy.lock/opam/menhirSdk.20200624" 512 | } 513 | }, 514 | "overrides": [], 515 | "dependencies": [ 516 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 517 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 518 | ], 519 | "devDependencies": [ 520 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 521 | ] 522 | }, 523 | "@opam/menhirLib@opam:20200624@8bdd2b0e": { 524 | "id": "@opam/menhirLib@opam:20200624@8bdd2b0e", 525 | "name": "@opam/menhirLib", 526 | "version": "opam:20200624", 527 | "source": { 528 | "type": "install", 529 | "source": [ 530 | "archive:https://opam.ocaml.org/cache/md5/c3/c37ff53a4a69059e1f8223067b91bb8b#md5:c37ff53a4a69059e1f8223067b91bb8b", 531 | "archive:https://gitlab.inria.fr/fpottier/menhir/repository/20200624/archive.tar.gz#md5:c37ff53a4a69059e1f8223067b91bb8b" 532 | ], 533 | "opam": { 534 | "name": "menhirLib", 535 | "version": "20200624", 536 | "path": "esy.lock/opam/menhirLib.20200624" 537 | } 538 | }, 539 | "overrides": [], 540 | "dependencies": [ 541 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 542 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 543 | ], 544 | "devDependencies": [ 545 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 546 | ] 547 | }, 548 | "@opam/menhir@opam:20200624@8629ff13": { 549 | "id": "@opam/menhir@opam:20200624@8629ff13", 550 | "name": "@opam/menhir", 551 | "version": "opam:20200624", 552 | "source": { 553 | "type": "install", 554 | "source": [ 555 | "archive:https://opam.ocaml.org/cache/md5/c3/c37ff53a4a69059e1f8223067b91bb8b#md5:c37ff53a4a69059e1f8223067b91bb8b", 556 | "archive:https://gitlab.inria.fr/fpottier/menhir/repository/20200624/archive.tar.gz#md5:c37ff53a4a69059e1f8223067b91bb8b" 557 | ], 558 | "opam": { 559 | "name": "menhir", 560 | "version": "20200624", 561 | "path": "esy.lock/opam/menhir.20200624" 562 | } 563 | }, 564 | "overrides": [], 565 | "dependencies": [ 566 | "ocaml@4.6.1000@d41d8cd9", "@opam/menhirSdk@opam:20200624@2a05b5a7", 567 | "@opam/menhirLib@opam:20200624@8bdd2b0e", 568 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 569 | ], 570 | "devDependencies": [ 571 | "ocaml@4.6.1000@d41d8cd9", "@opam/menhirSdk@opam:20200624@2a05b5a7", 572 | "@opam/menhirLib@opam:20200624@8bdd2b0e", 573 | "@opam/dune@opam:2.7.0@50e8f3e0" 574 | ] 575 | }, 576 | "@opam/easy-format@opam:1.3.2@0484b3c4": { 577 | "id": "@opam/easy-format@opam:1.3.2@0484b3c4", 578 | "name": "@opam/easy-format", 579 | "version": "opam:1.3.2", 580 | "source": { 581 | "type": "install", 582 | "source": [ 583 | "archive:https://opam.ocaml.org/cache/sha256/34/3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926#sha256:3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926", 584 | "archive:https://github.com/mjambon/easy-format/releases/download/1.3.2/easy-format-1.3.2.tbz#sha256:3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926" 585 | ], 586 | "opam": { 587 | "name": "easy-format", 588 | "version": "1.3.2", 589 | "path": "esy.lock/opam/easy-format.1.3.2" 590 | } 591 | }, 592 | "overrides": [], 593 | "dependencies": [ 594 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 595 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 596 | ], 597 | "devDependencies": [ 598 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 599 | ] 600 | }, 601 | "@opam/dune-configurator@opam:2.7.0@bd860a0f": { 602 | "id": "@opam/dune-configurator@opam:2.7.0@bd860a0f", 603 | "name": "@opam/dune-configurator", 604 | "version": "opam:2.7.0", 605 | "source": { 606 | "type": "install", 607 | "source": [ 608 | "archive:https://opam.ocaml.org/cache/sha256/b4/b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15#sha256:b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15", 609 | "archive:https://github.com/ocaml/dune/releases/download/2.7.0/dune-2.7.0.tbz#sha256:b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15" 610 | ], 611 | "opam": { 612 | "name": "dune-configurator", 613 | "version": "2.7.0", 614 | "path": "esy.lock/opam/dune-configurator.2.7.0" 615 | } 616 | }, 617 | "overrides": [], 618 | "dependencies": [ 619 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 620 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 621 | ], 622 | "devDependencies": [ 623 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0" 624 | ] 625 | }, 626 | "@opam/dune@opam:2.7.0@50e8f3e0": { 627 | "id": "@opam/dune@opam:2.7.0@50e8f3e0", 628 | "name": "@opam/dune", 629 | "version": "opam:2.7.0", 630 | "source": { 631 | "type": "install", 632 | "source": [ 633 | "archive:https://opam.ocaml.org/cache/sha256/b4/b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15#sha256:b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15", 634 | "archive:https://github.com/ocaml/dune/releases/download/2.7.0/dune-2.7.0.tbz#sha256:b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15" 635 | ], 636 | "opam": { 637 | "name": "dune", 638 | "version": "2.7.0", 639 | "path": "esy.lock/opam/dune.2.7.0" 640 | } 641 | }, 642 | "overrides": [ 643 | { 644 | "opamoverride": 645 | "esy.lock/overrides/opam__s__dune_opam__c__2.7.0_opam_override" 646 | } 647 | ], 648 | "dependencies": [ 649 | "ocaml@4.6.1000@d41d8cd9", 650 | "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", 651 | "@opam/base-unix@opam:base@87d0b2eb", 652 | "@opam/base-threads@opam:base@36803084", 653 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 654 | ], 655 | "devDependencies": [ 656 | "ocaml@4.6.1000@d41d8cd9", 657 | "@opam/ocamlfind-secondary@opam:1.8.1@1afa38b2", 658 | "@opam/base-unix@opam:base@87d0b2eb", 659 | "@opam/base-threads@opam:base@36803084" 660 | ] 661 | }, 662 | "@opam/cppo@opam:1.6.6@f4f83858": { 663 | "id": "@opam/cppo@opam:1.6.6@f4f83858", 664 | "name": "@opam/cppo", 665 | "version": "opam:1.6.6", 666 | "source": { 667 | "type": "install", 668 | "source": [ 669 | "archive:https://opam.ocaml.org/cache/sha256/e7/e7272996a7789175b87bb998efd079794a8db6625aae990d73f7b4484a07b8a0#sha256:e7272996a7789175b87bb998efd079794a8db6625aae990d73f7b4484a07b8a0", 670 | "archive:https://github.com/ocaml-community/cppo/releases/download/v1.6.6/cppo-v1.6.6.tbz#sha256:e7272996a7789175b87bb998efd079794a8db6625aae990d73f7b4484a07b8a0" 671 | ], 672 | "opam": { 673 | "name": "cppo", 674 | "version": "1.6.6", 675 | "path": "esy.lock/opam/cppo.1.6.6" 676 | } 677 | }, 678 | "overrides": [], 679 | "dependencies": [ 680 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 681 | "@opam/base-unix@opam:base@87d0b2eb", 682 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 683 | ], 684 | "devDependencies": [ 685 | "ocaml@4.6.1000@d41d8cd9", "@opam/dune@opam:2.7.0@50e8f3e0", 686 | "@opam/base-unix@opam:base@87d0b2eb" 687 | ] 688 | }, 689 | "@opam/conf-m4@opam:1@3b2b148a": { 690 | "id": "@opam/conf-m4@opam:1@3b2b148a", 691 | "name": "@opam/conf-m4", 692 | "version": "opam:1", 693 | "source": { 694 | "type": "install", 695 | "source": [ "no-source:" ], 696 | "opam": { 697 | "name": "conf-m4", 698 | "version": "1", 699 | "path": "esy.lock/opam/conf-m4.1" 700 | } 701 | }, 702 | "overrides": [], 703 | "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], 704 | "devDependencies": [] 705 | }, 706 | "@opam/biniou@opam:1.2.1@d7570399": { 707 | "id": "@opam/biniou@opam:1.2.1@d7570399", 708 | "name": "@opam/biniou", 709 | "version": "opam:1.2.1", 710 | "source": { 711 | "type": "install", 712 | "source": [ 713 | "archive:https://opam.ocaml.org/cache/sha256/35/35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335#sha256:35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335", 714 | "archive:https://github.com/mjambon/biniou/releases/download/1.2.1/biniou-1.2.1.tbz#sha256:35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335" 715 | ], 716 | "opam": { 717 | "name": "biniou", 718 | "version": "1.2.1", 719 | "path": "esy.lock/opam/biniou.1.2.1" 720 | } 721 | }, 722 | "overrides": [], 723 | "dependencies": [ 724 | "ocaml@4.6.1000@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", 725 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 726 | ], 727 | "devDependencies": [ 728 | "ocaml@4.6.1000@d41d8cd9", "@opam/easy-format@opam:1.3.2@0484b3c4", 729 | "@opam/dune@opam:2.7.0@50e8f3e0" 730 | ] 731 | }, 732 | "@opam/base-unix@opam:base@87d0b2eb": { 733 | "id": "@opam/base-unix@opam:base@87d0b2eb", 734 | "name": "@opam/base-unix", 735 | "version": "opam:base", 736 | "source": { 737 | "type": "install", 738 | "source": [ "no-source:" ], 739 | "opam": { 740 | "name": "base-unix", 741 | "version": "base", 742 | "path": "esy.lock/opam/base-unix.base" 743 | } 744 | }, 745 | "overrides": [], 746 | "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], 747 | "devDependencies": [] 748 | }, 749 | "@opam/base-threads@opam:base@36803084": { 750 | "id": "@opam/base-threads@opam:base@36803084", 751 | "name": "@opam/base-threads", 752 | "version": "opam:base", 753 | "source": { 754 | "type": "install", 755 | "source": [ "no-source:" ], 756 | "opam": { 757 | "name": "base-threads", 758 | "version": "base", 759 | "path": "esy.lock/opam/base-threads.base" 760 | } 761 | }, 762 | "overrides": [], 763 | "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], 764 | "devDependencies": [] 765 | }, 766 | "@opam/base@opam:v0.13.2@c3150775": { 767 | "id": "@opam/base@opam:v0.13.2@c3150775", 768 | "name": "@opam/base", 769 | "version": "opam:v0.13.2", 770 | "source": { 771 | "type": "install", 772 | "source": [ 773 | "archive:https://opam.ocaml.org/cache/md5/f4/f43ce18d98fd0879e77ff671e077e607#md5:f43ce18d98fd0879e77ff671e077e607", 774 | "archive:https://github.com/janestreet/base/archive/v0.13.2.tar.gz#md5:f43ce18d98fd0879e77ff671e077e607" 775 | ], 776 | "opam": { 777 | "name": "base", 778 | "version": "v0.13.2", 779 | "path": "esy.lock/opam/base.v0.13.2" 780 | } 781 | }, 782 | "overrides": [], 783 | "dependencies": [ 784 | "ocaml@4.6.1000@d41d8cd9", "@opam/sexplib0@opam:v0.13.0@3f54c2be", 785 | "@opam/dune-configurator@opam:2.7.0@bd860a0f", 786 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 787 | ], 788 | "devDependencies": [ 789 | "ocaml@4.6.1000@d41d8cd9", "@opam/sexplib0@opam:v0.13.0@3f54c2be", 790 | "@opam/dune-configurator@opam:2.7.0@bd860a0f", 791 | "@opam/dune@opam:2.7.0@50e8f3e0" 792 | ] 793 | }, 794 | "@opam/atdgen-runtime@opam:2.2.1@6a3a6395": { 795 | "id": "@opam/atdgen-runtime@opam:2.2.1@6a3a6395", 796 | "name": "@opam/atdgen-runtime", 797 | "version": "opam:2.2.1", 798 | "source": { 799 | "type": "install", 800 | "source": [ 801 | "archive:https://opam.ocaml.org/cache/sha256/db/db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e", 802 | "archive:https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" 803 | ], 804 | "opam": { 805 | "name": "atdgen-runtime", 806 | "version": "2.2.1", 807 | "path": "esy.lock/opam/atdgen-runtime.2.2.1" 808 | } 809 | }, 810 | "overrides": [], 811 | "dependencies": [ 812 | "ocaml@4.6.1000@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", 813 | "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.7.0@50e8f3e0", 814 | "@opam/biniou@opam:1.2.1@d7570399", 815 | "@esy-ocaml/substs@0.0.1@d41d8cd9" 816 | ], 817 | "devDependencies": [ 818 | "ocaml@4.6.1000@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", 819 | "@opam/re@opam:1.9.0@d4d5e13d", "@opam/dune@opam:2.7.0@50e8f3e0", 820 | "@opam/biniou@opam:1.2.1@d7570399" 821 | ] 822 | }, 823 | "@opam/atdgen@opam:2.2.1@d73fda11": { 824 | "id": "@opam/atdgen@opam:2.2.1@d73fda11", 825 | "name": "@opam/atdgen", 826 | "version": "opam:2.2.1", 827 | "source": { 828 | "type": "install", 829 | "source": [ 830 | "archive:https://opam.ocaml.org/cache/sha256/db/db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e", 831 | "archive:https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" 832 | ], 833 | "opam": { 834 | "name": "atdgen", 835 | "version": "2.2.1", 836 | "path": "esy.lock/opam/atdgen.2.2.1" 837 | } 838 | }, 839 | "overrides": [], 840 | "dependencies": [ 841 | "ocaml@4.6.1000@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", 842 | "@opam/dune@opam:2.7.0@50e8f3e0", "@opam/biniou@opam:1.2.1@d7570399", 843 | "@opam/atdgen-runtime@opam:2.2.1@6a3a6395", 844 | "@opam/atd@opam:2.2.1@071ab6bd", "@esy-ocaml/substs@0.0.1@d41d8cd9" 845 | ], 846 | "devDependencies": [ 847 | "ocaml@4.6.1000@d41d8cd9", "@opam/yojson@opam:1.7.0@7056d985", 848 | "@opam/dune@opam:2.7.0@50e8f3e0", "@opam/biniou@opam:1.2.1@d7570399", 849 | "@opam/atdgen-runtime@opam:2.2.1@6a3a6395", 850 | "@opam/atd@opam:2.2.1@071ab6bd" 851 | ] 852 | }, 853 | "@opam/atd@opam:2.2.1@071ab6bd": { 854 | "id": "@opam/atd@opam:2.2.1@071ab6bd", 855 | "name": "@opam/atd", 856 | "version": "opam:2.2.1", 857 | "source": { 858 | "type": "install", 859 | "source": [ 860 | "archive:https://opam.ocaml.org/cache/sha256/db/db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e", 861 | "archive:https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz#sha256:db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" 862 | ], 863 | "opam": { 864 | "name": "atd", 865 | "version": "2.2.1", 866 | "path": "esy.lock/opam/atd.2.2.1" 867 | } 868 | }, 869 | "overrides": [], 870 | "dependencies": [ 871 | "ocaml@4.6.1000@d41d8cd9", "@opam/re@opam:1.9.0@d4d5e13d", 872 | "@opam/menhir@opam:20200624@8629ff13", 873 | "@opam/easy-format@opam:1.3.2@0484b3c4", 874 | "@opam/dune@opam:2.7.0@50e8f3e0", "@esy-ocaml/substs@0.0.1@d41d8cd9" 875 | ], 876 | "devDependencies": [ 877 | "ocaml@4.6.1000@d41d8cd9", "@opam/re@opam:1.9.0@d4d5e13d", 878 | "@opam/menhir@opam:20200624@8629ff13", 879 | "@opam/easy-format@opam:1.3.2@0484b3c4", 880 | "@opam/dune@opam:2.7.0@50e8f3e0" 881 | ] 882 | }, 883 | "@esy-ocaml/substs@0.0.1@d41d8cd9": { 884 | "id": "@esy-ocaml/substs@0.0.1@d41d8cd9", 885 | "name": "@esy-ocaml/substs", 886 | "version": "0.0.1", 887 | "source": { 888 | "type": "install", 889 | "source": [ 890 | "archive:https://registry.npmjs.org/@esy-ocaml/substs/-/substs-0.0.1.tgz#sha1:59ebdbbaedcda123fc7ed8fb2b302b7d819e9a46" 891 | ] 892 | }, 893 | "overrides": [], 894 | "dependencies": [], 895 | "devDependencies": [] 896 | }, 897 | "@esy-ocaml/reason@3.5.2@d41d8cd9": { 898 | "id": "@esy-ocaml/reason@3.5.2@d41d8cd9", 899 | "name": "@esy-ocaml/reason", 900 | "version": "3.5.2", 901 | "source": { 902 | "type": "install", 903 | "source": [ 904 | "archive:https://registry.npmjs.org/@esy-ocaml/reason/-/reason-3.5.2.tgz#sha1:ac48b63fd66fbbc1d77ab6a2b7e3a1ba21a8f40b" 905 | ] 906 | }, 907 | "overrides": [], 908 | "dependencies": [ 909 | "ocaml@4.6.1000@d41d8cd9", "@opam/result@opam:1.5@6b753c82", 910 | "@opam/ocamlfind@opam:1.8.1@ff07b0f9", 911 | "@opam/ocaml-migrate-parsetree@opam:1.5.0@a4818723", 912 | "@opam/merlin-extend@opam:0.6@404f814c", 913 | "@opam/menhir@opam:20200624@8629ff13", 914 | "@opam/dune@opam:2.7.0@50e8f3e0" 915 | ], 916 | "devDependencies": [] 917 | } 918 | } 919 | } -------------------------------------------------------------------------------- /esy.lock/opam/atd.2.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: "Parser for the ATD data format description language" 3 | description: """ 4 | ATD is the OCaml library providing a parser for the ATD language and various 5 | utilities. ATD stands for Adjustable Type Definitions in reference to its main 6 | property of supporting annotations that allow a good fit with a variety of data 7 | formats. """ 8 | maintainer: ["Rudi Grinberg "] 9 | authors: [ 10 | "Martin Jambon " 11 | "David Sheets " 12 | "Rudi Grinberg " 13 | "Ivan Jager " 14 | "Jeff Meister " 15 | "Carmelo Piccione " 16 | "Raman Varabets " 17 | "Mathieu Baudet " 18 | "Rauan Mayemir " 19 | "Louis Roché " 20 | "Brendan Long " 21 | "Christophe Troestler " 22 | "Vincent Bernardoff " 23 | "haoyang " 24 | ] 25 | license: "MIT" 26 | homepage: "https://github.com/ahrefs/atd" 27 | bug-reports: "https://github.com/ahrefs/atd/issues" 28 | depends: [ 29 | "ocaml" {>= "4.02"} 30 | "dune" {>= "2.0"} 31 | "menhir" 32 | "easy-format" 33 | "re" 34 | ] 35 | dev-repo: "git+https://github.com/ahrefs/atd.git" 36 | build: [ 37 | ["dune" "subst"] {pinned} 38 | [ 39 | "dune" 40 | "build" 41 | "-p" 42 | name 43 | "-j" 44 | jobs 45 | "@install" 46 | "@doc" {with-doc} 47 | ] 48 | ] 49 | url { 50 | src: "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz" 51 | checksum: [ 52 | "sha256=db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" 53 | "sha512=0c7f1985cc4d87ddd541bb2f7085b72f81aaef69468653319a4a52e6cd6c9318511229784a12cdb413ae500e7a5b8195759e0d8d49946a9b00f62e8dda07e8a2" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /esy.lock/opam/atdgen-runtime.2.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: "Runtime library for code generated by atdgen" 3 | description: """ 4 | This package should be used only in conjunction with the stdgen code 5 | generator""" 6 | maintainer: ["Rudi Grinberg "] 7 | authors: [ 8 | "Martin Jambon " 9 | "David Sheets " 10 | "Rudi Grinberg " 11 | "Ivan Jager " 12 | "Jeff Meister " 13 | "Carmelo Piccione " 14 | "Raman Varabets " 15 | "Mathieu Baudet " 16 | "Rauan Mayemir " 17 | "Louis Roché " 18 | "Brendan Long " 19 | "Christophe Troestler " 20 | "Vincent Bernardoff " 21 | "haoyang " 22 | ] 23 | license: "MIT" 24 | homepage: "https://github.com/ahrefs/atd" 25 | bug-reports: "https://github.com/ahrefs/atd/issues" 26 | depends: [ 27 | "ocaml" {>= "4.02"} 28 | "dune" {>= "2.0"} 29 | "yojson" {>= "1.7.0"} 30 | "biniou" {>= "1.0.6"} 31 | "re" 32 | ] 33 | dev-repo: "git+https://github.com/ahrefs/atd.git" 34 | build: [ 35 | ["dune" "subst"] {pinned} 36 | [ 37 | "dune" 38 | "build" 39 | "-p" 40 | name 41 | "-j" 42 | jobs 43 | "@install" 44 | "@doc" {with-doc} 45 | ] 46 | ] 47 | url { 48 | src: "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz" 49 | checksum: [ 50 | "sha256=db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" 51 | "sha512=0c7f1985cc4d87ddd541bb2f7085b72f81aaef69468653319a4a52e6cd6c9318511229784a12cdb413ae500e7a5b8195759e0d8d49946a9b00f62e8dda07e8a2" 52 | ] 53 | } 54 | -------------------------------------------------------------------------------- /esy.lock/opam/atdgen.2.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: 3 | "Generates efficient JSON serializers, deserializers and validators" 4 | description: """ 5 | Atdgen is a command-line program that takes as input type definitions in the ATD 6 | syntax and produces OCaml code suitable for data serialization and 7 | deserialization. 8 | Two data formats are currently supported, these are biniou and JSON. 9 | Atdgen-biniou and Atdgen-json will refer to Atdgen used in one context or the 10 | other. 11 | Atdgen was designed with efficiency and durability in mind. Software authors are 12 | encouraged to use Atdgen directly and to write tools that may reuse part of 13 | Atdgen’s source code.""" 14 | maintainer: ["Rudi Grinberg "] 15 | authors: [ 16 | "Martin Jambon " 17 | "David Sheets " 18 | "Rudi Grinberg " 19 | "Ivan Jager " 20 | "Jeff Meister " 21 | "Carmelo Piccione " 22 | "Raman Varabets " 23 | "Mathieu Baudet " 24 | "Rauan Mayemir " 25 | "Louis Roché " 26 | "Brendan Long " 27 | "Christophe Troestler " 28 | "Vincent Bernardoff " 29 | "haoyang " 30 | ] 31 | license: "MIT" 32 | homepage: "https://github.com/ahrefs/atd" 33 | bug-reports: "https://github.com/ahrefs/atd/issues" 34 | depends: [ 35 | "ocaml" {>= "4.02"} 36 | "dune" {>= "2.0"} 37 | "atd" {>= "2.0.0"} 38 | "atdgen-runtime" {>= "2.0.0"} 39 | "atdgen-codec-runtime" {with-test} 40 | "biniou" {>= "1.0.6"} 41 | "yojson" {>= "1.7.0"} 42 | ] 43 | dev-repo: "git+https://github.com/ahrefs/atd.git" 44 | build: [ 45 | ["dune" "subst"] {pinned} 46 | [ 47 | "dune" 48 | "build" 49 | "-p" 50 | name 51 | "-j" 52 | jobs 53 | "@install" 54 | "@doc" {with-doc} 55 | ] 56 | ] 57 | url { 58 | src: "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz" 59 | checksum: [ 60 | "sha256=db6b4c1a6293b214a7b7a3da435e681abd1b16b55d5aa246b93d26736d3a559e" 61 | "sha512=0c7f1985cc4d87ddd541bb2f7085b72f81aaef69468653319a4a52e6cd6c9318511229784a12cdb413ae500e7a5b8195759e0d8d49946a9b00f62e8dda07e8a2" 62 | ] 63 | } 64 | -------------------------------------------------------------------------------- /esy.lock/opam/base-threads.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Threads library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /esy.lock/opam/base-unix.base/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "https://github.com/ocaml/opam-repository/issues" 3 | description: """ 4 | Unix library distributed with the OCaml compiler 5 | """ 6 | 7 | -------------------------------------------------------------------------------- /esy.lock/opam/base.v0.13.2/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "opensource@janestreet.com" 3 | authors: ["Jane Street Group, LLC "] 4 | homepage: "https://github.com/janestreet/base" 5 | bug-reports: "https://github.com/janestreet/base/issues" 6 | dev-repo: "git+https://github.com/janestreet/base.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/base/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.04.2"} 14 | "sexplib0" {>= "v0.13" & < "v0.14"} 15 | "dune" {>= "1.5.1"} 16 | "dune-configurator" 17 | ] 18 | synopsis: "Full standard library replacement for OCaml" 19 | description: " 20 | Full standard library replacement for OCaml 21 | 22 | Base is a complete and portable alternative to the OCaml standard 23 | library. It provides all standard functionalities one would expect 24 | from a language standard library. It uses consistent conventions 25 | across all of its module. 26 | 27 | Base aims to be usable in any context. As a result system dependent 28 | features such as I/O are not offered by Base. They are instead 29 | provided by companion libraries such as stdio: 30 | 31 | https://github.com/janestreet/stdio 32 | " 33 | url { 34 | src: "https://github.com/janestreet/base/archive/v0.13.2.tar.gz" 35 | checksum: "md5=f43ce18d98fd0879e77ff671e077e607" 36 | } 37 | -------------------------------------------------------------------------------- /esy.lock/opam/biniou.1.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | build: [ 3 | ["dune" "subst"] {pinned} 4 | ["dune" "build" "-p" name "-j" jobs] 5 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 6 | ["dune" "build" "-p" name "@doc"] {with-doc} 7 | ] 8 | maintainer: ["martin@mjambon.com"] 9 | authors: ["Martin Jambon"] 10 | bug-reports: "https://github.com/mjambon/biniou/issues" 11 | homepage: "https://github.com/mjambon/biniou" 12 | doc: "https://mjambon.github.io/biniou/" 13 | license: "BSD-3-Clause" 14 | dev-repo: "git+https://github.com/mjambon/biniou.git" 15 | synopsis: 16 | "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve" 17 | description: """ 18 | 19 | Biniou (pronounced "be new") is a binary data format designed for speed, safety, 20 | ease of use and backward compatibility as protocols evolve. Biniou is vastly 21 | equivalent to JSON in terms of functionality but allows implementations several 22 | times faster (4 times faster than yojson), with 25-35% space savings. 23 | 24 | Biniou data can be decoded into human-readable form without knowledge of type 25 | definitions except for field and variant names which are represented by 31-bit 26 | hashes. A program named bdump is provided for routine visualization of biniou 27 | data files. 28 | 29 | The program atdgen is used to derive OCaml-Biniou serializers and deserializers 30 | from type definitions. 31 | 32 | Biniou format specification: mjambon.github.io/atdgen-doc/biniou-format.txt""" 33 | depends: [ 34 | "easy-format" 35 | "dune" {>= "1.10"} 36 | "ocaml" {>= "4.02.3"} 37 | ] 38 | url { 39 | src: 40 | "https://github.com/mjambon/biniou/releases/download/1.2.1/biniou-1.2.1.tbz" 41 | checksum: [ 42 | "sha256=35546c68b1929a8e6d27a3b39ecd17b38303a0d47e65eb9d1480c2061ea84335" 43 | "sha512=82670cc77bf3e869ee26e5fbe5a5affa45a22bc8b6c4bd7e85473912780e0111baca59b34a2c14feae3543ce6e239d7fddaeab24b686a65bfe642cdb91d27ebf" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /esy.lock/opam/conf-m4.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "tim@gfxmonk.net" 3 | homepage: "http://www.gnu.org/software/m4/m4.html" 4 | bug-reports: "https://github.com/ocaml/opam-repository/issues" 5 | authors: "GNU Project" 6 | license: "GPL-3.0-only" 7 | build: [["sh" "-exc" "echo | m4"]] 8 | depexts: [ 9 | ["m4"] {os-family = "debian"} 10 | ["m4"] {os-distribution = "fedora"} 11 | ["m4"] {os-distribution = "rhel"} 12 | ["m4"] {os-distribution = "centos"} 13 | ["m4"] {os-distribution = "alpine"} 14 | ["m4"] {os-distribution = "nixos"} 15 | ["m4"] {os-family = "suse"} 16 | ["m4"] {os-distribution = "ol"} 17 | ["m4"] {os-distribution = "arch"} 18 | ] 19 | synopsis: "Virtual package relying on m4" 20 | description: 21 | "This package can only install if the m4 binary is installed on the system." 22 | flags: conf 23 | -------------------------------------------------------------------------------- /esy.lock/opam/cppo.1.6.6/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "martin@mjambon.com" 3 | authors: "Martin Jambon" 4 | license: "BSD-3-Clause" 5 | homepage: "http://mjambon.com/cppo.html" 6 | doc: "https://ocaml-community.github.io/cppo/" 7 | bug-reports: "https://github.com/ocaml-community/cppo/issues" 8 | depends: [ 9 | "ocaml" {>= "4.03"} 10 | "dune" {>= "1.0"} 11 | "base-unix" 12 | ] 13 | build: [ 14 | ["dune" "subst"] {pinned} 15 | ["dune" "build" "-p" name "-j" jobs] 16 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 17 | ] 18 | dev-repo: "git+https://github.com/ocaml-community/cppo.git" 19 | synopsis: "Code preprocessor like cpp for OCaml" 20 | description: """ 21 | Cppo is an equivalent of the C preprocessor for OCaml programs. 22 | It allows the definition of simple macros and file inclusion. 23 | 24 | Cppo is: 25 | 26 | * more OCaml-friendly than cpp 27 | * easy to learn without consulting a manual 28 | * reasonably fast 29 | * simple to install and to maintain 30 | """ 31 | url { 32 | src: "https://github.com/ocaml-community/cppo/releases/download/v1.6.6/cppo-v1.6.6.tbz" 33 | checksum: [ 34 | "sha256=e7272996a7789175b87bb998efd079794a8db6625aae990d73f7b4484a07b8a0" 35 | "sha512=44ecf9d225d9e45490a2feac0bde04865ca398dba6c3579e3370fcd1ea255707b8883590852af8b2df87123801062b9f3acce2455c092deabf431f9c4fb8d8eb" 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /esy.lock/opam/dune-configurator.2.7.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: "Helper library for gathering system configuration" 3 | description: """ 4 | dune-configurator is a small library that helps writing OCaml scripts that 5 | test features available on the system, in order to generate config.h 6 | files for instance. 7 | Among other things, dune-configurator allows one to: 8 | - test if a C program compiles 9 | - query pkg-config 10 | - import #define from OCaml header files 11 | - generate config.h file 12 | """ 13 | maintainer: ["Jane Street Group, LLC "] 14 | authors: ["Jane Street Group, LLC "] 15 | license: "MIT" 16 | homepage: "https://github.com/ocaml/dune" 17 | doc: "https://dune.readthedocs.io/" 18 | bug-reports: "https://github.com/ocaml/dune/issues" 19 | depends: [ 20 | "ocaml" {>= "4.03.0"} 21 | "dune" {>= "2.7" & >= "2.6.0"} 22 | "odoc" {with-doc} 23 | ] 24 | dev-repo: "git+https://github.com/ocaml/dune.git" 25 | build: [ 26 | ["dune" "subst"] {dev} 27 | [ 28 | "dune" 29 | "build" 30 | "-p" 31 | name 32 | "-j" 33 | jobs 34 | "@install" 35 | "@doc" {with-doc} 36 | ] 37 | ] 38 | url { 39 | src: "https://github.com/ocaml/dune/releases/download/2.7.0/dune-2.7.0.tbz" 40 | checksum: [ 41 | "sha256=b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15" 42 | "sha512=5e5b649b1a16747bf2a0bf093ecf2dc701b2713c166e3d25731422bba2b94e807ded2242ee0e750e2264d21a03c966c24f4812c6d5ed690bba60543db7303f89" 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /esy.lock/opam/dune.2.7.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: "Fast, portable, and opinionated build system" 3 | description: """ 4 | 5 | dune is a build system that was designed to simplify the release of 6 | Jane Street packages. It reads metadata from "dune" files following a 7 | very simple s-expression syntax. 8 | 9 | dune is fast, has very low-overhead, and supports parallel builds on 10 | all platforms. It has no system dependencies; all you need to build 11 | dune or packages using dune is OCaml. You don't need make or bash 12 | as long as the packages themselves don't use bash explicitly. 13 | 14 | dune supports multi-package development by simply dropping multiple 15 | repositories into the same directory. 16 | 17 | It also supports multi-context builds, such as building against 18 | several opam roots/switches simultaneously. This helps maintaining 19 | packages across several versions of OCaml and gives cross-compilation 20 | for free. 21 | """ 22 | maintainer: ["Jane Street Group, LLC "] 23 | authors: ["Jane Street Group, LLC "] 24 | license: "MIT" 25 | homepage: "https://github.com/ocaml/dune" 26 | doc: "https://dune.readthedocs.io/" 27 | bug-reports: "https://github.com/ocaml/dune/issues" 28 | conflicts: [ 29 | "dune-configurator" {< "2.3.0"} 30 | "odoc" {< "1.3.0"} 31 | "dune-release" {< "1.3.0"} 32 | "js_of_ocaml-compiler" {< "3.6.0"} 33 | "jbuilder" {= "transition"} 34 | ] 35 | dev-repo: "git+https://github.com/ocaml/dune.git" 36 | build: [ 37 | # opam 2 sets OPAM_SWITCH_PREFIX, so we don't need a hardcoded path 38 | ["ocaml" "configure.ml" "--libdir" lib] {opam-version < "2"} 39 | ["ocaml" "bootstrap.ml" "-j" jobs] 40 | ["./dune.exe" "build" "-p" name "--profile" "dune-bootstrap" "-j" jobs] 41 | ] 42 | depends: [ 43 | # Please keep the lower bound in sync with .travis.yml, dune-project 44 | # and min_ocaml_version in bootstrap.ml 45 | ("ocaml" {>= "4.08"} | ("ocaml" {< "4.08~~"} & "ocamlfind-secondary")) 46 | "base-unix" 47 | "base-threads" 48 | ] 49 | url { 50 | src: "https://github.com/ocaml/dune/releases/download/2.7.0/dune-2.7.0.tbz" 51 | checksum: [ 52 | "sha256=b417ca85bdce4171e71255be4a9c5a7572646cb1dcb221bba3757dc6ac8f1c15" 53 | "sha512=5e5b649b1a16747bf2a0bf093ecf2dc701b2713c166e3d25731422bba2b94e807ded2242ee0e750e2264d21a03c966c24f4812c6d5ed690bba60543db7303f89" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /esy.lock/opam/easy-format.1.3.2/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | build: [ 3 | ["dune" "subst"] {pinned} 4 | ["dune" "build" "-p" name "-j" jobs] 5 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 6 | ["dune" "build" "-p" name "@doc"] {with-doc} 7 | ] 8 | maintainer: ["martin@mjambon.com" "rudi.grinberg@gmail.com"] 9 | authors: ["Martin Jambon"] 10 | bug-reports: "https://github.com/mjambon/easy-format/issues" 11 | homepage: "https://github.com/mjambon/easy-format" 12 | doc: "https://mjambon.github.io/easy-format/" 13 | license: "BSD-3-Clause" 14 | dev-repo: "git+https://github.com/mjambon/easy-format.git" 15 | synopsis: 16 | "High-level and functional interface to the Format module of the OCaml standard library" 17 | description: """ 18 | 19 | This module offers a high-level and functional interface to the Format module of 20 | the OCaml standard library. It is a pretty-printing facility, i.e. it takes as 21 | input some code represented as a tree and formats this code into the most 22 | visually satisfying result, breaking and indenting lines of code where 23 | appropriate. 24 | 25 | Input data must be first modelled and converted into a tree using 3 kinds of 26 | nodes: 27 | 28 | * atoms 29 | * lists 30 | * labelled nodes 31 | 32 | Atoms represent any text that is guaranteed to be printed as-is. Lists can model 33 | any sequence of items such as arrays of data or lists of definitions that are 34 | labelled with something like "int main", "let x =" or "x:".""" 35 | depends: [ 36 | "dune" {>= "1.10"} 37 | "ocaml" {>= "4.02.3"} 38 | ] 39 | url { 40 | src: 41 | "https://github.com/mjambon/easy-format/releases/download/1.3.2/easy-format-1.3.2.tbz" 42 | checksum: [ 43 | "sha256=3440c2b882d537ae5e9011eb06abb53f5667e651ea4bb3b460ea8230fa8c1926" 44 | "sha512=e39377a2ff020ceb9ac29e8515a89d9bdbc91dfcfa871c4e3baafa56753fac2896768e5d9822a050dc1e2ade43c8967afb69391a386c0a8ecd4e1f774e236135" 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /esy.lock/opam/menhir.20200624/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "francois.pottier@inria.fr" 3 | authors: [ 4 | "François Pottier " 5 | "Yann Régis-Gianas " 6 | ] 7 | homepage: "http://gitlab.inria.fr/fpottier/menhir" 8 | dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" 9 | bug-reports: "menhir@inria.fr" 10 | build: [ 11 | ["dune" "build" "-p" name "-j" jobs] 12 | ] 13 | depends: [ 14 | "ocaml" {>= "4.02.3"} 15 | "dune" { >= "2.2.0"} 16 | "menhirLib" {= version} 17 | "menhirSdk" {= version} 18 | ] 19 | synopsis: "An LR(1) parser generator" 20 | url { 21 | src: 22 | "https://gitlab.inria.fr/fpottier/menhir/repository/20200624/archive.tar.gz" 23 | checksum: [ 24 | "md5=c37ff53a4a69059e1f8223067b91bb8b" 25 | "sha512=68cd165bd65c93fc9b14820a032b6d760674b3e811d8536c2e26e10f9fc5892720564f109484f12f8d08d849c2983c2eaf350d76ab1122a5b8a3c7674ab2bd39" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /esy.lock/opam/menhirLib.20200624/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "francois.pottier@inria.fr" 3 | authors: [ 4 | "François Pottier " 5 | "Yann Régis-Gianas " 6 | ] 7 | homepage: "http://gitlab.inria.fr/fpottier/menhir" 8 | dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" 9 | bug-reports: "menhir@inria.fr" 10 | build: [ 11 | ["dune" "build" "-p" name "-j" jobs] 12 | ] 13 | depends: [ 14 | "ocaml" { >= "4.02.3" } 15 | "dune" { >= "2.0.0" } 16 | ] 17 | conflicts: [ 18 | "menhir" { != version } 19 | ] 20 | synopsis: "Runtime support library for parsers generated by Menhir" 21 | url { 22 | src: 23 | "https://gitlab.inria.fr/fpottier/menhir/repository/20200624/archive.tar.gz" 24 | checksum: [ 25 | "md5=c37ff53a4a69059e1f8223067b91bb8b" 26 | "sha512=68cd165bd65c93fc9b14820a032b6d760674b3e811d8536c2e26e10f9fc5892720564f109484f12f8d08d849c2983c2eaf350d76ab1122a5b8a3c7674ab2bd39" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /esy.lock/opam/menhirSdk.20200624/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "francois.pottier@inria.fr" 3 | authors: [ 4 | "François Pottier " 5 | "Yann Régis-Gianas " 6 | ] 7 | homepage: "http://gitlab.inria.fr/fpottier/menhir" 8 | dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" 9 | bug-reports: "menhir@inria.fr" 10 | build: [ 11 | ["dune" "build" "-p" name "-j" jobs] 12 | ] 13 | depends: [ 14 | "ocaml" { >= "4.02.3" } 15 | "dune" { >= "2.0.0" } 16 | ] 17 | conflicts: [ 18 | "menhir" { != version } 19 | ] 20 | synopsis: "Compile-time library for auxiliary tools related to Menhir" 21 | url { 22 | src: 23 | "https://gitlab.inria.fr/fpottier/menhir/repository/20200624/archive.tar.gz" 24 | checksum: [ 25 | "md5=c37ff53a4a69059e1f8223067b91bb8b" 26 | "sha512=68cd165bd65c93fc9b14820a032b6d760674b3e811d8536c2e26e10f9fc5892720564f109484f12f8d08d849c2983c2eaf350d76ab1122a5b8a3c7674ab2bd39" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /esy.lock/opam/merlin-extend.0.6/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "Frederic Bour " 3 | authors: "Frederic Bour " 4 | homepage: "https://github.com/let-def/merlin-extend" 5 | bug-reports: "https://github.com/let-def/merlin-extend" 6 | license: "MIT" 7 | dev-repo: "git+https://github.com/let-def/merlin-extend.git" 8 | build: [ 9 | ["dune" "subst"] {pinned} 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "dune" {>= "1.0"} 14 | "cppo" {build} 15 | "ocaml" {>= "4.02.3"} 16 | ] 17 | synopsis: "A protocol to provide custom frontend to Merlin" 18 | description: """ 19 | This protocol allows to replace the OCaml frontend of Merlin. 20 | It extends what used to be done with the `-pp' flag to handle a few more cases.""" 21 | doc: "https://let-def.github.io/merlin-extend" 22 | x-commit-hash: "640620568a5f5c7798239ecf7c707c813e3df3cf" 23 | url { 24 | src: 25 | "https://github.com/let-def/merlin-extend/releases/download/v0.6/merlin-extend-v0.6.tbz" 26 | checksum: [ 27 | "sha256=c2f236ae97feb6ba0bc90f33beb7b7343e42f9871b66de9ba07974917e256c43" 28 | "sha512=4c64a490e2ece04fc89aef679c1d9202175df4fe045b5fdc7a37cd7cebe861226fddd9648c1bf4f06175ecfcd2ed7686c96bd6a8cae003a5096f6134c240f857" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /esy.lock/opam/merlin.3.3.3/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "defree@gmail.com" 3 | authors: "The Merlin team" 4 | homepage: "https://github.com/ocaml/merlin" 5 | bug-reports: "https://github.com/ocaml/merlin/issues" 6 | dev-repo: "git+https://github.com/ocaml/merlin.git" 7 | build: [ 8 | ["dune" "subst"] {pinned} 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.02.1" & < "4.10"} 14 | "dune" {>= "1.8.0"} 15 | "ocamlfind" {>= "1.5.2"} 16 | "yojson" {>= "1.6.0"} 17 | "mdx" {with-test & >= "1.3.0"} 18 | "conf-jq" {with-test} 19 | ] 20 | synopsis: 21 | "Editor helper, provides completion, typing and source browsing in Vim and Emacs" 22 | description: 23 | "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." 24 | post-messages: [ 25 | "merlin installed. 26 | 27 | Quick setup for VIM 28 | ------------------- 29 | Append this to your .vimrc to add merlin to vim's runtime-path: 30 | let g:opamshare = substitute(system('opam config var share'),'\\n$','','''') 31 | execute \"set rtp+=\" . g:opamshare . \"/merlin/vim\" 32 | 33 | Also run the following line in vim to index the documentation: 34 | :execute \"helptags \" . g:opamshare . \"/merlin/vim/doc\" 35 | 36 | Quick setup for EMACS 37 | ------------------- 38 | Add opam emacs directory to your load-path by appending this to your .emacs: 39 | (let ((opam-share (ignore-errors (car (process-lines \"opam\" \"config\" \"var\" \"share\"))))) 40 | (when (and opam-share (file-directory-p opam-share)) 41 | ;; Register Merlin 42 | (add-to-list 'load-path (expand-file-name \"emacs/site-lisp\" opam-share)) 43 | (autoload 'merlin-mode \"merlin\" nil t nil) 44 | ;; Automatically start it in OCaml buffers 45 | (add-hook 'tuareg-mode-hook 'merlin-mode t) 46 | (add-hook 'caml-mode-hook 'merlin-mode t) 47 | ;; Use opam switch to lookup ocamlmerlin binary 48 | (setq merlin-command 'opam))) 49 | 50 | Take a look at https://github.com/ocaml/merlin for more information 51 | 52 | Quick setup with opam-user-setup 53 | -------------------------------- 54 | 55 | Opam-user-setup support Merlin. 56 | 57 | $ opam user-setup install 58 | 59 | should take care of basic setup. 60 | See https://github.com/OCamlPro/opam-user-setup 61 | " 62 | {success & !user-setup:installed} 63 | ] 64 | url { 65 | src: 66 | "https://github.com/ocaml/merlin/releases/download/v3.3.3/merlin-v3.3.3.tbz" 67 | checksum: [ 68 | "sha256=72909ef47eea1f6fca13b4109a34dccf8fe3923a3c026f1ed1db9eb5ee9aae15" 69 | "sha512=2a5f39d966be56c1322982effc05bc98fd5f66cd12f1f76953f8daa9eca74a58c92a186854f4e601e2f0bb038720691446e7591b4613982accded3e579fedb23" 70 | ] 71 | } 72 | -------------------------------------------------------------------------------- /esy.lock/opam/ocaml-compiler-libs.v0.12.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "opensource@janestreet.com" 3 | authors: ["Jane Street Group, LLC "] 4 | homepage: "https://github.com/janestreet/ocaml-compiler-libs" 5 | bug-reports: "https://github.com/janestreet/ocaml-compiler-libs/issues" 6 | dev-repo: "git+https://github.com/janestreet/ocaml-compiler-libs.git" 7 | license: "Apache-2.0" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ] 11 | depends: [ 12 | "ocaml" {>= "4.04.1"} 13 | "dune" {>= "1.5.1"} 14 | ] 15 | synopsis: "OCaml compiler libraries repackaged" 16 | description: """ 17 | This packages exposes the OCaml compiler libraries repackages under 18 | the toplevel names Ocaml_common, Ocaml_bytecomp, Ocaml_optcomp, ...""" 19 | url { 20 | src: 21 | "https://github.com/janestreet/ocaml-compiler-libs/archive/v0.12.1.tar.gz" 22 | checksum: "md5=2f929af7c764a3f681a5671f271210c4" 23 | } 24 | -------------------------------------------------------------------------------- /esy.lock/opam/ocaml-migrate-parsetree.1.5.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "frederic.bour@lakaban.net" 3 | authors: [ 4 | "Frédéric Bour " 5 | "Jérémie Dimino " 6 | ] 7 | license: "LGPL-2.1 with OCaml linking exception" 8 | homepage: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree" 9 | bug-reports: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree/issues" 10 | dev-repo: "git+https://github.com/ocaml-ppx/ocaml-migrate-parsetree.git" 11 | doc: "https://ocaml-ppx.github.io/ocaml-migrate-parsetree/" 12 | tags: [ "syntax" "org:ocamllabs" ] 13 | build: [ 14 | ["dune" "build" "-p" name "-j" jobs] 15 | ] 16 | depends: [ 17 | "result" 18 | "ppx_derivers" 19 | "dune" {>= "1.9.0"} 20 | "ocaml" {>= "4.02.3" & < "4.11"} 21 | ] 22 | synopsis: "Convert OCaml parsetrees between different versions" 23 | description: """ 24 | Convert OCaml parsetrees between different versions 25 | 26 | This library converts parsetrees, outcometree and ast mappers between 27 | different OCaml versions. High-level functions help making PPX 28 | rewriters independent of a compiler version. 29 | """ 30 | url { 31 | src: 32 | "https://github.com/ocaml-ppx/ocaml-migrate-parsetree/releases/download/v1.5.0/ocaml-migrate-parsetree-v1.5.0.tbz" 33 | checksum: [ 34 | "sha256=7f56679c9561552762666de5b6b81c8e4cc2e9fd92272e2269878a2eb534e3c0" 35 | "sha512=87fdccafae83b0437f1ccd4f3cfbc49e699bc0804596480e0df88510ba33410f31d48c7f677fe72800ed3f442a3a586d82d86aee1d12a964f79892833847b16a" 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Don-t-build-manpages-for-stdlib-docs.patch: -------------------------------------------------------------------------------- 1 | From 0cf3c6ad7ce2a2b2806faceccfb0a9321da5e22a Mon Sep 17 00:00:00 2001 2 | From: David Allsopp 3 | Date: Fri, 26 Jul 2019 12:12:19 +0100 4 | Subject: [PATCH] Don't build manpages for stdlib docs 5 | --- 6 | ocamldoc/Makefile | 2 +- 7 | 1 file changed, 1 insertion(+), 1 deletion(-) 8 | 9 | diff --git a/ocamldoc/Makefile b/ocamldoc/Makefile 10 | index b109815071..e31e441f61 100644 11 | --- a/ocamldoc/Makefile 12 | +++ b/ocamldoc/Makefile 13 | @@ -170,7 +170,7 @@ LIBCMIFILES = $(LIBCMOFILES:.cmo=.cmi) 14 | 15 | 16 | .PHONY: all 17 | -all: lib exe generators manpages 18 | +all: lib exe generators 19 | 20 | manpages: generators 21 | 22 | -- 23 | 2.20.1 24 | 25 | -------------------------------------------------------------------------------- /esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/0001-Fix-failure-to-install-tools-links.patch: -------------------------------------------------------------------------------- 1 | From 705739fa54260b7a0e6cbba0b5a99e52c79f9c09 Mon Sep 17 00:00:00 2001 2 | From: David Allsopp 3 | Date: Tue, 6 Aug 2019 09:23:06 +0100 4 | Subject: [PATCH] Fix failure to install tools links 5 | 6 | In --disable-installing-bytecode-programs mode, the .opt version of the 7 | tools is installed, but the symlink for the tool itself is not created. 8 | --- 9 | tools/Makefile | 1 + 10 | 1 file changed, 1 insertion(+) 11 | 12 | diff --git a/tools/Makefile b/tools/Makefile 13 | index 530dd37f34..1b3014a3ab 100644 14 | --- a/tools/Makefile 15 | +++ b/tools/Makefile 16 | @@ -197,6 +197,7 @@ else 17 | do \ 18 | if test -f "$$i".opt; then \ 19 | $(INSTALL_PROG) "$$i.opt" "$(INSTALL_BINDIR)/$$i.opt$(EXE)"; \ 20 | + (cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \ 21 | fi; \ 22 | done 23 | endif 24 | -- 25 | 2.20.1 26 | 27 | -------------------------------------------------------------------------------- /esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/files/fix-gcc10.patch: -------------------------------------------------------------------------------- 1 | commit 3f10a16153308f967149917585d2bc0b9c06492c 2 | Author: Anil Madhavapeddy 3 | Date: Sun Jun 21 18:40:27 2020 +0100 4 | 5 | Add `-fcommon` unconditionally to CFLAGS to fix gcc10 build 6 | 7 | Signed-off-by: Anil Madhavapeddy 8 | 9 | diff --git a/configure b/configure 10 | index 9a78a4554..0c54b560b 100755 11 | --- a/configure 12 | +++ b/configure 13 | @@ -12424,7 +12424,7 @@ $as_echo "$as_me: WARNING: Consider using GCC version 4.2 or above." >&2;}; 14 | -fno-builtin-memcmp"; 15 | internal_cflags="$gcc_warnings" ;; #( 16 | gcc-*) : 17 | - common_cflags="-O2 -fno-strict-aliasing -fwrapv"; 18 | + common_cflags="-O2 -fno-strict-aliasing -fwrapv -fcommon"; 19 | internal_cflags="$gcc_warnings" ;; #( 20 | msvc-*) : 21 | common_cflags="-nologo -O2 -Gy- -MD" 22 | diff --git a/configure.ac b/configure.ac 23 | index f5d8a2687..775e0e2db 100644 24 | --- a/configure.ac 25 | +++ b/configure.ac 26 | @@ -540,7 +540,7 @@ AS_CASE([$host], 27 | -fno-builtin-memcmp"; 28 | internal_cflags="$gcc_warnings"], 29 | [gcc-*], 30 | - [common_cflags="-O2 -fno-strict-aliasing -fwrapv"; 31 | + [common_cflags="-O2 -fno-strict-aliasing -fwrapv -fcommon"; 32 | internal_cflags="$gcc_warnings"], 33 | [msvc-*], 34 | [common_cflags="-nologo -O2 -Gy- -MD" 35 | -------------------------------------------------------------------------------- /esy.lock/opam/ocaml-secondary-compiler.4.08.1-1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: "OCaml 4.08.1 Secondary Switch Compiler" 3 | maintainer: "platform@lists.ocaml.org" 4 | authors: "Xavier Leroy and many contributors" 5 | homepage: "https://ocaml.org" 6 | bug-reports: "https://github.com/ocaml/ocaml/issues" 7 | dev-repo: "git://github.com/ocaml/ocaml" 8 | depends: "ocaml" {< "4.08.0" | >= "4.09~"} 9 | build: [ 10 | [ 11 | "./configure" 12 | "--prefix=%{_:share}%" 13 | "--libdir=%{_:share}%/lib" 14 | "--disable-debugger" 15 | "--disable-installing-bytecode-programs" 16 | "--disable-debug-runtime" 17 | "--disable-instrumented-runtime" 18 | "--disable-graph-lib" 19 | "CC=cc" {os = "openbsd" | os = "freebsd" | os = "macos"} 20 | "ASPP=cc -c" {os = "openbsd" | os = "freebsd" | os = "macos"} 21 | ] 22 | [make "-j%{jobs}%" {os != "cygwin"} "world.opt"] 23 | ] 24 | install: [make "install"] 25 | url { 26 | src: "https://github.com/ocaml/ocaml/archive/4.08.1.tar.gz" 27 | checksum: "md5=723b6bfe8cf5abcbccc6911143f71055" 28 | } 29 | extra-files: [ 30 | ["0001-Don-t-build-manpages-for-stdlib-docs.patch" "md5=6caa580fe6031c109d2dc96b19bd40cd"] 31 | ["0001-Fix-failure-to-install-tools-links.patch" "md5=e973762c0b3d62b0b25a26468086fae3"] 32 | ["fix-gcc10.patch" "md5=17ecd696a8f5647a4c543280599f6974"] 33 | ] 34 | patches: [ 35 | "0001-Don-t-build-manpages-for-stdlib-docs.patch" 36 | "0001-Fix-failure-to-install-tools-links.patch" 37 | "fix-gcc10.patch" 38 | ] 39 | 40 | post-messages: [ 41 | "A failure in the middle of the build may be caused by build parallelism 42 | (enabled by default). 43 | Please file a bug report at https://github.com/ocaml/ocaml/issues" 44 | {failure & jobs > 1 & os != "cygwin"} 45 | "You can try installing again including --jobs=1 46 | to force a sequential build instead." 47 | {failure & jobs > 1 & os != "cygwin" & opam-version >= "2.0.5"} 48 | ] 49 | description: "Installs an additional compiler to the opam switch in 50 | %{_:share}%/ocaml-secondary-compiler which can be accessed using 51 | `ocamlfind -toolchain secondary`." 52 | -------------------------------------------------------------------------------- /esy.lock/opam/ocamlfind-secondary.1.8.1/files/META.in: -------------------------------------------------------------------------------- 1 | description = "OCaml Secondary Compiler" 2 | version = "%{ocaml-secondary-compiler:version}%" 3 | directory = "%{ocaml-secondary-compiler:share}%/bin" 4 | -------------------------------------------------------------------------------- /esy.lock/opam/ocamlfind-secondary.1.8.1/files/ocaml-secondary-compiler.conf.in: -------------------------------------------------------------------------------- 1 | path(secondary) = "%{ocaml-secondary-compiler:share}%/lib" 2 | destdir(secondary) = "%{ocaml-secondary-compiler:share}%/lib" 3 | stdlib(secondary) = "%{ocaml-secondary-compiler:share}%/lib" 4 | ocamlc(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlc" 5 | ocamlopt(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlopt" 6 | ocamlcp(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlcp" 7 | ocamlmklib(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlmklib" 8 | ocamlmktop(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamlmktop" 9 | ocamldoc(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamldoc" 10 | ocamldep(secondary) = "%{ocaml-secondary-compiler:share}%/bin/ocamldep" 11 | -------------------------------------------------------------------------------- /esy.lock/opam/ocamlfind-secondary.1.8.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "David Allsopp " 3 | homepage: "https://github.com/ocaml/opam-repository" 4 | bug-reports: "https://github.com/ocaml/opam-repository/issues" 5 | build: ["./configure" "-sitelib" "%{ocaml-secondary-compiler:share}%/lib" "-no-camlp4"] 6 | install: [ 7 | [make "install-meta"] 8 | ["mkdir" "-p" "%{lib}%/findlib.conf.d/"] 9 | ["cp" "ocaml-secondary-compiler.conf" "%{lib}%/findlib.conf.d/"] 10 | ["mkdir" "-p" "%{ocaml-secondary-compiler:share}%/lib/ocaml"] 11 | ["cp" "META" "%{ocaml-secondary-compiler:share}%/lib/ocaml"] 12 | ] 13 | depends: [ 14 | "ocaml-secondary-compiler" 15 | "ocamlfind" {= "1.8.1"} 16 | ] 17 | synopsis: "ocamlfind support for ocaml-secondary-compiler" 18 | description: """ 19 | Exposes the compiler built by the ocaml-secondary-compielr package via 20 | -toolchain secondary. A virtual package called ocaml is also installed to 21 | locate the binary directory via `ocamlfind -toolchain secondary query ocaml`.""" 22 | authors: ["Gerd Stolpmann " "David Allsopp "] 23 | substs: ["META" "ocaml-secondary-compiler.conf"] 24 | extra-files: [ 25 | ["META.in" "md5=8c6ea8a0158a33ed87e6c38a7d686d49"] 26 | ["ocaml-secondary-compiler.conf.in" "md5=367a7bb68e2e1e65a31356421ddc809c"] 27 | ] 28 | url { 29 | src: "http://download.camlcity.org/download/findlib-1.8.1.tar.gz" 30 | checksum: "md5=18ca650982c15536616dea0e422cbd8c" 31 | mirrors: "http://download2.camlcity.org/download/findlib-1.8.1.tar.gz" 32 | } 33 | -------------------------------------------------------------------------------- /esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | BINDIR=$(dirname "$(command -v ocamlc)") 4 | "$BINDIR/ocaml" -I "$OCAML_TOPLEVEL_PATH" "$@" 5 | -------------------------------------------------------------------------------- /esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install: -------------------------------------------------------------------------------- 1 | bin: [ 2 | "src/findlib/ocamlfind" {"ocamlfind"} 3 | "?src/findlib/ocamlfind_opt" {"ocamlfind"} 4 | "?tools/safe_camlp4" 5 | ] 6 | toplevel: ["src/findlib/topfind"] 7 | -------------------------------------------------------------------------------- /esy.lock/opam/ocamlfind.1.8.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: "A library manager for OCaml" 3 | maintainer: "Thomas Gazagnaire " 4 | authors: "Gerd Stolpmann " 5 | homepage: "http://projects.camlcity.org/projects/findlib.html" 6 | bug-reports: "https://gitlab.camlcity.org/gerd/lib-findlib/issues" 7 | dev-repo: "git+https://gitlab.camlcity.org/gerd/lib-findlib.git" 8 | description: """ 9 | Findlib is a library manager for OCaml. It provides a convention how 10 | to store libraries, and a file format ("META") to describe the 11 | properties of libraries. There is also a tool (ocamlfind) for 12 | interpreting the META files, so that it is very easy to use libraries 13 | in programs and scripts. 14 | """ 15 | build: [ 16 | [ 17 | "./configure" 18 | "-bindir" 19 | bin 20 | "-sitelib" 21 | lib 22 | "-mandir" 23 | man 24 | "-config" 25 | "%{lib}%/findlib.conf" 26 | "-no-custom" 27 | "-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"} 28 | "-no-topfind" {ocaml:preinstalled} 29 | ] 30 | [make "all"] 31 | [make "opt"] {ocaml:native} 32 | ] 33 | install: [ 34 | [make "install"] 35 | ["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled} 36 | ] 37 | depends: [ 38 | "ocaml" {>= "4.00.0"} 39 | "conf-m4" {build} 40 | ] 41 | extra-files: [ 42 | ["ocamlfind.install" "md5=06f2c282ab52d93aa6adeeadd82a2543"] 43 | ["ocaml-stub" "md5=181f259c9e0bad9ef523e7d4abfdf87a"] 44 | ] 45 | url { 46 | src: "http://download.camlcity.org/download/findlib-1.8.1.tar.gz" 47 | checksum: "md5=18ca650982c15536616dea0e422cbd8c" 48 | mirrors: "http://download2.camlcity.org/download/findlib-1.8.1.tar.gz" 49 | } 50 | depopts: ["graphics"] 51 | -------------------------------------------------------------------------------- /esy.lock/opam/ppx_derivers.1.2.1/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "jeremie@dimino.org" 3 | authors: ["Jérémie Dimino"] 4 | license: "BSD-3-Clause" 5 | homepage: "https://github.com/ocaml-ppx/ppx_derivers" 6 | bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues" 7 | dev-repo: "git://github.com/ocaml-ppx/ppx_derivers.git" 8 | build: [ 9 | ["dune" "build" "-p" name "-j" jobs] 10 | ] 11 | depends: [ 12 | "ocaml" 13 | "dune" 14 | ] 15 | synopsis: "Shared [@@deriving] plugin registry" 16 | description: """ 17 | Ppx_derivers is a tiny package whose sole purpose is to allow 18 | ppx_deriving and ppx_type_conv to inter-operate gracefully when linked 19 | as part of the same ocaml-migrate-parsetree driver.""" 20 | url { 21 | src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz" 22 | checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41" 23 | } 24 | -------------------------------------------------------------------------------- /esy.lock/opam/ppxlib.0.15.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "opensource@janestreet.com" 3 | authors: ["Jane Street Group, LLC "] 4 | homepage: "https://github.com/ocaml-ppx/ppxlib" 5 | bug-reports: "https://github.com/ocaml-ppx/ppxlib/issues" 6 | dev-repo: "git+https://github.com/ocaml-ppx/ppxlib.git" 7 | doc: "https://ocaml-ppx.github.io/ppxlib/" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "subst"] {pinned} 11 | ["dune" "build" "-p" name "-j" jobs] 12 | ] 13 | run-test: [ 14 | ["dune" "runtest" "-p" name "-j" jobs] { ocaml:version >= "4.10" } 15 | ] 16 | depends: [ 17 | "ocaml" {>= "4.04.1"} 18 | "dune" {>= "1.11"} 19 | "ocaml-compiler-libs" {>= "v0.11.0"} 20 | "ocaml-migrate-parsetree" {>= "1.5.0" & < "2.0.0"} 21 | "ppx_derivers" {>= "1.0"} 22 | "sexplib0" 23 | "stdlib-shims" 24 | "ocamlfind" {with-test} 25 | "cinaps" {with-test & >= "v0.12.1"} 26 | "base" {with-test} 27 | "stdio" {with-test} 28 | ] 29 | synopsis: "Standard library for ppx rewriters" 30 | description: """ 31 | Ppxlib is the standard library for ppx rewriters and other programs 32 | that manipulate the in-memory reprensation of OCaml programs, a.k.a 33 | the "Parsetree". 34 | 35 | It also comes bundled with two ppx rewriters that are commonly used to 36 | write tools that manipulate and/or generate Parsetree values; 37 | `ppxlib.metaquot` which allows to construct Parsetree values using the 38 | OCaml syntax directly and `ppxlib.traverse` which provides various 39 | ways of automatically traversing values of a given type, in particular 40 | allowing to inject a complex structured value into generated code. 41 | """ 42 | x-commit-hash: "20cacbfc311f1baef6454051e0edd7b1628cb721" 43 | url { 44 | src: 45 | "https://github.com/ocaml-ppx/ppxlib/releases/download/0.15.0/ppxlib-0.15.0.tbz" 46 | checksum: [ 47 | "sha256=0b630d7f8d74a899a55cc27188b5ce03e735a93f07ea0c2de56532d8fd93b330" 48 | "sha512=ecf0fff77ff6f1b356f018b6861b9e40bb8513092a7a486a3aa6024d12f5c15135899b77a188a44abc1c2ca84ebccb8bf9a78241e0383e023663fd7f86fbca72" 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /esy.lock/opam/re.1.9.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | 3 | maintainer: "rudi.grinberg@gmail.com" 4 | authors: [ 5 | "Jerome Vouillon" 6 | "Thomas Gazagnaire" 7 | "Anil Madhavapeddy" 8 | "Rudi Grinberg" 9 | "Gabriel Radanne" 10 | ] 11 | license: "LGPL-2.0-only with OCaml-LGPL-linking-exception" 12 | homepage: "https://github.com/ocaml/ocaml-re" 13 | bug-reports: "https://github.com/ocaml/ocaml-re/issues" 14 | dev-repo: "git+https://github.com/ocaml/ocaml-re.git" 15 | 16 | build: [ 17 | ["dune" "subst"] {pinned} 18 | ["dune" "build" "-p" name "-j" jobs] 19 | ["dune" "runtest" "-p" name "-j" jobs] {with-test} 20 | ] 21 | 22 | depends: [ 23 | "ocaml" {>= "4.02"} 24 | "dune" 25 | "ounit" {with-test} 26 | "seq" 27 | ] 28 | 29 | synopsis: "RE is a regular expression library for OCaml" 30 | description: """ 31 | Pure OCaml regular expressions with: 32 | * Perl-style regular expressions (module Re.Perl) 33 | * Posix extended regular expressions (module Re.Posix) 34 | * Emacs-style regular expressions (module Re.Emacs) 35 | * Shell-style file globbing (module Re.Glob) 36 | * Compatibility layer for OCaml's built-in Str module (module Re.Str) 37 | """ 38 | url { 39 | src: 40 | "https://github.com/ocaml/ocaml-re/releases/download/1.9.0/re-1.9.0.tbz" 41 | checksum: "md5=bddaed4f386a22cace7850c9c7dac296" 42 | } 43 | -------------------------------------------------------------------------------- /esy.lock/opam/result.1.5/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "opensource@janestreet.com" 3 | authors: ["Jane Street Group, LLC "] 4 | homepage: "https://github.com/janestreet/result" 5 | dev-repo: "git+https://github.com/janestreet/result.git" 6 | bug-reports: "https://github.com/janestreet/result/issues" 7 | license: "BSD-3-Clause" 8 | build: [["dune" "build" "-p" name "-j" jobs]] 9 | depends: [ 10 | "ocaml" 11 | "dune" {>= "1.0"} 12 | ] 13 | synopsis: "Compatibility Result module" 14 | description: """ 15 | Projects that want to use the new result type defined in OCaml >= 4.03 16 | while staying compatible with older version of OCaml should use the 17 | Result module defined in this library.""" 18 | url { 19 | src: 20 | "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz" 21 | checksum: "md5=1b82dec78849680b49ae9a8a365b831b" 22 | } 23 | -------------------------------------------------------------------------------- /esy.lock/opam/seq.0.2.2/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | synopsis: 3 | "Compatibility package for OCaml's standard iterator type starting from 4.07" 4 | maintainer: "simon.cruanes.2007@m4x.org" 5 | license: "LGPL2.1" 6 | build: [ 7 | ["dune" "build" "-p" name "-j" jobs] 8 | ] 9 | depends: [ 10 | "dune" {>= "1.1.0"} 11 | "ocaml" 12 | ] 13 | tags: [ "iterator" "seq" "pure" "list" "compatibility" "cascade" ] 14 | homepage: "https://github.com/c-cube/seq/" 15 | bug-reports: "https://github.com/c-cube/seq/issues" 16 | dev-repo: "git+https://github.com/c-cube/seq.git" 17 | authors: "Simon Cruanes" 18 | url { 19 | src: "https://github.com/c-cube/seq/archive/0.2.2.tar.gz" 20 | checksum: [ 21 | "md5=9033e02283aa3bde9f97f24e632902e3" 22 | "sha512=cab0eb4cb6d9788b7cbd7acbefefc15689d706c97ff7f75dd97faf3c21e466af4d0ff110541a24729db587e7172b1a30a3c2967e17ec2e49cbd923360052c07c" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /esy.lock/opam/sexplib0.v0.13.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "opensource@janestreet.com" 3 | authors: ["Jane Street Group, LLC "] 4 | homepage: "https://github.com/janestreet/sexplib0" 5 | bug-reports: "https://github.com/janestreet/sexplib0/issues" 6 | dev-repo: "git+https://github.com/janestreet/sexplib0.git" 7 | doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/sexplib0/index.html" 8 | license: "MIT" 9 | build: [ 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | depends: [ 13 | "ocaml" {>= "4.04.2"} 14 | "dune" {>= "1.5.1"} 15 | ] 16 | synopsis: "Library containing the definition of S-expressions and some base converters" 17 | description: " 18 | Part of Jane Street's Core library 19 | The Core suite of libraries is an industrial strength alternative to 20 | OCaml's standard library that was developed by Jane Street, the 21 | largest industrial user of OCaml. 22 | " 23 | url { 24 | src: "https://ocaml.janestreet.com/ocaml-core/v0.13/files/sexplib0-v0.13.0.tar.gz" 25 | checksum: "md5=f8a715dffda5599cfae0cb4031d57abe" 26 | } 27 | -------------------------------------------------------------------------------- /esy.lock/opam/stdlib-shims.0.1.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "The stdlib-shims programmers" 3 | authors: "The stdlib-shims programmers" 4 | homepage: "https://github.com/ocaml/stdlib-shims" 5 | doc: "https://ocaml.github.io/stdlib-shims/" 6 | dev-repo: "git+https://github.com/ocaml/stdlib-shims.git" 7 | bug-reports: "https://github.com/ocaml/stdlib-shims/issues" 8 | tags: ["stdlib" "compatibility" "org:ocaml"] 9 | license: ["typeof OCaml system"] 10 | depends: [ 11 | "ocaml" {>="4.02.3"} 12 | "dune" 13 | ("dune" {>= "2.7.0"} | "dune" & "ocaml" {<"4.12.0~~"}) 14 | ] 15 | build: [ "dune" "build" "-p" name "-j" jobs ] 16 | synopsis: "Backport some of the new stdlib features to older compiler" 17 | description: """ 18 | Backport some of the new stdlib features to older compiler, 19 | such as the Stdlib module. 20 | 21 | This allows projects that require compatibility with older compiler to 22 | use these new features in their code. 23 | """ 24 | url { 25 | src: 26 | "https://github.com/ocaml/stdlib-shims/releases/download/0.1.0/stdlib-shims-0.1.0.tbz" 27 | checksum: "md5=12b5704eed70c6bff5ac39a16db1425d" 28 | } 29 | -------------------------------------------------------------------------------- /esy.lock/opam/yojson.1.7.0/opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | maintainer: "martin@mjambon.com" 3 | authors: ["Martin Jambon"] 4 | homepage: "https://github.com/ocaml-community/yojson" 5 | bug-reports: "https://github.com/ocaml-community/yojson/issues" 6 | dev-repo: "git+https://github.com/ocaml-community/yojson.git" 7 | doc: "https://ocaml-community.github.io/yojson/" 8 | build: [ 9 | ["dune" "subst"] {pinned} 10 | ["dune" "build" "-p" name "-j" jobs] 11 | ] 12 | run-test: [["dune" "runtest" "-p" name "-j" jobs]] 13 | depends: [ 14 | "ocaml" {>= "4.02.3"} 15 | "dune" 16 | "cppo" {build} 17 | "easy-format" 18 | "biniou" {>= "1.2.0"} 19 | "alcotest" {with-test & >= "0.8.5"} 20 | ] 21 | synopsis: 22 | "Yojson is an optimized parsing and printing library for the JSON format" 23 | description: """ 24 | Yojson is an optimized parsing and printing library for the JSON format. 25 | 26 | It addresses a few shortcomings of json-wheel including 2x speedup, 27 | polymorphic variants and optional syntax for tuples and variants. 28 | 29 | ydump is a pretty-printing command-line program provided with the 30 | yojson package. 31 | 32 | The program atdgen can be used to derive OCaml-JSON serializers and 33 | deserializers from type definitions.""" 34 | url { 35 | src: 36 | "https://github.com/ocaml-community/yojson/releases/download/1.7.0/yojson-1.7.0.tbz" 37 | checksum: "md5=b89d39ca3f8c532abe5f547ad3b8f84d" 38 | } 39 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__dune_opam__c__2.7.0_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "buildsInSource": true, 3 | "build": [ 4 | [ 5 | "ocaml", 6 | "configure.ml", 7 | "--libdir", 8 | "#{self.lib}" 9 | ], 10 | [ 11 | "env", 12 | "-u", 13 | "OCAMLLIB", 14 | "ocaml", 15 | "bootstrap.ml" 16 | ], 17 | [ 18 | "./dune.exe", 19 | "build", 20 | "-p", 21 | "dune", 22 | "--profile", 23 | "dune-bootstrap" 24 | ] 25 | ], 26 | "install": "esy-installer dune.install", 27 | "buildEnv": { 28 | "OCAMLFIND_CONF": "$OCAMLFIND_SECONDARY_PREFIX/lib/findlib.conf.d/ocaml-secondary-compiler.conf", 29 | "OCAMLPATH": "#{ $OCAMLFIND_SECONDARY_PREFIX / 'lib' : ocaml.lib : $OCAML_SECONDARY_COMPILER_PREFIX / 'share' / 'ocaml-secondary-compiler' / 'lib' }" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/clone-flexdll: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # clone-flexdll 4 | # 5 | # Brings in flexdll, if necessary 6 | 7 | if [ -d "flexdll" ] && [ -f "flexdll/flexdll.c" ]; then 8 | echo "[Flexdll] Already present, no need to clone." 9 | else 10 | echo "[Flexdll] Cloning..." 11 | git clone https://github.com/esy-ocaml/flexdll.git 12 | cd flexdll 13 | git checkout f84baaeae463f96f9582883a9cfb7dd1096757ff 14 | cd .. 15 | echo "[Flexdll] Clone successful!" 16 | fi -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/configure-windows: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # configure-windows 4 | # 5 | # Creates a native Windows MingW build, based on: 6 | # https://github.com/ocaml/ocaml/blob/trunk/README.win32.adoc 7 | 8 | 9 | export prefix=C:/ocamlmgw64 10 | while : ; do 11 | case "$1" in 12 | "") break;; 13 | -prefix|--prefix) 14 | prefix=$2; shift;; 15 | esac 16 | shift 17 | done 18 | 19 | echo "[configure-windows] Setting up flexdll" 20 | ./clone-flexdll 21 | ./configure --build=x86_64-unknown-cygwin --host=x86_64-w64-mingw32 --prefix=$prefix 22 | make flexdll 23 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-build: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | # esy-build 4 | # 5 | # Wrapper to execute appropriate build strategy, based on platform 6 | 7 | set -u 8 | set -e 9 | set -o pipefail 10 | 11 | case "$(uname -s)" in 12 | CYGWIN*|MINGW32*|MSYS*) 13 | echo "[esy-build] Detected windows environment..." 14 | make -j4 world.opt 15 | make flexlink.opt 16 | ;; 17 | *) 18 | echo "[esy-build] Detected OSX / Linux environment" 19 | make -j4 world.opt 20 | ;; 21 | esac 22 | 23 | # Common build steps 24 | make install -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/files/esy-configure: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | # esy-configure 4 | # 5 | # Wrapper to delegate to configuration to the 6 | # appropriate `configure` strategy based on the active platform. 7 | # 8 | # Today, OCaml has separate build strategies: 9 | # - Linux, OSX, Cygwin (gcc) - https://github.com/ocaml/ocaml/blob/trunk/INSTALL.adoc 10 | # - Windows, Cygin (mingw) - https://github.com/ocaml/ocaml/blob/trunk/README.win32.adoc 11 | # 12 | # We want `esy` to work cross-platform, so this is a shim script that will delegate to the 13 | # appropriate script depending on the platform. We assume that if the platform is `CYGWIN` 14 | # that the `mingw` (native executable) strategy is desired. 15 | 16 | set -u 17 | set -e 18 | set -o pipefail 19 | 20 | case "$(uname -s)" in 21 | CYGWIN*|MINGW32*|MSYS*) 22 | echo "[esy-configure] Detected windows environment..." 23 | ./configure-windows "$@" 24 | ;; 25 | *) 26 | echo "[esy-configure] Detected OSX / Linux environment" 27 | ./configure "$@" 28 | ;; 29 | esac -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocaml_secondary_compiler_opam__c__4.08.1_1_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "buildEnv": { 3 | "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" 4 | }, 5 | "build": [ 6 | [ 7 | "env", 8 | "-u", 9 | "OCAMLLIB", 10 | "bash", "./esy-configure", 11 | "--disable-cfi", 12 | "--prefix", "$cur__install/share/ocaml-secondary-compiler", 13 | "--libdir", "$cur__install/share/ocaml-secondary-compiler/lib", 14 | "--disable-debugger", 15 | "--disable-installing-bytecode-programs", 16 | "--disable-debug-runtime", 17 | "--disable-instrumented-runtime", 18 | "--disable-graph-lib" 19 | ], 20 | [ 21 | "env", 22 | "-u", 23 | "OCAMLLIB", 24 | "bash", "./esy-build" 25 | ] 26 | ], 27 | "buildsInSource": true 28 | } 29 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch: -------------------------------------------------------------------------------- 1 | --- ./Makefile 2 | +++ ./Makefile 3 | @@ -57,16 +57,16 @@ 4 | cat findlib.conf.in | \ 5 | $(SH) tools/patch '@SITELIB@' '$(OCAML_SITELIB)' >findlib.conf 6 | if ./tools/cmd_from_same_dir ocamlc; then \ 7 | - echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \ 8 | + echo 'ocamlc="ocamlc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 9 | fi 10 | if ./tools/cmd_from_same_dir ocamlopt; then \ 11 | - echo 'ocamlopt="ocamlopt.opt"' >>findlib.conf; \ 12 | + echo 'ocamlopt="ocamlopt.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 13 | fi 14 | if ./tools/cmd_from_same_dir ocamldep; then \ 15 | - echo 'ocamldep="ocamldep.opt"' >>findlib.conf; \ 16 | + echo 'ocamldep="ocamldep.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 17 | fi 18 | if ./tools/cmd_from_same_dir ocamldoc; then \ 19 | - echo 'ocamldoc="ocamldoc.opt"' >>findlib.conf; \ 20 | + echo 'ocamldoc="ocamldoc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 21 | fi 22 | 23 | .PHONY: install-doc 24 | --- ./src/findlib/findlib_config.mlp 25 | +++ ./src/findlib/findlib_config.mlp 26 | @@ -24,3 +24,5 @@ 27 | | "MacOS" -> "" (* don't know *) 28 | | _ -> failwith "Unknown Sys.os_type" 29 | ;; 30 | + 31 | +let exec_suffix = "@EXEC_SUFFIX@";; 32 | --- ./src/findlib/findlib.ml 33 | +++ ./src/findlib/findlib.ml 34 | @@ -28,15 +28,20 @@ 35 | let conf_ldconf = ref "";; 36 | let conf_ignore_dups_in = ref ([] : string list);; 37 | 38 | -let ocamlc_default = "ocamlc";; 39 | -let ocamlopt_default = "ocamlopt";; 40 | -let ocamlcp_default = "ocamlcp";; 41 | -let ocamloptp_default = "ocamloptp";; 42 | -let ocamlmklib_default = "ocamlmklib";; 43 | -let ocamlmktop_default = "ocamlmktop";; 44 | -let ocamldep_default = "ocamldep";; 45 | -let ocamlbrowser_default = "ocamlbrowser";; 46 | -let ocamldoc_default = "ocamldoc";; 47 | +let add_exec str = 48 | + match Findlib_config.exec_suffix with 49 | + | "" -> str 50 | + | a -> str ^ a ;; 51 | +let ocamlc_default = add_exec "ocamlc";; 52 | +let ocamlopt_default = add_exec "ocamlopt";; 53 | +let ocamlcp_default = add_exec "ocamlcp";; 54 | +let ocamloptp_default = add_exec "ocamloptp";; 55 | +let ocamlmklib_default = add_exec "ocamlmklib";; 56 | +let ocamlmktop_default = add_exec "ocamlmktop";; 57 | +let ocamldep_default = add_exec "ocamldep";; 58 | +let ocamlbrowser_default = add_exec "ocamlbrowser";; 59 | +let ocamldoc_default = add_exec "ocamldoc";; 60 | + 61 | 62 | 63 | let init_manually 64 | --- ./src/findlib/fl_package_base.ml 65 | +++ ./src/findlib/fl_package_base.ml 66 | @@ -133,7 +133,15 @@ 67 | List.find (fun def -> def.def_var = "exists_if") p.package_defs in 68 | let files = Fl_split.in_words def.def_value in 69 | List.exists 70 | - (fun file -> Sys.file_exists (Filename.concat d' file)) 71 | + (fun file -> 72 | + let fln = Filename.concat d' file in 73 | + let e = Sys.file_exists fln in 74 | + (* necessary for ppx executables *) 75 | + if e || Sys.os_type <> "Win32" || Filename.check_suffix fln ".exe" then 76 | + e 77 | + else 78 | + Sys.file_exists (fln ^ ".exe") 79 | + ) 80 | files 81 | with Not_found -> true in 82 | 83 | --- ./src/findlib/fl_split.ml 84 | +++ ./src/findlib/fl_split.ml 85 | @@ -126,10 +126,17 @@ 86 | | '/' | '\\' -> true 87 | | _ -> false in 88 | let norm_dir_win() = 89 | - if l >= 1 && s.[0] = '/' then 90 | - Buffer.add_char b '\\' else Buffer.add_char b s.[0]; 91 | - if l >= 2 && s.[1] = '/' then 92 | - Buffer.add_char b '\\' else Buffer.add_char b s.[1]; 93 | + if l >= 1 then ( 94 | + if s.[0] = '/' then 95 | + Buffer.add_char b '\\' 96 | + else 97 | + Buffer.add_char b s.[0] ; 98 | + if l >= 2 then 99 | + if s.[1] = '/' then 100 | + Buffer.add_char b '\\' 101 | + else 102 | + Buffer.add_char b s.[1]; 103 | + ); 104 | for k = 2 to l - 1 do 105 | let c = s.[k] in 106 | if is_slash c then ( 107 | --- ./src/findlib/frontend.ml 108 | +++ ./src/findlib/frontend.ml 109 | @@ -31,10 +31,18 @@ 110 | else 111 | Sys_error (arg ^ ": " ^ Unix.error_message code) 112 | 113 | +let is_win = Sys.os_type = "Win32" 114 | + 115 | +let () = 116 | + match Findlib_config.system with 117 | + | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" -> 118 | + (try set_binary_mode_out stdout true with _ -> ()); 119 | + (try set_binary_mode_out stderr true with _ -> ()); 120 | + | _ -> () 121 | 122 | let slashify s = 123 | match Findlib_config.system with 124 | - | "mingw" | "mingw64" | "cygwin" -> 125 | + | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" -> 126 | let b = Buffer.create 80 in 127 | String.iter 128 | (function 129 | @@ -49,7 +57,7 @@ 130 | 131 | let out_path ?(prefix="") s = 132 | match Findlib_config.system with 133 | - | "mingw" | "mingw64" | "cygwin" -> 134 | + | "win32" | "win64" | "mingw" | "mingw64" | "cygwin" -> 135 | let u = slashify s in 136 | prefix ^ 137 | (if String.contains u ' ' then 138 | @@ -273,11 +281,9 @@ 139 | 140 | 141 | let identify_dir d = 142 | - match Sys.os_type with 143 | - | "Win32" -> 144 | - failwith "identify_dir" (* not available *) 145 | - | _ -> 146 | - let s = Unix.stat d in 147 | + if is_win then 148 | + failwith "identify_dir"; (* not available *) 149 | + let s = Unix.stat d in 150 | (s.Unix.st_dev, s.Unix.st_ino) 151 | ;; 152 | 153 | @@ -459,6 +465,96 @@ 154 | ) 155 | packages 156 | 157 | +let rewrite_cmd s = 158 | + if s = "" || not is_win then 159 | + s 160 | + else 161 | + let s = 162 | + let l = String.length s in 163 | + let b = Buffer.create l in 164 | + for i = 0 to pred l do 165 | + match s.[i] with 166 | + | '/' -> Buffer.add_char b '\\' 167 | + | x -> Buffer.add_char b x 168 | + done; 169 | + Buffer.contents b 170 | + in 171 | + if (Filename.is_implicit s && String.contains s '\\' = false) || 172 | + Filename.check_suffix (String.lowercase s) ".exe" then 173 | + s 174 | + else 175 | + let s' = s ^ ".exe" in 176 | + if Sys.file_exists s' then 177 | + s' 178 | + else 179 | + s 180 | + 181 | +let rewrite_cmd s = 182 | + if s = "" || not is_win then s else 183 | + let s = 184 | + let l = String.length s in 185 | + let b = Buffer.create l in 186 | + for i = 0 to pred l do 187 | + match s.[i] with 188 | + | '/' -> Buffer.add_char b '\\' 189 | + | x -> Buffer.add_char b x 190 | + done; 191 | + Buffer.contents b 192 | + in 193 | + if (Filename.is_implicit s && String.contains s '\\' = false) || 194 | + Filename.check_suffix (String.lowercase s) ".exe" then 195 | + s 196 | + else 197 | + let s' = s ^ ".exe" in 198 | + if Sys.file_exists s' then 199 | + s' 200 | + else 201 | + s 202 | + 203 | +let rewrite_pp cmd = 204 | + if not is_win then cmd else 205 | + let module T = struct exception Keep end in 206 | + let is_whitespace = function 207 | + | ' ' | '\011' | '\012' | '\n' | '\r' | '\t' -> true 208 | + | _ -> false in 209 | + (* characters that triggers special behaviour (cmd.exe, not unix shell) *) 210 | + let is_unsafe_char = function 211 | + | '(' | ')' | '%' | '!' | '^' | '<' | '>' | '&' -> true 212 | + | _ -> false in 213 | + let len = String.length cmd in 214 | + let buf = Buffer.create (len + 4) in 215 | + let buf_cmd = Buffer.create len in 216 | + let rec iter_ws i = 217 | + if i >= len then () else 218 | + let cur = cmd.[i] in 219 | + if is_whitespace cur then ( 220 | + Buffer.add_char buf cur; 221 | + iter_ws (succ i) 222 | + ) 223 | + else 224 | + iter_cmd i 225 | + and iter_cmd i = 226 | + if i >= len then add_buf_cmd () else 227 | + let cur = cmd.[i] in 228 | + if is_unsafe_char cur || cur = '"' || cur = '\'' then 229 | + raise T.Keep; 230 | + if is_whitespace cur then ( 231 | + add_buf_cmd (); 232 | + Buffer.add_substring buf cmd i (len - i) 233 | + ) 234 | + else ( 235 | + Buffer.add_char buf_cmd cur; 236 | + iter_cmd (succ i) 237 | + ) 238 | + and add_buf_cmd () = 239 | + if Buffer.length buf_cmd > 0 then 240 | + Buffer.add_string buf (rewrite_cmd (Buffer.contents buf_cmd)) 241 | + in 242 | + try 243 | + iter_ws 0; 244 | + Buffer.contents buf 245 | + with 246 | + | T.Keep -> cmd 247 | 248 | let process_pp_spec syntax_preds packages pp_opts = 249 | (* Returns: pp_command *) 250 | @@ -549,7 +645,7 @@ 251 | None -> [] 252 | | Some cmd -> 253 | ["-pp"; 254 | - cmd ^ " " ^ 255 | + (rewrite_cmd cmd) ^ " " ^ 256 | String.concat " " (List.map Filename.quote pp_i_options) ^ " " ^ 257 | String.concat " " (List.map Filename.quote pp_archives) ^ " " ^ 258 | String.concat " " (List.map Filename.quote pp_opts)] 259 | @@ -625,9 +721,11 @@ 260 | in 261 | try 262 | let preprocessor = 263 | + rewrite_cmd ( 264 | resolve_path 265 | ~base ~explicit:true 266 | - (package_property predicates pname "ppx") in 267 | + (package_property predicates pname "ppx") ) 268 | + in 269 | ["-ppx"; String.concat " " (preprocessor :: options)] 270 | with Not_found -> [] 271 | ) 272 | @@ -895,6 +993,14 @@ 273 | switch (e.g. -L instead of -L ) 274 | *) 275 | 276 | +(* We may need to remove files on which we do not have complete control. 277 | + On Windows, removing a read-only file fails so try to change the 278 | + mode of the file first. *) 279 | +let remove_file fname = 280 | + try Sys.remove fname 281 | + with Sys_error _ when is_win -> 282 | + (try Unix.chmod fname 0o666 with Unix.Unix_error _ -> ()); 283 | + Sys.remove fname 284 | 285 | let ocamlc which () = 286 | 287 | @@ -1022,9 +1128,12 @@ 288 | 289 | "-intf", 290 | Arg.String (fun s -> pass_files := !pass_files @ [ Intf(slashify s) ]); 291 | - 292 | + 293 | "-pp", 294 | - Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" s); 295 | + Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" (rewrite_pp s)); 296 | + 297 | + "-ppx", 298 | + Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s)); 299 | 300 | "-thread", 301 | Arg.Unit (fun _ -> threads := threads_default); 302 | @@ -1237,7 +1346,7 @@ 303 | with 304 | any -> 305 | close_out initl; 306 | - Sys.remove initl_file_name; 307 | + remove_file initl_file_name; 308 | raise any 309 | end; 310 | 311 | @@ -1245,9 +1354,9 @@ 312 | at_exit 313 | (fun () -> 314 | let tr f x = try f x with _ -> () in 315 | - tr Sys.remove initl_file_name; 316 | - tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmi"); 317 | - tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmo"); 318 | + tr remove_file initl_file_name; 319 | + tr remove_file (Filename.chop_extension initl_file_name ^ ".cmi"); 320 | + tr remove_file (Filename.chop_extension initl_file_name ^ ".cmo"); 321 | ); 322 | 323 | let exclude_list = [ stdlibdir; threads_dir; vmthreads_dir ] in 324 | @@ -1493,7 +1602,9 @@ 325 | [ "-v", Arg.Unit (fun () -> verbose := Verbose); 326 | "-pp", Arg.String (fun s -> 327 | pp_specified := true; 328 | - options := !options @ ["-pp"; s]); 329 | + options := !options @ ["-pp"; rewrite_pp s]); 330 | + "-ppx", Arg.String (fun s -> 331 | + options := !options @ ["-ppx"; rewrite_pp s]); 332 | ] 333 | ) 334 | ) 335 | @@ -1672,7 +1783,9 @@ 336 | Arg.String (fun s -> add_spec_fn "-I" (slashify (resolve_path s))); 337 | 338 | "-pp", Arg.String (fun s -> pp_specified := true; 339 | - add_spec_fn "-pp" s); 340 | + add_spec_fn "-pp" (rewrite_pp s)); 341 | + "-ppx", Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s)); 342 | + 343 | ] 344 | ) 345 | ) 346 | @@ -1830,7 +1943,10 @@ 347 | output_string ch_out append; 348 | close_out ch_out; 349 | close_in ch_in; 350 | - Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime; 351 | + (try Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime 352 | + with Unix.Unix_error(e,_,_) -> 353 | + prerr_endline("Warning: setting utimes for " ^ outpath 354 | + ^ ": " ^ Unix.error_message e)); 355 | 356 | prerr_endline("Installed " ^ outpath); 357 | with 358 | @@ -1882,6 +1998,8 @@ 359 | Unix.openfile (Filename.concat dir owner_file) [Unix.O_RDONLY] 0 in 360 | let f = 361 | Unix.in_channel_of_descr fd in 362 | + if is_win then 363 | + set_binary_mode_in f false; 364 | try 365 | let line = input_line f in 366 | let is_my_file = (line = pkg) in 367 | @@ -2208,7 +2326,7 @@ 368 | let lines = read_ldconf !ldconf in 369 | let dlldir_norm = Fl_split.norm_dir dlldir in 370 | let dlldir_norm_lc = string_lowercase_ascii dlldir_norm in 371 | - let ci_filesys = (Sys.os_type = "Win32") in 372 | + let ci_filesys = is_win in 373 | let check_dir d = 374 | let d' = Fl_split.norm_dir d in 375 | (d' = dlldir_norm) || 376 | @@ -2356,7 +2474,7 @@ 377 | List.iter 378 | (fun file -> 379 | let absfile = Filename.concat dlldir file in 380 | - Sys.remove absfile; 381 | + remove_file absfile; 382 | prerr_endline ("Removed " ^ absfile) 383 | ) 384 | dll_files 385 | @@ -2365,7 +2483,7 @@ 386 | (* Remove the files from the package directory: *) 387 | if Sys.file_exists pkgdir then begin 388 | let files = Sys.readdir pkgdir in 389 | - Array.iter (fun f -> Sys.remove (Filename.concat pkgdir f)) files; 390 | + Array.iter (fun f -> remove_file (Filename.concat pkgdir f)) files; 391 | Unix.rmdir pkgdir; 392 | prerr_endline ("Removed " ^ pkgdir) 393 | end 394 | @@ -2415,7 +2533,9 @@ 395 | 396 | 397 | let print_configuration() = 398 | + let sl = slashify in 399 | let dir s = 400 | + let s = sl s in 401 | if Sys.file_exists s then 402 | s 403 | else 404 | @@ -2453,27 +2573,27 @@ 405 | if md = "" then "the corresponding package directories" else dir md 406 | ); 407 | Printf.printf "The standard library is assumed to reside in:\n %s\n" 408 | - (Findlib.ocaml_stdlib()); 409 | + (sl (Findlib.ocaml_stdlib())); 410 | Printf.printf "The ld.conf file can be found here:\n %s\n" 411 | - (Findlib.ocaml_ldconf()); 412 | + (sl (Findlib.ocaml_ldconf())); 413 | flush stdout 414 | | Some "conf" -> 415 | - print_endline (Findlib.config_file()) 416 | + print_endline (sl (Findlib.config_file())) 417 | | Some "path" -> 418 | - List.iter print_endline (Findlib.search_path()) 419 | + List.iter ( fun x -> print_endline (sl x)) (Findlib.search_path()) 420 | | Some "destdir" -> 421 | - print_endline (Findlib.default_location()) 422 | + print_endline ( sl (Findlib.default_location())) 423 | | Some "metadir" -> 424 | - print_endline (Findlib.meta_directory()) 425 | + print_endline ( sl (Findlib.meta_directory())) 426 | | Some "metapath" -> 427 | let mdir = Findlib.meta_directory() in 428 | let ddir = Findlib.default_location() in 429 | - print_endline 430 | - (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META") 431 | + print_endline ( sl 432 | + (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META")) 433 | | Some "stdlib" -> 434 | - print_endline (Findlib.ocaml_stdlib()) 435 | + print_endline ( sl (Findlib.ocaml_stdlib())) 436 | | Some "ldconf" -> 437 | - print_endline (Findlib.ocaml_ldconf()) 438 | + print_endline ( sl (Findlib.ocaml_ldconf())) 439 | | _ -> 440 | assert false 441 | ;; 442 | @@ -2481,7 +2601,7 @@ 443 | 444 | let ocamlcall pkg cmd = 445 | let dir = package_directory pkg in 446 | - let path = Filename.concat dir cmd in 447 | + let path = rewrite_cmd (Filename.concat dir cmd) in 448 | begin 449 | try Unix.access path [ Unix.X_OK ] 450 | with 451 | @@ -2647,6 +2767,10 @@ 452 | | Sys_error f -> 453 | prerr_endline ("ocamlfind: " ^ f); 454 | exit 2 455 | + | Unix.Unix_error (e, fn, f) -> 456 | + prerr_endline ("ocamlfind: " ^ fn ^ " " ^ f 457 | + ^ ": " ^ Unix.error_message e); 458 | + exit 2 459 | | Findlib.No_such_package(pkg,info) -> 460 | prerr_endline ("ocamlfind: Package `" ^ pkg ^ "' not found" ^ 461 | (if info <> "" then " - " ^ info else "")); 462 | --- ./src/findlib/Makefile 463 | +++ ./src/findlib/Makefile 464 | @@ -90,6 +90,7 @@ 465 | cat findlib_config.mlp | \ 466 | $(SH) $(TOP)/tools/patch '@CONFIGFILE@' '$(OCAMLFIND_CONF)' | \ 467 | $(SH) $(TOP)/tools/patch '@STDLIB@' '$(OCAML_CORE_STDLIB)' | \ 468 | + $(SH) $(TOP)/tools/patch '@EXEC_SUFFIX@' '$(EXEC_SUFFIX)' | \ 469 | sed -e 's;@AUTOLINK@;$(OCAML_AUTOLINK);g' \ 470 | -e 's;@SYSTEM@;$(SYSTEM);g' \ 471 | >findlib_config.ml 472 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": [ 3 | [ 4 | "bash", 5 | "-c", 6 | "#{os == 'windows' ? 'patch -p1 < findlib-1.8.1.patch' : 'true'}" 7 | ], 8 | [ 9 | "./configure", 10 | "-bindir", 11 | "#{self.bin}", 12 | "-sitelib", 13 | "#{self.lib}", 14 | "-mandir", 15 | "#{self.man}", 16 | "-config", 17 | "#{self.lib}/findlib.conf", 18 | "-no-custom", 19 | "-no-topfind" 20 | ], 21 | [ 22 | "make", 23 | "all" 24 | ], 25 | [ 26 | "make", 27 | "opt" 28 | ] 29 | ], 30 | "install": [ 31 | [ 32 | "make", 33 | "install" 34 | ], 35 | [ 36 | "install", 37 | "-m", 38 | "0755", 39 | "ocaml-stub", 40 | "#{self.bin}/ocaml" 41 | ], 42 | [ 43 | "mkdir", 44 | "-p", 45 | "#{self.toplevel}" 46 | ], 47 | [ 48 | "install", 49 | "-m", 50 | "0644", 51 | "src/findlib/topfind", 52 | "#{self.toplevel}/topfind" 53 | ] 54 | ], 55 | "exportedEnv": { 56 | "OCAML_TOPLEVEL_PATH": { 57 | "val": "#{self.toplevel}", 58 | "scope": "global" 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch: -------------------------------------------------------------------------------- 1 | --- ./Makefile 2 | +++ ./Makefile 3 | @@ -57,16 +57,16 @@ 4 | cat findlib.conf.in | \ 5 | $(SH) tools/patch '@SITELIB@' '$(OCAML_SITELIB)' >findlib.conf 6 | if ./tools/cmd_from_same_dir ocamlc; then \ 7 | - echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \ 8 | + echo 'ocamlc="ocamlc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 9 | fi 10 | if ./tools/cmd_from_same_dir ocamlopt; then \ 11 | - echo 'ocamlopt="ocamlopt.opt"' >>findlib.conf; \ 12 | + echo 'ocamlopt="ocamlopt.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 13 | fi 14 | if ./tools/cmd_from_same_dir ocamldep; then \ 15 | - echo 'ocamldep="ocamldep.opt"' >>findlib.conf; \ 16 | + echo 'ocamldep="ocamldep.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 17 | fi 18 | if ./tools/cmd_from_same_dir ocamldoc; then \ 19 | - echo 'ocamldoc="ocamldoc.opt"' >>findlib.conf; \ 20 | + echo 'ocamldoc="ocamldoc.opt$(EXEC_SUFFIX)"' >>findlib.conf; \ 21 | fi 22 | 23 | .PHONY: install-doc 24 | --- ./src/findlib/findlib_config.mlp 25 | +++ ./src/findlib/findlib_config.mlp 26 | @@ -24,3 +24,5 @@ 27 | | "MacOS" -> "" (* don't know *) 28 | | _ -> failwith "Unknown Sys.os_type" 29 | ;; 30 | + 31 | +let exec_suffix = "@EXEC_SUFFIX@";; 32 | --- ./src/findlib/findlib.ml 33 | +++ ./src/findlib/findlib.ml 34 | @@ -28,15 +28,20 @@ 35 | let conf_ldconf = ref "";; 36 | let conf_ignore_dups_in = ref ([] : string list);; 37 | 38 | -let ocamlc_default = "ocamlc";; 39 | -let ocamlopt_default = "ocamlopt";; 40 | -let ocamlcp_default = "ocamlcp";; 41 | -let ocamloptp_default = "ocamloptp";; 42 | -let ocamlmklib_default = "ocamlmklib";; 43 | -let ocamlmktop_default = "ocamlmktop";; 44 | -let ocamldep_default = "ocamldep";; 45 | -let ocamlbrowser_default = "ocamlbrowser";; 46 | -let ocamldoc_default = "ocamldoc";; 47 | +let add_exec str = 48 | + match Findlib_config.exec_suffix with 49 | + | "" -> str 50 | + | a -> str ^ a ;; 51 | +let ocamlc_default = add_exec "ocamlc";; 52 | +let ocamlopt_default = add_exec "ocamlopt";; 53 | +let ocamlcp_default = add_exec "ocamlcp";; 54 | +let ocamloptp_default = add_exec "ocamloptp";; 55 | +let ocamlmklib_default = add_exec "ocamlmklib";; 56 | +let ocamlmktop_default = add_exec "ocamlmktop";; 57 | +let ocamldep_default = add_exec "ocamldep";; 58 | +let ocamlbrowser_default = add_exec "ocamlbrowser";; 59 | +let ocamldoc_default = add_exec "ocamldoc";; 60 | + 61 | 62 | 63 | let init_manually 64 | --- ./src/findlib/fl_package_base.ml 65 | +++ ./src/findlib/fl_package_base.ml 66 | @@ -133,7 +133,15 @@ 67 | List.find (fun def -> def.def_var = "exists_if") p.package_defs in 68 | let files = Fl_split.in_words def.def_value in 69 | List.exists 70 | - (fun file -> Sys.file_exists (Filename.concat d' file)) 71 | + (fun file -> 72 | + let fln = Filename.concat d' file in 73 | + let e = Sys.file_exists fln in 74 | + (* necessary for ppx executables *) 75 | + if e || Sys.os_type <> "Win32" || Filename.check_suffix fln ".exe" then 76 | + e 77 | + else 78 | + Sys.file_exists (fln ^ ".exe") 79 | + ) 80 | files 81 | with Not_found -> true in 82 | 83 | --- ./src/findlib/fl_split.ml 84 | +++ ./src/findlib/fl_split.ml 85 | @@ -126,10 +126,17 @@ 86 | | '/' | '\\' -> true 87 | | _ -> false in 88 | let norm_dir_win() = 89 | - if l >= 1 && s.[0] = '/' then 90 | - Buffer.add_char b '\\' else Buffer.add_char b s.[0]; 91 | - if l >= 2 && s.[1] = '/' then 92 | - Buffer.add_char b '\\' else Buffer.add_char b s.[1]; 93 | + if l >= 1 then ( 94 | + if s.[0] = '/' then 95 | + Buffer.add_char b '\\' 96 | + else 97 | + Buffer.add_char b s.[0] ; 98 | + if l >= 2 then 99 | + if s.[1] = '/' then 100 | + Buffer.add_char b '\\' 101 | + else 102 | + Buffer.add_char b s.[1]; 103 | + ); 104 | for k = 2 to l - 1 do 105 | let c = s.[k] in 106 | if is_slash c then ( 107 | --- ./src/findlib/frontend.ml 108 | +++ ./src/findlib/frontend.ml 109 | @@ -31,10 +31,18 @@ 110 | else 111 | Sys_error (arg ^ ": " ^ Unix.error_message code) 112 | 113 | +let is_win = Sys.os_type = "Win32" 114 | + 115 | +let () = 116 | + match Findlib_config.system with 117 | + | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" -> 118 | + (try set_binary_mode_out stdout true with _ -> ()); 119 | + (try set_binary_mode_out stderr true with _ -> ()); 120 | + | _ -> () 121 | 122 | let slashify s = 123 | match Findlib_config.system with 124 | - | "mingw" | "mingw64" | "cygwin" -> 125 | + | "win32" | "win64" | "mingw" | "cygwin" | "mingw64" | "cygwin64" -> 126 | let b = Buffer.create 80 in 127 | String.iter 128 | (function 129 | @@ -49,7 +57,7 @@ 130 | 131 | let out_path ?(prefix="") s = 132 | match Findlib_config.system with 133 | - | "mingw" | "mingw64" | "cygwin" -> 134 | + | "win32" | "win64" | "mingw" | "mingw64" | "cygwin" -> 135 | let u = slashify s in 136 | prefix ^ 137 | (if String.contains u ' ' then 138 | @@ -273,11 +281,9 @@ 139 | 140 | 141 | let identify_dir d = 142 | - match Sys.os_type with 143 | - | "Win32" -> 144 | - failwith "identify_dir" (* not available *) 145 | - | _ -> 146 | - let s = Unix.stat d in 147 | + if is_win then 148 | + failwith "identify_dir"; (* not available *) 149 | + let s = Unix.stat d in 150 | (s.Unix.st_dev, s.Unix.st_ino) 151 | ;; 152 | 153 | @@ -459,6 +465,96 @@ 154 | ) 155 | packages 156 | 157 | +let rewrite_cmd s = 158 | + if s = "" || not is_win then 159 | + s 160 | + else 161 | + let s = 162 | + let l = String.length s in 163 | + let b = Buffer.create l in 164 | + for i = 0 to pred l do 165 | + match s.[i] with 166 | + | '/' -> Buffer.add_char b '\\' 167 | + | x -> Buffer.add_char b x 168 | + done; 169 | + Buffer.contents b 170 | + in 171 | + if (Filename.is_implicit s && String.contains s '\\' = false) || 172 | + Filename.check_suffix (String.lowercase s) ".exe" then 173 | + s 174 | + else 175 | + let s' = s ^ ".exe" in 176 | + if Sys.file_exists s' then 177 | + s' 178 | + else 179 | + s 180 | + 181 | +let rewrite_cmd s = 182 | + if s = "" || not is_win then s else 183 | + let s = 184 | + let l = String.length s in 185 | + let b = Buffer.create l in 186 | + for i = 0 to pred l do 187 | + match s.[i] with 188 | + | '/' -> Buffer.add_char b '\\' 189 | + | x -> Buffer.add_char b x 190 | + done; 191 | + Buffer.contents b 192 | + in 193 | + if (Filename.is_implicit s && String.contains s '\\' = false) || 194 | + Filename.check_suffix (String.lowercase s) ".exe" then 195 | + s 196 | + else 197 | + let s' = s ^ ".exe" in 198 | + if Sys.file_exists s' then 199 | + s' 200 | + else 201 | + s 202 | + 203 | +let rewrite_pp cmd = 204 | + if not is_win then cmd else 205 | + let module T = struct exception Keep end in 206 | + let is_whitespace = function 207 | + | ' ' | '\011' | '\012' | '\n' | '\r' | '\t' -> true 208 | + | _ -> false in 209 | + (* characters that triggers special behaviour (cmd.exe, not unix shell) *) 210 | + let is_unsafe_char = function 211 | + | '(' | ')' | '%' | '!' | '^' | '<' | '>' | '&' -> true 212 | + | _ -> false in 213 | + let len = String.length cmd in 214 | + let buf = Buffer.create (len + 4) in 215 | + let buf_cmd = Buffer.create len in 216 | + let rec iter_ws i = 217 | + if i >= len then () else 218 | + let cur = cmd.[i] in 219 | + if is_whitespace cur then ( 220 | + Buffer.add_char buf cur; 221 | + iter_ws (succ i) 222 | + ) 223 | + else 224 | + iter_cmd i 225 | + and iter_cmd i = 226 | + if i >= len then add_buf_cmd () else 227 | + let cur = cmd.[i] in 228 | + if is_unsafe_char cur || cur = '"' || cur = '\'' then 229 | + raise T.Keep; 230 | + if is_whitespace cur then ( 231 | + add_buf_cmd (); 232 | + Buffer.add_substring buf cmd i (len - i) 233 | + ) 234 | + else ( 235 | + Buffer.add_char buf_cmd cur; 236 | + iter_cmd (succ i) 237 | + ) 238 | + and add_buf_cmd () = 239 | + if Buffer.length buf_cmd > 0 then 240 | + Buffer.add_string buf (rewrite_cmd (Buffer.contents buf_cmd)) 241 | + in 242 | + try 243 | + iter_ws 0; 244 | + Buffer.contents buf 245 | + with 246 | + | T.Keep -> cmd 247 | 248 | let process_pp_spec syntax_preds packages pp_opts = 249 | (* Returns: pp_command *) 250 | @@ -549,7 +645,7 @@ 251 | None -> [] 252 | | Some cmd -> 253 | ["-pp"; 254 | - cmd ^ " " ^ 255 | + (rewrite_cmd cmd) ^ " " ^ 256 | String.concat " " (List.map Filename.quote pp_i_options) ^ " " ^ 257 | String.concat " " (List.map Filename.quote pp_archives) ^ " " ^ 258 | String.concat " " (List.map Filename.quote pp_opts)] 259 | @@ -625,9 +721,11 @@ 260 | in 261 | try 262 | let preprocessor = 263 | + rewrite_cmd ( 264 | resolve_path 265 | ~base ~explicit:true 266 | - (package_property predicates pname "ppx") in 267 | + (package_property predicates pname "ppx") ) 268 | + in 269 | ["-ppx"; String.concat " " (preprocessor :: options)] 270 | with Not_found -> [] 271 | ) 272 | @@ -895,6 +993,14 @@ 273 | switch (e.g. -L instead of -L ) 274 | *) 275 | 276 | +(* We may need to remove files on which we do not have complete control. 277 | + On Windows, removing a read-only file fails so try to change the 278 | + mode of the file first. *) 279 | +let remove_file fname = 280 | + try Sys.remove fname 281 | + with Sys_error _ when is_win -> 282 | + (try Unix.chmod fname 0o666 with Unix.Unix_error _ -> ()); 283 | + Sys.remove fname 284 | 285 | let ocamlc which () = 286 | 287 | @@ -1022,9 +1128,12 @@ 288 | 289 | "-intf", 290 | Arg.String (fun s -> pass_files := !pass_files @ [ Intf(slashify s) ]); 291 | - 292 | + 293 | "-pp", 294 | - Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" s); 295 | + Arg.String (fun s -> pp_specified := true; add_spec_fn "-pp" (rewrite_pp s)); 296 | + 297 | + "-ppx", 298 | + Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s)); 299 | 300 | "-thread", 301 | Arg.Unit (fun _ -> threads := threads_default); 302 | @@ -1237,7 +1346,7 @@ 303 | with 304 | any -> 305 | close_out initl; 306 | - Sys.remove initl_file_name; 307 | + remove_file initl_file_name; 308 | raise any 309 | end; 310 | 311 | @@ -1245,9 +1354,9 @@ 312 | at_exit 313 | (fun () -> 314 | let tr f x = try f x with _ -> () in 315 | - tr Sys.remove initl_file_name; 316 | - tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmi"); 317 | - tr Sys.remove (Filename.chop_extension initl_file_name ^ ".cmo"); 318 | + tr remove_file initl_file_name; 319 | + tr remove_file (Filename.chop_extension initl_file_name ^ ".cmi"); 320 | + tr remove_file (Filename.chop_extension initl_file_name ^ ".cmo"); 321 | ); 322 | 323 | let exclude_list = [ stdlibdir; threads_dir; vmthreads_dir ] in 324 | @@ -1493,7 +1602,9 @@ 325 | [ "-v", Arg.Unit (fun () -> verbose := Verbose); 326 | "-pp", Arg.String (fun s -> 327 | pp_specified := true; 328 | - options := !options @ ["-pp"; s]); 329 | + options := !options @ ["-pp"; rewrite_pp s]); 330 | + "-ppx", Arg.String (fun s -> 331 | + options := !options @ ["-ppx"; rewrite_pp s]); 332 | ] 333 | ) 334 | ) 335 | @@ -1672,7 +1783,9 @@ 336 | Arg.String (fun s -> add_spec_fn "-I" (slashify (resolve_path s))); 337 | 338 | "-pp", Arg.String (fun s -> pp_specified := true; 339 | - add_spec_fn "-pp" s); 340 | + add_spec_fn "-pp" (rewrite_pp s)); 341 | + "-ppx", Arg.String (fun s -> add_spec_fn "-ppx" (rewrite_pp s)); 342 | + 343 | ] 344 | ) 345 | ) 346 | @@ -1830,7 +1943,10 @@ 347 | output_string ch_out append; 348 | close_out ch_out; 349 | close_in ch_in; 350 | - Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime; 351 | + (try Unix.utimes outpath s.Unix.st_mtime s.Unix.st_mtime 352 | + with Unix.Unix_error(e,_,_) -> 353 | + prerr_endline("Warning: setting utimes for " ^ outpath 354 | + ^ ": " ^ Unix.error_message e)); 355 | 356 | prerr_endline("Installed " ^ outpath); 357 | with 358 | @@ -1882,6 +1998,8 @@ 359 | Unix.openfile (Filename.concat dir owner_file) [Unix.O_RDONLY] 0 in 360 | let f = 361 | Unix.in_channel_of_descr fd in 362 | + if is_win then 363 | + set_binary_mode_in f false; 364 | try 365 | let line = input_line f in 366 | let is_my_file = (line = pkg) in 367 | @@ -2208,7 +2326,7 @@ 368 | let lines = read_ldconf !ldconf in 369 | let dlldir_norm = Fl_split.norm_dir dlldir in 370 | let dlldir_norm_lc = string_lowercase_ascii dlldir_norm in 371 | - let ci_filesys = (Sys.os_type = "Win32") in 372 | + let ci_filesys = is_win in 373 | let check_dir d = 374 | let d' = Fl_split.norm_dir d in 375 | (d' = dlldir_norm) || 376 | @@ -2356,7 +2474,7 @@ 377 | List.iter 378 | (fun file -> 379 | let absfile = Filename.concat dlldir file in 380 | - Sys.remove absfile; 381 | + remove_file absfile; 382 | prerr_endline ("Removed " ^ absfile) 383 | ) 384 | dll_files 385 | @@ -2365,7 +2483,7 @@ 386 | (* Remove the files from the package directory: *) 387 | if Sys.file_exists pkgdir then begin 388 | let files = Sys.readdir pkgdir in 389 | - Array.iter (fun f -> Sys.remove (Filename.concat pkgdir f)) files; 390 | + Array.iter (fun f -> remove_file (Filename.concat pkgdir f)) files; 391 | Unix.rmdir pkgdir; 392 | prerr_endline ("Removed " ^ pkgdir) 393 | end 394 | @@ -2415,7 +2533,9 @@ 395 | 396 | 397 | let print_configuration() = 398 | + let sl = slashify in 399 | let dir s = 400 | + let s = sl s in 401 | if Sys.file_exists s then 402 | s 403 | else 404 | @@ -2453,27 +2573,27 @@ 405 | if md = "" then "the corresponding package directories" else dir md 406 | ); 407 | Printf.printf "The standard library is assumed to reside in:\n %s\n" 408 | - (Findlib.ocaml_stdlib()); 409 | + (sl (Findlib.ocaml_stdlib())); 410 | Printf.printf "The ld.conf file can be found here:\n %s\n" 411 | - (Findlib.ocaml_ldconf()); 412 | + (sl (Findlib.ocaml_ldconf())); 413 | flush stdout 414 | | Some "conf" -> 415 | - print_endline (Findlib.config_file()) 416 | + print_endline (sl (Findlib.config_file())) 417 | | Some "path" -> 418 | - List.iter print_endline (Findlib.search_path()) 419 | + List.iter ( fun x -> print_endline (sl x)) (Findlib.search_path()) 420 | | Some "destdir" -> 421 | - print_endline (Findlib.default_location()) 422 | + print_endline ( sl (Findlib.default_location())) 423 | | Some "metadir" -> 424 | - print_endline (Findlib.meta_directory()) 425 | + print_endline ( sl (Findlib.meta_directory())) 426 | | Some "metapath" -> 427 | let mdir = Findlib.meta_directory() in 428 | let ddir = Findlib.default_location() in 429 | - print_endline 430 | - (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META") 431 | + print_endline ( sl 432 | + (if mdir <> "" then mdir ^ "/META.%s" else ddir ^ "/%s/META")) 433 | | Some "stdlib" -> 434 | - print_endline (Findlib.ocaml_stdlib()) 435 | + print_endline ( sl (Findlib.ocaml_stdlib())) 436 | | Some "ldconf" -> 437 | - print_endline (Findlib.ocaml_ldconf()) 438 | + print_endline ( sl (Findlib.ocaml_ldconf())) 439 | | _ -> 440 | assert false 441 | ;; 442 | @@ -2481,7 +2601,7 @@ 443 | 444 | let ocamlcall pkg cmd = 445 | let dir = package_directory pkg in 446 | - let path = Filename.concat dir cmd in 447 | + let path = rewrite_cmd (Filename.concat dir cmd) in 448 | begin 449 | try Unix.access path [ Unix.X_OK ] 450 | with 451 | @@ -2647,6 +2767,10 @@ 452 | | Sys_error f -> 453 | prerr_endline ("ocamlfind: " ^ f); 454 | exit 2 455 | + | Unix.Unix_error (e, fn, f) -> 456 | + prerr_endline ("ocamlfind: " ^ fn ^ " " ^ f 457 | + ^ ": " ^ Unix.error_message e); 458 | + exit 2 459 | | Findlib.No_such_package(pkg,info) -> 460 | prerr_endline ("ocamlfind: Package `" ^ pkg ^ "' not found" ^ 461 | (if info <> "" then " - " ^ info else "")); 462 | --- ./src/findlib/Makefile 463 | +++ ./src/findlib/Makefile 464 | @@ -90,6 +90,7 @@ 465 | cat findlib_config.mlp | \ 466 | $(SH) $(TOP)/tools/patch '@CONFIGFILE@' '$(OCAMLFIND_CONF)' | \ 467 | $(SH) $(TOP)/tools/patch '@STDLIB@' '$(OCAML_CORE_STDLIB)' | \ 468 | + $(SH) $(TOP)/tools/patch '@EXEC_SUFFIX@' '$(EXEC_SUFFIX)' | \ 469 | sed -e 's;@AUTOLINK@;$(OCAML_AUTOLINK);g' \ 470 | -e 's;@SYSTEM@;$(SYSTEM);g' \ 471 | >findlib_config.ml 472 | -------------------------------------------------------------------------------- /esy.lock/overrides/opam__s__ocamlfind_secondary_opam__c__1.8.1_opam_override/files/gen-findlib-conf.sh: -------------------------------------------------------------------------------- 1 | OCAML_SECONDARY_COMPILER=$1 2 | 3 | cat >ocaml-secondary-compiler.conf <META <