Cython Changelog
================
+0.29.10 (2019-06-02)
+====================
+
+Bugs fixed
+----------
+
+* Fix compile errors in CPython 3.8b1 due to the new "tp_vectorcall" slots.
+ (Github issue #2976)
+
+
0.29.9 (2019-05-29)
===================
code.error_goto(entry.pos)))
# Don't inherit tp_print from builtin types, restoring the
# behavior of using tp_repr or tp_str instead.
+ # ("tp_print" was renamed to "tp_vectorcall_offset" in Py3.8b1)
+ code.putln("#if PY_VERSION_HEX < 0x030800B1")
code.putln("%s.tp_print = 0;" % typeobj_cname)
+ code.putln("#endif")
# Use specialised attribute lookup for types with generic lookup but no instance dict.
getattr_slot_func = TypeSlots.get_slot_code_by_name(scope, 'tp_getattro')
EmptySlot("tp_del"),
EmptySlot("tp_version_tag"),
EmptySlot("tp_finalize", ifdef="PY_VERSION_HEX >= 0x030400a1"),
+ EmptySlot("tp_vectorcall", ifdef="PY_VERSION_HEX >= 0x030800b1"),
)
#------------------------------------------------------------------------------------------
# cython.* namespace for pure mode.
from __future__ import absolute_import
-__version__ = "0.29.9"
+__version__ = "0.29.10"
try:
from __builtin__ import basestring
#elif PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
#if PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
#if PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
#if PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
#if PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
#if PY_VERSION_HEX < 0x030500B1 || defined(__Pyx_IterableCoroutine_USED) || CYTHON_USE_ASYNC_SLOTS
#elif PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
static int __pyx_Coroutine_init(void) {
#if PY_VERSION_HEX >= 0x030400a1
__Pyx_Coroutine_del, /*tp_finalize*/
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
#elif PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
static int __pyx_Generator_init(void) {
#if PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
#if PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
+#if PY_VERSION_HEX >= 0x030800b1
+ 0, /*tp_vectorcall*/
+#endif
};
static int __pyx_FusedFunction_init(void) {
self.assertEqual('h\u0130'.capitalize(), 'H\u0069\u0307')
exp = '\u0399\u0308\u0300\u0069\u0307'
self.assertEqual('\u1fd2\u0130'.capitalize(), exp)
- # Note: differs between Py<3.8 and later.
- #self.assertEqual('finnish'.capitalize(), 'FInnish')
+ if sys.version_info < (3, 8):
+ self.assertEqual('finnish'.capitalize(), 'FInnish')
+ else:
+ self.assertEqual('finnish'.capitalize(), 'Finnish')
+
self.assertEqual('A\u0345\u03a3'.capitalize(), 'A\u0345\u03c2')
def test_title(self):