ESCOMP / CAM

Community Atmosphere Model
77 stars 146 forks source link

perl script configure needs to be replaced #993

Open jedwards4b opened 8 months ago

jedwards4b commented 8 months ago

What is the feature/what would you like to discuss?

The cam configure script is written in perl, a language finding less and less support in the community. I am working on a port to a grace hopper system today and there was only a very minimal perl install there. This is becoming more and more the case on newer systems.

Is there anyone in particular you want to be part of this conversation?

No response

Will this change (regression test) answers?

No

Will you be implementing this enhancement yourself?

No

nusbaume commented 8 months ago

@jedwards4b Thanks for opening this issue. Do you have any sense if there is a hard deadline, or needed timeline, for this? We have already moved over to python in CAM-SIMA, but that won't be a part of CESM until CESM3.1 at the earliest (and it's not fully back portable to CAM).

Alternatively we could just try to replace configure and build-namelist with python equivalents, but to be honest I am concerned that could be a non-trivial amount of work. It's also unclear to me if the same would have to be done for CTSM as well (@billsacks @ekluzek do you know?). Not saying we can't do it, I am just trying to get a sense of what the priority is. Thanks!

ekluzek commented 8 months ago

Yes, @jedwards4b thanks for pointing this out.

@nusbaume yes we have a long standing issue in CTSM about this as well.

https://github.com/ESCOMP/CTSM/issues/585

I think it will be a big effort to do though. And I don't see it happening before CESM3. But, I would hope it would be something that we could dedicate time to work on afterwards. The perl code really is a problem and we do need to remove it. I don't really want people to learn perl now, since it would be better for them to learn more python.

By the way we have about 11k lines in perl code and xml files associated with it for CTSM (half of it is the perl). So this is clearly a big project, and I'm sure it's similar for CAM. Although note here that Jim just asks about configure.

For CTSM we did get rid of our configure scripts, since we removed all of our CPP tokens. Which was a great improvement in and of itself. So perhaps CAM could replace their configure script? The CAM configure is only about 2.7k lines...