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.
diff --git a/py/objtuple.c b/py/objtuple.c
index ceca420..2205b86 100644
--- a/py/objtuple.c
+++ b/py/objtuple.c
@@ -97,8 +97,8 @@
}
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 @@
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 @@
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 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},},
};