shared/runtime/pyexec: Provide support for compile-only mode.

When `MICROPY_PYEXEC_COMPILE_ONLY` is enabled and the global
`mp_compile_only` is True, code is compiled but not executed.

Also add comprehensive tests for compile-only functionality covering both
successful compilation and syntax error detection.

Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
This commit is contained in:
Andrew Leech
2025-05-26 19:28:02 +10:00
committed by Damien George
parent 3b2b8dd538
commit 7b3a0fc6b7
6 changed files with 35 additions and 2 deletions

View File

@@ -0,0 +1,13 @@
# cmdline: -X compile-only
# test compile-only functionality
print("This should not be printed")
x = 1 + 2
def hello():
return "world"
class TestClass:
def __init__(self):
self.value = 42

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,6 @@
# cmdline: -X compile-only
# test compile-only with syntax error
print("This should not be printed")
def broken_syntax(
# Missing closing parenthesis
return "error"

View File

@@ -0,0 +1 @@
CRASH