Almost any Python code should execute correctly when run under Psyco, including code that uses arbitrary C extension modules. Some features of Python which are marked as ``not supported'' by Psyco will not cause Psyco to fail to produce the correct result; instead, it will revert to the regular Python interpreter and the code will run non-accelerated.
All exceptions to this rule are bugs, but there are a couple of them because they would be either very hard to fix or fixing them would severely hurt performance. They correspond to uncommon situations. The current list is in appendix A.1.
There are also performance bugs: situations in which Psyco slows down the code instead of accelerating it. It is difficult to make a complete list of the possible reasons, but here are a few common ones:
map(lambda x: x*x, lst)
should be replaced by the more readable but more recent syntax [x*x for x in lst]
.
psyco.cannotcompile(re.compile)
.