The following constructs are not supported by Psyco. It does not mean that code containing them will fail; it merely means that any function using them cannot be compiled, and will thus be entierely run by the standard interpreter.
exec
statement -- in some cases you can use eval and/or compile instead, under the restrictions described in section A.2
class
statement)
Log files report unsupported constructs by giving the corresponding bytecode instruction number, which you can look up in the following table:
Bytecode | Instruction name | Appears in |
---|---|---|
82 |
LOAD_LOCALS |
class definitions |
84 |
IMPORT_STAR |
from xx import * |
85 |
EXEC_STMT |
exec xx |
86 |
YIELD_VALUE |
generators' yield xx |
90 |
STORE_NAME |
non-optimizable scopes (e.g. at module top-level) |
91 |
DELETE_NAME |
non-optimizable scopes (e.g. at module top-level) |
101 |
LOAD_NAME |
non-optimizable scopes (e.g. at module top-level) |
134 |
MAKE_CLOSURE |
nested scopes |
135 |
LOAD_CLOSURE |
nested scopes |
136 |
LOAD_DEREF |
nested scopes |
137 |
STORE_DEREF |
nested scopes |