next up previous contents
Next: Jim Alves-Foss Up: Beta Correspondence Previous: Initial instructions

Troy Pearse

From tpearse@boi.hp.com Thu Nov 14 20:43:39 PST 1996
Received: from paloalto.access.hp.com (paloalto.access.hp.com [15.254.56.2]) 
by dworshak.cs.uidaho.edu (8.7.5/1.1) with ESMTP id UAA04331; 
Thu, 14 Nov 1996 20:43:35 -0800 (PST)
Received: from hpbs751.boi.hp.com by paloalto.access.hp.com with ESMTP
        (1.37.109.16/15.5+ECS 3.3) id AA178292961; 
Thu, 14 Nov 1996 20:42:45 -0800
Message-Id: <199611150442.AA178292961@paloalto.access.hp.com>
Received: from hpbs3309.boi.hp.com by hpbs751.boi.hp.com with SMTP
        (1.40.112.4/16.2) id AA023212954; Thu, 14 Nov 1996 21:42:34 -0700
Date: Thu, 14 Nov 1996 21:42:34 -0700
From: Troy Pearse <tpearse@boi.hp.com>
To: jone9333@cs.uidaho.edu
Subject: Beta Feedback
Cc: LARRY_ANDREWS@HP-Boise-om2.om.hp.com, gatkins@cs.uidaho.edu,
        oman@gold.cs.uidaho.edu, tpearse@hpdmd48.boi.hp.com
Mime-Version: 1.0
Content-Type: text/plain; charset=X-roman8
Content-Transfer-Encoding: 7bit
Status: RO

CS481 Team B:

I spent about 1 hour tonight intalling and trying your Beta product.
In general, your Beta descriptions were good.  I made some comments
as I installed and tried some things out.  See below ------.

The bad news is I couldn't get any files to work, even the most simple.
I have included 2 "scrubbed" HP files, but before you spend any time
with them, remember that I couldn't even get a basic file to work
(as described at the end of this email).

Please let me know if I have installed incorrectly, and reply to this
ASAP (Friday preferred) as to your course of action.  I will be out of
town most of next week to the Comdex conference, but would be ready to
start some more Beta testing on Friday Nov 22.

Troy Pearse
Hewlett-Packard
Boise, ID
208-396-4557

  Name : Troy Pearse, Hewlett-Packard, Boise 208-396-4557
  Computer : HP-UX hpbs3309 B.10.10 A 9000/777 2008141439 two-user license
      The displayed fields are interpreted as follows:

           HP-UX                    The operating system name (option -s).

           myhost                   The UUCP network system name by which
                                    the system is known (-n).

           A.09.01                  The operating system release identifier
                                    (-r).

           C                        The operating system version identifier
                                    (-v).

           9000/750                 The machine and model numbers (-m).

           2015986034               The machine identification number (-i).

           32-user license          The operating system license level (-l).

    Processor :
    OS version :

  Version of Perl :   
perl -v

This is perl, version 5.000


Copyright 1987-1994, Larry Wall


  Version of GhostScript : n/a

  Comments on the command-line, man page, usage statement, README file:

  Comments on the output format, both textual and graphical:

  Description of any bugs / errors found:

  Additional comments, criticisms, suggestions, or information which will
  help us improve this product:
------------------------------------------------------------------------

Notes on CS481 Team B Beta1

INSTALLATION:
- (readme line 23) In what directory do I type this line?
 - I guess from the ./pmerge.pl path that I must cd to cca/src directory.
- Line 30 of readme reads "./pmerge /usr/local/bin/perl cca" but I don't
  have a ./pmerge, I assume you mean a ./pmerge.pl?
- Install Validation
 - I typed ./pmerge.pl /joemamma/bin ccc
 - No validation that perl path was correct
- I get this Error message whenever I run ./pmerge.pl.  Did the install work?
"Identifier "main::OUTFILE" used only once: possible typo at 
./pmerge.pl line 52."
- Ran ./pmerge.pl and gave it a perl version 4.0.1.8.  No error message
  telling me I used a pre-5.0 version.  You should check the version since 
  you state that it is so important.
