Rename configuration variables controling Python features.
Now of the form MICROPY_PY_*. See issue #35.
This commit is contained in:
parent
d0ceb04b90
commit
ee3fd46f13
@ -12,13 +12,13 @@
|
||||
#define MICROPY_HELPER_REPL (0)
|
||||
#define MICROPY_HELPER_LEXER_UNIX (0)
|
||||
#define MICROPY_ENABLE_SOURCE_LINE (0)
|
||||
#define MICROPY_ENABLE_MOD_COLLECTIONS (0)
|
||||
#define MICROPY_ENABLE_MOD_MATH (0)
|
||||
#define MICROPY_ENABLE_MOD_CMATH (0)
|
||||
#define MICROPY_ENABLE_MOD_IO (0)
|
||||
#define MICROPY_ENABLE_MOD_STRUCT (0)
|
||||
#define MICROPY_ENABLE_MOD_SYS (0)
|
||||
#define MICROPY_ENABLE_PROPERTY (0)
|
||||
#define MICROPY_PY_COLLECTIONS (0)
|
||||
#define MICROPY_PY_MATH (0)
|
||||
#define MICROPY_PY_CMATH (0)
|
||||
#define MICROPY_PY_IO (0)
|
||||
#define MICROPY_PY_STRUCT (0)
|
||||
#define MICROPY_PY_SYS (0)
|
||||
#define MICROPY_PY_PROPERTY (0)
|
||||
#define MICROPY_CPYTHON_COMPAT (0)
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE)
|
||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE)
|
||||
|
@ -73,7 +73,7 @@ mp_import_stat_t find_file(const char *file_str, uint file_len, vstr_t *dest) {
|
||||
// extract the list of paths
|
||||
uint path_num = 0;
|
||||
mp_obj_t *path_items;
|
||||
#if MICROPY_ENABLE_MOD_SYS
|
||||
#if MICROPY_PY_SYS
|
||||
mp_obj_list_get(mp_sys_path, &path_num, &path_items);
|
||||
#endif
|
||||
|
||||
|
@ -53,14 +53,14 @@ STATIC const mp_map_elem_t mp_builtin_object_table[] = {
|
||||
#if MICROPY_ENABLE_FLOAT
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_float), (mp_obj_t)&mp_type_float },
|
||||
#endif
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_frozenset), (mp_obj_t)&mp_type_frozenset },
|
||||
#endif
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_int), (mp_obj_t)&mp_type_int },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_list), (mp_obj_t)&mp_type_list },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_map), (mp_obj_t)&mp_type_map },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_object), (mp_obj_t)&mp_type_object },
|
||||
#if MICROPY_ENABLE_PROPERTY
|
||||
#if MICROPY_PY_PROPERTY
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_property), (mp_obj_t)&mp_type_property },
|
||||
#endif
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_range), (mp_obj_t)&mp_type_range },
|
||||
@ -159,26 +159,26 @@ STATIC const mp_map_elem_t mp_builtin_module_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_micropython), (mp_obj_t)&mp_module_micropython },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_array), (mp_obj_t)&mp_module_array },
|
||||
#if MICROPY_ENABLE_MOD_IO
|
||||
#if MICROPY_PY_IO
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_io), (mp_obj_t)&mp_module_io },
|
||||
#endif
|
||||
#if MICROPY_ENABLE_MOD_COLLECTIONS
|
||||
#if MICROPY_PY_COLLECTIONS
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR__collections), (mp_obj_t)&mp_module_collections },
|
||||
#endif
|
||||
#if MICROPY_ENABLE_MOD_STRUCT
|
||||
#if MICROPY_PY_STRUCT
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_struct), (mp_obj_t)&mp_module_struct },
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_FLOAT
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_math), (mp_obj_t)&mp_module_math },
|
||||
#if MICROPY_ENABLE_MOD_CMATH
|
||||
#if MICROPY_PY_CMATH
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_cmath), (mp_obj_t)&mp_module_cmath },
|
||||
#endif
|
||||
#endif
|
||||
#if MICROPY_ENABLE_MOD_SYS
|
||||
#if MICROPY_PY_SYS
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_sys), (mp_obj_t)&mp_module_sys },
|
||||
#endif
|
||||
#if MICROPY_ENABLE_MOD_GC && MICROPY_ENABLE_GC
|
||||
#if MICROPY_PY_GC && MICROPY_ENABLE_GC
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_gc), (mp_obj_t)&mp_module_gc },
|
||||
#endif
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include "obj.h"
|
||||
#include "builtin.h"
|
||||
|
||||
#if MICROPY_ENABLE_FLOAT && MICROPY_ENABLE_MOD_CMATH
|
||||
#if MICROPY_ENABLE_FLOAT && MICROPY_PY_CMATH
|
||||
|
||||
// These are defined in modmath.c
|
||||
extern const mp_obj_float_t mp_math_e_obj;
|
||||
@ -154,4 +154,4 @@ const mp_obj_module_t mp_module_cmath = {
|
||||
.globals = (mp_obj_dict_t*)&mp_module_cmath_globals,
|
||||
};
|
||||
|
||||
#endif // MICROPY_ENABLE_FLOAT && MICROPY_ENABLE_MOD_CMATH
|
||||
#endif // MICROPY_ENABLE_FLOAT && MICROPY_PY_CMATH
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "obj.h"
|
||||
#include "builtin.h"
|
||||
|
||||
#if MICROPY_ENABLE_MOD_COLLECTIONS
|
||||
#if MICROPY_PY_COLLECTIONS
|
||||
|
||||
STATIC const mp_map_elem_t mp_module_collections_globals_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR__collections) },
|
||||
@ -54,4 +54,4 @@ const mp_obj_module_t mp_module_collections = {
|
||||
.globals = (mp_obj_dict_t*)&mp_module_collections_globals,
|
||||
};
|
||||
|
||||
#endif // MICROPY_ENABLE_MOD_COLLECTIONS
|
||||
#endif // MICROPY_PY_COLLECTIONS
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include "objstr.h"
|
||||
#include "gc.h"
|
||||
|
||||
#if MICROPY_ENABLE_MOD_GC && MICROPY_ENABLE_GC
|
||||
#if MICROPY_PY_GC && MICROPY_ENABLE_GC
|
||||
|
||||
STATIC mp_obj_t py_gc_collect(void) {
|
||||
gc_collect();
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "obj.h"
|
||||
#include "builtin.h"
|
||||
|
||||
#if MICROPY_ENABLE_MOD_IO
|
||||
#if MICROPY_PY_IO
|
||||
|
||||
extern const mp_obj_type_t mp_type_fileio;
|
||||
extern const mp_obj_type_t mp_type_textio;
|
||||
@ -40,14 +40,14 @@ STATIC const mp_map_elem_t mp_module_io_globals_table[] = {
|
||||
// Note: mp_builtin_open_obj should be defined by port, it's not
|
||||
// part of the core.
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_open), (mp_obj_t)&mp_builtin_open_obj },
|
||||
#if MICROPY_MOD_IO_FILEIO
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_FileIO), (mp_obj_t)&mp_type_fileio },
|
||||
#endif
|
||||
#if MICROPY_CPYTHON_COMPAT
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TextIOWrapper), (mp_obj_t)&mp_type_textio },
|
||||
#endif
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_StringIO), (mp_obj_t)&mp_type_stringio },
|
||||
#if MICROPY_IO_BYTESIO
|
||||
#if MICROPY_PY_IO_BYTESIO
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_BytesIO), (mp_obj_t)&mp_type_bytesio },
|
||||
#endif
|
||||
};
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include "obj.h"
|
||||
#include "builtin.h"
|
||||
|
||||
#if MICROPY_ENABLE_FLOAT && MICROPY_ENABLE_MOD_MATH
|
||||
#if MICROPY_ENABLE_FLOAT && MICROPY_PY_MATH
|
||||
|
||||
//TODO: Change macros to check for overflow and raise OverflowError or RangeError
|
||||
#define MATH_FUN_1(py_name, c_name) \
|
||||
@ -184,4 +184,4 @@ const mp_obj_module_t mp_module_math = {
|
||||
.globals = (mp_obj_dict_t*)&mp_module_math_globals,
|
||||
};
|
||||
|
||||
#endif // MICROPY_ENABLE_FLOAT && MICROPY_ENABLE_MOD_MATH
|
||||
#endif // MICROPY_ENABLE_FLOAT && MICROPY_PY_MATH
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include "binary.h"
|
||||
#include "parsenum.h"
|
||||
|
||||
#if MICROPY_ENABLE_MOD_STRUCT
|
||||
#if MICROPY_PY_STRUCT
|
||||
|
||||
STATIC char get_fmt_type(const char **fmt) {
|
||||
char t = **fmt;
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "objtuple.h"
|
||||
#include "objstr.h"
|
||||
|
||||
#if MICROPY_ENABLE_MOD_SYS
|
||||
#if MICROPY_PY_SYS
|
||||
|
||||
// These should be implemented by ports, specific types don't matter,
|
||||
// only addresses.
|
||||
@ -65,11 +65,11 @@ STATIC const mp_map_elem_t mp_module_sys_globals_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_byteorder), MP_OBJ_NEW_QSTR(MP_QSTR_big) },
|
||||
#endif
|
||||
|
||||
#if MICROPY_MOD_SYS_EXIT
|
||||
#if MICROPY_PY_SYS_EXIT
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_exit), (mp_obj_t)&mp_sys_exit_obj },
|
||||
#endif
|
||||
|
||||
#if MICROPY_MOD_SYS_STDFILES
|
||||
#if MICROPY_PY_SYS_STDFILES
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_stdin), (mp_obj_t)&mp_sys_stdin_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_stdout), (mp_obj_t)&mp_sys_stdout_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_stderr), (mp_obj_t)&mp_sys_stderr_obj },
|
||||
|
156
py/mpconfig.h
156
py/mpconfig.h
@ -131,7 +131,16 @@
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Fine control over Python features */
|
||||
/* Optimisations */
|
||||
|
||||
// Whether to use computed gotos in the VM, or a switch
|
||||
// Computed gotos are roughly 10% faster, and increase VM code size by a little
|
||||
#ifndef MICROPY_OPT_COMPUTED_GOTO
|
||||
#define MICROPY_OPT_COMPUTED_GOTO (0)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Python internal features */
|
||||
|
||||
// Whether to include the garbage collector
|
||||
#ifndef MICROPY_ENABLE_GC
|
||||
@ -209,75 +218,6 @@ typedef double mp_float_t;
|
||||
#define MICROPY_ENABLE_FLOAT (0)
|
||||
#endif
|
||||
|
||||
// Whether to provide "collections" module
|
||||
#ifndef MICROPY_ENABLE_MOD_COLLECTIONS
|
||||
#define MICROPY_ENABLE_MOD_COLLECTIONS (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "math" module
|
||||
#ifndef MICROPY_ENABLE_MOD_MATH
|
||||
#define MICROPY_ENABLE_MOD_MATH (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "cmath" module
|
||||
#ifndef MICROPY_ENABLE_MOD_CMATH
|
||||
#define MICROPY_ENABLE_MOD_CMATH (0)
|
||||
#endif
|
||||
|
||||
// Whether to provide "gc" module
|
||||
#ifndef MICROPY_ENABLE_MOD_GC
|
||||
#define MICROPY_ENABLE_MOD_GC (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "io" module
|
||||
#ifndef MICROPY_ENABLE_MOD_IO
|
||||
#define MICROPY_ENABLE_MOD_IO (1)
|
||||
#endif
|
||||
|
||||
#ifndef MICROPY_MOD_IO_FILEIO
|
||||
#define MICROPY_MOD_IO_FILEIO (0)
|
||||
#endif
|
||||
|
||||
#ifndef MICROPY_IO_BYTESIO
|
||||
#define MICROPY_IO_BYTESIO (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "struct" module
|
||||
#ifndef MICROPY_ENABLE_MOD_STRUCT
|
||||
#define MICROPY_ENABLE_MOD_STRUCT (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "sys" module
|
||||
#ifndef MICROPY_ENABLE_MOD_SYS
|
||||
#define MICROPY_ENABLE_MOD_SYS (1)
|
||||
#endif
|
||||
|
||||
// sys.exit() availability
|
||||
#ifndef MICROPY_MOD_SYS_EXIT
|
||||
#define MICROPY_MOD_SYS_EXIT (0)
|
||||
#endif
|
||||
|
||||
// sys.{stdin,stdout,stderr} availability
|
||||
#ifndef MICROPY_MOD_SYS_STDFILES
|
||||
#define MICROPY_MOD_SYS_STDFILES (0)
|
||||
#endif
|
||||
|
||||
// Whether to support slice object and correspondingly
|
||||
// slice subscript operators
|
||||
#ifndef MICROPY_ENABLE_SLICE
|
||||
#define MICROPY_ENABLE_SLICE (1)
|
||||
#endif
|
||||
|
||||
// Whether to support frozenset object
|
||||
#ifndef MICROPY_ENABLE_FROZENSET
|
||||
#define MICROPY_ENABLE_FROZENSET (0)
|
||||
#endif
|
||||
|
||||
// Whether to support the property object
|
||||
#ifndef MICROPY_ENABLE_PROPERTY
|
||||
#define MICROPY_ENABLE_PROPERTY (1)
|
||||
#endif
|
||||
|
||||
// Enable features which improve CPython compatibility
|
||||
// but may lead to more code size/memory usage.
|
||||
// TODO: Originally intended as generic category to not
|
||||
@ -291,10 +231,78 @@ typedef double mp_float_t;
|
||||
#define MICROPY_STREAMS_NON_BLOCK (0)
|
||||
#endif
|
||||
|
||||
// Whether to use computed gotos in the VM, or a switch
|
||||
// Computed gotos are roughly 10% faster, and increase VM code size by a little
|
||||
#ifndef MICROPY_OPT_COMPUTED_GOTO
|
||||
#define MICROPY_OPT_COMPUTED_GOTO (0)
|
||||
/*****************************************************************************/
|
||||
/* Fine control over Python builtins, classes, modules, etc */
|
||||
|
||||
// Whether to support slice object and correspondingly
|
||||
// slice subscript operators
|
||||
#ifndef MICROPY_PY_SLICE
|
||||
#define MICROPY_PY_SLICE (1)
|
||||
#endif
|
||||
|
||||
// Whether to support frozenset object
|
||||
#ifndef MICROPY_PY_FROZENSET
|
||||
#define MICROPY_PY_FROZENSET (0)
|
||||
#endif
|
||||
|
||||
// Whether to support the property object
|
||||
#ifndef MICROPY_PY_PROPERTY
|
||||
#define MICROPY_PY_PROPERTY (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "collections" module
|
||||
#ifndef MICROPY_PY_COLLECTIONS
|
||||
#define MICROPY_PY_COLLECTIONS (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "math" module
|
||||
#ifndef MICROPY_PY_MATH
|
||||
#define MICROPY_PY_MATH (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "cmath" module
|
||||
#ifndef MICROPY_PY_CMATH
|
||||
#define MICROPY_PY_CMATH (0)
|
||||
#endif
|
||||
|
||||
// Whether to provide "gc" module
|
||||
#ifndef MICROPY_PY_GC
|
||||
#define MICROPY_PY_GC (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "io" module
|
||||
#ifndef MICROPY_PY_IO
|
||||
#define MICROPY_PY_IO (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "io.FileIO" class
|
||||
#ifndef MICROPY_PY_IO_FILEIO
|
||||
#define MICROPY_PY_IO_FILEIO (0)
|
||||
#endif
|
||||
|
||||
// Whether to provide "io.BytesIO" class
|
||||
#ifndef MICROPY_PY_IO_BYTESIO
|
||||
#define MICROPY_PY_IO_BYTESIO (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "struct" module
|
||||
#ifndef MICROPY_PY_STRUCT
|
||||
#define MICROPY_PY_STRUCT (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "sys" module
|
||||
#ifndef MICROPY_PY_SYS
|
||||
#define MICROPY_PY_SYS (1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "sys.exit" function
|
||||
#ifndef MICROPY_PY_SYS_EXIT
|
||||
#define MICROPY_PY_SYS_EXIT (0)
|
||||
#endif
|
||||
|
||||
// Whether to provide sys.{stdin,stdout,stderr} objects
|
||||
#ifndef MICROPY_PY_SYS_STDFILES
|
||||
#define MICROPY_PY_SYS_STDFILES (0)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -150,7 +150,7 @@ STATIC mp_obj_t list_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) {
|
||||
STATIC mp_obj_t list_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
if (value == MP_OBJ_NULL) {
|
||||
// delete
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
if (MP_OBJ_IS_TYPE(index, &mp_type_slice)) {
|
||||
mp_obj_list_t *self = self_in;
|
||||
machine_uint_t start, stop;
|
||||
@ -174,7 +174,7 @@ STATIC mp_obj_t list_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
} else if (value == MP_OBJ_SENTINEL) {
|
||||
// load
|
||||
mp_obj_list_t *self = self_in;
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
if (MP_OBJ_IS_TYPE(index, &mp_type_slice)) {
|
||||
machine_uint_t start, stop;
|
||||
if (!mp_seq_get_fast_slice_indexes(self->len, index, &start, &stop)) {
|
||||
@ -188,7 +188,7 @@ STATIC mp_obj_t list_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
uint index_val = mp_get_index(self->base.type, self->len, index, false);
|
||||
return self->items[index_val];
|
||||
} else {
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
if (MP_OBJ_IS_TYPE(index, &mp_type_slice)) {
|
||||
mp_obj_list_t *self = self_in;
|
||||
assert(MP_OBJ_IS_TYPE(value, &mp_type_list));
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "obj.h"
|
||||
#include "objtuple.h"
|
||||
|
||||
#if MICROPY_ENABLE_MOD_COLLECTIONS
|
||||
#if MICROPY_PY_COLLECTIONS
|
||||
|
||||
typedef struct _mp_obj_namedtuple_type_t {
|
||||
mp_obj_type_t base;
|
||||
@ -174,4 +174,4 @@ STATIC mp_obj_t new_namedtuple_type(mp_obj_t name_in, mp_obj_t fields_in) {
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(mp_namedtuple_obj, new_namedtuple_type);
|
||||
|
||||
#endif // MICROPY_ENABLE_MOD_COLLECTIONS
|
||||
#endif // MICROPY_PY_COLLECTIONS
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "obj.h"
|
||||
#include "runtime.h"
|
||||
|
||||
#if MICROPY_ENABLE_PROPERTY
|
||||
#if MICROPY_PY_PROPERTY
|
||||
|
||||
typedef struct _mp_obj_property_t {
|
||||
mp_obj_base_t base;
|
||||
@ -115,4 +115,4 @@ const mp_obj_t *mp_obj_property_get(mp_obj_t self_in) {
|
||||
return self->proxy;
|
||||
}
|
||||
|
||||
#endif // MICROPY_ENABLE_PROPERTY
|
||||
#endif // MICROPY_PY_PROPERTY
|
||||
|
16
py/objset.c
16
py/objset.c
@ -52,13 +52,13 @@ STATIC mp_obj_t set_it_iternext(mp_obj_t self_in);
|
||||
|
||||
STATIC bool is_set_or_frozenset(mp_obj_t o) {
|
||||
return MP_OBJ_IS_TYPE(o, &mp_type_set)
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
|| MP_OBJ_IS_TYPE(o, &mp_type_frozenset)
|
||||
#endif
|
||||
;
|
||||
}
|
||||
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
STATIC void check_set_or_frozenset(mp_obj_t o) {
|
||||
if (!is_set_or_frozenset(o)) {
|
||||
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "'set' object required"));
|
||||
@ -72,7 +72,7 @@ STATIC void check_set(mp_obj_t o) {
|
||||
if (!MP_OBJ_IS_TYPE(o, &mp_type_set)) {
|
||||
// Emulate CPython behavior
|
||||
// AttributeError: 'frozenset' object has no attribute 'add'
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
if (MP_OBJ_IS_TYPE(o, &mp_type_frozenset)) {
|
||||
nlr_raise(mp_obj_new_exception_msg(&mp_type_AttributeError, "'frozenset' has no such attribute"));
|
||||
}
|
||||
@ -83,11 +83,11 @@ STATIC void check_set(mp_obj_t o) {
|
||||
|
||||
STATIC void set_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) {
|
||||
mp_obj_set_t *self = self_in;
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
bool is_frozen = MP_OBJ_IS_TYPE(self_in, &mp_type_frozenset);
|
||||
#endif
|
||||
if (self->set.used == 0) {
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
if (is_frozen) {
|
||||
print(env, "frozen");
|
||||
}
|
||||
@ -96,7 +96,7 @@ STATIC void set_print(void (*print)(void *env, const char *fmt, ...), void *env,
|
||||
return;
|
||||
}
|
||||
bool first = true;
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
if (is_frozen) {
|
||||
print(env, "frozenset(");
|
||||
}
|
||||
@ -112,7 +112,7 @@ STATIC void set_print(void (*print)(void *env, const char *fmt, ...), void *env,
|
||||
}
|
||||
}
|
||||
print(env, "}");
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
if (is_frozen) {
|
||||
print(env, ")");
|
||||
}
|
||||
@ -556,7 +556,7 @@ const mp_obj_type_t mp_type_set = {
|
||||
.locals_dict = (mp_obj_t)&set_locals_dict,
|
||||
};
|
||||
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
const mp_obj_type_t mp_type_frozenset = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_frozenset,
|
||||
|
@ -56,7 +56,7 @@ const mp_obj_ellipsis_t mp_const_ellipsis_obj = {{&mp_type_ellipsis}};
|
||||
/******************************************************************************/
|
||||
/* slice object */
|
||||
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
|
||||
// TODO: This implements only variant of slice with 2 integer args only.
|
||||
// CPython supports 3rd arg (step), plus args can be arbitrary Python objects.
|
||||
|
@ -349,7 +349,7 @@ STATIC mp_obj_t str_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
GET_STR_DATA_LEN(self_in, self_data, self_len);
|
||||
if (value == MP_OBJ_SENTINEL) {
|
||||
// load
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
if (MP_OBJ_IS_TYPE(index, &mp_type_slice)) {
|
||||
machine_uint_t start, stop;
|
||||
if (!mp_seq_get_fast_slice_indexes(self_len, index, &start, &stop)) {
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include "stream.h"
|
||||
#include "objstr.h"
|
||||
|
||||
#if MICROPY_ENABLE_MOD_IO
|
||||
#if MICROPY_PY_IO
|
||||
|
||||
typedef struct _mp_obj_stringio_t {
|
||||
mp_obj_base_t base;
|
||||
@ -156,7 +156,7 @@ const mp_obj_type_t mp_type_stringio = {
|
||||
.locals_dict = (mp_obj_t)&stringio_locals_dict,
|
||||
};
|
||||
|
||||
#if MICROPY_IO_BYTESIO
|
||||
#if MICROPY_PY_IO_BYTESIO
|
||||
const mp_obj_type_t mp_type_bytesio = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_BytesIO,
|
||||
|
@ -161,7 +161,7 @@ mp_obj_t mp_obj_tuple_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
if (value == MP_OBJ_SENTINEL) {
|
||||
// load
|
||||
mp_obj_tuple_t *self = self_in;
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
if (MP_OBJ_IS_TYPE(index, &mp_type_slice)) {
|
||||
machine_uint_t start, stop;
|
||||
if (!mp_seq_get_fast_slice_indexes(self->len, index, &start, &stop)) {
|
||||
|
@ -413,7 +413,7 @@ STATIC void instance_load_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
|
||||
mp_obj_class_lookup(self, self->base.type, attr, 0, dest);
|
||||
mp_obj_t member = dest[0];
|
||||
if (member != MP_OBJ_NULL) {
|
||||
#if MICROPY_ENABLE_PROPERTY
|
||||
#if MICROPY_PY_PROPERTY
|
||||
if (MP_OBJ_IS_TYPE(member, &mp_type_property)) {
|
||||
// object member is a property
|
||||
// delegate the store to the property
|
||||
@ -447,7 +447,7 @@ STATIC void instance_load_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
|
||||
STATIC bool instance_store_attr(mp_obj_t self_in, qstr attr, mp_obj_t value) {
|
||||
mp_obj_instance_t *self = self_in;
|
||||
|
||||
#if MICROPY_ENABLE_PROPERTY
|
||||
#if MICROPY_PY_PROPERTY
|
||||
// for property, we need to do a lookup first in the class dict
|
||||
// this makes all stores slow... how to fix?
|
||||
mp_obj_t member[2] = {MP_OBJ_NULL};
|
||||
|
@ -125,7 +125,7 @@ Q(bool)
|
||||
Q(bytearray)
|
||||
Q(bytes)
|
||||
Q(callable)
|
||||
#if MICROPY_ENABLE_MOD_STRUCT
|
||||
#if MICROPY_PY_STRUCT
|
||||
Q(calcsize)
|
||||
#endif
|
||||
Q(chr)
|
||||
@ -257,11 +257,11 @@ Q(iterator)
|
||||
Q(module)
|
||||
Q(slice)
|
||||
|
||||
#if MICROPY_ENABLE_FROZENSET
|
||||
#if MICROPY_PY_FROZENSET
|
||||
Q(frozenset)
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_MOD_MATH || MICROPY_ENABLE_MOD_CMATH
|
||||
#if MICROPY_PY_MATH || MICROPY_PY_CMATH
|
||||
Q(math)
|
||||
Q(e)
|
||||
Q(pi)
|
||||
@ -305,7 +305,7 @@ Q(gamma)
|
||||
Q(lgamma)
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_MOD_CMATH
|
||||
#if MICROPY_PY_CMATH
|
||||
Q(cmath)
|
||||
Q(phase)
|
||||
Q(polar)
|
||||
@ -331,7 +331,7 @@ Q(decode)
|
||||
Q(utf-8)
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_MOD_SYS
|
||||
#if MICROPY_PY_SYS
|
||||
Q(argv)
|
||||
Q(byteorder)
|
||||
Q(big)
|
||||
@ -344,13 +344,13 @@ Q(version)
|
||||
Q(version_info)
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_MOD_STRUCT
|
||||
#if MICROPY_PY_STRUCT
|
||||
Q(struct)
|
||||
Q(pack)
|
||||
Q(unpack)
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_MOD_IO
|
||||
#if MICROPY_PY_IO
|
||||
Q(io)
|
||||
Q(readall)
|
||||
Q(readline)
|
||||
@ -362,14 +362,14 @@ Q(BytesIO)
|
||||
Q(getvalue)
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_MOD_GC
|
||||
#if MICROPY_PY_GC
|
||||
Q(gc)
|
||||
Q(collect)
|
||||
Q(disable)
|
||||
Q(enable)
|
||||
#endif
|
||||
|
||||
#if MICROPY_ENABLE_PROPERTY
|
||||
#if MICROPY_PY_PROPERTY
|
||||
Q(property)
|
||||
Q(getter)
|
||||
Q(setter)
|
||||
|
@ -419,7 +419,7 @@ void mp_bytecode_print2(const byte *ip, int len) {
|
||||
printf("SET_ADD " UINT_FMT, unum);
|
||||
break;
|
||||
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
case MP_BC_BUILD_SLICE:
|
||||
DECODE_UINT;
|
||||
printf("BUILD_SLICE " UINT_FMT, unum);
|
||||
|
2
py/vm.c
2
py/vm.c
@ -762,7 +762,7 @@ unwind_jump:
|
||||
sp--;
|
||||
DISPATCH();
|
||||
|
||||
#if MICROPY_ENABLE_SLICE
|
||||
#if MICROPY_PY_SLICE
|
||||
ENTRY(MP_BC_BUILD_SLICE):
|
||||
DECODE_UINT;
|
||||
if (unum == 2) {
|
||||
|
@ -14,7 +14,7 @@
|
||||
#define MICROPY_ENABLE_SOURCE_LINE (0)
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE)
|
||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE)
|
||||
#define MICROPY_ENABLE_MOD_IO (0)
|
||||
#define MICROPY_PY_IO (0)
|
||||
|
||||
// type definitions for the specific machine
|
||||
|
||||
|
@ -33,7 +33,6 @@
|
||||
#define MICROPY_ENABLE_FINALISER (1)
|
||||
#define MICROPY_HELPER_REPL (1)
|
||||
#define MICROPY_ENABLE_SOURCE_LINE (1)
|
||||
#define MICROPY_ENABLE_FROZENSET (1)
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
|
||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
|
||||
#define MICROPY_OPT_COMPUTED_GOTO (1)
|
||||
@ -45,9 +44,10 @@
|
||||
*/
|
||||
#define MICROPY_ENABLE_LFN (1)
|
||||
#define MICROPY_LFN_CODE_PAGE (437) /* 1=SFN/ANSI 437=LFN/U.S.(OEM) */
|
||||
#define MICROPY_MOD_SYS_EXIT (1)
|
||||
#define MICROPY_MOD_SYS_STDFILES (1)
|
||||
#define MICROPY_ENABLE_MOD_CMATH (1)
|
||||
#define MICROPY_PY_FROZENSET (1)
|
||||
#define MICROPY_PY_SYS_EXIT (1)
|
||||
#define MICROPY_PY_SYS_STDFILES (1)
|
||||
#define MICROPY_PY_CMATH (1)
|
||||
|
||||
// extra built in names to add to the global namespace
|
||||
extern const struct _mp_obj_fun_native_t mp_builtin_help_obj;
|
||||
|
@ -29,7 +29,7 @@
|
||||
#define MICROPY_EMIT_CPYTHON (1)
|
||||
#define MICROPY_HELPER_LEXER_UNIX (1)
|
||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
|
||||
#define MICROPY_ENABLE_MOD_IO (0)
|
||||
#define MICROPY_PY_IO (0)
|
||||
|
||||
// type definitions for the specific machine
|
||||
|
||||
|
@ -27,7 +27,7 @@ UNAME_S := $(shell uname -s)
|
||||
ifeq ($(MICROPY_FORCE_32BIT),1)
|
||||
CFLAGS += -m32
|
||||
LDFLAGS += -m32
|
||||
ifeq ($(MICROPY_MOD_FFI),1)
|
||||
ifeq ($(MICROPY_PY_FFI),1)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
CFLAGS_MOD += -I/usr/include/i686-linux-gnu
|
||||
endif
|
||||
@ -40,14 +40,14 @@ LDFLAGS_MOD += -lreadline
|
||||
# the following is needed for BSD
|
||||
#LDFLAGS_MOD += -ltermcap
|
||||
endif
|
||||
ifeq ($(MICROPY_MOD_TIME),1)
|
||||
CFLAGS_MOD += -DMICROPY_MOD_TIME=1
|
||||
ifeq ($(MICROPY_PY_TIME),1)
|
||||
CFLAGS_MOD += -DMICROPY_PY_TIME=1
|
||||
SRC_MOD += modtime.c
|
||||
endif
|
||||
ifeq ($(MICROPY_MOD_FFI),1)
|
||||
ifeq ($(MICROPY_PY_FFI),1)
|
||||
LIBFFI_LDFLAGS_MOD := $(shell pkg-config --libs libffi)
|
||||
LIBFFI_CFLAGS_MOD := $(shell pkg-config --cflags libffi)
|
||||
CFLAGS_MOD += $(LIBFFI_CFLAGS_MOD) -DMICROPY_MOD_FFI=1
|
||||
CFLAGS_MOD += $(LIBFFI_CFLAGS_MOD) -DMICROPY_PY_FFI=1
|
||||
LDFLAGS_MOD += -ldl $(LIBFFI_LDFLAGS_MOD)
|
||||
SRC_MOD += modffi.c
|
||||
endif
|
||||
|
@ -131,7 +131,7 @@ STATIC mp_obj_t fdfile_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const
|
||||
case '+':
|
||||
mode |= O_RDWR;
|
||||
break;
|
||||
#if MICROPY_MOD_IO_FILEIO
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
// If we don't have io.FileIO, then files are in text mode implicitly
|
||||
case 'b':
|
||||
type = &mp_type_fileio;
|
||||
@ -173,7 +173,7 @@ STATIC const mp_map_elem_t rawfile_locals_dict_table[] = {
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(rawfile_locals_dict, rawfile_locals_dict_table);
|
||||
|
||||
#if MICROPY_MOD_IO_FILEIO
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
STATIC const mp_stream_p_t fileio_stream_p = {
|
||||
.read = fdfile_read,
|
||||
.write = fdfile_write,
|
||||
|
@ -32,7 +32,6 @@
|
||||
#define MICROPY_EMIT_INLINE_THUMB (0)
|
||||
#define MICROPY_ENABLE_GC (1)
|
||||
#define MICROPY_ENABLE_FINALISER (1)
|
||||
#define MICROPY_ENABLE_FROZENSET (1)
|
||||
#define MICROPY_MEM_STATS (1)
|
||||
#define MICROPY_DEBUG_PRINTERS (1)
|
||||
#define MICROPY_HELPER_REPL (1)
|
||||
@ -42,10 +41,11 @@
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
|
||||
#define MICROPY_STREAMS_NON_BLOCK (1)
|
||||
#define MICROPY_OPT_COMPUTED_GOTO (1)
|
||||
#define MICROPY_MOD_SYS_EXIT (1)
|
||||
#define MICROPY_MOD_SYS_STDFILES (1)
|
||||
#define MICROPY_ENABLE_MOD_CMATH (1)
|
||||
#define MICROPY_MOD_IO_FILEIO (1)
|
||||
#define MICROPY_PY_FROZENSET (1)
|
||||
#define MICROPY_PY_SYS_EXIT (1)
|
||||
#define MICROPY_PY_SYS_STDFILES (1)
|
||||
#define MICROPY_PY_CMATH (1)
|
||||
#define MICROPY_PY_IO_FILEIO (1)
|
||||
// Define to MICROPY_ERROR_REPORTING_DETAILED to get function, etc.
|
||||
// names in exception messages (may require more RAM).
|
||||
#define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_DETAILED)
|
||||
@ -55,20 +55,20 @@ extern const struct _mp_obj_module_t mp_module_time;
|
||||
extern const struct _mp_obj_module_t mp_module_socket;
|
||||
extern const struct _mp_obj_module_t mp_module_ffi;
|
||||
|
||||
#if MICROPY_MOD_FFI
|
||||
#define MICROPY_MOD_FFI_DEF { MP_OBJ_NEW_QSTR(MP_QSTR_ffi), (mp_obj_t)&mp_module_ffi },
|
||||
#if MICROPY_PY_FFI
|
||||
#define MICROPY_PY_FFI_DEF { MP_OBJ_NEW_QSTR(MP_QSTR_ffi), (mp_obj_t)&mp_module_ffi },
|
||||
#else
|
||||
#define MICROPY_MOD_FFI_DEF
|
||||
#define MICROPY_PY_FFI_DEF
|
||||
#endif
|
||||
#if MICROPY_MOD_TIME
|
||||
#define MICROPY_MOD_TIME_DEF { MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_time },
|
||||
#if MICROPY_PY_TIME
|
||||
#define MICROPY_PY_TIME_DEF { MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_time },
|
||||
#else
|
||||
#define MICROPY_MOD_TIME_DEF
|
||||
#define MICROPY_PY_TIME_DEF
|
||||
#endif
|
||||
|
||||
#define MICROPY_PORT_BUILTIN_MODULES \
|
||||
MICROPY_MOD_FFI_DEF \
|
||||
MICROPY_MOD_TIME_DEF \
|
||||
MICROPY_PY_FFI_DEF \
|
||||
MICROPY_PY_TIME_DEF \
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_microsocket), (mp_obj_t)&mp_module_socket }, \
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR__os), (mp_obj_t)&mp_module_os }, \
|
||||
|
||||
|
@ -7,7 +7,7 @@ MICROPY_FORCE_32BIT = 0
|
||||
MICROPY_USE_READLINE = 1
|
||||
|
||||
# Subset of CPython time module
|
||||
MICROPY_MOD_TIME = 1
|
||||
MICROPY_PY_TIME = 1
|
||||
|
||||
# ffi module requires libffi (libffi-dev Debian package)
|
||||
MICROPY_MOD_FFI = 1
|
||||
MICROPY_PY_FFI = 1
|
||||
|
@ -39,10 +39,10 @@
|
||||
#define MICROPY_DEBUG_PRINTERS (1)
|
||||
#define MICROPY_HELPER_REPL (1)
|
||||
#define MICROPY_HELPER_LEXER_UNIX (1)
|
||||
#define MICROPY_ENABLE_MOD_CMATH (1)
|
||||
#define MICROPY_MOD_SYS_STDFILES (1)
|
||||
#define MICROPY_MOD_SYS_EXIT (1)
|
||||
#define MICROPY_ENABLE_FROZENSET (1)
|
||||
#define MICROPY_PY_FROZENSET (1)
|
||||
#define MICROPY_PY_CMATH (1)
|
||||
#define MICROPY_PY_SYS_STDFILES (1)
|
||||
#define MICROPY_PY_SYS_EXIT (1)
|
||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
|
||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
|
||||
#define MICROPY_PORT_INIT_FUNC init()
|
||||
|
@ -7,7 +7,7 @@ MICROPY_FORCE_32BIT = 0
|
||||
MICROPY_USE_READLINE = 0
|
||||
|
||||
# Subset of CPython time module
|
||||
MICROPY_MOD_TIME = 1
|
||||
MICROPY_PY_TIME = 1
|
||||
|
||||
# ffi module requires libffi (libffi-dev Debian package)
|
||||
MICROPY_MOD_FFI = 0
|
||||
MICROPY_PY_FFI = 0
|
||||
|
Loading…
Reference in New Issue
Block a user