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

H extension not included in RVA23 #412

Open
james-ball-qualcomm opened this issue Jan 12, 2025 · 5 comments
Open

H extension not included in RVA23 #412

james-ball-qualcomm opened this issue Jan 12, 2025 · 5 comments
Assignees
Labels
bug Something isn't working

Comments

@james-ball-qualcomm
Copy link
Collaborator

I've added the new profile-defined extension Sha and it implies a bunch of other profile-defined extensions as well as the H extension itself. However, I'm not seeing the H extension in the RVA23 and probably other similar profiles. I do see the profile-defined extensions implied by Sha.

image

@dhower-qc
Copy link
Collaborator

How are you collecting the list of extensions?

@james-ball-qualcomm
Copy link
Collaborator Author

I'll take a look.

@james-ball-qualcomm
Copy link
Collaborator Author

I'm looking at the extension schema and files in arch/ext to better understand how you model extension dependencies. I see "implies" and "requires". For example, the B extension "implies" Zba, Zbc, and Zbs and the H extension "requires" the S extension.

I can imagine using the "implies" to add to the list of in-scope extensions to include anything "implied" by the list of extensions in the portfolio YAML. This would have to be done recursively since an "implied" extension may itself "imply" other extensions. Is this a correct understanding? If yes, is there already some Ruby code to do this I should be using?

As for "requires", I'm assuming this would be used to check for the presence of a "required" extension in the list of in-scope extensions but wouldn't cause that extension to be added like "implies" does. Is this a correct understanding of the intent? Is so, is there some Ruby code that does this kind of checking of dependencies that I should be using?

@dhower-qc
Copy link
Collaborator

Your understanding is correct -- implies means that if you specify B, you also get Zba, Zbc, and Zbs without having to explicitly specify them. requires means that if you specify D, you also must specify F or else you get a validation error.

Ruby checks requires in the validation checks.

You can get the full list, with implies expanded, using the transitive* functions of CfgArch

@james-ball-qualcomm
Copy link
Collaborator Author

Okay, I've got a related question for you about the "implemented" functions of CfgArch. How do you actually use these "implemented" functions? I ask in particular because CfgArch only allows them to be called for a fully configured config. So I also don't allow these for portfolios since they correspond to a partially configured config. Should I allow them to be called for a portfolio? If yes, obviously I'll include all mandatory extensions but how should I treat the optional extensions? Should I add them too or omit them?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants