From 346aacf27f9bdfe8416efc30e2611f53dfc0cf5c Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 5 Nov 2014 00:27:15 +0200 Subject: [PATCH] unix: fast: Set initial module dict size big to have high pystone score. For this, introduce MICROPY_MODULE_DICT_SIZE config setting. --- py/mpconfig.h | 5 +++++ py/objmodule.c | 2 +- unix/mpconfigport_fast.h | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/py/mpconfig.h b/py/mpconfig.h index 6f92f3d88b..8ef3e62fec 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -100,6 +100,11 @@ #define MICROPY_ALLOC_PATH_MAX (512) #endif +// Initial size of module dict +#ifndef MICROPY_MODULE_DICT_SIZE +#define MICROPY_MODULE_DICT_SIZE (1) +#endif + /*****************************************************************************/ /* Micro Python emitters */ diff --git a/py/objmodule.c b/py/objmodule.c index 01349c3d28..7f765ff95c 100644 --- a/py/objmodule.c +++ b/py/objmodule.c @@ -96,7 +96,7 @@ mp_obj_t mp_obj_new_module(qstr module_name) { mp_obj_module_t *o = m_new_obj(mp_obj_module_t); o->base.type = &mp_type_module; o->name = module_name; - o->globals = mp_obj_new_dict(1); + o->globals = mp_obj_new_dict(MICROPY_MODULE_DICT_SIZE); // store __name__ entry in the module mp_obj_dict_store(o->globals, MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(module_name)); diff --git a/unix/mpconfigport_fast.h b/unix/mpconfigport_fast.h index 98ec3dfa28..2dd55e42a5 100644 --- a/unix/mpconfigport_fast.h +++ b/unix/mpconfigport_fast.h @@ -30,3 +30,6 @@ #include #define MICROPY_PY___FILE__ (0) +// 91 is a magic number proposed by @dpgeorge, which make pystone run ~ at tie +// with CPython 3.4. +#define MICROPY_MODULE_DICT_SIZE (91)