- Suggestion for installation command:
  "./pmerge.pl $(whence perl) cca 
- Can I move the cca script to another directory, such as my $HOME/bin ??
  - Guess I'll try and hope it works, and doesn't require other files.

MANPAGE INFO:
- Please add instructions on installing your man page into a man directory,
  and modifying MANPATH.
- Add explaination that this tool does not fully parse the C file, and
  therefore does not take -D or -I options (may confuse some users otherwise)
- Add that this tool will work on a .h file, as well as a .c file.
- Your OPTIONS "opposite of" logic escapes me (ie: -c vs -C)

EXECUTION NOTES:
- First file I tried had a Fatal Error - Unmatched #endif at line 2715
  - I matched the conditional logic by hand, and found no mismatches!
  - I reduced the file to "test1", which also fails.  The command line
    and output are as follows:
cca -o test1.summary -g test1.graph.ps  -f test1
Processing file...
Verifying conditional logic...

Fatal Error - Unmatched #endif at line 43

---test1 top---
#if CCP1 == ON
#if (CCP2 != ON)
#endif /* (CCP2 != ON) */
#if (CCP2 == ON)
#else /* (CCP2 != ON) */
#endif /* (CCP2 != ON) */
#ifdef CCP5CODE
#endif
#if (CCP2 == ON)
#ifndef CCP4EXCLUDED
#ifdef CCP3_SUPPORT
#endif /* CCP3_SUPPORDED */
#endif /* CCP4EXCLUDED */
#endif /* (CCP2 == ON) */
#if (CCP6_ID == ON)
#endif /* (CCP6_ID == ON) */
#ifdef CCP5CODE
#else
#endif
#ifdef CCP5CODE
#else
#endif
#if (CCP6_ID == ON)
#endif /* (CCP6_ID == ON) */
#if (CCP6_ID == ON)
#endif /* (CCP6_ID == ON) */
#ifndef CCP4EXCLUDED
#endif /* CCP4EXCLUDED */
#ifdef CCP5CODE
#if 0
#endif
#endif
#ifdef CCP5CODE
#endif
#ifndef CCP4EXCLUDED
                #ifdef CCP3_SUPPORT
                #endif
#endif /* CCP4EXCLUDED */
        #if defined(CPP0) && (CCP7_LEVEL >= 1)
        #endif
                #if defined(CPP0) && (CCP7_LEVEL >= 1)
                #endif
#endif /* #if  CCP1 == ON*/
---test1 end---

- Second file I ran, also failed.
Processing file...
Verifying conditional logic...

Fatal Error - Unmatched #endif at line 12610

- I reduced that test down to the file test2, which
  also produces the problem.
cca -o test2.summary -g test2.graph.ps  -f test2
Processing file...
Verifying conditional logic...

Fatal Error - Unmatched #endif at line 210

------------test2 top--------
#if defined(CCP1) && defined (CCP2) && !defined(CCP3)
    #undef CCP3
