Mesa (master): python: Explicitly add the 'L' suffix on Python 3

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 1 13:57:23 UTC 2018


Module: Mesa
Branch: master
Commit: ad363913e6766280f53838126d67370f9e97aa12
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad363913e6766280f53838126d67370f9e97aa12

Author: Mathieu Bridon <bochecha at daitauha.fr>
Date:   Mon Jun 25 18:31:01 2018 +0200

python: Explicitly add the 'L' suffix on Python 3

Python 2 had two integer types: int and long. Python 3 dropped the
latter, as it made the int type automatically support bigger numbers.

As a result, Python 3 lost the 'L' suffix on integer litterals.

This probably doesn't make much difference when compiling the generated
C code, but adding it explicitly means that both Python 2 and 3 generate
the exact same C code anyway, which makes it easier to compare and check
for discrepencies when moving to Python 3.

Signed-off-by: Mathieu Bridon <bochecha at daitauha.fr>
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>

---

 src/compiler/nir/nir_algebraic.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_algebraic.py b/src/compiler/nir/nir_algebraic.py
index 6b8c881803..a84c41a78f 100644
--- a/src/compiler/nir/nir_algebraic.py
+++ b/src/compiler/nir/nir_algebraic.py
@@ -139,7 +139,16 @@ class Constant(Value):
       if isinstance(self.value, (int, long)):
          return hex(self.value)
       elif isinstance(self.value, float):
-         return hex(struct.unpack('Q', struct.pack('d', self.value))[0])
+         i = struct.unpack('Q', struct.pack('d', self.value))[0]
+         h = hex(i)
+
+         # On Python 2 this 'L' suffix is automatically added, but not on Python 3
+         # Adding it explicitly makes the generated file identical, regardless
+         # of the Python version running this script.
+         if h[-1] != 'L' and i > sys.maxsize:
+            h += 'L'
+
+         return h
       else:
          assert False
 




More information about the mesa-commit mailing list