[Mesa-dev] [PATCH] r600/egd_tables.py: make the script python 2+3 compatible

Eric Engestrom eric.engestrom at imgtec.com
Fri Mar 2 11:03:53 UTC 2018


On Friday, 2018-03-02 11:41:00 +0100, Stefan Dirsch wrote:
> Patch by "Tomas Chvatal" <tchvatal at suse.com> with modifications
> by "Michal Srb" <msrb at suse.com> to not break python 2.
> 
> https://bugzilla.suse.com/show_bug.cgi?id=1082303
> 
> v2:
> - no longer try to encode a unicode
> - make use of 'from __future__ import print_function', so semantics
>   of print statements in python2 are closer to print functions in python3
> 
> https://lists.freedesktop.org/archives/mesa-dev/2018-February/187056.html
> 
> Signed-off-by: Stefan Dirsch <sndirsch at suse.de>
> Reviewed-by: Tomas Chvatal <tchvatal at suse.com>
> ---
>  src/gallium/drivers/r600/egd_tables.py | 53 +++++++++++++++++-----------------
>  1 file changed, 27 insertions(+), 26 deletions(-)
> 
> diff --git a/src/gallium/drivers/r600/egd_tables.py b/src/gallium/drivers/r600/egd_tables.py
> index d7b78c7fb1..4796456330 100644
> --- a/src/gallium/drivers/r600/egd_tables.py
> +++ b/src/gallium/drivers/r600/egd_tables.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>  
>  CopyRight = '''
>  /*
> @@ -60,7 +61,7 @@ class StringTable:
>          """
>          fragments = [
>              '"%s\\0" /* %s */' % (
> -                te[0].encode('string_escape'),
> +                te[0],

I think you still need to escape the string here.

The rest of the patch looks good to me :)

>                  ', '.join(str(idx) for idx in te[2])
>              )
>              for te in self.table
> @@ -217,10 +218,10 @@ def write_tables(regs, packets):
>      strings = StringTable()
>      strings_offsets = IntTable("int")
>  
> -    print '/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */'
> -    print
> -    print CopyRight.strip()
> -    print '''
> +    print('/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */')
> +    print('')
> +    print(CopyRight.strip())
> +    print('''
>  #ifndef EG_TABLES_H
>  #define EG_TABLES_H
>  
> @@ -242,20 +243,20 @@ struct eg_packet3 {
>          unsigned name_offset;
>          unsigned op;
>  };
> -'''
> +''')
>  
> -    print 'static const struct eg_packet3 packet3_table[] = {'
> +    print('static const struct eg_packet3 packet3_table[] = {')
>      for pkt in packets:
> -        print '\t{%s, %s},' % (strings.add(pkt[5:]), pkt)
> -    print '};'
> -    print
> +        print('\t{%s, %s},' % (strings.add(pkt[5:]), pkt))
> +    print('};')
> +    print('')
>  
> -    print 'static const struct eg_field egd_fields_table[] = {'
> +    print('static const struct eg_field egd_fields_table[] = {')
>  
>      fields_idx = 0
>      for reg in regs:
>          if len(reg.fields) and reg.own_fields:
> -            print '\t/* %s */' % (fields_idx)
> +            print('\t/* %s */' % (fields_idx))
>  
>              reg.fields_idx = fields_idx
>  
> @@ -266,34 +267,34 @@ struct eg_packet3 {
>                          while value[1] >= len(values_offsets):
>                              values_offsets.append(-1)
>                          values_offsets[value[1]] = strings.add(strip_prefix(value[0]))
> -                    print '\t{%s, %s(~0u), %s, %s},' % (
> +                    print('\t{%s, %s(~0u), %s, %s},' % (
>                          strings.add(field.name), field.s_name,
> -                        len(values_offsets), strings_offsets.add(values_offsets))
> +                        len(values_offsets), strings_offsets.add(values_offsets)))
>                  else:
> -                    print '\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name)
> +                    print('\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name))
>                  fields_idx += 1
>  
> -    print '};'
> -    print
> +    print('};')
> +    print('')
>  
> -    print 'static const struct eg_reg egd_reg_table[] = {'
> +    print('static const struct eg_reg egd_reg_table[] = {')
>      for reg in regs:
>          if len(reg.fields):
> -            print '\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
> -                len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx)
> +            print('\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
> +                len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx))
>          else:
> -            print '\t{%s, %s},' % (strings.add(reg.name), reg.r_name)
> -    print '};'
> -    print
> +            print('\t{%s, %s},' % (strings.add(reg.name), reg.r_name))
> +    print('};')
> +    print('')
>  
>      strings.emit(sys.stdout, "egd_strings")
>  
> -    print
> +    print('')
>  
>      strings_offsets.emit(sys.stdout, "egd_strings_offsets")
>  
> -    print
> -    print '#endif'
> +    print('')
> +    print('#endif')
>  
>  
>  def main():
> -- 
> 2.13.6
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list