#else
#endif /*.....................*/
#if (CCP4 == CCP5)
#else
#endif /* (CCP4 == CCP5) */
#if (CCP4 == CCP5)
#endif /* (CCP4 == CCP5) */
#ifdef CCP6
#endif
#ifdef CCP7
#endif
#ifdef CCP7
#endif
#ifdef CCP7
#endif
#ifdef CCP7
#endif
#ifdef CCP8
#else
#endif
#ifdef CCP9
#endif
#ifdef CCP7
#endif
#ifdef CCP7
#endif
#ifdef CCP7
#endif
#ifdef CCP7
#endif
#ifdef CCP10
#endif
#ifdef CCP11
#endif 
#ifdef CCP12
#endif 
#ifdef CCP9
#else  /* ......................... */
#endif
#ifdef CCP9
#ifdef CCP8
#else
#endif
#else
#ifdef CCP8
#else
#ifndef CCP13
#endif /* CCP13 */
#endif
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP7
#endif /* CCP7 */
#ifdef CCP12
#endif 
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP14
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP15
#ifdef CCP7
#endif
#endif
#ifdef CCP6
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP8
#else 
#endif 
#ifdef CCP8
#else /*....*/
#endif /*....*/
#ifdef CCP8
#else /*....*/
#endif /*....*/
#ifdef CCP12
#endif
#ifdef CCP8
#else /*....*/
#endif /*....*/
#ifdef CCP12
#endif
#ifdef CCP7
#endif
#ifdef CCP7
#endif
#ifdef CCP16
#endif
#ifdef CCP7
#endif
#ifdef CCP16
#endif
#ifdef CCP12
#endif
#ifdef CCP17
#endif
#ifdef CCP24
#endif
#if CCP23
#endif
#ifdef CCP18
#else
#endif
#if CCP23  /* ..................................................... ) */
#else
#endif
#if CCP23
#endif
#ifdef CCP6
#endif
#ifdef    CCP19 
#else
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP12
#endif
#ifdef CCP15
#ifdef CCP20
#endif
#endif
#ifdef CCP12
#endif
#ifdef CCP15
#endif
#ifdef CCP15
#endif
#ifdef CCP12
#endif
#ifdef CCP15
#endif
#ifdef CCP15
#endif
#ifdef CCP12
#endif
#ifdef CCP15
#endif
#ifdef CCP9
#endif
#ifdef CCP8
#else /*....*/
#endif /*....*/
#ifdef CCP6
#else
#if CCP21 == CCP5
#else
#endif
#endif
#ifdef CCP20
#endif
#ifdef CCP20
#endif
#ifdef CCP22
#endif /* CCP22 */
#ifdef CCP9
#endif
#ifdef CCP8
#else /*....*/
#endif /*....*/
#ifdef CCP22
#endif
#ifdef CCP9
#ifndef CCP13
#endif /* CCP13 */
#endif
#ifdef CCP8
#else /*....*/
#endif /*....*/
#ifdef CCP7
#endif
#ifdef CCP22
#endif /* CCP22 */
#ifndef CCP13
#endif /* CCP13 */
#ifdef CCP7
#ifndef CCP13
#endif /* CCP13 */
#endif
#ifdef CCP15
#ifdef CCP6
#endif
#endif
#ifdef CCP7
#endif
#ifdef CCP12
#endif  
#ifndef CCP13
#endif /* CCP13 */
------------test2 end--------

- OK.. let's find a simpler file.
 - Nope, that one broke too.
- Made a basic test file up, and that broke too.

cca  -f simpletest
Processing file...
Verifying conditional logic...

Fatal Error - Unmatched #endif at line 4

--simple test file---

#ifdef stupid


#endif
----end simple test file--

- Let's try to reinstall, or atleast move the cca file back out of
  my bin.
- Moving the cca file from my bin, and then adding that directory to
  the path didn't work.  
- Running from the cca/src/ directory also didn't work.
- rm  -rf cca/
- reinstall, 
./pmerge.pl /usr/local/bin/perl cca

- rerun on simpletest, with same failure.

END OF BETA TEST.
- Return these notes.
- Ask for "beta bug report" in a seperate form.
- Suggest adding how a user would get the system info they want
  such as perl version, and computer info (ie: perl -v and uname -a)


***************************************************************************

Mr. Pearse,

Jason did extensive testing last night with Perl 5.000 and found that it was
buggy.  The reason that we hadn't done this previously is that we couldn't
locate that version in the Comprehensive Perl Archive Network (CPAN).  When
you reported errors with it,  Jason went and managed to find it on a machine 
that he just got an account on last week.  

The following are the notes he made when he tested CCA with perl 5.000 :

