Skip to content

Commit bb13a1e

Browse files
Merge branch 'master' into add-bytes-lookup-lemmas
2 parents f8fc873 + bdd3942 commit bb13a1e

279 files changed

Lines changed: 12176 additions & 3357 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/with-docker/action.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ inputs:
1515
required: false
1616
type: string
1717
default: './'
18-
os:
18+
os:
1919
description: 'OS to setup Docker for.'
2020
required: false
2121
type: string
@@ -55,6 +55,7 @@ runs:
5555
GROUP=${USER}
5656
Z3_VERSION=$(cat deps/z3)
5757
K_VERSION=$(cat deps/k_release)
58+
UV_VERSION=$(cat deps/uv_release)
5859
USER_ID=1000
5960
GROUP_ID=${USER_ID}
6061
@@ -67,7 +68,8 @@ runs:
6768
--build-arg BASE_DISTRO=${BASE_DISTRO} \
6869
--build-arg K_VERSION=${K_VERSION} \
6970
--build-arg Z3_VERSION=${Z3_VERSION} \
70-
--build-arg LLVM_VERSION=${LLVM_VERSION}
71+
--build-arg LLVM_VERSION=${LLVM_VERSION} \
72+
--build-arg UV_VERSION=${UV_VERSION}
7173
7274
docker run \
7375
--name ${CONTAINER_NAME} \

.github/workflows/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,6 @@ WORKDIR /home/${USER}/workspace
4343

4444
ENV PATH=/home/${USER}/.local/bin:${PATH}
4545

46-
RUN curl -sSL https://install.python-poetry.org | python3 - --version 1.8.3 \
47-
&& poetry --version
46+
ARG UV_VERSION
47+
RUN curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | sh \
48+
&& uv --version

.github/workflows/release.yml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ jobs:
3636
matrix:
3737
include:
3838
- runner: normal
39-
- runner: macos-13
4039
- runner: ARM64
4140
runs-on: ${{ matrix.runner }}
4241
needs: draft-release
@@ -46,23 +45,6 @@ jobs:
4645
with:
4746
ref: ${{ github.event.push.head.sha }}
4847
fetch-depth: 0
49-
- name: 'Upgrade bash'
50-
if: ${{ contains(matrix.os, 'macos') }}
51-
run: brew install bash
52-
- name: 'Install Nix'
53-
if: ${{ matrix.runner == 'macos-13' }}
54-
uses: cachix/install-nix-action@v19
55-
with:
56-
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
57-
extra_nix_config: |
58-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
59-
- name: 'Install Cachix'
60-
if: ${{ matrix.runner == 'macos-13' }}
61-
uses: cachix/cachix-action@v12
62-
with:
63-
name: k-framework
64-
signingKey: ${{ secrets.CACHIX_SIGNING_KEY }}
65-
skipPush: true
6648
- name: 'Build KEVM'
6749
run: |
6850
GC_DONT_GC=1 nix build --extra-experimental-features 'nix-command flakes' --print-build-logs

.github/workflows/test-pr.yml

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,20 @@ jobs:
1212
name: 'Code Quality Checks'
1313
runs-on: ubuntu-latest
1414
steps:
15+
- name: 'Check out code'
16+
uses: actions/checkout@v4
1517
- name: 'Setup Python 3.10'
1618
uses: actions/setup-python@v5
1719
with:
1820
python-version: '3.10'
19-
- name: 'Check out code'
20-
uses: actions/checkout@v4
21-
- name: 'Install Poetry'
22-
uses: Gr1N/setup-poetry@v9
21+
- name: 'Get uv release'
22+
id: uv_release
23+
run: |
24+
echo uv_version=$(cat deps/uv_release) >> "${GITHUB_OUTPUT}"
25+
- name: 'Install uv'
26+
uses: astral-sh/setup-uv@v6
27+
with:
28+
version: ${{ steps.uv_release.outputs.uv_version }}
2329
- name: 'Run code quality checks'
2430
run: make -C kevm-pyk check
2531
- name: 'Run pyupgrade'
@@ -32,8 +38,14 @@ jobs:
3238
steps:
3339
- name: 'Check out code'
3440
uses: actions/checkout@v4
35-
- name: 'Install Poetry'
36-
uses: Gr1N/setup-poetry@v9
41+
- name: 'Get uv release'
42+
id: uv_release
43+
run: |
44+
echo uv_version=$(cat deps/uv_release) >> "${GITHUB_OUTPUT}"
45+
- name: 'Install uv'
46+
uses: astral-sh/setup-uv@v6
47+
with:
48+
version: ${{ steps.uv_release.outputs.uv_version }}
3749
- name: 'Run unit tests'
3850
run: make -C kevm-pyk cov-unit
3951

