[Piglit] [PATCH 00/34] Hybridize build system for python2 and python3
Jordan Justen
jordan.l.justen at intel.com
Sat Feb 21 18:27:48 PST 2015
Series Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
except 31 (add MIT header) which I think you should get confirmation
from the authors.
I responded to a few patches with notes, but nothing critical.
-Jordan
On 2015-02-20 18:17:47, Dylan Baker wrote:
> This series hybridizes the python generator framework (both for tests
> and for dispatch) to work with both python2 and python3.
>
> This makes use of the six module (which is a new dependency that you
> probably already have installed, a lot of python modules depend on it),
> to craft code that produces as close to the same output as is possible.
> There are limitations, python3 numeric types have limitless precision,
> unlike their python2 counterparts, and there isn't anything sane that
> can be done about it except to use numpy, which is a bigger project than
> I want to take on at the moment.
>
> The goal here is that we can get everything except the test framework to
> be hybridized, and then make a python2 branch, with the assumption that
> cherry-picking anything that isn't a framework change will be safe. To
> that end I'm willing to ensure that any changes to the output format
> that are relevant get ported to the python2 framework, as do bug fixes.
>
> This is motivated by three things. First, we really want a reliable
> timeout mechanism, and python3 provides that (see my
> wip/python3-complete branch at my github) Second, linux distros are
> starting to make the transition toward python3. And finally, python3.3
> (the version we're targeting) starts to add new features that are useful
> for us, and has added more in python 3.4, and will continue to do so in
> later versions of python3.x. Finally, the code is generally clean enough
> at this point that we can make the transition with very little pain, the
> code is largely in a shape to make the jump.
>
> This series does not turn on python3 (even with a switch), it simply
> lays the groundwork. The second series I mentioned (which still needs
> cleanup) finishes out the transition and begins to make use of python3
> features. Since this doesn't impede the use of python2, I don't think
> it's a problem to land, there are maybe 5 lines of code that are dead
> without python3 support. You can manually turn it on with a one line
> change to CMakeList.txt, as explained later in this message.
>
> I have tested quick.py and there is no difference in results if the
> output is generated with python3 or with python2. I cannot get a machine
> with OpenCL running (but I did modify the generators), and they same to
> produce the same out put when diffed, but I would really appreciate if
> one of the OpenCL guys could give them a whirl and make sure that they
> don't change the results.
>
> If you want to test this out you'll likely need to clear the piglit mako
> cache it's located in <system tmp directory>/piglit-<username>
>
> To use python3 you'll also need to change find_package(PythonInterp 2.7
> REQUIRED) in <root>/CMakeList.txt to find_package(PythonInterp 3.3
> REQUIRED). I don't think that any of the cl generators use mako, so I
> don't think you'll need to clear that cache, but you will need to delete
> the cmake cache to get the new python version. This will not affect the
> runner version, just the python build version.
>
> This is available at my github:
> https://github.com/dcbaker/piglit submit/python3
>
> Dylan Baker (34):
> gen_builtin_packing_tests.py: use __future__ division
> gen_builtin_uniform_tests.py: use __future__ functions
> gen_builtin_uniform_tests_fp64.py: use __future__ functions
> gen_constant_array_size_tests.py: use __future__ functions
> gen_constant_array_size_tests_fp64.py: use __future__ functions.
> generated_tests: use future division in mako templates
> Add dependency on Python six
> generators: python2/3 hybridize gen_outerproduct_tests.py
> gen_non-lvalue_tests.py: make python2/3 compatible
> gen_texture_query_lod_tests.py: make pyhthon2/3 hybrid
> generators: interpolation-qualifier... python2/3 hybridize
> builtin_function*py: convert to python3
> gen_shader_precision_tests.py: python2/3 hybridize
> gen_uniform_initializer_tests.py: hybridize for python2 and python3
> gen_constant_array_size_tests.py: python2/3 hybridize
> gen_constant_array_size_tests_fp64.py: python2/3 hybridize
> gen_interpolation_tests.py: hybridize python 2/3
> gen_builtin_uniform_tests_fp64: hybridize python2/3
> gen_builtin_uniform_tests.py: python2/3 hybridize
> gen_builtin_packing_tests.py: python2/3 hybridize
> gen_shader_bit_encoding_tests.py: python 2/3 hybridize
> registry/gl.py: drop 2.6 support
> registry/gl.py: Don't try to compare None and not-None
> registry/gl.py: add hash methods for classes that need to be hashed
> registry generation: Finish hybridizing
> generators: rename cl generators so they can be imported
> generators: use if __name__ == __main__ pattern in cl generators
> gen_cl_int_builtins.py: Replace use of Long type
> cl tests: move non-generated tests out of the generated tests dir
> genclbuiltins.py: remove tabs
> genclbuiltins.py: add MIT header
> gen_cl_int_builtins.py: use __future__ division
> genclbuiltins.py: hybridize for python3
> gen_cl_store_tests.py: hybridize for python 2/3
>
> CMakeLists.txt | 1 +
> cmake/Modules/FindPythonSix.cmake | 22 ++++++
> generated_tests/CMakeLists.txt | 8 +--
> generated_tests/builtin_function.py | 27 +++++--
> generated_tests/builtin_function_fp64.py | 33 +++++++--
> generated_tests/gen_builtin_packing_tests.py | 4 +-
> generated_tests/gen_builtin_uniform_tests.py | 16 +++--
> generated_tests/gen_builtin_uniform_tests_fp64.py | 22 +++---
> ...e-cl-int-builtins.py => gen_cl_int_builtins.py} | 9 ++-
> ...cl-math-builtins.py => gen_cl_math_builtins.py} | 3 +-
> ...l-builtins.py => gen_cl_relational_builtins.py} | 3 +-
> ...ate-cl-store-tests.py => gen_cl_store_tests.py} | 84 ++++++++++++----------
> generated_tests/gen_constant_array_size_tests.py | 9 ++-
> .../gen_constant_array_size_tests_fp64.py | 11 +--
> generated_tests/gen_interpolation_tests.py | 8 ++-
> generated_tests/gen_non-lvalue_tests.py | 2 +-
> generated_tests/gen_outerproduct_tests.py | 4 +-
> generated_tests/gen_shader_bit_encoding_tests.py | 10 +--
> generated_tests/gen_shader_precision_tests.py | 14 ++--
> generated_tests/gen_texture_query_lod_tests.py | 8 ++-
> generated_tests/gen_uniform_initializer_tests.py | 22 +++---
> generated_tests/genclbuiltins.py | 32 +++++++--
> .../interpolation-qualifier-built-in-variable.py | 10 +--
> generated_tests/templates/__init__.py | 5 ++
> .../fs_pack.shader_test.mako | 7 +-
> .../fs_unpack.shader_test.mako | 7 +-
> .../vs_pack.shader_test.mako | 7 +-
> .../vs_unpack.shader_test.mako | 7 +-
> .../template.shader_test.mako | 18 +++--
> .../template.shader_test.mako | 3 +-
> .../templates/gen_shader_precision_tests/fs.mako | 11 +--
> .../templates/gen_shader_precision_tests/gs.mako | 11 +--
> .../templates/gen_shader_precision_tests/vs.mako | 11 +--
> .../template.glsl_parser_test.mako | 2 +-
> registry/gl.py | 68 +++++++++---------
> tests/cl.py | 2 +
> .../cl/store/store-kernels-global.inc | 0
> .../cl/store/store-kernels-local.inc | 0
> tests/util/gen_dispatch.py | 14 +++-
> 39 files changed, 349 insertions(+), 186 deletions(-)
> create mode 100644 cmake/Modules/FindPythonSix.cmake
> rename generated_tests/{generate-cl-int-builtins.py => gen_cl_int_builtins.py} (99%)
> rename generated_tests/{generate-cl-math-builtins.py => gen_cl_math_builtins.py} (99%)
> rename generated_tests/{generate-cl-relational-builtins.py => gen_cl_relational_builtins.py} (99%)
> rename generated_tests/{generate-cl-store-tests.py => gen_cl_store_tests.py} (60%)
> rename {generated_tests => tests}/cl/store/store-kernels-global.inc (100%)
> rename {generated_tests => tests}/cl/store/store-kernels-local.inc (100%)
>
> --
> 2.3.0
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list