[pypy-dev] alias for --allopts?

holger krekel holger at merlinux.de
Sun Jul 13 23:41:18 CEST 2008


Hi Armin,

On Sun, Jul 13, 2008 at 23:19 +0200, Armin Rigo wrote:
> On Sun, Jul 13, 2008 at 06:00:37PM +0200, holger krekel wrote:
> > would be good to rename the --faassen option sometime soon
> > Martijn asked us multiple times already for it.  What about
> > "--cheetah" or "--falcon"?  other suggestions?  
> 
> "--allopts" is already an alias for it, and I changed the docs
> to mention it instead of --faassen.

ah, good.  i only checked that "--allopts" is already there
for a long time.  

> I also came up with some suggestion for the optimization options.
> What about introducing the --opt translation option (applying to all
> translations, not just targetpypystandalone) with the following possible
> values, which roughly correspond to the scheme used by gcc:
> 
>  --opt=0: all backendopt and other optimizations off; gc=boehm
>  --opt=1: default backendopts, low inlining threadhold; gc=boehm
>  --opt=size: same as opt=1 + remove_asserts
>  --opt=mem: same as opt=size + gc=marknsweep (or some future low-ram gc)
>  --opt=2: default backendopts; smallfuncset=5; gc=hybrid
>  --opt=3: same as opt=2 + remove_asserts

i like the idea.  But I find mixing in the choice of GC a bit odd. 
what about defaulting to gc=hybrid and getting rid of 
the boehm dependency? 

> During a PyPy translation, we would control which pypy-specific options
> to use with the same scheme: a --pypyopt option (whose value is by
> default equal to the --opt option in order to reduce surprizes)
> according to a table like the following one:
> 
>    pypyopt                option
>    ===================================
> 
>          2 3              ("objspace.opcodes.CALL_LIKELY_BUILTIN", True),
>          2 3              ("objspace.opcodes.CALL_METHOD", True),
>            3              ("translation.profopt", "..."),
>          2 3              ("objspace.std.withmultidict", True),
>          2 3              ("objspace.std.withshadowtracking", True),
>      mem                  ("objspace.std.withsmallint", True),
>      mem 2 3              ("objspace.std.withrangelist", True),
>          2 3              ("objspace.std.withmethodcache", True),
>      mem 2 3              ("objspace.std.withprebuiltchar", True),
>          2 3              ("objspace.std.builtinshortcut", True),
>          2 3              ("objspace.std.optimized_list_getitem", True),
>          2 3              ("objspace.std.getattributeshortcut", True),
>      mem                  ("objspace.std.withsharingdict", True),
> 
> So this would generalize the --faassen and --allopts options.  The
> fastest results would be obtained with --opt=3, --opt=size would try to
> minimize the executable size, --opt=mem would try to minimize run-time
> RAM usage.

Looks fine to me!

cheers, 

holger



More information about the Pypy-dev mailing list