[Mesa-dev] [PATCH] Fix usage of Python in Makefiles

José Fonseca jfonseca at vmware.com
Thu Oct 28 06:40:14 PDT 2010


On Wed, 2010-10-27 at 08:50 -0700, Vinson Lee wrote:
> 
> > -----Original Message-----
> > From: mesa-dev-bounces+vlee=vmware.com at lists.freedesktop.org [mailto:mesa-
> > dev-bounces+vlee=vmware.com at lists.freedesktop.org] On Behalf Of José
> > Fonseca
> > Sent: Wednesday, October 27, 2010 8:33 AM
> > To: Matthew William Cox
> > Cc: mesa-dev at lists.freedesktop.org
> > Subject: Re: [Mesa-dev] [PATCH] Fix usage of Python in Makefiles
> > 
> > On Tue, 2010-10-26 at 16:12 -0700, Matthew William Cox wrote:
> > > Hello,
> > >
> > > Firstly, Kenneth Graunke's patch fixes the autoconf issue and supercedes
> > > this patch, so we should focus the review on that patch.
> > >
> > > On Tue, Oct 26, 2010 at 06:23:00AM -0700, Dan Nicholson wrote:
> > > > However, removing the second -O from PYTHON_FLAGS is really a separate
> > > > change.  Can you explain that problem in more detail?
> > >
> > > The second -O flag triggers the same behaviour as passing -OO to the
> > > python interpreter. A single -O enables optimizations, but -OO causes
> > > doc strings to be stripped from the bytecode in addition to enabling
> > > optimization. There's no real reason to do this, except perhaps to save
> > > a small amount of memory.
> > >
> > > This breaks u_format_srgb.py because that script uses its docstring as
> > > part of its output, specifically, the copyright notice of the module is
> > > copied to the output. If the docstring is stripped, this causes an
> > > exception as the __doc__ variable is undefined.
> > >
> > > > It might also be more reasonable to just drop $(PYTHON_FLAGS) when
> > > > using src/gallium/auxiliary/util/u_format_srgb.py so this isn't a
> > > > global change.
> > >
> > > There's really no global effect to dropping the second -O, and it's more
> > > consistent to use the same flags for everything. Why introduce a special
> > > case?
> > 
> > Another alternative would be to use a regular string instead of a
> > docstring, ie:
> > 
> > diff --git a/src/gallium/auxiliary/util/u_format_srgb.py
> > b/src/gallium/auxiliary/util/u_format_srgb.py
> > index 3e8000f..3c49458 100644
> > --- a/src/gallium/auxiliary/util/u_format_srgb.py
> > +++ b/src/gallium/auxiliary/util/u_format_srgb.py
> > @@ -1,6 +1,6 @@
> >  #!/usr/bin/env python
> > 
> > -'''
> > +copyright = '''
> > 
> > /*************************************************************************
> > *
> >   *
> >   * Copyright 2010 VMware, Inc.
> > @@ -89,7 +89,7 @@ def main():
> >      print '/* This file is autogenerated by u_format_srgb.py. Do not
> > edit directly. */'
> >      print
> >      # This will print the copyright message on the top of this file
> > -    print __doc__.strip()
> > +    print copyright.strip()
> >      print
> >      print '#include "u_format_srgb.h"'
> >      print
> > 
> > It really doesn't affect readability, and avoids this dependency on the
> > -O.
> > 
> > There are a few other __doc__ uses. If this works for you I can submit a
> > patch that fixes them all.
> > 
> > Jose
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
> 
> 'copyright' is a built-in Python variable. The Python documentation suggests not to shadow this variable name.

Didn't know that. Thanks.

I'll use another variable then.

Jose



More information about the mesa-dev mailing list