Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set up Simics package associations using standard tools #20

Closed
jakob-engblom-i opened this issue Sep 18, 2023 · 3 comments
Closed

Set up Simics package associations using standard tools #20

jakob-engblom-i opened this issue Sep 18, 2023 · 3 comments
Assignees
Labels
documentation Improvements or additions to documentation low-priority Low priority tasks that still need to be completed for an upcoming release. minor A minor change, bug, or feature requiring low effort.

Comments

@jakob-engblom-i
Copy link

The example instructions are using non-orthodox ways to set up the Simics project--package association.

For example: https://github.com/intel/tsffs/blob/main/docs/Requirements.md:

$ "${SIMICS_HOME}/simics-6.0.169/bin/project-setup" ./test-micro-checkpoints
Project created successfully

This should be accomplished using the documented addon-manager script. Or even better, starting with setting up the project based on Public Simics using the Intel Simics Package Manager (ISPM). Since the later page https://github.com/intel/tsffs/blob/main/docs/Setup.md does use the public Simics as an example, maybe that could be moved up to the start of the docs?

The instructions on the https://github.com/intel/tsffs/blob/main/docs/Setup.md page are also missing how to set up a project pointing at the installed public release. As documented on https://www.intel.com/content/www/us/en/developer/articles/guide/simics-simulator-installation.html, it should be enough to add a --create-project option to the ispm CLI invocation.

@novafacing
Copy link
Contributor

novafacing commented Sep 18, 2023

Thanks Jakob, these are all good points/ideas, you're welcome to make a PR otherwise either I or @brandonmarken will resolve it soon!

@jakob-engblom-i
Copy link
Author

I always think it is better for the original author to adjust the flows. I do not know enough about the thinking and reasoning behind the structure to feel comfortable doing live edits.

@novafacing novafacing self-assigned this Sep 21, 2023
@novafacing novafacing added documentation Improvements or additions to documentation minor A minor change, bug, or feature requiring low effort. low-priority Low priority tasks that still need to be completed for an upcoming release. labels Sep 21, 2023
@novafacing
Copy link
Contributor

novafacing commented Sep 22, 2023

Steps to complete this are a little more in depth, because there are a few additional changes I want to make to bring things more in-line with the suggested and supported way of using SIMICS and ISPM. I've started working on them.

  • Update documentation to use ispm projects for project creation and management.
  • Update documentation to add ispm to the PATH. This will be a requirement for the updated build and install process.
  • Remove project creation and management tools from TSFFS entirely. The official tooling via ispm is the same number of steps, and this lowers our update/compatibility surface.
  • Use ispm to manage SIMICS version association. This is a somewhat significant change -- right now, we use an environment/.env file variable to find the SIMICS installation at build and runtime, with this change we will rely on ispm's install-dir configuration. Unfortunately, ispm config outputs in a non-machine-readable format, so we either need to parse it (not ideal), read the .cfg file (ok, it is JSON), or upstream machine-readable output to ISPM.
  • Update all linking and build code to use the methods above.
  • Enable installation with cargo install into an existing project, which would use the currently associated SIMICS base version. This has the added benefit of eliminating the delayed second-stage build of the TSFFS SIMICS module.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation low-priority Low priority tasks that still need to be completed for an upcoming release. minor A minor change, bug, or feature requiring low effort.
Projects
None yet
Development

No branches or pull requests

2 participants