-
Notifications
You must be signed in to change notification settings - Fork 7
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
Restructure modules #68
Conversation
interface of `prif_init` into `prif` module and change `program_startup_s` to extend from `prif_private_s`.
`prif`. Change `program_termination_s` to extend `prif_private_s`. Update all `program_termination_m` use-stmts.
`atomic_s` to extend `prif_private_s`.
definition of `notify_type` to `prif_private_s`. Change `notify_s` to extend `prif_private_s`.
`events_s` to extend `prif_private_s`.
`critical_s` to extend `prif_private_s`.
`locks_s` to extend `prif_private_s`.
`synchronization_s` to extend `prif_private_s`.
the interfaces for the collectives to `prif` and keep the operation abstract interfaces in the newly named module. Change all the submodules with the definitions of the collectives to extend `prif_private_s`.
`prif_queries_s` to extend `prif_private_s`.
`image_queries_s` to extend `prif_private_s`.
`coarray_queries_s` to extend `prif_private_s`.
`alias_s` to extend `prif_private_s`.
`coarray_access_s` to extend `prif_private_s`.
`teams_m` and move all their interfaces to `prif`. Change `allocation_s` and `teams_s` to extend `prif_private_s`. Update all related `use-stmts`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall this looks like the wonderful and long-overdue cleanup we discussed.
Added a few questions and minor requests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's difficult to audit all the cross-file declaration motion in this PR.
Were there any meaningful changes to the contents of the public prif_
module subroutine interfaces as they moved from the *_m.f90
files to prif.f90
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made no changes to the content of the interfaces when moving them. Just cut and paste from one module to the other. And I was as careful as I could be to ensure that no changes were accidentally made.
the types defined in the `prif` module, and move the Fortran intrinsic derived types to the `prif` module
I just moved the definition of |
I thought we tried this in our prototyping meeting and decided that at least one compiler rejected the declaration of Of course what ultimately matters most is what flang-new will accept, which I'm guessing is currently "none of this". On a related note, I think this PR needs to update the table in the top-level README where we track major modern Fortran features the Caffeine implementation requires. We at least need to add "Submodule support [1]" (which I believe was added in F08?), and probably remove the [1] from |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the recent changes, which look good.
Some unresolved tasks remain.
types to a single place in `prif`
When compiling the whole software stack, the only compiler we are currently developing with is gfortran. Based on this comment, I tried compiling just the
|
in calls to `prif_co_reduce`.
the last remaining location that uses them, `co_reduce_s`. Remove `collective_helpers_m`.
@bonachea Thank you for the further feedback. I have answered your compiler question above and then updated the PR in reference to your requested changes around |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for the overhaul and recent fixes.
Wooops, I just noticed that doc-generator.md also needs updates as a result of this reorg, assuming we are still maintaining the FORD docs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After additional thought, I've added two further minor requests.
redundant when defining PRIF around which procedures should provide termination.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, especially since the changes to the tests were so minimal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for this valuable cleanup
Closes #64.