py: Make globals and locals proper dictionary objects.
Finishes addressing issue #424.
In the end this was a very neat refactor that now makes things a lot
more consistent across the py code base. It allowed some
simplifications in certain places, now that everything is a dict object.
Also converted builtins tables to dictionaries. This will be useful
when we need to turn builtins into a proper module.
diff --git a/py/runtime.h b/py/runtime.h
index 6b3ab73..a627fa5 100644
--- a/py/runtime.h
+++ b/py/runtime.h
@@ -9,10 +9,10 @@
void mp_check_nargs(int n_args, machine_uint_t n_args_min, machine_uint_t n_args_max, int n_kw, bool is_kw);
-mp_map_t *mp_locals_get(void);
-void mp_locals_set(mp_map_t *m);
-mp_map_t *mp_globals_get(void);
-void mp_globals_set(mp_map_t *m);
+mp_obj_dict_t *mp_locals_get(void);
+void mp_locals_set(mp_obj_dict_t *d);
+mp_obj_dict_t *mp_globals_get(void);
+void mp_globals_set(mp_obj_dict_t *d);
mp_obj_t mp_load_name(qstr qstr);
mp_obj_t mp_load_global(qstr qstr);