{"action":"opened","issue":{"url":"https://api.github.com/repos/sourceryinstitute/opencoarrays/issues/268","repository_url":"https://api.github.com/repos/sourceryinstitute/opencoarrays","labels_url":"https://api.github.com/repos/sourceryinstitute/opencoarrays/issues/268/labels{/name}","comments_url":"https://api.github.com/repos/sourceryinstitute/opencoarrays/issues/268/comments","events_url":"https://api.github.com/repos/sourceryinstitute/opencoarrays/issues/268/events","html_url":"https://github.com/sourceryinstitute/opencoarrays/issues/268","id":193370727,"number":268,"title":"RFC: Hard code full paths and more precisely specify linker/compiler flags & MPI flags in caf and cafrun scripts","user":{"login":"zbeekman","id":279612,"avatar_url":"https://avatars.githubusercontent.com/u/279612?v=3","gravatar_id":"","url":"https://api.github.com/users/zbeekman","html_url":"https://github.com/zbeekman","followers_url":"https://api.github.com/users/zbeekman/followers","following_url":"https://api.github.com/users/zbeekman/following{/other_user}","gists_url":"https://api.github.com/users/zbeekman/gists{/gist_id}","starred_url":"https://api.github.com/users/zbeekman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zbeekman/subscriptions","organizations_url":"https://api.github.com/users/zbeekman/orgs","repos_url":"https://api.github.com/users/zbeekman/repos","events_url":"https://api.github.com/users/zbeekman/events{/privacy}","received_events_url":"https://api.github.com/users/zbeekman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-04T19:44:31Z","updated_at":"2016-12-04T19:44:31Z","closed_at":null,"body":"Request for comment: wrapper script re-engineering\r\n\r\n`caf` is to `mpif90` as `cafrun` is to `mpirun`: they are wrapper scripts for compiling and launching OpenCoarrays enabled coarray fortran programs. Currently the scripts use a bit of an ad-hoc sandwich technique to get written: Some static content exists in a \"head\" file, some static content exists in a \"foot\" file and then some content is echoed during the build process to get inserted into the middle.\r\n\r\nMy proposal is:\r\n 1. Use CMake's native `configure_file` capabilities to store a `caf.in` and a `cafrun.in` file and use CMake's `@variable@ expansion to substitute the correct values into this file.\r\n 2. Specify explicitly the full paths to the GCC (or, perhaps in the future, a different) Fortran compiler, rather than using the MPI wrapper script.\r\n 3. Specify explicitly the compiler and linker flags needed for MPI via the FindMPI cmake module\r\n 4. Allow backwards compatibility fallback to the compiler wrapper scripts when the build detects the user has explicitly passed the MPI wrappers as the C and Fortran compilers.\r\n 5. This behavior of passing `FC=mpif90` etc. will be deprecated (but temporarily, unofficially supported for the medium term) to ease package maintainers and users jobs who have become accustomed to this behavior.\r\n\r\nThoughts, @rouson, @jerryd, @afanfa, @vehre, and anyone else?"}}
{"actor":{"display_login":"zbeekman"}}