mdolab / pysurf

pySurf provides geometric operations for triangulated surfaces.
Apache License 2.0
2 stars 4 forks source link

Allow GCC 10+ compilation #21

Closed sseraj closed 2 years ago

sseraj commented 2 years ago

Purpose

In #16, I updated the AD code and ADFirstAidKit to use Tapenade 3.16 instead of 3.10. However, the newer ADFirstAidKit is not compatible with GCC 10+ because of type mismatches. I reverted the ADFirstAidKit files to Tapenade 3.10 in this PR. The actual AD code is still generated with Tapenade 3.16.

I added -fallow-argument-mismatch to the F77 gfortran flags to allow compilation with GCC 10+.

Expected time until merged

2-3 days

Type of change

Testing

Checklist

codecov[bot] commented 2 years ago

Codecov Report

Merging #21 (cf4cb3c) into main (3f2f060) will not change coverage. The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #21   +/-   ##
=======================================
  Coverage   49.97%   49.97%           
=======================================
  Files           5        5           
  Lines        1683     1683           
=======================================
  Hits          841      841           
  Misses        842      842           

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

eirikurj commented 2 years ago

I would prefer to keep the 3.16 files to be consistent to the version used. The alternative would be to apply the -fallow-argument-mismatch or develop an explicit interface for these functions. Overall, I think any approach would be a temporary fix anyway, since I know that the Tapenade team is moving away from including an adbuffer.f file, and it will be removed or deprecated in future versions. What do you think?

sseraj commented 2 years ago

The alternative would be to apply the -fallow-argument-mismatch

Now that you mention it, I think adding -fallow-argument-mismatch to just the F77 flags is the cleanest approach

eirikurj commented 2 years ago

Since this flag is not available for GCC < 10, I think you need something similar to what was done in https://github.com/mdolab/adflow/pull/244, then all versions should work.

sseraj commented 2 years ago

Since this flag is not available for GCC < 10, I think you need something similar to what was done in mdolab/adflow#244, then all versions should work.

You're right. I just pushed an update.