Overhaul coarray finalization, convert prif_coarray_handle to be interoperable #320
Open
bonachea wants to merge 16 commits intoBerkeleyLab:mainfrom
Open
Overhaul coarray finalization, convert prif_coarray_handle to be interoperable #320bonachea wants to merge 16 commits intoBerkeleyLab:mainfrom
prif_coarray_handle to be interoperable #320bonachea wants to merge 16 commits intoBerkeleyLab:mainfrom
Conversation
* Replace info field with type(c_ptr) * Add helper functions to convert between prif_coarray_handle and descriptor pointer (dp) * Adjust all internal manipulation of prif_coarray_handle * Make some minor unrelated improvements to affected code while rewriting
* Convert prif_coarray_handle argument from pointer to value * Convert errmsg argument to kind=c_char * Update tests
As the redesigned final_func is now supported by all supported compilers
Convert `prif_allocate_coarray(final_func)` argument to: `procedure(prif_coarray_cleanup_interface), pointer` Adjust test code accordingly
Also, add gfortran bug workarounds: 1. Use caf_c_funloc_deref helper to workaround broken c_funloc 2. Use final_func_usher for !HAVE_PROCEDURE_ACTUAL_FOR_POINTER_DUMMY
… from C finalizer
Adjust tests accordingly
As resolved in the 2026-04-16 PRIF Committee meeting Adjust tests, removing keyword args to work with either version of PRIF
Member
Author
|
This is a somewhat large PR, primarily due to the pervasive impact of changing the internal representation of I recommend the following reading order for most logical review:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement the following changes expected in PRIF 0.8, as proposed in https://github.com/BerkeleyLab/prif/issues/157 (proposals 2, 2.1. 2.2, 2.3) and approved in https://github.com/BerkeleyLab/prif/pull/159 :
prif_coarray_handleto an interoperable typefinal_funcargument toprif_allocate_coarrayinto a procedure pointer namedfinal_proc,while adjusting the callback interface and removing the
stat/errmsgarguments.prif_local_data_pointer,prif_size_bytesandprif_{get,set}_context_datato be interoperable