runtimeverification / runtimeverification/kontrol

Running Kontrol with custom evm-semantics/pyk

Open
#319 3 comments 0 reactions 0 assignees View on GitHub

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-semantics to point at the custom pyk:
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 kontrol to point at the custom evm-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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.