diff --git a/kevm-pyk/pyproject.toml b/kevm-pyk/pyproject.toml index 07d1d06e1f..a326a912b1 100644 --- a/kevm-pyk/pyproject.toml +++ b/kevm-pyk/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kevm-pyk" -version = "1.0.640" +version = "1.0.641" description = "" authors = [ "Runtime Verification, Inc. ", diff --git a/kevm-pyk/src/kevm_pyk/__init__.py b/kevm-pyk/src/kevm_pyk/__init__.py index f9c44a5bb5..32866874dc 100644 --- a/kevm-pyk/src/kevm_pyk/__init__.py +++ b/kevm-pyk/src/kevm_pyk/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '1.0.640' +VERSION: Final = '1.0.641' diff --git a/kevm-pyk/src/kevm_pyk/interpreter.py b/kevm-pyk/src/kevm_pyk/interpreter.py index e21d09efdd..6f3b13e8c5 100644 --- a/kevm-pyk/src/kevm_pyk/interpreter.py +++ b/kevm-pyk/src/kevm_pyk/interpreter.py @@ -4,7 +4,7 @@ from pyk.kdist import kdist from pyk.kore.parser import KoreParser -from pyk.utils import run_process +from pyk.utils import run_process_2 from .gst_to_kore import gst_to_kore @@ -28,5 +28,5 @@ def interpret(gst_data: Any, schedule: str, mode: str, chainid: int, usegas: boo def _interpret(gst_data: Any, schedule: str, mode: str, chainid: int, usegas: bool) -> CompletedProcess: interpreter = kdist.get('evm-semantics.llvm') / 'interpreter' init_kore = gst_to_kore(gst_data, schedule, mode, chainid, usegas) - proc_res = run_process([str(interpreter), '/dev/stdin', '-1', '/dev/stdout'], input=init_kore.text, check=False) + proc_res = run_process_2([str(interpreter), '/dev/stdin', '-1', '/dev/stdout'], input=init_kore.text, check=False) return proc_res diff --git a/kevm-pyk/src/kevm_pyk/kdist/plugin.py b/kevm-pyk/src/kevm_pyk/kdist/plugin.py index 601ac5be89..5f246eac43 100644 --- a/kevm-pyk/src/kevm_pyk/kdist/plugin.py +++ b/kevm-pyk/src/kevm_pyk/kdist/plugin.py @@ -7,7 +7,7 @@ from pyk.kbuild.utils import k_version, sync_files from pyk.kdist.api import Target from pyk.kllvm.compiler import compile_kllvm, compile_runtime -from pyk.utils import run_process +from pyk.utils import run_process_2 from .. import config from ..kompile import KompileTarget, kevm_kompile, lib_ccopts @@ -63,10 +63,7 @@ def build(self, output_dir: Path, deps: dict[str, Any], args: dict[str, Any], ve ) copy_tree(str(config.PLUGIN_DIR), '.') - run_process( - ['make', 'libcryptopp', 'libff', 'blake2', '-j8'], - pipe_stdout=not verbose, - ) + run_process_2(['make', 'libcryptopp', 'libff', 'blake2', '-j8']) copy_tree('./build/libcryptopp', str(output_dir / 'libcryptopp')) copy_tree('./build/libff', str(output_dir / 'libff')) diff --git a/kevm-pyk/src/kevm_pyk/kompile.py b/kevm-pyk/src/kevm_pyk/kompile.py index 71c470b693..9c94686c4b 100644 --- a/kevm-pyk/src/kevm_pyk/kompile.py +++ b/kevm-pyk/src/kevm_pyk/kompile.py @@ -9,7 +9,7 @@ from pyk.kdist import kdist from pyk.ktool import TypeInferenceMode from pyk.ktool.kompile import HaskellKompile, KompileArgs, LLVMKompile, LLVMKompileType, MaudeKompile -from pyk.utils import run_process +from pyk.utils import run_process_2 from . import config @@ -129,17 +129,38 @@ def run_kompile( kernel = sys.platform haskell_binary = kernel != 'darwin' - try: - match target: - case KompileTarget.LLVM: - kompile = LLVMKompile( - base_args=base_args, - ccopts=ccopts, - opt_level=optimization, - llvm_kompile_type=llvm_kompile_type, - enable_llvm_debug=enable_llvm_debug, + match target: + case KompileTarget.LLVM: + kompile = LLVMKompile( + base_args=base_args, + ccopts=ccopts, + opt_level=optimization, + llvm_kompile_type=llvm_kompile_type, + enable_llvm_debug=enable_llvm_debug, + ) + return kompile( + output_dir=output_dir, + debug=debug, + verbose=verbose, + type_inference_mode=type_inference_mode, + ignore_warnings=ignore_warnings, + ) + + case KompileTarget.MAUDE: + kompile_maude = MaudeKompile( + base_args=base_args, + ) + kompile_haskell = HaskellKompile(base_args=base_args) + + maude_dir = output_dir / 'kompiled-maude' + + def _kompile_maude() -> None: + kompile_maude( + output_dir=maude_dir, debug=debug, verbose=verbose, type_inference_mode=type_inference_mode ) - return kompile( + + def _kompile_haskell() -> None: + kompile_haskell( output_dir=output_dir, debug=debug, verbose=verbose, @@ -147,89 +168,60 @@ def run_kompile( ignore_warnings=ignore_warnings, ) - case KompileTarget.MAUDE: - kompile_maude = MaudeKompile( - base_args=base_args, - ) - kompile_haskell = HaskellKompile(base_args=base_args) - - maude_dir = output_dir / 'kompiled-maude' - - def _kompile_maude() -> None: - kompile_maude( - output_dir=maude_dir, debug=debug, verbose=verbose, type_inference_mode=type_inference_mode - ) - - def _kompile_haskell() -> None: - kompile_haskell( - output_dir=output_dir, - debug=debug, - verbose=verbose, - type_inference_mode=type_inference_mode, - ignore_warnings=ignore_warnings, - ) - - with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor: - futures = [ - executor.submit(_kompile_maude), - executor.submit(_kompile_haskell), - ] - [future.result() for future in futures] - - return output_dir - - case KompileTarget.HASKELL: - base_args_llvm = KompileArgs( - main_file=main_file, - main_module=main_module, - syntax_module=syntax_module, - include_dirs=include_dirs, - md_selector=KompileTarget.LLVM.md_selector, - hook_namespaces=HOOK_NAMESPACES, - emit_json=emit_json, - read_only=read_only, + with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor: + futures = [ + executor.submit(_kompile_maude), + executor.submit(_kompile_haskell), + ] + [future.result() for future in futures] + + return output_dir + + case KompileTarget.HASKELL: + base_args_llvm = KompileArgs( + main_file=main_file, + main_module=main_module, + syntax_module=syntax_module, + include_dirs=include_dirs, + md_selector=KompileTarget.LLVM.md_selector, + hook_namespaces=HOOK_NAMESPACES, + emit_json=emit_json, + read_only=read_only, + ) + kompile_llvm = LLVMKompile( + base_args=base_args_llvm, ccopts=ccopts, opt_level=optimization, llvm_kompile_type=LLVMKompileType.C + ) + kompile_haskell = HaskellKompile(base_args=base_args, haskell_binary=haskell_binary) + + def _kompile_llvm() -> None: + kompile_llvm( + output_dir=output_dir / 'llvm-library', + debug=debug, + verbose=verbose, + type_inference_mode=type_inference_mode, + ignore_warnings=ignore_warnings, ) - kompile_llvm = LLVMKompile( - base_args=base_args_llvm, ccopts=ccopts, opt_level=optimization, llvm_kompile_type=LLVMKompileType.C + + def _kompile_haskell() -> None: + kompile_haskell( + output_dir=output_dir, + debug=debug, + verbose=verbose, + type_inference_mode=type_inference_mode, + ignore_warnings=ignore_warnings, ) - kompile_haskell = HaskellKompile(base_args=base_args, haskell_binary=haskell_binary) - - def _kompile_llvm() -> None: - kompile_llvm( - output_dir=output_dir / 'llvm-library', - debug=debug, - verbose=verbose, - type_inference_mode=type_inference_mode, - ignore_warnings=ignore_warnings, - ) - - def _kompile_haskell() -> None: - kompile_haskell( - output_dir=output_dir, - debug=debug, - verbose=verbose, - type_inference_mode=type_inference_mode, - ignore_warnings=ignore_warnings, - ) - - with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor: - futures = [ - executor.submit(_kompile_llvm), - executor.submit(_kompile_haskell), - ] - [future.result() for future in futures] - - return output_dir - case _: - raise ValueError(f'Unsupported target: {target.value}') + with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor: + futures = [ + executor.submit(_kompile_llvm), + executor.submit(_kompile_haskell), + ] + [future.result() for future in futures] + + return output_dir - except RuntimeError as err: - sys.stderr.write(f'\nkompile stdout:\n{err.args[1]}\n') - sys.stderr.write(f'\nkompile stderr:\n{err.args[2]}\n') - sys.stderr.write(f'\nkompile returncode:\n{err.args[3]}\n') - sys.stderr.flush() - raise + case _: + raise ValueError(f'Unsupported target: {target.value}') def lib_ccopts(plugin_dir: Path, debug_build: bool = False) -> list[str]: @@ -259,13 +251,13 @@ def lib_ccopts(plugin_dir: Path, debug_build: bool = False) -> list[str]: if kernel == 'darwin': if not config.NIX_LIBS: - brew_root = run_process(('brew', '--prefix'), pipe_stderr=True, logger=_LOGGER).stdout.strip() + brew_root = run_process_2(('brew', '--prefix'), logger=_LOGGER).stdout.strip() ccopts += [ f'-I{brew_root}/include', f'-L{brew_root}/lib', ] - openssl_root = run_process(('brew', '--prefix', 'openssl'), pipe_stderr=True, logger=_LOGGER).stdout.strip() + openssl_root = run_process_2(('brew', '--prefix', 'openssl'), logger=_LOGGER).stdout.strip() ccopts += [ f'-I{openssl_root}/include', f'-L{openssl_root}/lib', diff --git a/package/version b/package/version index efc2b4ce34..0b305c255f 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -1.0.640 +1.0.641