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