Subject: Re: Comments on comprehensive test

From: Zheng Gengbing <[email-masked]>
Date: Sat, 4 May 1996 19:31:23 +0800 (EAT)

On Fri, 3 May 1996, Guansong Zhang wrote:

> > > > !Lxy 7  1190 END DO doc1
> > > > !Lxy 8  1200 END DO
> > > > !Lxy 9  1210 END DO doc2
> > > >
> > > >         This is becuse the label_do doesn't permit "label enddo".
> > >
> > > We can consider this as a limitation for the moment.
> > >
> > > Here I will say a little more about my yesterday's changing method.
> > >
> > > test1.f90:1190 continue  !zgs  1190 END DO doc1
> > > test1.f90:1200 continue  !zgs  1200 END DO
> > > test1.f90:1210 continue !zgs   1210 END DO doc2
> > >
> > > This indicated I use continue to substitute ENDDO, but when I use compiler
> on
> > > IBM to compile this program again, I find a mistake. Do construct with name
> > > (not label) must be ended with ENDDO. So the 1st and 3rd change of the
> above is
> > > not enough, it also neet to delete the name the do. The following is the
> new
> > > changing methods concerned with this:
> > >
> > > % grep zgs test1.f90
> > > ...
> > > test1.f90:doc1 : DO var121 = 1, 3, 2 !zgs  doc1 : DO 1190, var121 = 1, 3, 2
> > > test1.f90:END DO doc1    !zgs  1190 END DO doc1
> > > test1.f90:1200 continue  !zgs  1200 END DO
> > > test1.f90:  doc2 : DO ! zgs 1210
> > > test1.f90:END DO doc2   !zgs   1210 END DO doc2
> > > ...
> > >
> > > PKU may notice this problem, I got the following comments today,

	Ok, I have completely solved the Do construct problems.
That's to say all kinds of do_construct can be passed now.

	What I change is :

	replace block_do_construct like nonblock_do_construct :

block_do_construct
    :  nonlabel_do_stmt {
        }
    ;

add new tag ENDDO_STMT  to replace  CONTROL_END , because sometime unparse
can not know if CONTROL_END is a enddo statement .

Now add end_do_stmt to  executable ,
and rewrite end_do_stmt .

So what unparse do  is to add  ENDDO_STMT now.
Note , ENDDO_STMT may carray a label .

	The do variable is still placed in the symbol ptr of BFND , not 
DDOT . I donot know the reason why to do so .

	So two latest version are available , we can both use them now :
		1.42 & 1.45 ( have hpfcc )

	These two versions include :
		improved  R/W &  dumpdep , the ERR_LABEL & END_LABEL is
considered in this version .
	1.45 has the improved dumpdep of the original version (no HTML),while
 1.42 has a  HTML version  .These two version are all improved by me.

	The f90.y have a little difference between these two version.
In 1.45 , some if_stmt_begin , forall_stmt_begin is added , but more
conflicts exists.

	Some change made by HIT such as STAR_LIST,STAR_OP are not merged in
this version , we may discuss further .

	Please get them and test .
	In my machine , the test result is :

	testhp :
		the result is excellent ,
			hpf2dep , dumpdep , unparse  can pass all files
			sucessfully. WHile hpfcc core dump sevaral files .

	test?.f90:
		hpf2dep no core dump , test8 , testh have warning and errors.
		dumpdep   ok.
		unparse   core dump  test1 , testh
		hpfcc     core dump  test1,  testh

	test90:
		hpf2dep : all parsed .
		dumpdep : ok .
		unparse : core dump  isoweight
			  some warnings.		 	 
		hpfcc:   have 4 files core dump :tour, survey,concord2,detour

These test are based on 1.45 , on HP9000/720.

	Please test on your machine.

***************************************************************************
*     Zheng Gengbin                 *                                     *
*                                   *                                     *
*  Dept. of Computer Science        *  Phone:  86-10-2585088              *
*         & Technology              *  Email:                             *
*                                   *      [email-masked]   *
*  Peking University P.R.China      *  Mail:                              *
*                                   *      Room 1077 ,Building 47,        *
*                                   *      Peking University, P.R.China   *
***************************************************************************