> 
> I've dug into the problems that Troy Pearse reported.  It turns out that
> there is a major bug in Perl 5.000 that affects arrays.  The following
> is a standard construct for appending to an array that we use in a number
> of places.  It is supposed to work in versions 4.x and 5.x of Perl.
> 
> (@array) = (@array, $a, ..., $z);
> 
> Using this in Perl 5.000 causes all the fields already in @array to be set
> to the empty string "".  So if we say:
> 
> (@array) = ("foo"); # @array now is ("foo")
> (@array) = (@array, "bar"); # @array now is ("", "bar")  Incorrect!!!
>                             # should be ("foo", "bar")
> 
> We get the wrong result.
> 
> In addition, $#array$ is supposed to equal the index of the last element in
> @array, but it is also equal to "".
> 
> In summary, arrays in Perl 5.000 are severely broken.  I don't know how
> Perl 5.001 does.  We should consider specifying Perl 5.002 or above as a
> requirement for our program, since we know that these versions work.
> 
> Jason
> 
> Jason Evans: [Student at University of Idaho]
> e-mail: [evans911@cs.uidaho.edu]
> home phone: [(208) 882-6745]
> quote: ["Invention is 1% inspiration, 99% perspiration." - Thomas Edison]
> 

Jason managed to recreate every error which you reported yesterday.  

Once again, we apologize for the mis-reporting of which Perl versions worked
with CCA.

The list we will vouch for now includes

Perl5.001
Perl5.002
Perl5.003

One note on Perl 5.001:
  This Perl version will work correctly, but it seems to have a memory
  limitation.  This is only restrictive for very large, complex input files
  when graphical output is generated at a very small scale factor.  The
  limitation is on string lengths, and for very complex files at very small
  scale factors, there are huge strings of PostScript generated.
  The only file we run out of memory on with this version has 5095 lines of
  code and a V(g) of 325, and 746 total lines of conditional compilation
  logic, and only when we try to fit its entire graph onto a single page
  (which is unreadable, anyhow).

Sean Jones
CS481 B-Team Leader
jone9333@cs.uidaho.edu

***************************************************************************

Dear Sean,

Thank-you for explaining the problems I ran into with Perl 5.000.  I'm
glad to hear that newer versions of Perl work, but I guess that now you
understand some of my concerns about using Perl.  I am dissapointed that
you didn't find out about these problems with version 5.000 of Perl
earlier, since I gave you plenty of warning that I was going to use this
version and you didn't take the time to validate that it would work.

>On Tue, 5 Nov 1996, Paul W. Oman wrote:
>> anyone know what's the diff perl 5.000 and perl 5.002 ?
>>
>> we have 5.002, hp has 5.000
>
>Basically, perl 5.000 has bugs that 5.002 or 5.003 do not have.  The
>functionality is the same.  This probably won't be a problem since the
>bugs in 5.000 are most likely in the more advanced features (such as
>objects), which we don't use.
>
>Jason

As a result of this, I have lost some serious Beta test time because I
will be gone at Comdex most of next week, and when I get back I will
have work stacked up on my desk and won't be able to get right back to
Beta testing.

Please tell me where I can get a copy of Perl 5.002 for use, so that I
can pass it on to my system administrator, and ask him to install
YAP (Yet Another version of Perl).

Also, please verify that the test cases I sent you in my email last
night work correctly (check them by hand), as this is the only testing
I can do until late next week.

Sincerely,

Troy Pearse
Hewlett-Packard
208-396-4557

***************************************************************************

Dear HP beta-testers,

We were mistaken when we said that CCA would work with perl 5.x .

Perl 5.000 has some serious bugs in its array handling.  This caused some
very strange errors when Troy attempted to use CCA under this version of
Perl.

CCA *is* tested on Perl 5.001 and Perl 5.002, both of which will work fine.

Sorry for the mis-information.

Sean Jones
CS481 B-Team Leader
jone9333@cs.uidaho.edu

***************************************************************************

Sean,

I have forwarded on the Perl v5.002 info to my system adminstrator.
I will let you know if he has any problems (sometimes we are limited
on what sites we can download stuff from).

Troy Pearse
Hewlett-Packard
208-396-4557

***************************************************************************

Thanks for verifying this for me.  I would like to see the data,
but will recreate it here when I get back from Comdex. 

Troy

> Mr. Pearse,
> 
> We ran your test cases and hand verified that the results were correct.
> We did this for Perl 5.001, Perl 5.002, and Perl 5.003.
> 
> Let me know if you want copies of the results that we got.
> 
> Sean Jones
> CS481 B-Team Leader
> jone9333@cs.uidaho.edu

***************************************************************************

