runtimeverification / runtimeverification/kontrol
Running Kontrol with custom evm-semantics/pyk
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 122
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
When developing python code for Kontrol, you usually may need a custom pyk or evm-semantics to run against. To do this, you need to modify pyproject.toml to point at the custom version.
In particular, you will need:
- A checkout of
pyk, perhaps at/home/dev/src/pyk. - A checkout of
evm-semantics, perhaps at/home/dev/src/evm-semantics - A checkout of
kontrol, perhaps at/home/dev/src/kontrol.
NOTE: Make sure to follow all the steps of the build instructions on the README files of the pyk, evm-semantics and kontrol repos when first setting up your local working copies. In particular, make sure to install the dependencies, checkout the submodules and run the kdist commands to build the definitions. If you get errors when building one of the projects, go back and check if you didn't miss a step.
Then you need to:
- Modify
evm-semanticsto point at the custompyk:
diff --git a/kevm-pyk/pyproject.toml b/kevm-pyk/pyproject.toml
index 3c55a49ce..65f8ce137 100644
--- a/kevm-pyk/pyproject.toml
+++ b/kevm-pyk/pyproject.toml
@@ -13,7 +13,8 @@ authors = [
[tool.poetry.dependencies]
python = "^3.10"
pathos = "*"
-pyk = { git = "https://github.com/runtimeverification/pyk.git", tag="v0.1.592" }
+pyk = { path = "/home/dev/src/pyk", develop = true }
tomlkit = "^0.11.6"
[tool.poetry.group.dev.dependencies]
- Ensure that evm-semantics builds correctly with this change:
cd kevm-pyk && make - Modify
kontrolto point at the customevm-semantics:
diff --git a/pyproject.toml b/pyproject.toml
index 601660d..65662b4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,7 +12,8 @@ authors = [
[tool.poetry.dependencies]
python = "^3.10"
-kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.431", subdirectory = "kevm-pyk" }
+# kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.431", subdirectory = "kevm-pyk" }
+kevm-pyk = { path = "/home/dev/src/evm-semantics/kevm-pyk", develop = true }
[tool.poetry.group.dev.dependencies]
autoflake = "*"
- Ensure that kontrol builds correctly with this change:
make
Then, you should be all setup to work on Kontrol and make changes that may also require changes to KEVM and pyk.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the README files and the pyproject.toml files in the pyk, evm-semantics, and kontrol checkouts. Start by following the existing build instructions and the commands shown in the issue, then document the custom-path setup and confirm that both evm-semantics and Kontrol build successfully with the local dependencies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- developer-experience, documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100