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
632cf571
Commit
632cf571
authored
Jan 18, 2014
by
Damien George
Browse files
Merge branch 'master' of github.com:dpgeorge/micropython
parents
20006dbb
d26b379e
Changes
6
Hide whitespace changes
Inline
Side-by-side
py/mpqstrraw.h
View file @
632cf571
...
...
@@ -32,6 +32,7 @@ Q(OSError)
Q
(
SyntaxError
)
Q
(
TypeError
)
Q
(
ValueError
)
Q
(
OverflowError
)
Q
(
abs
)
Q
(
all
)
...
...
py/obj.c
View file @
632cf571
...
...
@@ -155,6 +155,8 @@ machine_int_t mp_obj_get_int(mp_obj_t arg) {
return
1
;
}
else
if
(
MP_OBJ_IS_SMALL_INT
(
arg
))
{
return
MP_OBJ_SMALL_INT_VALUE
(
arg
);
}
else
if
(
MP_OBJ_IS_TYPE
(
arg
,
&
int_type
))
{
return
mp_obj_int_get_checked
(
arg
);
#if MICROPY_ENABLE_FLOAT
}
else
if
(
MP_OBJ_IS_TYPE
(
arg
,
&
float_type
))
{
// TODO work out if this should be floor, ceil or trunc
...
...
py/obj.h
View file @
632cf571
...
...
@@ -261,6 +261,10 @@ void mp_obj_cell_set(mp_obj_t self_in, mp_obj_t obj);
// int
extern
const
mp_obj_type_t
int_type
;
// For long int, returns value truncated to machine_int_t
machine_int_t
mp_obj_int_get
(
mp_obj_t
self_in
);
// Will rains exception if value doesn't fit into machine_int_t
machine_int_t
mp_obj_int_get_checked
(
mp_obj_t
self_in
);
// exception
extern
const
mp_obj_type_t
exception_type
;
...
...
py/objint.c
View file @
632cf571
...
...
@@ -58,7 +58,7 @@ mp_obj_t int_binary_op(int op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
// This is called only with strings whose value doesn't fit in SMALL_INT
mp_obj_t
mp_obj_new_int_from_long_str
(
const
char
*
s
)
{
assert
(
0
);
nlr_jump
(
mp_obj_new_exception_msg
(
MP_QSTR_OverflowError
,
"long int not supported in this build"
)
);
return
mp_const_none
;
}
...
...
@@ -68,8 +68,7 @@ mp_obj_t mp_obj_new_int_from_uint(machine_uint_t value) {
if
((
value
&
(
WORD_MSBIT_HIGH
|
(
WORD_MSBIT_HIGH
>>
1
)))
==
0
)
{
return
MP_OBJ_NEW_SMALL_INT
(
value
);
}
// TODO: Raise exception
assert
(
0
);
nlr_jump
(
mp_obj_new_exception_msg
(
MP_QSTR_OverflowError
,
"small int overflow"
));
return
mp_const_none
;
}
...
...
@@ -77,8 +76,16 @@ mp_obj_t mp_obj_new_int(machine_int_t value) {
if
(
MP_OBJ_FITS_SMALL_INT
(
value
))
{
return
MP_OBJ_NEW_SMALL_INT
(
value
);
}
// TODO: Raise exception
assert
(
0
);
nlr_jump
(
mp_obj_new_exception_msg
(
MP_QSTR_OverflowError
,
"small int overflow"
));
return
mp_const_none
;
}
machine_int_t
mp_obj_int_get
(
mp_obj_t
self_in
)
{
return
MP_OBJ_SMALL_INT_VALUE
(
self_in
);
}
machine_int_t
mp_obj_int_get_checked
(
mp_obj_t
self_in
)
{
return
MP_OBJ_SMALL_INT_VALUE
(
self_in
);
}
#endif
py/objint_longlong.c
View file @
632cf571
...
...
@@ -120,9 +120,17 @@ mp_obj_t mp_obj_new_int_from_long_str(const char *s) {
return
o
;
}
machine_int_t
mp_obj_int_get_int
(
mp_obj_t
self_in
)
{
machine_int_t
mp_obj_int_get
(
mp_obj_t
self_in
)
{
if
(
MP_OBJ_IS_SMALL_INT
(
self_in
))
{
return
MP_OBJ_SMALL_INT_VALUE
(
self_in
);
}
mp_obj_int_t
*
self
=
self_in
;
return
self
->
val
;
}
machine_int_t
mp_obj_int_get_checked
(
mp_obj_t
self_in
)
{
// TODO: Check overflow
return
mp_obj_int_get
(
self_in
);
}
#endif
py/runtime.c
View file @
632cf571
...
...
@@ -89,6 +89,9 @@ void rt_init(void) {
mp_map_add_qstr
(
&
map_builtins
,
MP_QSTR_TypeError
,
mp_obj_new_exception
(
MP_QSTR_TypeError
));
mp_map_add_qstr
(
&
map_builtins
,
MP_QSTR_SyntaxError
,
mp_obj_new_exception
(
MP_QSTR_SyntaxError
));
mp_map_add_qstr
(
&
map_builtins
,
MP_QSTR_ValueError
,
mp_obj_new_exception
(
MP_QSTR_ValueError
));
// Somehow CPython managed to have OverflowError not inherit from ValueError ;-/
// TODO: For MICROPY_CPYTHON_COMPAT==0 use ValueError to avoid exc proliferation
mp_map_add_qstr
(
&
map_builtins
,
MP_QSTR_OverflowError
,
mp_obj_new_exception
(
MP_QSTR_OverflowError
));
mp_map_add_qstr
(
&
map_builtins
,
MP_QSTR_OSError
,
mp_obj_new_exception
(
MP_QSTR_OSError
));
mp_map_add_qstr
(
&
map_builtins
,
MP_QSTR_AssertionError
,
mp_obj_new_exception
(
MP_QSTR_AssertionError
));
...
...
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