Skip to content

Split this repo into evision_beam and evision #210

Open
@cocoa-xu

Description

@cocoa-xu

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions