From d279d735bab94c60f782c74c2c60e988ddd7f9cb Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 19 May 2022 11:26:59 -0500
Subject: [PATCH] Fix pocl version parsing for 3.0, do not fail hard if version
 string not understood

---
 pyopencl/characterize/__init__.py | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/pyopencl/characterize/__init__.py b/pyopencl/characterize/__init__.py
index 9bc90710..835cae09 100644
--- a/pyopencl/characterize/__init__.py
+++ b/pyopencl/characterize/__init__.py
@@ -22,6 +22,7 @@ THE SOFTWARE.
 
 import pyopencl as cl
 from pytools import memoize
+from typing import Optional, Tuple
 
 
 class CLCharacterizationWarning(UserWarning):
@@ -318,22 +319,23 @@ def get_simd_group_size(dev, type_size):
     return None
 
 
-def get_pocl_version(platform, fallback_value=None):
+def get_pocl_version(
+        platform: cl.Platform,
+        fallback_value: Optional[Tuple[int, int]] = None
+        ) -> Optional[Tuple[int, int]]:
     if platform.name != "Portable Computing Language":
         return None
 
     import re
     version = platform.version
-    ver_match = re.match(r"^OpenCL [0-9.]+ pocl ([0-9]+)\.([0-9]+)", version)
+    ver_match = re.match(
+            r"^OpenCL [0-9.]+ [Pp]o[Cc][Ll] ([0-9]+)\.([0-9]+)", version)
 
     if ver_match is None:
         msg = f"pocl version number did not have expected format: '{version}'"
-        if fallback_value is not None:
-            from warnings import warn
-            warn(msg)
-            return fallback_value
-        else:
-            raise ValueError(msg)
+        from warnings import warn
+        warn(msg)
+        return fallback_value
     else:
         return (int(ver_match.group(1)), int(ver_match.group(2)))
 
-- 
GitLab