Version cleanup

Suggested code changes to use AbstractVersion and its subclasses as designed.

common_constants moved to the Version specific classes that make the most use of them.

  • could also have been moved to version_spin1.py version_spin2.py but the common usage would have been slower

Added version methods

  • max_cores_per_router
    • Do not use max_cores_per_chip as that could change based on a cfg setting
  • max_links_per_router
    • method created on the assumption the Spin2 value is not actually 6
  • router_entry_class

The Version classes where not designed to default to any specific version or board type. The reasoning was

  1. For actual usage the cfg must specify the version to create the correct transceiver
  2. Test that depend on version should set it. Both as it is easy and clear that the test needs a version

If a default version is really desired (not recommended) change version_factory too default rather than error.

routing_entry_factory moved to router to avoid circular imports

set_config("Machine", "version" used instead of set_config("Machine", "versions" due to https://github.com/SpiNNakerManchester/SpiNNMachine/issues/310 and #3

Edited by Christian Brenninkmeijer

Merge request reports

Loading