summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-10-12 20:23:47 +0100
committerDamien George <damien.p.george@gmail.com>2014-10-12 20:23:47 +0100
commit0107e90328334fab9a85c1c72c905eed64afee4f (patch)
tree42c69d95688bc866aeb551ecb2d60e2182293bc4
parentc14a81662c1df812c0c6b4299f97966302f16477 (diff)
downloadmicropython-0107e90328334fab9a85c1c72c905eed64afee4f.tar.gz
micropython-0107e90328334fab9a85c1c72c905eed64afee4f.zip
stmhal: Enable module weak links.
os, time, select modules are now prefixed with u, but are still available (via weak links) as their original names. ure and ujson now available as re and json via weak links.
-rw-r--r--stmhal/modos.c6
-rw-r--r--stmhal/modselect.c6
-rw-r--r--stmhal/modtime.c6
-rw-r--r--stmhal/mpconfigport.h24
-rw-r--r--stmhal/portmodules.h6
-rw-r--r--stmhal/qstrdefsport.h7
6 files changed, 36 insertions, 19 deletions
diff --git a/stmhal/modos.c b/stmhal/modos.c
index 6a21006983..95446cdb06 100644
--- a/stmhal/modos.c
+++ b/stmhal/modos.c
@@ -330,7 +330,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_urandom_obj, os_urandom);
#endif
STATIC const mp_map_elem_t os_module_globals_table[] = {
- { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_os) },
+ { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_uos) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_chdir), (mp_obj_t)&os_chdir_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_getcwd), (mp_obj_t)&os_getcwd_obj },
@@ -362,8 +362,8 @@ STATIC const mp_obj_dict_t os_module_globals = {
},
};
-const mp_obj_module_t os_module = {
+const mp_obj_module_t mp_module_uos = {
.base = { &mp_type_module },
- .name = MP_QSTR_os,
+ .name = MP_QSTR_uos,
.globals = (mp_obj_dict_t*)&os_module_globals,
};
diff --git a/stmhal/modselect.c b/stmhal/modselect.c
index ff9df8f5ec..d1bf522893 100644
--- a/stmhal/modselect.c
+++ b/stmhal/modselect.c
@@ -287,7 +287,7 @@ STATIC mp_obj_t select_poll(void) {
MP_DEFINE_CONST_FUN_OBJ_0(mp_select_poll_obj, select_poll);
STATIC const mp_map_elem_t mp_module_select_globals_table[] = {
- { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_select) },
+ { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_uselect) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_select), (mp_obj_t)&mp_select_select_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_poll), (mp_obj_t)&mp_select_poll_obj },
};
@@ -303,8 +303,8 @@ STATIC const mp_obj_dict_t mp_module_select_globals = {
},
};
-const mp_obj_module_t mp_module_select = {
+const mp_obj_module_t mp_module_uselect = {
.base = { &mp_type_module },
- .name = MP_QSTR_select,
+ .name = MP_QSTR_uselect,
.globals = (mp_obj_dict_t*)&mp_module_select_globals,
};
diff --git a/stmhal/modtime.c b/stmhal/modtime.c
index 89df6ae994..fd8fbb36af 100644
--- a/stmhal/modtime.c
+++ b/stmhal/modtime.c
@@ -336,7 +336,7 @@ STATIC mp_obj_t time_time(void) {
MP_DEFINE_CONST_FUN_OBJ_0(time_time_obj, time_time);
STATIC const mp_map_elem_t time_module_globals_table[] = {
- { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_time) },
+ { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_utime) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_localtime), (mp_obj_t)&time_localtime_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_mktime), (mp_obj_t)&time_mktime_obj },
@@ -355,8 +355,8 @@ STATIC const mp_obj_dict_t time_module_globals = {
},
};
-const mp_obj_module_t time_module = {
+const mp_obj_module_t mp_module_utime = {
.base = { &mp_type_module },
- .name = MP_QSTR_time,
+ .name = MP_QSTR_utime,
.globals = (mp_obj_dict_t*)&time_module_globals,
};
diff --git a/stmhal/mpconfigport.h b/stmhal/mpconfigport.h
index d30e8e0199..591681605a 100644
--- a/stmhal/mpconfigport.h
+++ b/stmhal/mpconfigport.h
@@ -48,6 +48,7 @@
*/
#define MICROPY_ENABLE_LFN (1)
#define MICROPY_LFN_CODE_PAGE (437) /* 1=SFN/ANSI 437=LFN/U.S.(OEM) */
+#define MICROPY_MODULE_WEAK_LINKS (1)
#define MICROPY_PY_BUILTINS_STR_UNICODE (1)
#define MICROPY_PY_BUILTINS_FROZENSET (1)
#define MICROPY_PY_SYS_EXIT (1)
@@ -73,24 +74,33 @@ extern const struct _mp_obj_fun_builtin_t mp_builtin_open_obj;
{ MP_OBJ_NEW_QSTR(MP_QSTR_open), (mp_obj_t)&mp_builtin_open_obj },
// extra built in modules to add to the list of known ones
-extern const struct _mp_obj_module_t os_module;
extern const struct _mp_obj_module_t pyb_module;
extern const struct _mp_obj_module_t stm_module;
-extern const struct _mp_obj_module_t time_module;
-extern const struct _mp_obj_module_t mp_module_select;
+extern const struct _mp_obj_module_t mp_module_ure;
+extern const struct _mp_obj_module_t mp_module_ujson;
+extern const struct _mp_obj_module_t mp_module_uos;
+extern const struct _mp_obj_module_t mp_module_utime;
+extern const struct _mp_obj_module_t mp_module_uselect;
extern const struct _mp_obj_module_t mp_module_usocket;
extern const struct _mp_obj_module_t mp_module_network;
#define MICROPY_PORT_BUILTIN_MODULES \
- { MP_OBJ_NEW_QSTR(MP_QSTR_os), (mp_obj_t)&os_module }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_pyb), (mp_obj_t)&pyb_module }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_stm), (mp_obj_t)&stm_module }, \
- { MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&time_module }, \
- { MP_OBJ_NEW_QSTR(MP_QSTR_select), (mp_obj_t)&mp_module_select }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_uos), (mp_obj_t)&mp_module_uos }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_utime), (mp_obj_t)&mp_module_utime }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_uselect), (mp_obj_t)&mp_module_uselect }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_usocket), (mp_obj_t)&mp_module_usocket }, \
- { MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&mp_module_usocket }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_network), (mp_obj_t)&mp_module_network }, \
+#define MICROPY_PORT_BUILTIN_MODULE_WEAK_LINKS \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_re), (mp_obj_t)&mp_module_ure }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_json), (mp_obj_t)&mp_module_ujson }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_os), (mp_obj_t)&mp_module_uos }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_utime }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_select), (mp_obj_t)&mp_module_uselect }, \
+ { MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&mp_module_usocket }, \
+
// extra constants
#define MICROPY_PORT_CONSTANTS \
{ MP_OBJ_NEW_QSTR(MP_QSTR_pyb), (mp_obj_t)&pyb_module }, \
diff --git a/stmhal/portmodules.h b/stmhal/portmodules.h
index ebeaae796d..86580ea7fe 100644
--- a/stmhal/portmodules.h
+++ b/stmhal/portmodules.h
@@ -24,11 +24,11 @@
* THE SOFTWARE.
*/
-extern const mp_obj_module_t os_module;
extern const mp_obj_module_t pyb_module;
extern const mp_obj_module_t stm_module;
-extern const mp_obj_module_t time_module;
-extern const mp_obj_module_t mp_module_select;
+extern const mp_obj_module_t mp_module_uos;
+extern const mp_obj_module_t mp_module_utime;
+extern const mp_obj_module_t mp_module_uselect;
extern const mp_obj_module_t mp_module_usocket;
// additional helper functions exported by the modules
diff --git a/stmhal/qstrdefsport.h b/stmhal/qstrdefsport.h
index 2232bdb154..2cb586b0bb 100644
--- a/stmhal/qstrdefsport.h
+++ b/stmhal/qstrdefsport.h
@@ -71,6 +71,10 @@ Q(micros)
Q(elapsed_millis)
Q(elapsed_micros)
+// for module weak links
+Q(re)
+Q(json)
+
// for file class
Q(seek)
Q(tell)
@@ -296,6 +300,7 @@ Q(angle)
Q(speed)
// for os module
+Q(uos)
Q(os)
Q(/)
Q(flash)
@@ -312,12 +317,14 @@ Q(stat)
Q(urandom)
// for time module
+Q(utime)
Q(time)
Q(localtime)
Q(mktime)
Q(sleep)
// for select module
+Q(uselect)
Q(select)
Q(poll)
Q(register)