Nils Bruin, 06.04.2013 21:37:
> I can confirm that changing Compiler/TypeSlots.py, line 380 from:
> 
> value = "Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|
> Py_TPFLAGS_HAVE_NEWBUFFER"
> 
> to:
> 
> value = "Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|
> Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_VERSION_TAG"
> 
> indeed makes the difference in timing disappear. For extension classes
> that don't mess directly with their tp_dict having this flag should be
> entirely safe.
> 
> See http://bugs.python.org/issue1700288 for background on the
> introduction of the method cache in python and 
> http://bugs.python.org/issue1878
> for the reason why the flag is not included in Py_TPFLAGS_DEFAULT on
> 2.7, but is in 3.*.

I wouldn't mind making it an "on by default" compiler directive. That would
mean that you could switch it off with a class decorator at need.

Any objections?

Stefan

_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to