@@ -44,8 +56,14 @@ jobs:
4456
steps:
4557
- name: 'Check out code'
4658
uses: actions/checkout@v4
47-
- name: 'Install Poetry'
48-
uses: Gr1N/setup-poetry@v9
59+
- name: 'Get uv release'
60+
id: uv_release
61+
run: |
62+
echo uv_version=$(cat deps/uv_release) >> "${GITHUB_OUTPUT}"
63+
- name: 'Install uv'
64+
uses: astral-sh/setup-uv@v6
65+
with:
66+
version: ${{ steps.uv_release.outputs.uv_version }}
4967
- name: 'Run profiling'
5068
run: |
5169
make -C kevm-pyk profile
@@ -64,14 +82,14 @@ jobs:
6482
uses: ./.github/actions/with-docker
6583
with:
6684
container-name: kevm-ci-concrete-${{ github.sha }}
67-
- name: 'Build kevm-pyk'
68-
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make poetry'
6985
- name: 'Build targets'
70-
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 poetry -C kevm-pyk run kdist --verbose build -j`nproc` evm-semantics.haskell evm-semantics.kllvm evm-semantics.kllvm-runtime'
86+
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 uv --project kevm-pyk run -- kdist --verbose build -j`nproc` evm-semantics.haskell evm-semantics.kllvm evm-semantics.kllvm-runtime'
7187
- name: 'Test integration'
7288
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-integration'
7389
- name: 'Test conformance'
7490
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-conformance'
91+
- name: 'Test execution-spec-tests'
92+
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-fixtures'
7593
- name: 'Test llvm krun'
7694
run: docker exec -u github-user kevm-ci-concrete-${{ github.sha }} /bin/bash -c 'make test-interactive'
7795
- name: 'Tear down Docker'
@@ -108,10 +126,10 @@ jobs:
108126
timeout: 45
109127
parallel: 1
110128
- name: 'Summarization'
111-
test-suite: 'test-summarize'
129+
test-suite: 'test-prove-summaries'
112130
test-args:
113-
timeout: 30
114-
parallel: 6
131+
timeout: 45
132+
parallel: 4
115133
- name: 'DSS'
116134
test-suite: 'test-prove-dss'
117135
test-args:
@@ -129,10 +147,8 @@ jobs:
129147
uses: ./.github/actions/with-docker
130148
with:
131149
container-name: kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }}
132-
- name: 'Build kevm-pyk'
133-
run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c 'make poetry'
134150
- name: 'Build distribution'
135-
run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 poetry -C kevm-pyk run kdist --verbose build -j`nproc` evm-semantics.plugin evm-semantics.haskell evm-semantics.summary'
151+
run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c 'CXX=clang++-14 uv --project kevm-pyk run -- kdist --verbose build -j`nproc` evm-semantics.plugin evm-semantics.haskell evm-semantics.haskell-summary'
136152
- name: 'Run proofs'
137153
run: docker exec -u github-user kevm-ci-haskell-${{ matrix.test-suite }}-${{ github.sha }} /bin/bash -c "make ${{ matrix.test-suite }} PYTEST_ARGS='-vv ${{ matrix.test-args }}' PYTEST_PARALLEL=${{ matrix.parallel }}"
138154
- name: 'Tear down Docker'
@@ -147,7 +163,6 @@ jobs:
147163
matrix:
148164
include:
149165
- runner: normal
150-
- runner: macos-13
151166
- runner: ARM64
152167
needs: kevm-pyk-code-quality-checks
153168
runs-on: ${{ matrix.runner }}
@@ -162,20 +177,6 @@ jobs:
162177
run: |
163178
set -eux
164179
git submodule update --init --recursive -- kevm-pyk/src/kevm_pyk/kproj/plugin
165-
- name: 'Install Nix'
166-
if: ${{ matrix.runner == 'macos-13' }}
167-
uses: cachix/install-nix-action@v25
168-
with:
169-
install_url: https://releases.nixos.org/nix/nix-2.19.3/install
170-
extra_nix_config: |
171-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
172-
substituters = http://cache.nixos.org https://cache.iog.io
173-
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=
174-
- name: 'Install Cachix'
175-
if: ${{ matrix.runner == 'macos-13' }}
176-
uses: cachix/cachix-action@v14
177-
with:
178-
name: k-framework
179180
- name: 'Build KEVM'
180181
run: GC_DONT_GC=1 nix build --extra-experimental-features 'nix-command flakes' --print-build-logs
181182
- name: 'Test KEVM'