From tpearse@boi.hp.com Sat Nov 16 21:54:52 PST 1996
Received: from paloalto.access.hp.com (paloalto.access.hp.com [15.254.56.2]) 
by dworshak.cs.uidaho.edu (8.7.5/1.1) with ESMTP id VAA05772; 
Sat, 16 Nov 1996 21:5
4:48 -0800 (PST)
Received: from hpbs751.boi.hp.com by paloalto.access.hp.com with ESMTP
        (1.37.109.16/15.5+ECS 3.3) id AA222120075; 
Sat, 16 Nov 1996 21:54:37 -08
00
Message-Id: <199611170554.AA222120075@paloalto.access.hp.com>
Received: from hpbs3309.boi.hp.com by hpbs751.boi.hp.com with SMTP
        (1.40.112.4/16.2) id AA108220072; Sat, 16 Nov 1996 22:54:32 -0700
Date: Sat, 16 Nov 1996 22:54:32 -0700
From: Troy Pearse <tpearse@boi.hp.com>
To: jone9333@cs.uidaho.edu
Subject: Beta Report
Cc: gatkins@cs.uidaho.edu, oman@gold.cs.uidaho.edu, tpearse@hpdmd48.boi.hp.com
Mime-Version: 1.0
Content-Type: text/plain; charset=X-roman8
Content-Transfer-Encoding: 7bit
Status: RO

Sean, (jone9333@cs.uidaho.edu)

I got access to Perl v5.002, and spent another hour or so testing your
team's tool.  Bottom line, it worked well and never broke.  I haven't
had time to validate much of the output, but what I have checked looks
good.  A couple very small points worth logging are below.  I hope to
spend more time working with it when I get back from Comdex.

Please forward on Beta test reports as the come in.  I am interested
in what others are seeing, thinking, finding, etc.

Thanks,

Troy Pearse
Hewlett-Packard

--------------------------------------------------------------------
CS481
Team-B
Beta Test
Comments

1) Nomenclature 
   Check to see if McCabe's extended cyclomatic complexity is notated
   "V(g')", or "V'(g)", or what.  Ask Paul, he should know.

2) Long Conditionals 
   In the PostScript graph output for a simple file with a long set of
   conditionals on one line, the output prints off the right side of the
   page (I'm not sure how important this one is to fix.)  To recreate
   the problem, try the following file:

/*long conditional line test*/
#if (a==b) ||   (b==b) ||   (c==b) ||   (d==b) ||   (e==b) ||   (f==b) ||
    (g==b) ||   (h==b) ||   (i==b) ||   (j==b) ||   (k==b) ||   (l==b) ||
    (m==b) ||   (n==b) ||   (o==b) ||   (p==b) ||   (q==b) ||   (r==b) ||
    (s==b) ||   (t==b) ||   (u==b) ||   (v==b) ||   (w==b) ||   (x==b) ||
    (y==b) ||   (z==b) 

/* do something here */
#endif
/*out of here, dude*/

3) Files with lots of # or \ characters

   When cca was run on a GNUmakefile , it continueed processing for many
   many minutes, without ever getting past the "Processing file..."
   stage.  

   In running the cca tool, I ended up running on a list of files in a
   directory, including part of a makefile which contained a lot of #
   characters.  The file itself is a text file, with no conditional
   logic, but there are many # characters, because the # character is
   used at the beginning of a line to begin a comment.  There are also
   many continuation "\" symbols in the makefile.  I don't know that 
   these characters were the problem, but it might indicate a processing
   problem.

   Don't go changing something to fix this, unless you find a big problem,
   as processing time and accuracy for C and H files is the most important.
   Getting stuck on a non-C or non-H file isn't important.




-----system info---------------
  Name : Troy Pearse, Hewlett-Packard, Boise 208-396-4557
  Computer : HP-UX hpbs3309 B.10.10 A 9000/777 2008141439 two-user license
      The displayed fields are interpreted as follows:

           HP-UX                    The operating system name (option -s).

           myhost                   The UUCP network system name by which
                                    the system is known (-n).

           A.09.01                  The operating system release identifier
                                    (-r).

           C                        The operating system version identifier
                                    (-v).

           9000/750                 The machine and model numbers (-m).

           2015986034               The machine identification number (-i).

           32-user license          The operating system license level (-l).

    Processor :
    OS version :

  Version of Perl :   
  ->perl -v

