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 

8.10 Clearwin64 with /CHECK

 
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> ClearWin+
View previous topic :: View next topic  
Author Message
DanRRight



Joined: 10 Mar 2008
Posts: 1393
Location: North Pole, Russia

PostPosted: Thu Mar 02, 2017 8:03 am    Post subject: 8.10 Clearwin64 with /CHECK Reply with quote

Since 8.10 64bit FTN95 allows /check now I tried it and got the following error

4796) i = winio@('%^`7ps&',ish1, ish2, ish3, ish4, ish5, ish6,
4797) * ish7, n_CurrSheetSettings01, cbupdateSettings01)
*** Error 1222: Argument number 4 (ISH3) of WINIO@ should be a call-back
function

Just to inform, not urgent.

/* Superfast input/output speeds FTN95 is capable of course is more important and could be a huge selling point specifically if you directly compare with the speed of other compilers.
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


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

PostPosted: Thu Mar 02, 2017 8:59 am    Post subject: Reply with quote

There is a new (/CHECK) checking feature that is raising some false error reports. It checks winio@ arguments at compile time for 64 bits.

You can switch off this feature by adding "/inhibit_check 16" whenever you use "/64 /check".
Back to top
View user's profile Send private message
DanRRight



Joined: 10 Mar 2008
Posts: 1393
Location: North Pole, Russia

PostPosted: Thu Mar 02, 2017 9:49 pm    Post subject: Reply with quote

Thanks.
And checking WINIO@ syntax would be nice feature.

Hints of the compiler for some complex controls during error reporting would be also appreciated. Like which arguments go first if you use ^, ' #, ~, @ like in here

i=winio@('%~`^bt[Run]', arg1, arg2, arg3)
i=winio@('%~`^?rd', arg1, arg2, arg3)

(may be introducing verbose checking mode /verbose which in the error listing tells about what standard recommends, what's better for portability, may be about some users' suggestions and their best practices, future trends etc. Of course we can read that in the HELP file but at the time when user looks at the specific reported error in his code after compilation it would be much more useful)
Back to top
View user's profile Send private message
DanRRight



Joined: 10 Mar 2008
Posts: 1393
Location: North Pole, Russia

PostPosted: Thu Mar 02, 2017 10:25 pm    Post subject: Reply with quote

Here is another error of the same sort to fix in the future: debugger reports error in the wrong line in 64bit mode (in 32bit all is OK)

Code:

Real*8 C

  i=winio@('var %ta%8rd%8rd %ff&', &
     iA, iB, C)
  i=winio@('%bt[OK]')

end
Back to top
View user's profile Send private message
DanRRight



Joined: 10 Mar 2008
Posts: 1393
Location: North Pole, Russia

PostPosted: Wed Mar 08, 2017 2:42 am    Post subject: Reply with quote

By the way the example above is not Clearwin-specific.

Took today newer SDBG64. Looks like suggestions above were missed. I'll write them again and add some new
1)does not show error line correctly in the example above and sometimes in other cases missing it by 1-2 lines both ways (show before and above actual offending line)
2)shows 2 lines in red instead of one
3)all windows do not fit well (I cannot see line number in the bottom for example). Also there is unneeded margin on top (just below menu)
4)no option to save new windows position if you more or rescale them
5)no option to restart debugging program keeping all the breakpoints
6)huge inconvenience of older sdbg is still here: if you hover mouse over variable which is declared as parameter then you can not see its value in bubble help
Code:
 parameter (iParameter=11)
   i=alog(exp(22.))
   if(i.eq.iParameter) print*,'something'
 end


7)Ctrl+PgUp and Ctrl+PgDn do not work. If file size is large you lose time to get to the beginning or the end of file.

8)that is something for the future "Ideal Debugger": option like one step forward F7 but to go one step back with say Shift+F7. This way would be great to catch reading errors like

READ(22,'(I3,1p,10e10.3)',err=100) ivar1, variable2, variable3,...

When reading error occurs you usually painfully catch the bad line where it took place. Reading in Fortran is always painful due to its numerous options. And if the file is huge - this is a pure hell. With go back Shift+F7 feature it would be found in no time. You just put debugger stop on line with label 100 and when error occurs you just push Shift+F7 and debugger gets one step back on that offending READ before it jumped to label 100 ! No other debugger has this !


Last edited by DanRRight on Fri Mar 17, 2017 10:40 am; edited 1 time in total
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


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

PostPosted: Mon Mar 13, 2017 7:52 am    Post subject: Reply with quote

Thank you. I have made a note of this.
Back to top
View user's profile Send private message
Robert



Joined: 29 Nov 2006
Posts: 203
Location: Manchester

PostPosted: Sun Mar 19, 2017 1:48 pm    Post subject: Reply with quote

Quote:
6)huge inconvenience of older sdbg is still here: if you hover mouse over variable which is declared as parameter then you can not see its value in bubble help


/full_debug on the compiler command-line includes parameters

Quote:
When reading error occurs you usually painfully catch the bad line where it took place. Reading in Fortran is always painful due to its numerous options. And if the file is huge - this is a pure hell. With go back Shift+F7 feature it would be found in no time. You just put debugger stop on line with label 100 and when error occurs you just push Shift+F7 and debugger gets one step back on that offending READ before it jumped to label 100 ! No other debugger has this !


Is this because you have many read statement that could go to label 100?
Back to top
View user's profile Send private message Visit poster's website
DanRRight



Joined: 10 Mar 2008
Posts: 1393
Location: North Pole, Russia

PostPosted: Sun Mar 19, 2017 4:14 pm    Post subject: Re: Reply with quote

Robert wrote:
/full_debug on the compiler command-line includes parameters

Robert, Great, though i'd strongly feel that parameters should always be visible in debugger

Quote:
When reading error occurs you usually painfully catch the bad line where it took place. Reading in Fortran is always painful due to its numerous options. And if the file is huge - this is a pure hell. With go back Shift+F7 feature it would be found in no time. You just put debugger stop on line with label 100 and when error occurs you just push Shift+F7 and debugger gets one step back on that offending READ before it jumped to label 100 ! No other debugger has this !

Is this because you have many read statement that could go to label 100?


Yes, there is often very painful to make numerous error messages for each of hundreds of complex READ statements of hundreds different large files. You immediately go into panic mode because you know to find error will be a hell. To simplify this i made the line counter like this
Code:

        lineI_I = lineI_I + 1;if(kPSc.eq.1)print*,'Line=',lineI_I
     READ(1,'(13x,i4,16x,e10.3)',err=100) K_M...
        lineI_I = lineI_I + 1;if(kPSc.eq.1)print*,'Line=',lineI_I
     READ(1,'(8x,i4, 21x,e10.3, 14x,a)',err=2430) Key_pro...
24310    lineI_I = lineI_I + 1;if(kPSc.eq.1)print*,'Line=',lineI_I
   READ(1,162,err=100)  IPAKET, KEYTI...
        lineI_I = lineI_I + 1;if(kPSc.eq.1)print*,'Line=',lineI_I
   READ(1,80862,err=100) Activ_par, cALF...
        lineI_I = lineI_I + 1;if(kPSc.eq.1)print*,'Line=',lineI_I
   READ(1,...
        lineI_I = lineI_I + 1;if(kPSc.eq.1)print*,'Line=',lineI_I
   READ(1,...
        lineI_I = lineI_I + 1;if(kPSc.eq.1)print*,'Line=',lineI_I
        ...................
        ...................


and when reading error occurs the file is loaded into special visualization window in %eb-like editor and the offending line is highlighted - all that because it is really THAT hard to find the line where error takes place

But i am sure Back-F7 feature could find other nice usages for debugging. If it is possible to implement it of course. For example it is sometimes painful to load the entire program again and wait and click and jump for the error to occur again. But with Back-F7 feature that would be in no time: you just make one step back to the statement before the error occured. You then see immediately what were conditions which led to the error - THIS WOULD BE TRULY SUPERB FEATURE, no other compilers probably ever had or even thought about this
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 -> ClearWin+ 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