From 49388511227f006cfa30d921d5e0e095c0141a8a Mon Sep 17 00:00:00 2001 From: microDev <70126934+microDev1@users.noreply.github.com> Date: Fri, 30 Jul 2021 10:00:00 +0530 Subject: [PATCH] remove legacy sys.atexit() implementation --- ports/unix/main.c | 7 ------- ports/unix/mpconfigport.h | 1 - py/modsys.c | 18 ------------------ py/mpconfig.h | 5 ----- py/mpstate.h | 5 ----- py/runtime.c | 4 ---- tests/misc/sys_atexit.py | 21 --------------------- tests/misc/sys_atexit.py.exp | 2 -- tests/unix/extra_coverage.py.exp | 8 ++++---- 9 files changed, 4 insertions(+), 67 deletions(-) delete mode 100644 tests/misc/sys_atexit.py delete mode 100644 tests/misc/sys_atexit.py.exp diff --git a/ports/unix/main.c b/ports/unix/main.c index 55bdc22082..b69df90354 100644 --- a/ports/unix/main.c +++ b/ports/unix/main.c @@ -690,13 +690,6 @@ MP_NOINLINE int main_(int argc, char **argv) { MP_STATE_THREAD(prof_trace_callback) = MP_OBJ_NULL; #endif - #if MICROPY_PY_SYS_ATEXIT - // Beware, the sys.settrace callback should be disabled before running sys.atexit. - if (mp_obj_is_callable(MP_STATE_VM(sys_exitfunc))) { - mp_call_function_0(MP_STATE_VM(sys_exitfunc)); - } - #endif - #if MICROPY_PY_MICROPYTHON_MEM_INFO if (mp_verbose_flag) { mp_micropython_mem_info(0, NULL); diff --git a/ports/unix/mpconfigport.h b/ports/unix/mpconfigport.h index 99da47f31b..194f46b2da 100644 --- a/ports/unix/mpconfigport.h +++ b/ports/unix/mpconfigport.h @@ -106,7 +106,6 @@ #define MICROPY_PY_BUILTINS_SLICE_ATTRS (1) #define MICROPY_PY_BUILTINS_SLICE_INDICES (1) #define MICROPY_PY_SYS_EXIT (1) -#define MICROPY_PY_SYS_ATEXIT (1) #if MICROPY_PY_SYS_SETTRACE #define MICROPY_PERSISTENT_CODE_SAVE (1) #define MICROPY_COMP_CONST (0) diff --git a/py/modsys.c b/py/modsys.c index cbd1712920..1e31a04d27 100644 --- a/py/modsys.c +++ b/py/modsys.c @@ -166,16 +166,6 @@ STATIC mp_obj_t mp_sys_getsizeof(mp_obj_t obj) { STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_sys_getsizeof_obj, mp_sys_getsizeof); #endif -#if MICROPY_PY_SYS_ATEXIT -// atexit(callback): Callback is called when sys.exit is called. -STATIC mp_obj_t mp_sys_atexit(mp_obj_t obj) { - mp_obj_t old = MP_STATE_VM(sys_exitfunc); - MP_STATE_VM(sys_exitfunc) = obj; - return old; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_sys_atexit_obj, mp_sys_atexit); -#endif - #if MICROPY_PY_SYS_SETTRACE // settrace(tracefunc): Set the system’s trace function. STATIC mp_obj_t mp_sys_settrace(mp_obj_t obj) { @@ -237,14 +227,6 @@ STATIC const mp_rom_map_elem_t mp_module_sys_globals_table[] = { #if MICROPY_PY_SYS_GETSIZEOF { MP_ROM_QSTR(MP_QSTR_getsizeof), MP_ROM_PTR(&mp_sys_getsizeof_obj) }, #endif - - /* - * Extensions to CPython - */ - - #if MICROPY_PY_SYS_ATEXIT - { MP_ROM_QSTR(MP_QSTR_atexit), MP_ROM_PTR(&mp_sys_atexit_obj) }, - #endif }; STATIC MP_DEFINE_CONST_DICT(mp_module_sys_globals, mp_module_sys_globals_table); diff --git a/py/mpconfig.h b/py/mpconfig.h index 2cd2a0d356..8419a50d5e 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -1311,11 +1311,6 @@ typedef double mp_float_t; #define MICROPY_PY_SYS_EXIT (1) #endif -// Whether to provide "sys.atexit" function (MicroPython extension) -#ifndef MICROPY_PY_SYS_ATEXIT -#define MICROPY_PY_SYS_ATEXIT (0) -#endif - // Whether to provide "sys.settrace" function #ifndef MICROPY_PY_SYS_SETTRACE #define MICROPY_PY_SYS_SETTRACE (0) diff --git a/py/mpstate.h b/py/mpstate.h index 423463109d..e868a773bf 100644 --- a/py/mpstate.h +++ b/py/mpstate.h @@ -157,11 +157,6 @@ typedef struct _mp_state_vm_t { mp_obj_base_t *cur_exception; #endif - #if MICROPY_PY_SYS_ATEXIT - // exposed through sys.atexit function - mp_obj_t sys_exitfunc; - #endif - // dictionary for the __main__ module mp_obj_dict_t dict_main; diff --git a/py/runtime.c b/py/runtime.c index ceb5e83b14..ba0d59dffa 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -130,10 +130,6 @@ void mp_init(void) { sizeof(MP_STATE_VM(fs_user_mount)) - MICROPY_FATFS_NUM_PERSISTENT); #endif - #if MICROPY_PY_SYS_ATEXIT - MP_STATE_VM(sys_exitfunc) = mp_const_none; - #endif - #if MICROPY_PY_SYS_SETTRACE MP_STATE_THREAD(prof_trace_callback) = MP_OBJ_NULL; MP_STATE_THREAD(prof_callback_is_executing) = false; diff --git a/tests/misc/sys_atexit.py b/tests/misc/sys_atexit.py deleted file mode 100644 index e9c5693f97..0000000000 --- a/tests/misc/sys_atexit.py +++ /dev/null @@ -1,21 +0,0 @@ -# test sys.atexit() function - -import sys - -try: - sys.atexit -except AttributeError: - print("SKIP") - raise SystemExit - -some_var = None - - -def do_at_exit(): - print("done at exit:", some_var) - - -sys.atexit(do_at_exit) - -some_var = "ok" -print("done before exit") diff --git a/tests/misc/sys_atexit.py.exp b/tests/misc/sys_atexit.py.exp deleted file mode 100644 index 3cbdae9a5a..0000000000 --- a/tests/misc/sys_atexit.py.exp +++ /dev/null @@ -1,2 +0,0 @@ -done before exit -done at exit: ok diff --git a/tests/unix/extra_coverage.py.exp b/tests/unix/extra_coverage.py.exp index 9a451ebd65..7d87c4f92a 100644 --- a/tests/unix/extra_coverage.py.exp +++ b/tests/unix/extra_coverage.py.exp @@ -41,10 +41,10 @@ ime utime utimeq -argv atexit byteorder exc_info -exit getsizeof implementation maxsize -modules path platform stderr -stdin stdout version version_info +argv byteorder exc_info exit +getsizeof implementation maxsize modules +path platform stderr stdin +stdout version version_info ementation # attrtuple (start=1, stop=2, step=3)