-
Notifications
You must be signed in to change notification settings - Fork 214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bld/Depends can get out of sync with dependencies in evolving code #1138
Comments
You may not consider this a solution but here is my method for this situation (commands executed from case directory):
|
What @gold2718 said with the additional note that can be replaced by |
I think it puts an undue burden on the developers to know that they
actually have to issue a "rm -rf bld" command. Any user would naively
assume that simply issuing a ./case.build --clean-all would be sufficient.
Maybe a new argument such as --clean-bld would clarify that --clean-all
does not remove the bld and therefore any dependencies that are in the bld
directory and that you need a stronger command to ensure this. At least the
user would be aware of this behavior from the help command.
…On Mon, Feb 13, 2017 at 6:52 PM, jedwards4b ***@***.***> wrote:
What @gold2718 <https://github.com/gold2718> said with the additional
note that
./case.setup --clean
./case.setup
can be replaced by
./case.setup --reset
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#1138 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AHlxE5vrbOxw2x86bwmQV3TQCeVMD-a4ks5rcQjGgaJpZM4L_6VU>
.
|
I'm not sure why --clean-all does not remove bld or at least all the files in bld. @jedwards4b? @jgfouca? |
@gold2718 good question, it seems like it should. Maybe there's some legacy reason why it doesn't. |
I think it just felt like overkill - we can try that change if you want. |
I agree about the overkill but right now, we have underkill which is worse because --clean-all does not work. |
Cleaning by simply removing the build directory is incorrect and causes problems in the case of tests that build two executables in the same directory. PR #1140 addresses this issue without removing the bld directory. |
Make case.build clean options clean more thoroughly. Test suite: scripts_regression_tests.py Test baseline: Test namelist changes: Test status: bit for bit Fixes #1138 User interface changes?: Code review: Goldy
During development, I usually have a stand-alone case that I do test builds and runs in, prior to invoking create_test. As I change code, I regularly run case.build to ensure that the new code compiles.
A recent change I made introduced a new dependency between Fortran modules, A.F90 now uses B.F90, where it did not before. The new dependency was not reflected in the bld/Depends file, because the Depends file was never updated. I also ran case.build --clean, which removed the .mod files. It turns out that make tried to compile A.F90 prior to compiling B.F90, and the compiler couldn't find B.mod. So I couldn't get the build to work. It did work when I setup a completely new case.
I think there needs to be a mechanism to rebuild the Depends file.
The text was updated successfully, but these errors were encountered: