Skip to content
New issue

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

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

Already on GitHub? # to your account

Define syntax markers for automated linting tools #6

Open
mlange05 opened this issue Nov 10, 2023 · 0 comments
Open

Define syntax markers for automated linting tools #6

mlange05 opened this issue Nov 10, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@mlange05
Copy link
Collaborator

Following on form the suggested general classification of subroutines in issue #5, I propose to add a rule for specific syntax markers that classify a subroutine or source file to adhere to a specific subset of rules (eg. the proposed "parallel" and "vector" routines). The markers would be intended for automated tools across organisations to verify if individual files adhere to the standard.

Explicit in-source marking would allow two things:

  • Gradual implementation of the rules without relying on implicit inclusion and long lists of exception clauses. Once a rule has been tagged explicitly, it is assumed to be compliant with the defined subset of rules (effectively an "opt-in" mechanism).
  • Complete adherence to the respective structural rules can be seen as a "contractual requirement" for automated GPU-adaptation. If all subroutines transitively called from a "parallel"/"driver" routine adhere to the "vector"/"NPROMA" rules, source-to-source tools should be able to automatically generate correct GPU-code for that code region.

My proposed format would be !$IAL-FORMAT: PARALLEL or !$IAL-FORMAT: VECTOR

Optionally we could also add exemption clauses that could be discussed on a file-by-file basis, eg.:
!$IAL-FORMAT: VECTOR, EXCEPT: L18

@mlange05 mlange05 added the enhancement New feature or request label Nov 10, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant