per-function jit compiler
Chris Rebert
clp2 at rebertia.com
Tue Apr 6 02:40:46 EDT 2010
2010/4/5 Luis M. González <luismgz at gmail.com>:
> This post gave me an idea: http://groups.google.com/group/comp.lang.python/msg/5d75080707104b76
>
> 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...
Guido's been lending out his time machine again:
http://psyco.sourceforge.net/introduction.html
Cheers,
Chris
--
http://blog.rebertia.com
More information about the Python-list
mailing list