This is perl, version 5.002

Copyright 1987-1996, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5.0 source kit.

  Version of GhostScript : n/a

  Comments on the command-line, man page, usage statement, README file:

  Comments on the output format, both textual and graphical:

  Description of any bugs / errors found:

  Additional comments, criticisms, suggestions, or information which will
  help us improve this product:

***************************************************************************

From tpearse@boi.hp.com Fri Nov 22 12:53:46 PST 1996
Received: from palrel1.hp.com (palrel1.hp.com [15.253.72.10]) 
by dworshak.cs.uidaho.edu (8.7.5/1.1) with ESMTP id MAA09910; 
Fri, 22 Nov 1996 12:53:40 -0800 (PST)
Received: from hpbs751.boi.hp.com (hpbs751.boi.hp.com [15.8.25.94]) 
by palrel1.hp.com with ESMTP (8.7.5/8.7.3) id MAA03225; 
Fri, 22 Nov 1996 12:53:29 -0800 (PST)
Message-Id: <199611222053.MAA03225@palrel1.hp.com>
Received: from hpbs3309.boi.hp.com by hpbs751.boi.hp.com with SMTP
        (1.40.112.4/16.2) id AA278086005; Fri, 22 Nov 1996 13:53:25 -0700
Date: Fri, 22 Nov 1996 13:53:25 -0700
From: Troy Pearse <tpearse@boi.hp.com>
To: jone9333@cs.uidaho.edu
Subject: Re:  Beta-tester feedback
Cc: gatkins@cs.uidaho.edu, oman@gold.cs.uidaho.edu, tpearse@hpdmd48.boi.hp.com
Mime-Version: 1.0
Content-Type: text/plain; charset=X-roman8
Content-Transfer-Encoding: 7bit
Status: RO

Sean,

Thanks for forwarding on the Beta reports.  Good info.  Congrats on
your tool's ability to handle difficult code.

Some questions:

1) Where were my comments in this list?

2) Were there any comments from Paul, Gerry or others?

3) Are you going to make any changes based on this feedback?

Thanks for the info,

Troy Pearse

***************************************************************************

From tpearse@boi.hp.com Mon Dec  9 16:56:34 PST 1996
Received: from palrel3.hp.com (palrel3.hp.com [15.253.88.10]) 
by dworshak.cs.uidaho.edu (8.7.5/1.1) with ESMTP id QAA00980; 
Mon, 9 Dec 1996 16:56:25 -0800 (PST)
Received: from hpbs751.boi.hp.com (hpbs751.boi.hp.com [15.8.25.94]) 
by palrel3.hp.com with ESMTP (8.7.5/8.7.3) id QAA19571; 
Mon, 9 Dec 1996 16:56:14 -0800 (PST)
Message-Id: <199612100056.QAA19571@palrel3.hp.com>
Received: from hpbs3309.boi.hp.com by hpbs751.boi.hp.com with SMTP
        (1.40.112.4/16.2) id AA158519370; Mon, 9 Dec 1996 17:56:10 -0700
Date: Mon, 9 Dec 1996 17:56:10 -0700
From: Troy Pearse <tpearse@boi.hp.com>
To: jone9333@cs.uidaho.edu
Subject: Team B late beta
Cc: gatkins@cs.uidaho.edu, oman@gold.cs.uidaho.edu, tpearse@hpdmd48.boi.hp.com
Mime-Version: 1.0
Content-Type: text/plain; charset=X-roman8
Content-Transfer-Encoding: 7bit
Status: RO

Team B:

The following is some late Beta feedback from some additional use.
In general, no big issues.  Maybe a few things to document.


- Allowed me to specify the same filename for both outputfile and ps graph.
  - Output overwritten, and no error message.

Permission Tests
- If the output files already existed without write permission, the program 
  did not fail gracefully.  
  - The same problem when/if the directory did not have write permissions.
    I was able to work around this by specifying a "writable" directory.


Troy