Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
ee3fd46f
Commit
ee3fd46f
authored
May 24, 2014
by
Damien George
Browse files
Rename configuration variables controling Python features.
Now of the form MICROPY_PY_*. See issue #35.
parent
d0ceb04b
Changes
32
Hide whitespace changes
Inline
Side-by-side
bare-arm/mpconfigport.h
View file @
ee3fd46f
...
...
@@ -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)
...
...
py/builtinimport.c
View file @
ee3fd46f
...
...
@@ -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
...
...
py/builtintables.c
View file @
ee3fd46f
...
...
@@ -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
...
...
py/modcmath.c
View file @
ee3fd46f
...
...
@@ -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
py/modcollections.c
View file @
ee3fd46f
...
...
@@ -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
py/modgc.c
View file @
ee3fd46f
...
...
@@ -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
();
...
...
py/modio.c
View file @
ee3fd46f
...
...
@@ -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
};
...
...
py/modmath.c
View file @
ee3fd46f
...
...
@@ -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
py/modstruct.c
View file @
ee3fd46f
...
...
@@ -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
;
...
...
py/modsys.c
View file @
ee3fd46f
...
...
@@ -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
},
...
...
py/mpconfig.h
View file @
ee3fd46f
...
...
@@ -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,92 +218,91 @@ 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)
// Enable features which improve CPython compatibility
// but may lead to more code size/memory usage.
// TODO: Originally intended as generic category to not
// add bunch of once-off options. May need refactoring later
#ifndef MICROPY_CPYTHON_COMPAT
#define MICROPY_CPYTHON_COMPAT (1)
#endif
// Whether
to provide "math" module
#ifndef MICROPY_
ENABLE_MOD_MATH
#define MICROPY_
ENABLE_MOD_MATH
(
1
)
// Whether
POSIX-semantics non-blocking streams are supported
#ifndef MICROPY_
STREAMS_NON_BLOCK
#define MICROPY_
STREAMS_NON_BLOCK
(
0
)
#endif
// Whether to provide "cmath" module
#ifndef MICROPY_ENABLE_MOD_CMATH
#define MICROPY_ENABLE_MOD_CMATH (0)
#endif
/*****************************************************************************/
/* Fine control over Python builtins, classes, modules, etc */
// Whether to provide "gc" module
#ifndef MICROPY_ENABLE_MOD_GC
#define MICROPY_ENABLE_MOD_GC (1)
// Whether to support slice object and correspondingly
// slice subscript operators
#ifndef MICROPY_PY_SLICE
#define MICROPY_PY_SLICE (1)
#endif
// Whether to
provide "io" module
#ifndef MICROPY_
ENABLE_MOD_IO
#define MICROPY_
ENABLE_MOD_IO
(
1
)
// Whether to
support frozenset object
#ifndef MICROPY_
PY_FROZENSET
#define MICROPY_
PY_FROZENSET
(
0
)
#endif
#ifndef MICROPY_MOD_IO_FILEIO
#define MICROPY_MOD_IO_FILEIO (0)
// Whether to support the property object
#ifndef MICROPY_PY_PROPERTY
#define MICROPY_PY_PROPERTY (1)
#endif
#ifndef MICROPY_IO_BYTESIO
#define MICROPY_IO_BYTESIO (1)
// Whether to provide "collections" module
#ifndef MICROPY_PY_COLLECTIONS
#define MICROPY_PY_COLLECTIONS (1)
#endif
// Whether to provide "
struct
" module
#ifndef MICROPY_
ENABLE_MOD_STRUCT
#define MICROPY_
ENABLE_MOD_STRUCT
(1)
// Whether to provide "
math
" module
#ifndef MICROPY_
PY_MATH
#define MICROPY_
PY_MATH
(1)
#endif
// Whether to provide "
sys
" module
#ifndef MICROPY_
ENABLE_MOD_SYS
#define MICROPY_
ENABLE_MOD_SYS
(
1
)
// Whether to provide "
cmath
" module
#ifndef MICROPY_
PY_CMATH
#define MICROPY_
PY_CMATH
(
0
)
#endif
//
sys.exit() availability
#ifndef MICROPY_
MOD_SYS_EXIT
#define MICROPY_
MOD_SYS_EXIT
(
0
)
//
Whether to provide "gc" module
#ifndef MICROPY_
PY_GC
#define MICROPY_
PY_GC
(
1
)
#endif
//
sys.{stdin,stdout,stderr} availability
#ifndef MICROPY_
MOD_SYS_STDFILES
#define MICROPY_
MOD_SYS_STDFILES
(
0
)
//
Whether to provide "io" module
#ifndef MICROPY_
PY_IO
#define MICROPY_
PY_IO
(
1
)
#endif
// Whether to support slice object and correspondingly
// slice subscript operators
#ifndef MICROPY_ENABLE_SLICE
#define MICROPY_ENABLE_SLICE (1)
// Whether to provide "io.FileIO" class
#ifndef MICROPY_PY_IO_FILEIO
#define MICROPY_PY_IO_FILEIO (0)
#endif
// Whether to
support frozenset object
#ifndef MICROPY_
ENABLE_FROZENSET
#define MICROPY_
ENABLE_FROZENSET
(
0
)
// Whether to
provide "io.BytesIO" class
#ifndef MICROPY_
PY_IO_BYTESIO
#define MICROPY_
PY_IO_BYTESIO
(
1
)
#endif
// Whether to
support the property object
#ifndef MICROPY_
ENABLE_PROPERTY
#define MICROPY_
ENABLE_PROPERTY
(1)
// Whether to
provide "struct" module
#ifndef MICROPY_
PY_STRUCT
#define MICROPY_
PY_STRUCT
(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
// add bunch of once-off options. May need refactoring later
#ifndef MICROPY_CPYTHON_COMPAT
#define MICROPY_CPYTHON_COMPAT (1)
// Whether to provide "sys" module
#ifndef MICROPY_PY_SYS
#define MICROPY_PY_SYS (1)
#endif
// Whether
POSIX-semantics non-blocking streams are supported
#ifndef MICROPY_
STREAMS_NON_BLOCK
#define MICROPY_
STREAMS_NON_BLOCK
(0)
// Whether
to provide "sys.exit" function
#ifndef MICROPY_
PY_SYS_EXIT
#define MICROPY_
PY_SYS_EXIT
(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)
// Whether to provide sys.{stdin,stdout,stderr} objects
#ifndef MICROPY_PY_SYS_STDFILES
#define MICROPY_PY_SYS_STDFILES (0)
#endif
/*****************************************************************************/
...
...
py/objlist.c
View file @
ee3fd46f
...
...
@@ -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
));
...
...
py/objnamedtuple.c
View file @
ee3fd46f
...
...
@@ -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
py/objproperty.c
View file @
ee3fd46f
...
...
@@ -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
py/objset.c
View file @
ee3fd46f
...
...
@@ -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
,
...
...
py/objslice.c
View file @
ee3fd46f
...
...
@@ -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.
...
...
py/objstr.c
View file @
ee3fd46f
...
...
@@ -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
))
{
...
...
py/objstringio.c
View file @
ee3fd46f
...
...
@@ -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
,
...
...
py/objtuple.c
View file @
ee3fd46f
...
...
@@ -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
))
{
...
...
py/objtype.c
View file @
ee3fd46f
...
...
@@ -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
};
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment