
        Changes from SUIF 1.1.1 to SUIF 1.1.2
        -------------------------------------

SUIF 1.1.2 contains only minor changes from version 1.1.1.  The most
important change is support for TCL source files, which is required
for the soon-to-be released SUIF Visual Browser package.  For those
users of SUIF 1.1.0 that do not intended to use the Visual Browser
immediately, there's probably not much reason to go to the trouble of
upgrading.

Here are the details of the changes:

  * TCL sources are now supported, for the sake of the suifvbrowser.

  * On SGI Irix 5.3 systems, a different method is now used to
    generate shared libraries, and this new method fixes the problem
    with using shared libraries with baseparsuif under Irix 5.3.

  * Installed include files are now copied into $SUIFHOME/include
    instead of having symlinks made to the $SUIFHOME/src directory.
    This allows source directories to be anywhere, not just under
    $SUIFHOME/src.

  * The check of the version database of installed packages for
    conflicts and prerequisites now prints error messages directly to
    the screen instead of to a log file.  Several people have been
    confused when the compilation failed without printing anything,
    and didn't look in the log files for error messages, so this
    change should help avoid this problem in the future.

  * A bug in a patch distribution creation script has been fixed.

  * In the I77 package, the ``uint'' conflict with system header files
    on some systems has been fixed.

  * The ``-keep-typedef-info'' flag has been added to snoot.

  * There have been some portability improvements to texec,
    particularly to address problems on the DEC Alpha.

  * The SUIF library now installs call-by-ref modifiers as high up in
    the symbol table heirarchy as possible instead of in local scopes,
    so call-by-ref modifiers to the same type in two different
    procedures will share the same call-by-ref modifier type.

  * The useful library's folding routines can now fold away load/ldc
    pairs where there is an intervening cast adding or removing
    call-by-ref modifiers to the type pointed to.


        Changes from SUIF 1.1.0 to SUIF 1.1.1
        -------------------------------------

SUIF 1.1.1 adds some bug fixes and some modest new functionality, but
all the old functionality should be completely compatible with SUIF
1.1.0.  The binary file format of SUIF files has changed, so any
existing SUIF files must be regenerated and all SUIF passes must be
re-linked against the new SUIF library.

A new package, convertsuif1.1.0to1.1.1, is being made available
separately that will convert from the binary SUIF format for SUIF
1.1.0 to the new format.

Other than that, the most important change is the addition of support
for dynamically linked libraries.  They are now used by default for
mips-sgi-irix5.3 and sparc-sun-solaris2.3 machines.

Highlights of the other changes:

  * The spp utility, the SUIF pretty-printer (which writes SUIF as
    PostScript) has been moved out of the basesuif package and into
    the new suifps package because spp isn't stable enough for
    basesuif.

  * SUIF now compiles under another C++ compiler, the SunSoft
    ProCompiler C++ version 4.0 for Solaris x86.

  * There are scattered bug fixes throughout the code.

  * Five small programs are new: file_stall, bore, leavesfirst,
    recinfo, and squashtypes.

  * A few new functions are now available in libuseful.

  * There are a few new options for porky.

  * The constant folding in libuseful (which can be accessed through
    ``porky -fold'') now does a few more things automatically.

  * There is some preliminary support for a port to Microsoft Visual
    C++ under Windows NT.


        Changes from SUIF 1.0.1 to SUIF 1.1.0
        -------------------------------------

The change from SUIF 1.0.1 to SUIF 1.1.0 was a significant upgrade.
It's too much to try to describe in detail here, but here are the
highlights.

While an effort was made to retain backward-compatibility when
possible, in a few cases the 1.1.0 SUIF library interface is not
compatible with the 1.0.1 version.  This is primarily in the
Fortran-specific code for common blocks since this part was
re-written.

A few methods in the SUIF library that have been retained for backward
compatibility have been marked ``obsolete'' and will be removed in
some future version.

The binary file format of SUIF 1.1.0 is not compatible with that of
earlier versions.

Many new features have been added to existing SUIF passes and
libraries and bugs have been fixed.  New libraries and passes are
being released for the first time.

The SUIF distribution has been broken up into pieces.  The basesuif
package is only part of what used to be the ``SUIF Distribution''.
But basesuif, simplesuif, suifbuilder, baseparsuif, suifcookbook, and
oldsuif together contain updated versions of everything that was in
the old releases.

SUIF has been ported to the IRIX 5.3 C++ compiler and gcc/g++ 2.6.3
and 2.7.0.  It now conforms much more closely to the draft ANSI C++
standard, so it should be easier to port to new systems.


        Changes from SUIF 1.0 to SUIF 1.0.1
        -----------------------------------

This is a bug fix release _only_.  No features have changed and
everything is completely compatible with SUIF 1.0.

Bugs in the following packages have been fixed:

  * F77
  * F77_doall
  * builder
  * fixfortran
  * mgen
  * oynk
  * runtime
  * s2c
  * sf2c
  * snoot
  * suif
  * swighnflew

Also, the standard Makefiles have had some minor fixes and the
documentation in the miscdocs package has been updated to reflect the
bug fixes.
