diff options
| author | Scott Shawcroft <scott@adafruit.com> | 2019-05-21 13:55:38 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-21 13:55:38 -0700 |
| commit | 70e0b5c0d038ae5b4235272e7be3f3d531dae027 (patch) | |
| tree | c8b37577aa44005d7ab70cdb7439d2d1ea09a9a8 | |
| parent | aae7cb3eb0ba547b1253b4bf55488465915a9ce4 (diff) | |
| parent | 0199d9810ba78c29734abc3a94d005279d9d9ccb (diff) | |
Merge pull request #1896 from dhalbert/round-int-4.0.x
Enable MICROPY_PY_BUILTINS_ROUND_INT; make round() work better when flag is disabled
| -rw-r--r-- | ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk | 2 | ||||
| -rw-r--r-- | py/circuitpy_mpconfig.h | 1 | ||||
| -rw-r--r-- | py/modbuiltins.c | 6 |
3 files changed, 5 insertions, 4 deletions
diff --git a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk index 652d20137..bc33be315 100644 --- a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk @@ -27,7 +27,7 @@ FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Thermistor # Tweak inlining depending on language. ifeq ($(TRANSLATION), zh_Latn_pinyin) -CFLAGS_INLINE_LIMIT = 35 +CFLAGS_INLINE_LIMIT = 25 else CFLAGS_INLINE_LIMIT = 55 endif diff --git a/py/circuitpy_mpconfig.h b/py/circuitpy_mpconfig.h index f957886f4..0575bcfe0 100644 --- a/py/circuitpy_mpconfig.h +++ b/py/circuitpy_mpconfig.h @@ -89,6 +89,7 @@ #define MICROPY_PY_BUILTINS_MIN_MAX (1) #define MICROPY_PY_BUILTINS_PROPERTY (1) #define MICROPY_PY_BUILTINS_REVERSED (1) +#define MICROPY_PY_BUILTINS_ROUND_INT (1) #define MICROPY_PY_BUILTINS_SET (1) #define MICROPY_PY_BUILTINS_SLICE (1) #define MICROPY_PY_BUILTINS_SLICE_ATTRS (1) diff --git a/py/modbuiltins.c b/py/modbuiltins.c index 124dcd05a..e764f1987 100644 --- a/py/modbuiltins.c +++ b/py/modbuiltins.c @@ -455,13 +455,13 @@ STATIC mp_obj_t mp_builtin_round(size_t n_args, const mp_obj_t *args) { return o_in; } - #if !MICROPY_PY_BUILTINS_ROUND_INT - mp_raise_NotImplementedError(NULL); - #else mp_int_t num_dig = mp_obj_get_int(args[1]); if (num_dig >= 0) { return o_in; } + #if !MICROPY_PY_BUILTINS_ROUND_INT + mp_raise_NotImplementedError(NULL); + #else mp_obj_t mult = mp_binary_op(MP_BINARY_OP_POWER, MP_OBJ_NEW_SMALL_INT(10), MP_OBJ_NEW_SMALL_INT(-num_dig)); mp_obj_t half_mult = mp_binary_op(MP_BINARY_OP_FLOOR_DIVIDE, mult, MP_OBJ_NEW_SMALL_INT(2)); |