.github/workflows/update-version.yml

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ on:
44
branches:
55
- '_update-deps/runtimeverification/blockchain-k-plugin'
66
- '_update-deps/runtimeverification/k'
7+
- '_update-deps/runtimeverification/rv-nix-tools'
8+
- '_update-deps-cron/uv2nix'
9+
- '_update-deps-cron/pyproject-build-systems'
710
workflow_dispatch:
811
# Stop in progress workflows on the same branch and same workflow to use latest committed code
912
concurrency:
@@ -25,23 +28,34 @@ jobs:
2528
run: |
2629
git config user.name devops
2730
git config user.email devops@runtimeverification.com
28-
- name: 'Install Poetry'
29-
uses: Gr1N/setup-poetry@v9
31+
- name: 'Get uv release'
32+
id: uv_release
33+
run: |
34+
UV2NIX_VERSION=$(cat deps/uv2nix)
35+
UV_VERSION=$(curl -s https://raw.githubusercontent.com/pyproject-nix/uv2nix/$(cat deps/uv2nix)/pkgs/uv-bin/srcs.json | jq -r .version)
36+
[[ "${UV_VERSION}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]
37+
echo ${UV_VERSION} > deps/uv_release
38+
git add deps/uv_release && git commit -m "Sync uv version: uv ${UV_VERSION}" || true
39+
echo uv_version=${UV_VERSION} >> "${GITHUB_OUTPUT}"
40+
- name: 'Install uv'
41+
uses: astral-sh/setup-uv@v6
42+
with:
43+
version: ${{ steps.uv_release.outputs.uv_version }}
3044
- name: 'Update pyk release tag'
3145
run: |
3246
K_VERSION=$(cat deps/k_release)
33-
sed -i 's!kframework = "[0-9\.]*"!kframework = "'${K_VERSION}'"!' kevm-pyk/pyproject.toml
34-
poetry -C kevm-pyk update
35-
git add kevm-pyk/ && git commit -m "kevm-pyk/: sync poetry files pyk version ${K_VERSION}" || true
47+
sed -i 's! "kframework==[0-9\.]*,"! "kframework=='${K_VERSION}'",!' kevm-pyk/pyproject.toml
48+
uv --project kevm-pyk lock --upgrade
49+
git add kevm-pyk/ && git commit -m "kevm-pyk/: sync uv files pyk version ${K_VERSION}" || true
3650
- name: 'Update plugin release file'
3751
run: |
3852
BKP_VERSION=$(git -C kevm-pyk/src/kevm_pyk/kproj/plugin rev-parse HEAD)
3953
echo ${BKP_VERSION} > deps/blockchain-k-plugin_release
4054
git add deps/blockchain-k-plugin_release && git commit -m "deps/blockchain-k-plugin_release: sync release file version ${BKP_VERSION}" || true
4155
- name: 'Install Nix/Cachix'
42-
uses: cachix/install-nix-action@v19
56+
uses: cachix/install-nix-action@v31.5.1
4357
with:
44-
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
58+
install_url: https://releases.nixos.org/nix/nix-2.30.1/install
4559
extra_nix_config: |
4660
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
4761
- uses: cachix/cachix-action@v12
@@ -52,8 +66,14 @@ jobs:
5266
run: |
5367
K_VERSION=v$(cat deps/k_release)
5468
BKP_VERSION=$(cat deps/blockchain-k-plugin_release)
69+
UV2NIX_VERSION=$(cat deps/uv2nix)
70+
PYPROJECT_BUILD_SYSTEMS_VERSION=$(cat deps/pyproject-build-systems)
71+
RV_NIX_TOOLS_VERSION=$(cat deps/rv-nix-tools)
5572
sed -i 's! k-framework.url = "github:runtimeverification/k/[v0-9\.]*"! k-framework.url = "github:runtimeverification/k/'"${K_VERSION}"'"!' flake.nix
5673
sed -i 's! "github:runtimeverification/blockchain-k-plugin/[0-9a-f]*"! "github:runtimeverification/blockchain-k-plugin/'"${BKP_VERSION}"'"!' flake.nix
74+
sed -i 's! uv2nix.url = "github:pyproject-nix/uv2nix/[a-z0-9\.]*"! uv2nix.url = "github:pyproject-nix/uv2nix/'"${UV2NIX_VERSION}"'"!' flake.nix
75+
sed -i 's! pyproject-build-systems.url = "github:pyproject-nix/build-system-pkgs/[a-z0-9\.]*"! pyproject-build-systems.url = "github:pyproject-nix/build-system-pkgs/'"${PYPROJECT_BUILD_SYSTEMS_VERSION}"'"!' flake.nix
76+
sed -i 's! rv-nix-tools.url = "github:runtimeverification/rv-nix-tools/[a-z0-9\.]*"! rv-nix-tools.url = "github:runtimeverification/rv-nix-tools/'"${RV_NIX_TOOLS_VERSION}"'"!' flake.nix
5777
nix run .#update-from-submodules
5878
nix flake update
5979
git add flake.nix flake.lock && git commit -m 'flake.{nix,lock}: update Nix derivations' || true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
/tests/specs/opcodes/evm-optimizations-spec.md
1818
/tests/specs/**/*.prove.out
1919
/tests/specs/**/*.sol.json
20+
/tests/execution-spec-tests/fixtures
2021
/tests/vm/*.out
2122
.DS_Store
2223
.idea/

0 commit comments

Comments
 (0)