This implements a better (more python-conformant) list.sort.

It's not really about that, though; it's about me figuring out a sane
way forward for keyword-argument functions (and function
metadata). But it's useful as is, and shouldn't break any existing
code, so here you have it; I'm going to park it in my mind for a bit
while sorting out the rest of the dict branch.
This commit is contained in:
John R. Lenton
2014-01-07 17:29:16 +00:00
parent 880ce2d7fa
commit c06763a020
25 changed files with 181 additions and 216 deletions

View File

@@ -97,8 +97,8 @@ static mp_obj_t tuple_getiter(mp_obj_t o_in) {
}
const mp_obj_type_t tuple_type = {
{ &mp_const_type },
"tuple",
.base = { &mp_const_type },
.name = "tuple",
.print = tuple_print,
.make_new = tuple_make_new,
.binary_op = tuple_binary_op,
@@ -110,7 +110,7 @@ const mp_obj_type_t tuple_type = {
static const mp_obj_tuple_t empty_tuple_obj = {{&tuple_type}, 0};
const mp_obj_t mp_const_empty_tuple = (mp_obj_t)&empty_tuple_obj;
mp_obj_t mp_obj_new_tuple(uint n, mp_obj_t *items) {
mp_obj_t mp_obj_new_tuple(uint n, const mp_obj_t *items) {
if (n == 0) {
return mp_const_empty_tuple;
}
@@ -123,7 +123,7 @@ mp_obj_t mp_obj_new_tuple(uint n, mp_obj_t *items) {
return o;
}
mp_obj_t mp_obj_new_tuple_reverse(uint n, mp_obj_t *items) {
mp_obj_t mp_obj_new_tuple_reverse(uint n, const mp_obj_t *items) {
if (n == 0) {
return mp_const_empty_tuple;
}
@@ -163,8 +163,8 @@ static mp_obj_t tuple_it_iternext(mp_obj_t self_in) {
}
static const mp_obj_type_t tuple_it_type = {
{ &mp_const_type },
"tuple_iterator",
.base = { &mp_const_type },
.name = "tuple_iterator",
.iternext = tuple_it_iternext,
.methods = {{NULL, NULL},},
};