Document Title: changes_in_V1.1.txt

                 Subject: New features and bugfixes in SPEC CPU2000 V1.1

            Last updated: 2-Dec-00 jh (original by cds)
                          (To check for possible updates to this document,
                          please see http://www.spec.org/cpu2000 ) 

------------------------------------------------------------------------




        Contents
        --------

            I. Introduction
           II. Documentation changes
          III. Changes to installation procedure
           IV. Changes required for user config files
            V. Tools changes
               A. New features 
               B. Bug fixes in runspec
           VI. Changes in the benchmarks
          VII. Benchmark source tree cleanup



I. Introduction
---------------

The release of SPEC CPU2000 v1.1 includes various bug fixes and some 
changes that may affect the way that you use the CPU2000 suite.  This 
document is meant to outline those changes.  In the case of new 
features, please refer to the appropriate documentation (config.txt or 
runspec.txt) for more in-depth coverage and usage information.  


II. Documentation changes
-------------------------

The documentation set for CPU2000 has been updated and expanded.  The 
initial install guides have been improved, and some of the more 
confusing details concerning the inner workings of the tools have been 
clarified.  

If you would like to use the SPEC benchmarks without the aid of the 
tools, a new document has been added that may help you:

         $SPEC/docs/execution_without_SPEC_tools.txt (Unix) or
     %SPEC%\docs.nt\execution_without_SPEC_tools.txt (NT)


III. Changes to installation procedure
--------------------------------------

    The UNIX install process was quieted: as files are installed on your
    computer, their names are no longer echoed on the screen.  This can
    speed up an installation if your terminal screen is slow.  But if 
    you prefer to see all the files, the old behavior can be had by 
    setting VERBOSE=1 in your environment before installing.


IV. Changes required for user config files
------------------------------------------

    For the benchmark 252.eon, the math library is no longer supplied 
    by default.  You may need to add
              
        252.eon=default=default=default:
        EXTRA_LIBS=-lm

    to your config file.



V. Tools Changes
----------------

A. New features 

  The following new environment variables have been added:

    SPEC_CPU2000_NO_RUNDIR_NUKE   If this environment variable is set
                                  to a non-empty value, runspec will *never* 
                                  touch a used rundir.   This feature might
                                  be useful when trying to preserve 
                                  evidence about an intermittent failure.
                                  Note: Do *not* use this feature lightly! 
                                  It causes severe benchmark tree bloat!

    SPEC_NEVER_TRY_PDF            If set to a non-empty value, PDF will
                                  not be attempted.  By default, PDF is
                                  available.
 

  The following new config file directives have been added:

    command_add_redirect          If set, the generated command will have
                                  ">", "<", and "2>" redirection operators
                                  added to it, so that the shell will do
                                  I/O re-direction.  For more information, 
                                  and an example of where this feature is 
                                  useful, see config.txt (section on Variable 
                                  Substitution by runspec).

   srcalt                         If set, the tools will look for an 
                                  approved alternate source in the
                                  named subdirectory.  At the moment, the
                                  only benchmark where this is likely to 
                                  be useful is for 186.crafty: an alternate
                                  source is available for main.c, if your
                                  compiler does not ignore the dangling
                                  half-comment on line 1984.



V. Tools changes (continued) 

B. Bug fixes in runspec

  The six problems listed in the 'CLOSED PROBLEM REPORTS' section in
  errata.txt have been fixed.

  The following bugs have also been fixed:

    * The process of comparing results for some benchmarks (like 177.mesa)
      took far too long.  A performance bug in specdiff was identified and
      fixed.  Thank you to Alexander Ostanewich of Sun Microsystems.

    * Per-benchmark basepeak didn't work properly in certain situations:
      it was run properly, but reported as if full-suite basepeak had 
      been enabled.

    * Notes spilled over onto another page had the wrong (non-proportional)
      font.

    * Running in rate mode on NT failed for more than 4 users.  Bug
      identification and fix courtesy of Wilfried Stehling of
      Fujitsu-Siemens.

    * Rawformat died with a very unhelpful message when presented with
      empty raw files.

    * Formatters would occasionally die mysteriously, producing no reports.

    * Formatters would die horribly if they couldn't write into
      $SPEC/result/images

    * There was always an extra blank line in the errors section of the
      HTML output.

    * specdiff treated *all* benchmarks as FP
      (Note: this bug only affected the speed, not the accuracy of the
             results verification.)

    * specinvoke only expanded the first instance of $SPECUSERNUM

    * runspec -V was broken on NT/Win2k.  runspec -v was also broken
      everywhere.

    * PDF reporting didn't work on Alpha/NT.
      (Note: on all versions of NT, a warning about the Symbol font's
             encoding is generated.  It can be safely ignored.)

    * max_active_compares set too high formerly generated miscompares

    * The placement of the result bars was inconsistent from output format
      to output format;  the base result bar is now always on top in all
      formats.



VI. Changes in the benchmarks
-----------------------------

  * 164.gzip: In gzip.c (line 55) and spec.c (line 9), include io.h 
    if compiled with -DNEED_IO_H.  In gzip.c (line 135), if S_IFMT 
    (type of file) is not already defined, then we supply a default.  
    The default value may be incorrect, but as it's never used during the
    course of a benchmark run, this should not matter.

  * 176.gcc: newer versions of gcc no longer need the kludge near line 
    938 of bc-emit.c.  If you are compiling the benchmark 176.gcc using
    a version of gcc older than about 2.6, you may now need to set
       -D__OLDANDBUGGY__GNUC__

  * 178.galgel: In eigQR.f90, Lwork is initialized (at line 24), 
    instead of being left uninitialized.  The lack of initialization was
    harmless for users of lapak version 2, but it is needed if you use v3.
   
  * 181.mcf: When opening files, use "r" and "w" modes rather than
    "rt" or "wt" (an older syntax that indicated text files).  This
    change occurs in output.c (line 40) and readmin.c (line 38).

  * 187.facerec: In fft2d.f90 (near line 70), don't check the
    shape of STemp until after we first ensure that it exists.

  * 191.fma3d: In fma1.f90 (lines 2297 and 2832), and in include_file_.f90
    (line 15), allow for much longer directory strings.  This is useful
    if you install the SPEC CPU2000 distribution in a directory which is 
    already several levels deep, such as:
       /usr/users1776/manas/simulator/version34a-229/myprojects/new/spec
    and then try to add to this a long CPU2000 directory string.

  * 252.eon: ggRasterSurfaceTexture.cc line 57 now uses simply 
    "char" instead of "unsigned char" because the ANSI standard says
    that in.get() can only take arguments of type "char".   In file
    ggIO.cc, there are multiple changes to use type "char" as the
    input to get, for the same reason, and then separately cast it
    to where we need it.   Finally, for 252.eon, the math library
    is no longer supplied by default.  As mentioned above, you may 
    need to add
              
        252.eon=default=default=default:
        EXTRA_LIBS=-lm

    to your config file.

  * 253.perl: In perly.c, extraneous #line directives have been
    removed to aid in debugging.  In pp.c, at line 1623, "value" is
    cast as an unsigned int.  In order to ensure that we don't end
    up trying to cast a negative number here, line 1620 has been
    changed to test for >1.0 instead of exactly equal to 1.0. 
    Finally, initial support for Linux on IA-64 has been incorporated 
    into spec_config.h.  Set 
        -DSPEC_CPU2000_LINUX_IA64
    to use it.



VII. Benchmark source tree cleanup
----------------------------------

During the initial development of CPU2000, the CPU subcomittee was
concerned primarily with portability of the various benchmarks.  As such,
housekeeping (at least as it concerns the source code trees of the various
benchmarks) suffered in some cases.  Primarily this manifested as files
used only for testing being left in the source directories.  In other cases
there was old, duplicate, or otherwise misplaced documentation.

These unintended inclusions did not affect the workings of the benchmarks
or the tools harness.  As such, they're not really a problem for the
majority of the CPU2000 users.  They could prove to be a significant source
of confusion to users wishing to scrutinize the benchmark source ("which
files, exactly?" "What makefile is used?") or the datasets ("is this 'raw'
directory ever used?").  For complete details of this cleaning, please see
the "kit 100" heading in $SPEC/revisions.

-----------------------------------------------------------------------------
Copyright (C) 2000 Standard Performance Evaluation Corporation
All Rights Reserved