[pypy-dev] [pypy-svn] pypy default: port test_intbound_addsub_ge to test_pypy_c_new

Antonio Cuni anto.cuni at gmail.com
Thu Apr 14 16:56:03 CEST 2011


On 14/04/11 16:44, Hakan Ardo wrote:
> Second though, that will recompile on every call, but if we cache the
> promote functions:
> 
>     def main(n, promoters={}):
>         i, a = 0, 0
>         if n not in promoters:
>             exec """def promote(n):
>                         assert n==%d""" % n
>             promoters[n] = promote
>         else:
>             promote = promoters[n]
>         while i < n:
>             promote(n)
>             a += i+5
>             i += 1
>         return a
> 
> we will actualy get rid of the extra ptr_eq and guard_false too...

wow, that's advanced... and without knowing the internals of the JIT, it
really looks like black magic.

While we are at it and if you have time/feel like, could you please have a
look to test_zeropadded and test_circular in test_pypy_c_new? It's not clear
to me what they are supposed to check (note that it's fine if you say "they
just check that the program works correctly" :-)).




More information about the Pypy-dev mailing list