Move VHPIDIRECT related sources (implementation and example) to separate repo by umarcor · Pull Request #606 · VUnit/vunit

As commented in #603 (comment), this is a draft to remove VHDL and C sources related to VHPIDIRECT from this repository. The prosopal is as follows:

  • Rename vunit/vhdl/data_types/src/external to vunit/vhdl/data_types/src/api:
    • Remove subdir ghdl.
    • Remove external_*-vhpi.vhd.
    • Merge external_*-novhpi.vhd and external_*-body.vhd; rename to external_*_pkg_.vhd.
  • Remove examples/vhdl/external_buffer (remove it from tests/acceptance/test_external_run_scripts.py too).
  • builtins._add_data_types is simplified accordingly:
    • {'string': ['path/to/custom/file'], 'integer': ['path/to/custom/file']} is supported. The default vunit/vhdl/data_types/src/api/external_*_pkg_.vhd is used when: any of the fields does not exist, is False, or is None. Otherwise, the user-provided file is used.
  • builtins._add_files is enhanced in order to check if provided files actually exist.
  • Save GHDL args to JSON file #581 is merged in this PR.
  • A section about 'External VHDL API' is added to the docs. It includes a brief description, a diagram and a note referring users to VUnit/cosim.
    • At the same time, a step is added to workflow 'docs' so that the artifacts of the PRs are available as a zipfile.

All the content that has been removed (the example, *-vhpi.vhd sources and subdir ghdl) is expected to be added to a new vunit/cosim repository. In fact, this draft PR is a result of the discussion that is going on in #603.

Note that this does not revert the 'external modes' feature introduced in v4.3.0. Files in vunit/vhdl/data_types/*.vhd are not modified at all. Hence, this is just a reorganization of the sources that moves specific implementations (e.g. GHDL's VHPIDIRECT) to a separate repository.