[Python-Dev] are NULL checks in Objects/abstract.c really needed? (original) (raw)

Guido van Rossum guido@python.org
Thu, 13 Mar 2003 09:29:38 -0500


i had a quick look at Objects/abstract.c in 2.2.2's source. almost every function there checks whether the objects it's passed are not NULL. if they are, SystemError exception occurs. since i've never come across such exception i've commented out those checks.

the resulting python binary did 6.5% more pystones on average (the numbers are below). my question is: are those checks really necessary in non-debug python build?

Unfortunately, this is part of the safety net for poor extension writers, and I'm not sure we can drop it.

Given that Pystone is so regular, it's probably just one or two of the functions you changed that make the difference. If you can figure out which ones, perhaps you could inline just those (in the switch in ceval.c) and get the same effect.

Anyway, I only get a 1% speedup.

--Guido van Rossum (home page: http://www.python.org/~guido/)