summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--lib/utils/pyexec.c12
-rw-r--r--lib/utils/pyexec.h4
-rw-r--r--ports/nrf/modules/board/modboard.c2
-rw-r--r--ports/nrf/mpconfigport.h1
-rw-r--r--ports/stm32/modpyb.c2
-rw-r--r--ports/stm32/mpconfigport.h1
-rw-r--r--ports/teensy/modpyb.c2
-rw-r--r--ports/teensy/mpconfigport.h1
-rw-r--r--py/mpconfig.h5
9 files changed, 28 insertions, 2 deletions
diff --git a/lib/utils/pyexec.c b/lib/utils/pyexec.c
index 851b026b6f..747097f157 100644
--- a/lib/utils/pyexec.c
+++ b/lib/utils/pyexec.c
@@ -45,7 +45,10 @@
pyexec_mode_kind_t pyexec_mode_kind = PYEXEC_MODE_FRIENDLY_REPL;
int pyexec_system_exit = 0;
+
+#if MICROPY_REPL_INFO
STATIC bool repl_display_debugging_info = 0;
+#endif
#define EXEC_FLAG_PRINT_EOF (1)
#define EXEC_FLAG_ALLOW_DEBUGGING (2)
@@ -61,7 +64,9 @@ STATIC bool repl_display_debugging_info = 0;
// EXEC_FLAG_IS_REPL is used for REPL inputs (flag passed on to mp_compile)
STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input_kind, int exec_flags) {
int ret = 0;
+ #if MICROPY_REPL_INFO
uint32_t start = 0;
+ #endif
// by default a SystemExit exception returns 0
pyexec_system_exit = 0;
@@ -97,7 +102,9 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
// execute code
mp_hal_set_interrupt_char(CHAR_CTRL_C); // allow ctrl-C to interrupt us
+ #if MICROPY_REPL_INFO
start = mp_hal_ticks_ms();
+ #endif
mp_call_function_0(module_fun);
mp_hal_set_interrupt_char(-1); // disable interrupt
nlr_pop();
@@ -123,6 +130,7 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
}
}
+ #if MICROPY_REPL_INFO
// display debugging info if wanted
if ((exec_flags & EXEC_FLAG_ALLOW_DEBUGGING) && repl_display_debugging_info) {
mp_uint_t ticks = mp_hal_ticks_ms() - start; // TODO implement a function that does this properly
@@ -142,6 +150,7 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
gc_dump_info();
#endif
}
+ #endif
if (exec_flags & EXEC_FLAG_PRINT_EOF) {
mp_hal_stdout_tx_strn("\x04", 1);
@@ -576,9 +585,10 @@ int pyexec_frozen_module(const char *name) {
}
#endif
+#if MICROPY_REPL_INFO
mp_obj_t pyb_set_repl_info(mp_obj_t o_value) {
repl_display_debugging_info = mp_obj_get_int(o_value);
return mp_const_none;
}
-
MP_DEFINE_CONST_FUN_OBJ_1(pyb_set_repl_info_obj, pyb_set_repl_info);
+#endif
diff --git a/lib/utils/pyexec.h b/lib/utils/pyexec.h
index 9eb490be54..573cb6d452 100644
--- a/lib/utils/pyexec.h
+++ b/lib/utils/pyexec.h
@@ -51,8 +51,10 @@ int pyexec_frozen_module(const char *name);
void pyexec_event_repl_init(void);
int pyexec_event_repl_process_char(int c);
extern uint8_t pyexec_repl_active;
-mp_obj_t pyb_set_repl_info(mp_obj_t o_value);
+#if MICROPY_REPL_INFO
+mp_obj_t pyb_set_repl_info(mp_obj_t o_value);
MP_DECLARE_CONST_FUN_OBJ_1(pyb_set_repl_info_obj);
+#endif
#endif // MICROPY_INCLUDED_LIB_UTILS_PYEXEC_H
diff --git a/ports/nrf/modules/board/modboard.c b/ports/nrf/modules/board/modboard.c
index 354a616967..5f59a52a6b 100644
--- a/ports/nrf/modules/board/modboard.c
+++ b/ports/nrf/modules/board/modboard.c
@@ -40,7 +40,9 @@
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_board) },
+ #if MICROPY_REPL_INFO
{ MP_ROM_QSTR(MP_QSTR_repl_info), MP_ROM_PTR(&pyb_set_repl_info_obj) },
+ #endif
PYB_LED_MODULE
};
diff --git a/ports/nrf/mpconfigport.h b/ports/nrf/mpconfigport.h
index e5fa1579c5..281d8111cf 100644
--- a/ports/nrf/mpconfigport.h
+++ b/ports/nrf/mpconfigport.h
@@ -44,6 +44,7 @@
#define MICROPY_ENABLE_FINALISER (1)
#define MICROPY_STACK_CHECK (1)
#define MICROPY_HELPER_REPL (1)
+#define MICROPY_REPL_INFO (1)
#define MICROPY_REPL_EMACS_KEYS (0)
#define MICROPY_REPL_AUTO_INDENT (1)
#define MICROPY_KBD_EXCEPTION (1)
diff --git a/ports/stm32/modpyb.c b/ports/stm32/modpyb.c
index 71d7849233..6dbfb1e0bd 100644
--- a/ports/stm32/modpyb.c
+++ b/ports/stm32/modpyb.c
@@ -142,7 +142,9 @@ STATIC const mp_rom_map_elem_t pyb_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_unique_id), MP_ROM_PTR(&machine_unique_id_obj) },
{ MP_ROM_QSTR(MP_QSTR_freq), MP_ROM_PTR(&machine_freq_obj) },
#endif
+ #if MICROPY_REPL_INFO
{ MP_ROM_QSTR(MP_QSTR_repl_info), MP_ROM_PTR(&pyb_set_repl_info_obj) },
+ #endif
{ MP_ROM_QSTR(MP_QSTR_wfi), MP_ROM_PTR(&pyb_wfi_obj) },
{ MP_ROM_QSTR(MP_QSTR_disable_irq), MP_ROM_PTR(&pyb_disable_irq_obj) },
diff --git a/ports/stm32/mpconfigport.h b/ports/stm32/mpconfigport.h
index 52cca0dca1..7ae8ee7d72 100644
--- a/ports/stm32/mpconfigport.h
+++ b/ports/stm32/mpconfigport.h
@@ -70,6 +70,7 @@
#define MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE (0)
#define MICROPY_KBD_EXCEPTION (1)
#define MICROPY_HELPER_REPL (1)
+#define MICROPY_REPL_INFO (1)
#define MICROPY_REPL_EMACS_KEYS (1)
#define MICROPY_REPL_AUTO_INDENT (1)
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
diff --git a/ports/teensy/modpyb.c b/ports/teensy/modpyb.c
index e4c399fc84..6d637a7c25 100644
--- a/ports/teensy/modpyb.c
+++ b/ports/teensy/modpyb.c
@@ -283,7 +283,9 @@ STATIC const mp_rom_map_elem_t pyb_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_info), MP_ROM_PTR(&pyb_info_obj) },
{ MP_ROM_QSTR(MP_QSTR_unique_id), MP_ROM_PTR(&pyb_unique_id_obj) },
{ MP_ROM_QSTR(MP_QSTR_freq), MP_ROM_PTR(&pyb_freq_obj) },
+ #if MICROPY_REPL_INFO
{ MP_ROM_QSTR(MP_QSTR_repl_info), MP_ROM_PTR(&pyb_set_repl_info_obj) },
+ #endif
{ MP_ROM_QSTR(MP_QSTR_wfi), MP_ROM_PTR(&pyb_wfi_obj) },
{ MP_ROM_QSTR(MP_QSTR_disable_irq), MP_ROM_PTR(&pyb_disable_irq_obj) },
diff --git a/ports/teensy/mpconfigport.h b/ports/teensy/mpconfigport.h
index b45b5ad4e3..a75bd6849a 100644
--- a/ports/teensy/mpconfigport.h
+++ b/ports/teensy/mpconfigport.h
@@ -9,6 +9,7 @@
#define MICROPY_ENABLE_FINALISER (1)
#define MICROPY_STACK_CHECK (1)
#define MICROPY_HELPER_REPL (1)
+#define MICROPY_REPL_INFO (1)
#define MICROPY_ENABLE_SOURCE_LINE (1)
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 1e786f753b..93d67accdb 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -560,6 +560,11 @@
#define MICROPY_HELPER_REPL (0)
#endif
+// Allow enabling debug prints after each REPL line
+#ifndef MICROPY_REPL_INFO
+#define MICROPY_REPL_INFO (0)
+#endif
+
// Whether to include emacs-style readline behavior in REPL
#ifndef MICROPY_REPL_EMACS_KEYS
#define MICROPY_REPL_EMACS_KEYS (0)