Community
Participate
Working Groups
PLDT's MPI and OpenMP artifact analyses do not appear to work for Fortran anymore. This blocks Bug 373315. I propose to fix this by adding extension points to pldt.mpi.core, pldt.openmp.core, and pldt.openacc which allow arbitrary artifact analyses to be contributed based on language ID.
Created attachment 212258 [details] Proposed patch Beth, here is the patch I plan to commit. It adds three extension points: * org.eclipse.ptp.pldt.mpi.core.artifactAnalysis * org.eclipse.ptp.pldt.openmp.core.artifactAnalysis * org.eclipse.ptp.pldt.openacc.artifactAnalysis The artifact analyses for C, C++, and Fortran are contributed via these extension points. For example: <extension point="org.eclipse.ptp.pldt.mpi.core.artifactAnalysis"> <artifactAnalysis languageID="org.eclipse.cdt.core.gcc" class="org.eclipse.ptp.pldt.mpi.core.analysis.CMPIArtifactAnalysis" /> <artifactAnalysis languageID="org.eclipse.cdt.core.g++" class="org.eclipse.ptp.pldt.mpi.core.analysis.CMPIArtifactAnalysis" /> </extension> The contributed classes implement a new interface which I put into pldt.common: public interface IArtifactAnalysis { ScanReturn runArtifactAnalysis( String languageID, ITranslationUnit tu, List<String> includes, boolean allowPrefixOnlyMatch); } Now, the #doArtifactAnalysis methods (e.g., in RunAnalyseMPIcommandHandler) are pretty simple. They loop through the contributed analyses and run the first one that matches the language ID of the file being analyzed. How does this sound to you?
sounds good to me. this will give you flexibility to do something different for Fortran if need be.
Pushed to master for Juno/6.0
updated target milestone to be 6.0 (PTP's) instead of 8.0 (which was Photran's)