Skip to content

Commit de43b50

Browse files
committed
py/runtime: Allow initialising sys.path/argv with defaults.
If MICROPY_PY_SYS_PATH_ARGV_DEFAULTS is enabled (which it is by default) then sys.path and sys.argv will be initialised and populated with default values. This keeps all bare-metal ports aligned. Signed-off-by: Damien George <damien@micropython.org>
1 parent 86394f7 commit de43b50

18 files changed

Lines changed: 18 additions & 59 deletions

File tree

docs/develop/porting.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ The basic MicroPython firmware is implemented in the main port file, e.g ``main.
5353
mp_stack_ctrl_init();
5454
gc_init(heap, heap + sizeof(heap));
5555
mp_init();
56-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_path), 0);
57-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_argv), 0);
5856
5957
// Start a normal REPL; will exit when ctrl-D is entered on a blank line.
6058
pyexec_friendly_repl();

mpy-cross/main.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,6 @@ MP_NOINLINE int main_(int argc, char **argv) {
192192
#ifdef _WIN32
193193
set_fmode_binary();
194194
#endif
195-
mp_obj_list_init(mp_sys_path, 0);
196-
mp_obj_list_init(mp_sys_argv, 0);
197195

198196
#if MICROPY_EMIT_NATIVE
199197
// Set default emitter options

ports/cc3200/mptask.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,6 @@ void TASK_MicroPython(void *pvParameters) {
139139

140140
// MicroPython init
141141
mp_init();
142-
mp_obj_list_init(mp_sys_path, 0);
143-
mp_obj_list_init(mp_sys_argv, 0);
144-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_)); // current dir (or base dir of the script)
145142

146143
// execute all basic initializations
147144
mp_irq_init0();

ports/esp32/main.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,7 @@ void mp_task(void *pvParameter) {
140140
mp_stack_set_limit(MP_TASK_STACK_SIZE - MP_TASK_STACK_LIMIT_MARGIN);
141141
gc_init(mp_task_heap, mp_task_heap + mp_task_heap_size);
142142
mp_init();
143-
mp_obj_list_init(mp_sys_path, 0);
144-
#if MICROPY_MODULE_FROZEN
145-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__dot_frozen));
146-
#endif
147-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_));
148143
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_lib));
149-
mp_obj_list_init(mp_sys_argv, 0);
150144
readline_init0();
151145

152146
// initialise peripherals

ports/esp8266/main.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,8 @@ STATIC void mp_reset(void) {
5252
mp_hal_init();
5353
gc_init(heap, heap + sizeof(heap));
5454
mp_init();
55-
mp_obj_list_init(mp_sys_path, 0);
56-
#if MICROPY_MODULE_FROZEN
57-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__dot_frozen));
58-
#endif
59-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_)); // current dir (or base dir of the script)
6055
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_lib));
6156
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_));
62-
mp_obj_list_init(mp_sys_argv, 0);
6357
#if MICROPY_EMIT_XTENSA || MICROPY_EMIT_INLINE_XTENSA
6458
extern void esp_native_code_init(void);
6559
esp_native_code_init();

ports/javascript/main.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,6 @@ void mp_js_init(int heap_size) {
9191
#endif
9292

9393
mp_init();
94-
95-
mp_obj_list_init(mp_sys_path, 0);
96-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_));
97-
mp_obj_list_init(mp_sys_argv, 0);
9894
}
9995

10096
void mp_js_init_repl() {

ports/mimxrt/main.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,6 @@ int main(void) {
7575
gc_init(&_gc_heap_start, &_gc_heap_end);
7676
mp_init();
7777

78-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_path), 0);
79-
#if MICROPY_MODULE_FROZEN
80-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__dot_frozen));
81-
#endif
82-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_));
83-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_argv), 0);
8478
#if MICROPY_PY_NETWORK
8579
mod_network_init();
8680
#endif

ports/nrf/main.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,8 @@ int main(int argc, char **argv) {
129129
gc_init(&_heap_start, &_heap_end);
130130

131131
mp_init();
132-
mp_obj_list_init(mp_sys_path, 0);
133-
#if MICROPY_MODULE_FROZEN
134-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__dot_frozen));
135-
#endif
136-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_)); // current dir (or base dir of the script)
137-
mp_obj_list_init(mp_sys_argv, 0);
138-
139132
readline_init0();
140133

141-
142134
#if MICROPY_PY_MACHINE_HW_SPI
143135
spi_init0();
144136
#endif

ports/rp2/main.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,7 @@ int main(int argc, char **argv) {
100100

101101
// Initialise MicroPython runtime.
102102
mp_init();
103-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_path), 0);
104-
#if MICROPY_MODULE_FROZEN
105-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__dot_frozen));
106-
#endif
107-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_));
108103
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_lib));
109-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_argv), 0);
110104

111105
// Initialise sub-systems.
112106
readline_init0();

ports/samd/main.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ void samd_main(void) {
4141
for (;;) {
4242
gc_init(&_sheap, &_eheap);
4343
mp_init();
44-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_path), 0);
45-
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR_));
46-
mp_obj_list_init(MP_OBJ_TO_PTR(mp_sys_argv), 0);
4744

4845
// Execute _boot.py to set up the filesystem.
4946
pyexec_frozen_module("_boot.py");

0 commit comments

Comments
 (0)