My ndtm-slow branch contains a generator for all the specialization code. There is also some documentation for the whole architecture and process. This issue shall be a discussion about the inclusion of this header generator into the mainline of QPhiX code generator and possible QPhiX.
The catch is the additional dependency on Python (version 3 preferred) and the Jinja library for Python.
There are a few tasks that have to be discussed along the way:
[x] Decide whether the introduction of Jinja into the qphix-codegen main devel branch is desired.
[x] Improve the handling for the kernel developer, make running the header generator a bit easier.
[x] Improve the Shell script that copies the generated files into the QPhiX repository.
[x] Integrate the main Makefile and the header generator into a unified experience.
[ ] Port the qphix-codegen build system to CMake.
And then later on:
[ ] Decide whether the kernels shall be generated during the compilation of QPhiX itself. Longer build times, but no huge commits in the qphix-codegen repository, no missing headers for a specific architecture.
[ ] Decide whether a third party Python library dependency is a reasonable burden for QPhiX users.
I believe that we can start merging the header generator into qphix-codegen without causing any harm. It is only run by the developers of QPhiX, not their users. Therefore end-users are not affected. Developers should always be able to install a Python library on their workstations, I'd guess.
I think the twisted branch in my fork (I have renamed it) is now ready for testing. Please try and use the generate-and-copy-to-qphix script. If that works, I'll merge it into devel
My ndtm-slow branch contains a generator for all the specialization code. There is also some documentation for the whole architecture and process. This issue shall be a discussion about the inclusion of this header generator into the mainline of QPhiX code generator and possible QPhiX.
The catch is the additional dependency on Python (version 3 preferred) and the Jinja library for Python.
There are a few tasks that have to be discussed along the way:
qphix-codegen
maindevel
branch is desired.Makefile
and the header generator into a unified experience.qphix-codegen
build system to CMake.And then later on:
qphix-codegen
repository, no missing headers for a specific architecture.I believe that we can start merging the header generator into
qphix-codegen
without causing any harm. It is only run by the developers of QPhiX, not their users. Therefore end-users are not affected. Developers should always be able to install a Python library on their workstations, I'd guess.