forums.silverfrost.com Forum Index forums.silverfrost.com
Welcome to the Silverfrost forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Plato: Problems with linking large projects

 
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> Plato
View previous topic :: View next topic  
Author Message
KL



Joined: 16 Nov 2009
Posts: 107

PostPosted: Fri Apr 10, 2015 4:07 pm    Post subject: Plato: Problems with linking large projects Reply with quote

Dear colleagues,

has anybody experienced problems with linking large project employing Plato? In Plato seven compiler options are available. In always all cases linking is very fast. In a few cases linking is extremely slow and sometimes linking does never finish.

Recently, linking worked for 6 compiler options but failed for the option Release x64 with the error message

ERROR: Unable to create process (#206).

Does anybody have an idea what problems might cause this behaviour? I am working with Windows 8.1 and Plato version 4.64.

Does the new release 7.20 include an improved Plato?

Many thanks in advance for any help.

Klaus
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 5046
Location: Salford, UK

PostPosted: Fri Apr 10, 2015 5:49 pm    Post subject: Reply with quote

Try switching off the "dependency checking". You will find the switch in the main Project drop-down menu.

Sometimes, particularly with large projects. the file dependency chain can become recursive and this will cause problems for Plato.

The latest Plato uses the same dependency checking as before.

If this solves the problem, report back and I will describe how to fix the fault in your code.
Back to top
View user's profile Send private message
JohnCampbell



Joined: 16 Feb 2006
Posts: 1835
Location: Sydney

PostPosted: Sat Apr 11, 2015 1:48 am    Post subject: Reply with quote

I am definitely not understanding something here !

In Plato 4.64 there is a drop down box in the standard toolbar which lists 7 different compile options, including "Release x64".
It was my understanding that "Release x64" indicates that gFortran is used for Clearwinx64. Am I correct?

If I am correct, when it is taking so long to run, then is gFortran installed and compatible with PLATO's expectations ? If I am on the right track here, the problem sometimes with gFortran can be that it detects it can not overwrite the .exe. I am using 4.9.1 from mingw and equation.com and get unexplained errors at the link stage. I just repeat the build and the problem mysteriously disappears.

If I am wrong, what is the difference between "Release Win32" and "Release x64" ? I am not aware of any different settings for FTN95.

I have not been able to find a definition of these 7 compile options, what they actually select or if they are modifiable. I can go to Tools > Options > Environment - Plug ins and see 2 compiler x 2 modes; each with 3 compiler options listed, but no way to modify these or relate these to the compile drop down box.

John
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 5046
Location: Salford, UK

PostPosted: Sat Apr 11, 2015 8:13 am    Post subject: Reply with quote

Yes. Current versions of Plato use "Release x64" to create a release version using 64 bit gFortran. When 64 bit FTN95 is released the default will be to create a release version using 64 bit FTN95 but there will be an option to use gFortran instead.

The other modes "Release Win32" etc. all use FTN95. "Debug" uses /DEBUG. "Checkmate" uses /CHECKMATE. ".NET" uses /CLR much as you would expect.

If in doubt, look at the local file called Buildlog and that will tell you the command(s) that Plato has issued.
Back to top
View user's profile Send private message
JohnCampbell



Joined: 16 Feb 2006
Posts: 1835
Location: Sydney

PostPosted: Sun Apr 12, 2015 4:49 am    Post subject: Reply with quote

Paul,

This is very useful to learn. I have just tried "Release x64" and it appears to work very well; the only problem is I have at least 5 versions of gFortran installed and could not identify which one was being used.

If it was possible to modify the compiler settings for these 7 options it could be helpful, but it looks like a very useful capability.

John
Back to top
View user's profile Send private message
KL



Joined: 16 Nov 2009
Posts: 107

PostPosted: Sun Apr 12, 2015 9:20 am    Post subject: Reply with quote

Paul,

I have switched off the dependency checking, but the problems remain. Normally I work with little batch files for compiling, linking and execution or with one bach file for all three tasks. I have never ever experienced any problems, especially not with linking.

When I started working with Plato recently, the first thing I noticed was that it took an afternoon (!) to set up a project for about 300 programs. The set up only worked in pieces of -say- 10 to 20 programs. Adding these 10-20 rather small programs took 10-15 minutes on a pretty fast modern PC.

Compiling with Plato never caused problems. I carefully watched what programs I had modified and Plato compiled indeed only these modified programs. It behaves similar as a normal MakeFile. At the end of the compilation process the following message is written:

Compilation completed with no errors.
Linking ....

As mentioned in my first message, sometimes this process is never finished. If I use my little linking bat file, linking the programs which I had just compiled with Plato succeeds in very short time.

I wonder whether the default settings in Plato are optimal for rather large programs. Unfortunately, I cannot fully see all texts since they do not fit into the foreseen space.

So working with Plato seems to be more difficult than expected.

Klaus
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 5046
Location: Salford, UK

PostPosted: Sun Apr 12, 2015 3:41 pm    Post subject: Reply with quote

Apart from file dependency check, the only thing that Plato does is to issue commands for you. You can see the commands in a local file called Buildlog. Changing command line options is not going do have a major effect on the elapsed time.

Plato runs the commands on a thread using a temporary "Command Prompt", but again the overhead should be minimal.

If you are able to send me the whole project (including the project file) then I will aim to take a look at it but please make sure that I can build the project without changing the paths etc..
Back to top
View user's profile Send private message
JohnCampbell



Joined: 16 Feb 2006
Posts: 1835
Location: Sydney

PostPosted: Mon Apr 13, 2015 12:48 am    Post subject: Reply with quote

Klaus,

A possible explanation is that if you are mixing FTN95 and gFortran builds, you can have problems with modules, as the .mod files are not compatible. If the date stamp does not show the .mod file needs rebuilding, then you can have an incompatible .mod file conflicting with the compile.

Apart from this, you need to determine why the compile is so slow. It is more likely to be with your compiler path settings than with Plato.

John
Back to top
View user's profile Send private message
KL



Joined: 16 Nov 2009
Posts: 107

PostPosted: Mon Apr 13, 2015 9:46 am    Post subject: Reply with quote

John,
similar to Visual Studio the object and exe files are stored in different directories and should be independent from each other.
Klaus

Paul,
I very much appreciate your offer, but I cannot send the project for investigation.

As you recommended, I have checked several BuildLog files as well as the ini and the project file and found that even if in Plato the linking process has not ended, linking is reported correctly in BuildLog.

It seems that Plato does not always report the finish of linking. And indeed, if I simply click in that case on “BUILD”, Plato reports “Target is up to date”. Since due to my Windows fonts settings some of the Plato texts are cut-off, I suspect that the Plato output may also get cut-off. At this moment I just see that “linking completed” is shown only in its upper 20-30% parts! With high probability the problem seems to be that the output space of Plato is organized for a specific Windows font only. This would explain why I get from time to time a completely disrupted, hardly readable Plato output. And it would also explain why –obviously- I am the only one having such difficulties.

As you see in my reply to John, I assume that all seven compiler options produce results which are independent from each other. Nevertheless, occasionally, the target is completely rebuilt even if it is up to date. This may for instance happen if you switch between compiler options. That is also unexpected.

In the meantime I have finished my little Fortran task in “my way” and I will have another look to Plato only in future versions. So this thread can be closed from my side.

Klaus
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> Plato All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group