diff options
| author | Dan Halbert <halbert@halwitz.org> | 2018-07-13 22:51:10 -0400 |
|---|---|---|
| committer | Dan Halbert <halbert@halwitz.org> | 2018-07-13 22:51:10 -0400 |
| commit | e2e01efa84d2ed46d004edf48076e4701accc176 (patch) | |
| tree | 8c877ce226b6404b117990db92c9cfc93950df60 /py | |
| parent | 0d27f4d9a66dcb47b545e715d1833094b0c7b484 (diff) | |
compiles and runs; hangs on import storage;storage.VfsFat.<tab>
Diffstat (limited to 'py')
| -rwxr-xr-x | py/mpconfig.h | 4 | ||||
| -rw-r--r-- | py/mpstate.h | 1 | ||||
| -rw-r--r-- | py/objmodule.c | 4 | ||||
| -rw-r--r-- | py/objnamedtuple.c | 4 | ||||
| -rw-r--r-- | py/objnamedtuple.h | 26 | ||||
| -rw-r--r-- | py/objtype.c | 1 | ||||
| -rw-r--r-- | py/runtime.c | 3 | ||||
| -rw-r--r-- | py/runtime.h | 1 |
8 files changed, 33 insertions, 11 deletions
diff --git a/py/mpconfig.h b/py/mpconfig.h index d80730809..a846f6a25 100755 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -1242,6 +1242,10 @@ typedef double mp_float_t; #define MICROPY_PY_OS_DUPTERM (0) #endif +#ifndef MICROPY_PY_LWIP +#define MICROPY_PY_LWIP (0) +#endif + #ifndef MICROPY_PY_LWIP_SLIP #define MICROPY_PY_LWIP_SLIP (0) #endif diff --git a/py/mpstate.h b/py/mpstate.h index 6e68159ee..eef8696d3 100644 --- a/py/mpstate.h +++ b/py/mpstate.h @@ -177,6 +177,7 @@ typedef struct _mp_state_vm_t { #if MICROPY_PY_OS_DUPTERM mp_obj_t dupterm_objs[MICROPY_PY_OS_DUPTERM]; + mp_obj_t dupterm_arr_obj; #endif #if MICROPY_PY_LWIP_SLIP diff --git a/py/objmodule.c b/py/objmodule.c index b28fb2416..828f556f3 100644 --- a/py/objmodule.c +++ b/py/objmodule.c @@ -213,13 +213,13 @@ STATIC const mp_rom_map_elem_t mp_builtin_module_table[] = { #if MICROPY_PY_USSL { MP_ROM_QSTR(MP_QSTR_ussl), MP_ROM_PTR(&mp_module_ussl) }, #endif -#ifdef MICROPY_PY_LWIP +#if MICROPY_PY_LWIP { MP_ROM_QSTR(MP_QSTR_lwip), MP_ROM_PTR(&mp_module_lwip) }, #endif #if MICROPY_PY_WEBSOCKET { MP_ROM_QSTR(MP_QSTR_websocket), MP_ROM_PTR(&mp_module_websocket) }, #endif -#ifdef MICROPY_PY_WEBREPL +#if MICROPY_PY_WEBREPL { MP_ROM_QSTR(MP_QSTR__webrepl), MP_ROM_PTR(&mp_module_webrepl) }, #endif #if MICROPY_PY_FRAMEBUF diff --git a/py/objnamedtuple.c b/py/objnamedtuple.c index 832a4a671..e44b68edc 100644 --- a/py/objnamedtuple.c +++ b/py/objnamedtuple.c @@ -60,7 +60,7 @@ STATIC mp_obj_t namedtuple_asdict(mp_obj_t self_in) { MP_DEFINE_CONST_FUN_OBJ_1(namedtuple_asdict_obj, namedtuple_asdict); #endif -STATIC void namedtuple_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind) { +void namedtuple_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind) { (void)kind; mp_obj_namedtuple_t *o = MP_OBJ_TO_PTR(o_in); mp_printf(print, "%q", o->tuple.base.type->name); @@ -68,7 +68,7 @@ STATIC void namedtuple_print(const mp_print_t *print, mp_obj_t o_in, mp_print_ki mp_obj_attrtuple_print_helper(print, fields, &o->tuple); } -STATIC void namedtuple_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) { +void namedtuple_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) { if (dest[0] == MP_OBJ_NULL) { // load attribute mp_obj_namedtuple_t *self = MP_OBJ_TO_PTR(self_in); diff --git a/py/objnamedtuple.h b/py/objnamedtuple.h index d32af35af..a36404b8d 100644 --- a/py/objnamedtuple.h +++ b/py/objnamedtuple.h @@ -1,9 +1,10 @@ /* - * This file is part of the MicroPython project, http://micropython.org/ + * This file is part of the Micro Python project, http://micropython.org/ * * The MIT License (MIT) * - * Copyright (c) 2014-2017 Paul Sokolovsky + * Copyright (c) 2013, 2014 Damien P. George + * Copyright (c) 2014 Paul Sokolovsky * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,14 +24,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + #ifndef MICROPY_INCLUDED_PY_OBJNAMEDTUPLE_H #define MICROPY_INCLUDED_PY_OBJNAMEDTUPLE_H +#include <string.h> + +#include "py/nlr.h" #include "py/objtuple.h" +#include "py/runtime.h" +#include "py/objstr.h" + +#if MICROPY_PY_COLLECTIONS typedef struct _mp_obj_namedtuple_type_t { mp_obj_type_t base; - size_t n_fields; + mp_uint_t n_fields; qstr fields[]; } mp_obj_namedtuple_type_t; @@ -38,7 +47,12 @@ typedef struct _mp_obj_namedtuple_t { mp_obj_tuple_t tuple; } mp_obj_namedtuple_t; -size_t mp_obj_namedtuple_find_field(const mp_obj_namedtuple_type_t *type, qstr name); -mp_obj_namedtuple_type_t *mp_obj_new_namedtuple_base(size_t n_fields, mp_obj_t *fields); +void namedtuple_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind); + +void namedtuple_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest); + +mp_obj_t namedtuple_make_new(const mp_obj_type_t *type_in, size_t n_args, size_t n_kw, const mp_obj_t *args); + +#endif // MICROPY_PY_COLLECTIONS -#endif // MICROPY_INCLUDED_PY_OBJNAMEDTUPLE_H +#endif // MICROPY_INCLUDED_PY_OBJNAMEDTUPLE_H diff --git a/py/objtype.c b/py/objtype.c index 7244abd9e..b12fadbf7 100644 --- a/py/objtype.c +++ b/py/objtype.c @@ -1285,6 +1285,7 @@ STATIC void super_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) { dest[0] = mp_call_method_n_kw(2, 0, attr_get_method); } #endif + } return; } diff --git a/py/runtime.c b/py/runtime.c index a9c0ef1e2..4ba4760e6 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -116,10 +116,11 @@ void mp_init(void) { MP_STATE_VM(mp_module_builtins_override_dict) = NULL; #endif - #ifdef MICROPY_PY_OS_DUPTERM + #if MICROPY_PY_OS_DUPTERM for (size_t i = 0; i < MICROPY_PY_OS_DUPTERM; ++i) { MP_STATE_VM(dupterm_objs[i]) = MP_OBJ_NULL; } + MP_STATE_VM(dupterm_arr_obj) = MP_OBJ_NULL; #endif #ifdef MICROPY_FSUSERMOUNT diff --git a/py/runtime.h b/py/runtime.h index 9e860df15..95f89ee9e 100644 --- a/py/runtime.h +++ b/py/runtime.h @@ -158,6 +158,7 @@ NORETURN void mp_raise_RuntimeError(const char *msg); NORETURN void mp_raise_ImportError(const char *msg); NORETURN void mp_raise_IndexError(const char *msg); NORETURN void mp_raise_OSError(int errno_); +NORETURN void mp_raise_NotImplementedError(const char *msg); NORETURN void mp_raise_recursion_depth(void); #if MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG |
