Open
Description
Following suggestions from @josevalim with some changes
Step 1
Split the repository in two directories:
- evision_beam. The goal of this project is to:
- Contains all C files and all Python scripts
- Support precompilation
- Define all NIFs
- Define artefact files (those are files generated by the Python scripts, with the documentation and everything necessary to autogenerate the Elixir libraries) (the format of those files can be either JSON or file:consult/2 format)
- evision
- Depends on the above
- Use the artefact files to generate all Elixir APIs
Step 2
We can now break evision into more projects. evision
itself should only keep the core shared by all libraries (Evision, Evision.Mat, backends, and so on). Again, it still uses the artefact files to generate the relevant APIs. But you can now break Evision.CUDA
and Evision.Zoo
into their own libraries. They will also read from the artefact files and generate code, it is just they encapsulate that particular part on their own.
Metadata
Metadata
Assignees
Labels
No labels