Topic: SF2.17 BUILD irregularity

With SF 2.17, the following has been happening quite a bit:

(1)
I try to Build my project.

(2)
This error occurs:
==============================================================================
Generating Makefile... Okay
==============================================================================
Error(F38): (.\modules32\files.mod) does not exist and cannot be made from existing files
Error(E02): Make execution terminated

* Failed *

(3)
I switch to another recent project (and do nothing).

(4)
I switch back and try again to Build.

(5)
It works; the error has gone away.
---
John

Re: SF2.17 BUILD irregularity

John,

The error is occurring because the indexing system is failing to generate the necessary dependency information for some reason.  This code, however, didn't change in version 2.17, so you should have seen this same intermittent error in 2.16 (or perhaps earlier).  I will, however, look into it.  Hopefully it's a minor overlooked issue.

Are you, by any chance, starting with a 64-bit project and later loading a 32-bit project or vice versa (just guessing by your directory naming convention)?  I suspect it could be an issue with failing to adequately clear a prior project from Simply Fortran's internal index of project-provided modules.

Jeff Armstrong
Approximatrix, LLC

Re: SF2.17 BUILD irregularity

jeff wrote:

Are you...starting with a 64-bit project and later loading a 32-bit project or vice versa?

Yes, Jeff, I do that quite a lot.  I can't recall whether the problem arises only when I do that, but it might be so.
---
John

Re: SF2.17 BUILD irregularity

John,

Looking through the code, it does appear that the dependency tables can change mid-makefile-construction, which would cause the behavior you're seeing.  Simply Fortran is pretty good about  only including project-generated module files in the dependencies for other files.  However, normal indexing operations, which are allowed to proceed during makefile construction, can lead to the record of a project module file being removed, leading to one file possibly depending on its existence while no build rule is created for said file. 

I've corrected matters in the development build.  Simply Fortran no longer allows any changes to the project's provided and required module lists while the makefile is being generated.  This lock should fix the issue you're seeing on occasion.

Jeff Armstrong
Approximatrix, LLC