Quoting Eric Engestrom (2018-07-24 09:42:57)
> On Wednesday, 2018-07-11 19:52:31 +0200, Mathieu Bridon wrote:
> > In Python 2, divisions return an integer:
                          ^ of integers

Since 32 / 4.0 returns 8.0

> > 
> >     >>> 32 / 4
> >     8
> > 
> > In Python 3 though, they return floats:
> > 
> >     >>> 32 / 4
> >     8.0
> > 
> > However, Python 3 has an explicit integer division operator:
> > 
> >     >>> 32 // 4
> >     8
> > 
> > That operator exists on Python >= 2.2, so let's use it everywhere to
> > make the scripts compatible with both Python 2 and 3.
> > 
> > In addition, using __future__.division tells Python 2 to behave the same
> > way as Python 3, which helps ensure the scripts produce the same output
> > in both versions of Python.
> > 
> > Signed-off-by: Mathieu Bridon <boche...@daitauha.fr>
> 
> Reviewed-by: Eric Engestrom <eric.engest...@intel.com>
> 
> > ---
> >  src/gallium/auxiliary/util/u_format_pack.py  | 4 ++--
> >  src/gallium/auxiliary/util/u_format_parse.py | 7 +++++--
> >  src/mapi/glapi/gen/glX_proto_send.py         | 4 ++--
> >  src/mesa/main/format_info.py                 | 4 ++--
> >  src/mesa/main/format_pack.py                 | 8 ++++----
> >  src/mesa/main/format_unpack.py               | 8 ++++----
> >  6 files changed, 19 insertions(+), 16 deletions(-)
> > 
> > diff --git a/src/gallium/auxiliary/util/u_format_pack.py 
> > b/src/gallium/auxiliary/util/u_format_pack.py
> > index 7a952a48b3..ad2e49281f 100644
> > --- a/src/gallium/auxiliary/util/u_format_pack.py
> > +++ b/src/gallium/auxiliary/util/u_format_pack.py
> > @@ -36,7 +36,7 @@
> >  '''
> >  
> >  
> > -from __future__ import print_function
> > +from __future__ import division, print_function
> >  
> >  from u_format_parse import *
> >  
> > @@ -240,7 +240,7 @@ def value_to_native(type, value):
> >              return truncate_mantissa(value, 23)
> >          return value
> >      if type.type == FIXED:
> > -        return int(value * (1 << (type.size/2)))
> > +        return int(value * (1 << (type.size // 2)))
> >      if not type.norm:
> >          return int(value)
> >      if type.type == UNSIGNED:
> > diff --git a/src/gallium/auxiliary/util/u_format_parse.py 
> > b/src/gallium/auxiliary/util/u_format_parse.py
> > index c0456f6d15..d3874cd895 100644
> > --- a/src/gallium/auxiliary/util/u_format_parse.py
> > +++ b/src/gallium/auxiliary/util/u_format_parse.py
> > @@ -29,6 +29,9 @@
> >  '''
> >  
> >  
> > +from __future__ import division
> > +
> > +
> >  VOID, UNSIGNED, SIGNED, FIXED, FLOAT = range(5)
> >  
> >  SWIZZLE_X, SWIZZLE_Y, SWIZZLE_Z, SWIZZLE_W, SWIZZLE_0, SWIZZLE_1, 
> > SWIZZLE_NONE, = range(7)
> > @@ -76,7 +79,7 @@ class Channel:
> >          if self.type == FLOAT:
> >              return VERY_LARGE
> >          if self.type == FIXED:
> > -            return (1 << (self.size/2)) - 1
> > +            return (1 << (self.size // 2)) - 1
> >          if self.norm:
> >              return 1
> >          if self.type == UNSIGNED:
> > @@ -90,7 +93,7 @@ class Channel:
> >          if self.type == FLOAT:
> >              return -VERY_LARGE
> >          if self.type == FIXED:
> > -            return -(1 << (self.size/2))
> > +            return -(1 << (self.size // 2))
> >          if self.type == UNSIGNED:
> >              return 0
> >          if self.norm:
> > diff --git a/src/mapi/glapi/gen/glX_proto_send.py 
> > b/src/mapi/glapi/gen/glX_proto_send.py
> > index a920ecc012..03067d8a3c 100644
> > --- a/src/mapi/glapi/gen/glX_proto_send.py
> > +++ b/src/mapi/glapi/gen/glX_proto_send.py
> > @@ -26,7 +26,7 @@
> >  #    Ian Romanick <i...@us.ibm.com>
> >  #    Jeremy Kolb <jk...@brandeis.edu>
> >  
> > -from __future__ import print_function
> > +from __future__ import division, print_function
> >  
> >  import argparse
> >  
> > @@ -809,7 +809,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> >                      # Dividing by the array size (1 for
> >                      # non-arrays) gives us this.
> >  
> > -                    s = p.size() / p.get_element_count()
> > +                    s = p.size() // p.get_element_count()
> >                      print("       %s __glXReadReply(dpy, %s, %s, %s);" % 
> > (return_str, s, p.name, aa))
> >                      got_reply = 1
> >  
> > diff --git a/src/mesa/main/format_info.py b/src/mesa/main/format_info.py
> > index bbecaa2451..00e27b3fba 100644
> > --- a/src/mesa/main/format_info.py
> > +++ b/src/mesa/main/format_info.py
> > @@ -21,7 +21,7 @@
> >  # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> >  # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
> >  
> > -from __future__ import print_function
> > +from __future__ import division, print_function
> >  
> >  import format_parser as parser
> >  import sys
> > @@ -198,7 +198,7 @@ for fmat in formats:
> >        chan = fmat.array_element()
> >        norm = chan.norm or chan.type == parser.FLOAT
> >        print('      .ArrayFormat = MESA_ARRAY_FORMAT({0}),'.format(', 
> > '.join([
> > -         str(chan.size / 8),
> > +         str(chan.size // 8),
> >           str(int(chan.sign)),
> >           str(int(chan.type == parser.FLOAT)),
> >           str(int(norm)),
> > diff --git a/src/mesa/main/format_pack.py b/src/mesa/main/format_pack.py
> > index d3c8d24acd..05262efb5b 100644
> > --- a/src/mesa/main/format_pack.py
> > +++ b/src/mesa/main/format_pack.py
> > @@ -1,4 +1,4 @@
> > -from __future__ import print_function
> > +from __future__ import division, print_function

Ah, this is tricky one, mako actually does some tricky meta-programming things,
so importing __future__.division like this wont affect it. What you actually
need to do is modify the `template = Template(...)` line to be: `template =
Template(..., future_imports=['division'])`

Dylan

> >  
> >  from mako.template import Template
> >  from sys import argv
> > @@ -356,7 +356,7 @@ _mesa_pack_ubyte_rgba_row(mesa_format format, GLuint n,
> >     case ${f.name}:
> >        for (i = 0; i < n; ++i) {
> >           pack_ubyte_${f.short_name()}(src[i], d);
> > -         d += ${f.block_size() / 8};
> > +         d += ${f.block_size() // 8};
> >        }
> >        break;
> >  %endfor
> > @@ -388,7 +388,7 @@ _mesa_pack_uint_rgba_row(mesa_format format, GLuint n,
> >     case ${f.name}:
> >        for (i = 0; i < n; ++i) {
> >           pack_uint_${f.short_name()}(src[i], d);
> > -         d += ${f.block_size() / 8};
> > +         d += ${f.block_size() // 8};
> >        }
> >        break;
> >  %endfor
> > @@ -418,7 +418,7 @@ _mesa_pack_float_rgba_row(mesa_format format, GLuint n,
> >     case ${f.name}:
> >        for (i = 0; i < n; ++i) {
> >           pack_float_${f.short_name()}(src[i], d);
> > -         d += ${f.block_size() / 8};
> > +         d += ${f.block_size() // 8};
> >        }
> >        break;
> >  %endfor
> > diff --git a/src/mesa/main/format_unpack.py b/src/mesa/main/format_unpack.py
> > index 286c08e621..5d24a79489 100644
> > --- a/src/mesa/main/format_unpack.py
> > +++ b/src/mesa/main/format_unpack.py
> > @@ -1,4 +1,4 @@
> > -from __future__ import print_function
> > +from __future__ import division, print_function
> >  
> >  from mako.template import Template
> >  from sys import argv
> > @@ -322,7 +322,7 @@ _mesa_unpack_rgba_row(mesa_format format, GLuint n,
> >     case ${f.name}:
> >        for (i = 0; i < n; ++i) {
> >           unpack_float_${f.short_name()}(s, dst[i]);
> > -         s += ${f.block_size() / 8};
> > +         s += ${f.block_size() // 8};
> >        }
> >        break;
> >  %endfor
> > @@ -355,7 +355,7 @@ _mesa_unpack_ubyte_rgba_row(mesa_format format, GLuint 
> > n,
> >     case ${f.name}:
> >        for (i = 0; i < n; ++i) {
> >           unpack_ubyte_${f.short_name()}(s, dst[i]);
> > -         s += ${f.block_size() / 8};
> > +         s += ${f.block_size() // 8};
> >        }
> >        break;
> >  %endfor
> > @@ -397,7 +397,7 @@ _mesa_unpack_uint_rgba_row(mesa_format format, GLuint n,
> >     case ${f.name}:
> >        for (i = 0; i < n; ++i) {
> >           unpack_int_${f.short_name()}(s, dst[i]);
> > -         s += ${f.block_size() / 8};
> > +         s += ${f.block_size() // 8};
> >        }
> >        break;
> >  %endfor
> > -- 
> > 2.17.1
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Attachment: signature.asc
Description: signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to