From 901ce0210cd67ea7ce9f695ca1c7cd671691a1b6 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sat, 2 Jul 2011 22:28:01 -0400 Subject: [PATCH] Fix cache handling of header dependencies. (reported by Sebastian Nowozin) --- pyopencl/cache.py | 4 ++-- test/test_wrapper.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pyopencl/cache.py b/pyopencl/cache.py index 3992c71a..a84413d1 100644 --- a/pyopencl/cache.py +++ b/pyopencl/cache.py @@ -156,7 +156,7 @@ def get_dependencies(src, include_path): _inner(src) - result = list(result.iteritems()) + result = list((name,) + vals for name, vals in result.iteritems()) result.sort() return result @@ -294,7 +294,7 @@ def _create_built_program_from_source_cached(ctx, src, options, devices, cache_d from tempfile import gettempdir import getpass cache_dir = join(gettempdir(), - "pyopencl-compiler-cache-v1-uid%s-py%s" % ( + "pyopencl-compiler-cache-v2-uid%s-py%s" % ( getpass.getuser(), ".".join(str(i) for i in sys.version_info))) # {{{ ensure cache directory exists diff --git a/test/test_wrapper.py b/test/test_wrapper.py index bce224f7..80c77457 100644 --- a/test/test_wrapper.py +++ b/test/test_wrapper.py @@ -339,6 +339,17 @@ class TestCL: assert (dest == x).all() + @pytools.test.mark_test.opencl + def test_header_dep_handling(self, ctx_getter): + context = ctx_getter() + queue = cl.CommandQueue(context) + + kernel_src = """ + #include <empty-header.h> + kernel void zonk() {} + """ + cl.Program(context, kernel_src).build('-I.') + cl.Program(context, kernel_src).build('-I.') -- GitLab