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

Remove string handling in ArgOrdering subclasses #1934

Open
hiker opened this issue Nov 4, 2022 · 2 comments
Open

Remove string handling in ArgOrdering subclasses #1934

hiker opened this issue Nov 4, 2022 · 2 comments
Labels
enhancement LFRic Issue relates to the LFRic domain

Comments

@hiker
Copy link
Collaborator

hiker commented Nov 4, 2022

ATM all ArgOrdering subclasses return the argument as strings. In #1883 support for getting the same information as PSyIR was added, but the old, string-based results are still supported and used everywhere (the PSyIR results are only needed for LFRic driver creation atm).

The string-handling should be replaced with the PSyIR based results.

@hiker hiker added the LFRic Issue relates to the LFRic domain label Nov 4, 2022
@arporter
Copy link
Member

arporter commented Oct 3, 2023

Related to this, upon construction, an instance of ArgOrdering stores a reference to a SymbolTable. As noted by @sergisiso (#2313 (comment)) this is dangerous as we end up with a double reference which won't work e.g. if the tree is copied.

@rupertford
Copy link
Collaborator

Whilst ArgOrdering makes the LFRic world go round, there is a new base class implementation based on LFRic metadata in MetadataToArgumentsRules.py. My idea is to use this to replace ArgOrdering with this and then modify/re-write the subclasses as needed. There is PR #2079 that is that is looking to fully implement the equivalent of kernel_interface as a first step (although it is already used in PSyAD for index mapping).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement LFRic Issue relates to the LFRic domain
Projects
None yet
Development

No branches or pull requests

3 participants