On May 31, 2006, at 11:13 AM, James Lemke wrote:
My current version is attached.  If others find it useful I can
contribute it.  Comments and suggestions are welcome.

Please do. I'd welcome it (and scripts to generate html, to track known issues, to trim log files, to drive things and do on)... I think having a few different styles would be good, then people can try them all out and see which ones they like and why. Anyway, for me, it isn't yet better:

dg-cmp-results.sh: Verbosity is 0, Variant is "unix"

Older log file: 06031600/gcc.sum
sed: illegal option -- r
usage: sed script [-Ean] [-i extension] [file ...]
sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]
Newer log file: 06052905/gcc.sum
sed: illegal option -- r
usage: sed script [-Ean] [-i extension] [file ...]
sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]
sed: illegal option -- r
usage: sed script [-Ean] [-i extension] [file ...]
sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]
sed: illegal option -- r
usage: sed script [-Ean] [-i extension] [file ...]
sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]
sort: unrecognized option `--'
Try `sort --help' for more information.

:-(

When I fixed it up like this:

Doing diffs in 
/Network/Servers/madrid/Volumes/huis/mstump/bin/dg-cmp-results.~1~:
--- /Network/Servers/madrid/Volumes/huis/mstump/bin/dg-cmp-results.~1~  
2006-05-31 15:57:42.000000000 -0700
+++ /Network/Servers/madrid/Volumes/huis/mstump/bin/dg-cmp-results      
2006-05-31 17:24:21.000000000 -0700
@@ -42,6 +42,8 @@ OFILE="$2"
 OBASE=`basename "$2"`
 NFILE="$3"
 NBASE=`basename "$3"`
+#export R=-r
+export R=-E
 
 echo "dg-cmp-results.sh: Verbosity is ${verbose}, Variant is \"${VARIANT}\""
 echo
@@ -62,14 +64,14 @@ unset temp
 
 # Copy out the old file's section 0.
 echo "Older log file: $OFILE"
-sed -r -e '/^\t+===/,$d' $OFILE
+sed $R -e '/^\t+===/,$d' $OFILE
 
 # Copy out the new file's section 0.
 echo "Newer log file: $NFILE"
-sed -r -e '/^\t+===/,$d' $NFILE
+sed $R -e '/^\t+===/,$d' $NFILE
 
 # Create a temporary file from the old file's interesting section.
-sed -r -e "1,/$header/d" \
+sed $R -e "1,/$header/d" \
   -e '/^\t+===/,$d' \
   -e '/^[A-Z]+:/!d' \
   -e 's/\r$//' \
@@ -79,7 +81,7 @@ sed -r -e "1,/$header/d" \
   >/tmp/o$$-$OBASE
 
 # Create a temporary file from the new file's interesting section.
-sed -r -e "1,/$header/d" \
+sed $R -e "1,/$header/d" \
   -e '/^\t+===/,$d' \
   -e '/^[A-Z]+:/!d' \
   -e 's/\r$//' \
@@ -94,9 +96,9 @@ sed -r -e "1,/$header/d" \
 # If so, we assume that the order is the same in both files.
 IFS=:
 firstread=Y
-sort --merge -s -t : -k 3b /tmp/o$$-$OBASE /tmp/n$$-$NBASE |
+sort -m -s -t : -k 3b /tmp/o$$-$OBASE /tmp/n$$-$NBASE |
 while read -r lineon linestatus linename; do
-    linename=`echo "$linename" |sed -r -e 's/^ *(.*) *$/\1/'`
+    linename=`echo "$linename" |sed $R -e 's/^ *(.*) *$/\1/'`
 
     if test $verbose -ge 4; then
        case "$linestatus" in
@@ -231,9 +233,9 @@ while read -r lineon linestatus linename
            else
                ##echo "$lines" |read -r prevon prevstatus prevname
                line=`echo "$lines" |head -n 1`
-               prevon=`echo "$line" |sed -r -e 's/\s*(.):([A-Z]+):(.*)$/\1/'`
-               prevstatus=`echo "$line" |sed -r -e 
's/\s*(.):([A-Z]+):(.*)$/\2/'`
-               prevname=`echo "$line" |sed -r -e 's/\s*(.):([A-Z]+):(.*)$/\3/'`
+               prevon=`echo "$line" |sed $R -e 's/\s*(.):([A-Z]+):(.*)$/\1/'`
+               prevstatus=`echo "$line" |sed $R -e 
's/\s*(.):([A-Z]+):(.*)$/\2/'`
+               prevname=`echo "$line" |sed $R -e 's/\s*(.):([A-Z]+):(.*)$/\3/'`
 
                if test $verbose -ge 4; then
                    echo "  debug: pulled a line from the stack"
--------------

I got:

Script error: trying to process:
O: PASS: objc.dg/bad-receiver-type.m (test for warnings, line 13) N:PASS:objc.dg/bad-receiver-type.m (test for warnings, line 13)

:-(

mrs $ grep 'objc.dg/bad-receiver-type.m' 06031600/objc.sum 06052905/ objc.sum 06031600/objc.sum:PASS: objc.dg/bad-receiver-type.m (test for warnings, line 13) 06031600/objc.sum:PASS: objc.dg/bad-receiver-type.m (test for warnings, line 13) 06031600/objc.sum:PASS: objc.dg/bad-receiver-type.m (test for excess errors) 06052905/objc.sum:PASS: objc.dg/bad-receiver-type.m (test for warnings, line 13) 06052905/objc.sum:PASS: objc.dg/bad-receiver-type.m (test for warnings, line 13) 06052905/objc.sum:PASS: objc.dg/bad-receiver-type.m (test for excess errors)

Mine btw gives:

mrs $ cmp_logs  06031600/objc.sum 06052905/objc.sum
New tests that PASS:

objc.dg/dwarf-2.m (test for excess errors)
objc.dg/dwarf-2.m scan-assembler 0x10[^0-9a-f].*DW_AT_language
objc.dg/member-1.m  (test for errors, line 3)
objc.dg/member-1.m (test for excess errors)

Old tests that passed, that have disappeared: (Eeek!)

objc.dg/stubify-2.m scan-rtl-dump-not symbol_ref.*"objc_msgSend"


I tried all the results and couldn't find any that your script could analyze, except libgomp, but only because libgomp doesn't run on my system, so there are no results in it? Is it just me? I hand edited my results to be the first 30 or so from the Objective C++ testsuite, and then I got it to analyze and not dump out.

When I tried gcc, I had a chance to notice the timings, your version:

real    8m44.413s
user    2m0.714s
sys     7m54.847s

mine:

real    0m1.994s
user    0m1.756s
sys     0m0.556s

:-) Maybe you only run the script on toy results? Or, do you just drink lots of coffee? Now, I know mine is well more than 10-100x slower than it could be, but waiting 2 seconds isn't a hardship for me. Waiting 8 minutes strikes me as just a little slow.

The output of yours doesn't seem to be targeted for human eyes, the verbosity (at the least verbose setting) is about 121x more than mine for two random sets I had lying around, and that is with it cutting the output off really early due to the above problem. I predict that in normal day to day use, it is well better than 120,000x larger. What use do you get out of it?

Mine was designed to do two things, figure out if the results are interesting and not send email, if they are not, and to show engineers the `interesting' detailed results in priority order. It's meant to be run daily, and on good days, it produces no output. On normal days, output is 20-30 lines at most. It tries to balance the complaints with the occasional atta boy, to help with moral.

Reply via email to