py: Fix up so that it can compile without float.
This commit is contained in:
parent
af6edc61bd
commit
70f33cde48
1
py/gc.c
1
py/gc.c
@ -1,5 +1,4 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "mpconfig.h"
|
#include "mpconfig.h"
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -788,9 +788,9 @@ mp_obj_t str_format(uint n_args, const mp_obj_t *args) {
|
|||||||
nlr_jump(mp_obj_new_exception_msg_varg(&mp_type_ValueError,
|
nlr_jump(mp_obj_new_exception_msg_varg(&mp_type_ValueError,
|
||||||
"Unknown format code '%c' for object of type '%s'", type, mp_obj_get_type_str(arg)));
|
"Unknown format code '%c' for object of type '%s'", type, mp_obj_get_type_str(arg)));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#if MICROPY_ENABLE_FLOAT
|
#if MICROPY_ENABLE_FLOAT
|
||||||
if (arg_looks_numeric(arg)) {
|
} else if (arg_looks_numeric(arg)) {
|
||||||
if (!type) {
|
if (!type) {
|
||||||
|
|
||||||
// Even though the docs say that an unspecified type is the same
|
// Even though the docs say that an unspecified type is the same
|
||||||
@ -848,10 +848,14 @@ mp_obj_t str_format(uint n_args, const mp_obj_t *args) {
|
|||||||
type, mp_obj_get_type_str(arg)));
|
type, mp_obj_get_type_str(arg)));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
// arg doesn't look like a number
|
||||||
|
|
||||||
if (align == '=') {
|
if (align == '=') {
|
||||||
nlr_jump(mp_obj_new_exception_msg(&mp_type_ValueError, "'=' alignment not allowed in string format specifier"));
|
nlr_jump(mp_obj_new_exception_msg(&mp_type_ValueError, "'=' alignment not allowed in string format specifier"));
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case '\0':
|
case '\0':
|
||||||
mp_obj_print_helper((void (*)(void*, const char*, ...))vstr_printf, vstr, arg, PRINT_STR);
|
mp_obj_print_helper((void (*)(void*, const char*, ...))vstr_printf, vstr, arg, PRINT_STR);
|
||||||
|
@ -346,8 +346,7 @@ mp_obj_t mp_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) {
|
|||||||
case MP_BINARY_OP_TRUE_DIVIDE:
|
case MP_BINARY_OP_TRUE_DIVIDE:
|
||||||
case MP_BINARY_OP_INPLACE_TRUE_DIVIDE:
|
case MP_BINARY_OP_INPLACE_TRUE_DIVIDE:
|
||||||
if (rhs_val == 0) {
|
if (rhs_val == 0) {
|
||||||
zero_division:
|
goto zero_division;
|
||||||
nlr_jump(mp_obj_new_exception_msg(&mp_type_ZeroDivisionError, "division by zero"));
|
|
||||||
}
|
}
|
||||||
return mp_obj_new_float((mp_float_t)lhs_val / (mp_float_t)rhs_val);
|
return mp_obj_new_float((mp_float_t)lhs_val / (mp_float_t)rhs_val);
|
||||||
#endif
|
#endif
|
||||||
@ -451,6 +450,9 @@ generic_binary_op:
|
|||||||
"unsupported operand types for binary operator: '%s', '%s'",
|
"unsupported operand types for binary operator: '%s', '%s'",
|
||||||
mp_obj_get_type_str(lhs), mp_obj_get_type_str(rhs)));
|
mp_obj_get_type_str(lhs), mp_obj_get_type_str(rhs)));
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
|
|
||||||
|
zero_division:
|
||||||
|
nlr_jump(mp_obj_new_exception_msg(&mp_type_ZeroDivisionError, "division by zero"));
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t mp_call_function_0(mp_obj_t fun) {
|
mp_obj_t mp_call_function_0(mp_obj_t fun) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user