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

Michael Hudson mwh@python.net
Thu, 13 Mar 2003 13:45:45 +0000


Michal Vitecek <fuf@mageo.cz> writes:

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.

There are a number of bits of stupidly defensive programming in Python... personally, I'd like to see the back of them.

the resulting python binary did 6.5% more pystones on average (the numbers are below).

Wow! Can we persuade you to try CVS HEAD?

my question is: are those checks really necessary in non-debug python build?

This is the tricky bit, of course. I don't think so, but it's hard to be sure.

OTOH, it could be the easiest 5% speed up ever...

Cheers, M.

-- This makes it possible to pass complex object hierarchies to a C coder who thinks computer science has made no worthwhile advancements since the invention of the pointer. -- Gordon McMillan, 30 Jul 1998