On 6-4-2010 8:22, Luis M. González wrote:
The above post gave me an idea (very naive, of couse).
What if I write a simple decorator to figure out the types of every
function, and then we use it as a base for a simple method-jit
compiler for python?
example:
def typer(f):
def wrap(*args):
a = f.func_code.co_varnames
b = [type(i) for i in args]
return dict(zip(a,b))
return wrap
@typer
def spam(a, b, c=3, d=4):
pass
spam(8,'hello',9.9, 10)
{'a':<type 'int'>, 'c':<type 'float'>, 'b':<type 'str'>, 'd':
<type
'int'>}
So by using this information, we record all the argument types used
the first time each function/method is executed, and then we generate
optimized code for them.
From this point on, a guard should check if all arguments remain the
same and, if so, the optimized code is run.
Otherwise, just fall back to the interpreter.
He! I have no idea how to implement it...
Any guru out there?
Luis
Isn't this what Psyco (http://psyco.sourceforge.net/) does?
-irmen
--
http://mail.python.org/mailman/listinfo/python-list