{"id":25391576,"url":"https://github.com/logsem/iris-wasmfx","last_synced_at":"2025-04-10T00:48:38.247Z","repository":{"id":277530306,"uuid":"859273956","full_name":"logsem/iris-wasmfx","owner":"logsem","description":"Iris-WasmFX program logic and logical relation for WasmFX","archived":false,"fork":false,"pushed_at":"2025-04-02T16:02:37.000Z","size":2245,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T00:48:31.511Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/logsem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-18T11:43:21.000Z","updated_at":"2025-04-02T16:02:40.000Z","dependencies_parsed_at":"2025-03-07T18:21:43.629Z","dependency_job_id":"5cfa24be-d975-4a9b-8681-dd43cd260b70","html_url":"https://github.com/logsem/iris-wasmfx","commit_stats":null,"previous_names":["logsem/iris-wasmfx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Firis-wasmfx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Firis-wasmfx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Firis-wasmfx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Firis-wasmfx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/logsem","download_url":"https://codeload.github.com/logsem/iris-wasmfx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248138000,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-15T15:56:01.362Z","updated_at":"2025-04-10T00:48:38.223Z","avatar_url":"https://github.com/logsem.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Step-by-Step Instructions\n\n## Manual Installation and Compilation\n\nThe project can be installed using opam.\n\nWe recommend creating a new switch to start from a clean environment. We have compiled the project with version 4.14.2. The following code creates a switch with the necessary version:\n```bash\nopam switch create iris-wasm-artifact-switch ocaml.4.14.2\n```\n\nDepending on the opam configuration, it may be necessary to manually switch to the newly created switch:\n```bash\nopam switch iris-wasm-artifact-switch\neval $(opam env --switch iris-wasm-artifact-switch --set-switch)\n```\n\nThe following code fetches all necessary dependencies from opam and compiles the development:\n```bash\nopam repo add coq-released https://coq.inria.fr/opam/released\nopam install .\n```\n\nIf all necessary packages are present in the opam environment, the development can also be compiled by running\n```bash\nmake\n```\n\nCompiling the development requires at least 8GB of RAM and may take over 30 minutes.\n\n## Browsing the Proofs\n\nBrowsing proofs can be done conveniently in emacs. For example:\n\n```bash\nesy theories/iris/examples/iris_examples.v\n```\nThis opens the file containing some direct examples of using the program logic in Emacs, assuming Emacs and Proof General are installed. Other proofs can be browsed similarly. Emacs can be installed via command line:\n```bash\napt install emacs\n```\n\nThe instruction to install Proof General can be found at https://proofgeneral.github.io.\n\nAlthough not necessary, we also recommend installing the Company-Coq plugin for pretty printing and easier editing to the proofs. The instruction to install Company-Coq can be found at https://github.com/cpitclaudel/company-coq. Company-Coq is pre-installed in the VM image provided.\n\n### Troubleshooting\n\nIf running `make` fails, the issue is likely a missing package in opam, or a package with the wrong version. Check what version of each package opam has registered by running `opam list`. A list of necessary packages and the requirements on their versions can be found in the `dune-project` file; in case of a discrepancy, the correct version can be manually installed.\n\nMissing packages, or packages with the wrong version, can be installed manually using `opam install`. For instance, to get the correct version of `coq-iris` or `mdx`, run:\n```bash\nopam install coq-iris.4.3.0\nopam install mdx.2.5.0\n```\n\nSome packages are in the `coq-released` repository; in order to let opam know where to fetch these, before running `opam install` run:\n```bash\nopam repo add coq-released https://coq.inria.fr/opam/released\n```\n\nA shorthand to install all missing dependencies and compile the development is:\n```bash\nopam install .\n```\n\n### Warnings that are Safe to Ignore\n\nWhen browsing the proofs in Emacs + Proof General, a warning on boolean coercion will pop up in the Coq response prompt when the theorem prover runs past the imports. This is because two of our dependencies, ssreflect and stdpp, each implements its own coercion of Bool into Prop, resulting in ambiguous coercion paths. However, this can be safely ignored since the two implementations are essentially the same.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogsem%2Firis-wasmfx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogsem%2Firis-wasmfx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogsem%2Firis-wasmfx/lists"}