Skip to content

Commit e28e7e4

Browse files
Enable SimpleSub type inference mode for kompile and kprove (#2421)
* Add type_inference_mode parameter to kevm_kompile * Set type_inference_mode default to CHECKED for a CI run * Set Version: 1.0.549 * Set Version: 1.0.552 * Change back to SIMPLESUB mode for merge --------- Co-authored-by: devops <[email protected]>
1 parent fc6062a commit e28e7e4

File tree

5 files changed

+27
-8
lines changed

5 files changed

+27
-8
lines changed

kevm-pyk/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
44

55
[tool.poetry]
66
name = "kevm-pyk"
7-
version = "1.0.551"
7+
version = "1.0.552"
88
description = ""
99
authors = [
1010
"Runtime Verification, Inc. <[email protected]>",

kevm-pyk/src/kevm_pyk/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
if TYPE_CHECKING:
66
from typing import Final
77

8-
VERSION: Final = '1.0.551'
8+
VERSION: Final = '1.0.552'

kevm-pyk/src/kevm_pyk/kompile.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from typing import TYPE_CHECKING
99

1010
from pyk.kdist import kdist
11+
from pyk.ktool import TypeInferenceMode
1112
from pyk.ktool.kompile import HaskellKompile, KompileArgs, LLVMKompile, LLVMKompileType, MaudeKompile
1213
from pyk.utils import run_process
1314

@@ -61,6 +62,7 @@ def kevm_kompile(
6162
debug_build: bool = False,
6263
debug: bool = False,
6364
verbose: bool = False,
65+
type_inference_mode: str | TypeInferenceMode | None = None,
6466
) -> Path:
6567
if plugin_dir is None:
6668
plugin_dir = kdist.get('evm-semantics.plugin')
@@ -83,6 +85,7 @@ def kevm_kompile(
8385
debug_build=debug_build,
8486
debug=debug,
8587
verbose=verbose,
88+
type_inference_mode=type_inference_mode,
8689
)
8790

8891

@@ -104,10 +107,14 @@ def run_kompile(
104107
debug_build: bool = False,
105108
debug: bool = False,
106109
verbose: bool = False,
110+
type_inference_mode: str | TypeInferenceMode | None = None,
107111
) -> Path:
108112
if llvm_library is None:
109113
llvm_library = output_dir / 'llvm-library'
110114

115+
if type_inference_mode is None:
116+
type_inference_mode = TypeInferenceMode.SIMPLESUB
117+
111118
include_dirs = [Path(include) for include in includes]
112119
include_dirs += config.INCLUDE_DIRS
113120

@@ -136,7 +143,9 @@ def run_kompile(
136143
llvm_kompile_type=llvm_kompile_type,
137144
enable_llvm_debug=enable_llvm_debug,
138145
)
139-
return kompile(output_dir=output_dir, debug=debug, verbose=verbose)
146+
return kompile(
147+
output_dir=output_dir, debug=debug, verbose=verbose, type_inference_mode=type_inference_mode
148+
)
140149

141150
case KompileTarget.MAUDE:
142151
kompile_maude = MaudeKompile(
@@ -147,10 +156,14 @@ def run_kompile(
147156
maude_dir = output_dir / 'kompiled-maude'
148157

149158
def _kompile_maude() -> None:
150-
kompile_maude(output_dir=maude_dir, debug=debug, verbose=verbose)
159+
kompile_maude(
160+
output_dir=maude_dir, debug=debug, verbose=verbose, type_inference_mode=type_inference_mode
161+
)
151162

152163
def _kompile_haskell() -> None:
153-
kompile_haskell(output_dir=output_dir, debug=debug, verbose=verbose)
164+
kompile_haskell(
165+
output_dir=output_dir, debug=debug, verbose=verbose, type_inference_mode=type_inference_mode
166+
)
154167

155168
with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
156169
futures = [
@@ -178,10 +191,14 @@ def _kompile_haskell() -> None:
178191
kompile_haskell = HaskellKompile(base_args=base_args, haskell_binary=haskell_binary)
179192

180193
def _kompile_llvm() -> None:
181-
kompile_llvm(output_dir=llvm_library, debug=debug, verbose=verbose)
194+
kompile_llvm(
195+
output_dir=llvm_library, debug=debug, verbose=verbose, type_inference_mode=type_inference_mode
196+
)
182197

183198
def _kompile_haskell() -> None:
184-
kompile_haskell(output_dir=output_dir, debug=debug, verbose=verbose)
199+
kompile_haskell(
200+
output_dir=output_dir, debug=debug, verbose=verbose, type_inference_mode=type_inference_mode
201+
)
185202

186203
with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
187204
futures = [

kevm-pyk/src/kevm_pyk/utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from pyk.kast.outer import KSequence
2323
from pyk.kcfg import KCFGExplore
2424
from pyk.kore.rpc import KoreClient, KoreExecLogFormat, TransportType, kore_server
25+
from pyk.ktool import TypeInferenceMode
2526
from pyk.proof import APRProof, APRProver
2627
from pyk.proof.implies import EqualityProof, ImpliesProver
2728
from pyk.proof.proof import parallel_advance_proof
@@ -87,6 +88,7 @@ def get_apr_proof_for_spec(
8788
md_selector=md_selector,
8889
claim_labels=claim_labels,
8990
exclude_claim_labels=exclude_claim_labels,
91+
type_inference_mode=TypeInferenceMode.SIMPLESUB,
9092
)
9193
)
9294

package/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.551
1+
1.0.552

0 commit comments

Comments
 (0)