summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2018-07-13 22:51:10 -0400
committerDan Halbert <halbert@halwitz.org>2018-07-13 22:51:10 -0400
commite2e01efa84d2ed46d004edf48076e4701accc176 (patch)
tree8c877ce226b6404b117990db92c9cfc93950df60 /py
parent0d27f4d9a66dcb47b545e715d1833094b0c7b484 (diff)
compiles and runs; hangs on import storage;storage.VfsFat.<tab>
Diffstat (limited to 'py')
-rwxr-xr-xpy/mpconfig.h4
-rw-r--r--py/mpstate.h1
-rw-r--r--py/objmodule.c4
-rw-r--r--py/objnamedtuple.c4
-rw-r--r--py/objnamedtuple.h26
-rw-r--r--py/objtype.c1
-rw-r--r--py/runtime.c3
-rw-r--r--py/runtime.h1
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