#*****************************************************************************
#*                            ReleaseNotes.txt
#*****************************************************************************

#********************************************************************
#* 0.4-pre-20031121 Release
#********************************************************************
    - Save signal-list and signal-value-list widths to the wave-fmt file.

    - Revive windows port... This has an impact on the unix code as well,
      since IPC had to be changed from the existing unix approach to an 
      approach that would work for both unix and windows...

    - Fix issue with VVP simulator integration. Running for a time interval
      didn't work consistantly: running for 100, 100, 100 might give times
      of 100, 1100, 2100.

    - Save signal list and signal-value list pane sizes to the format file...

    - The 'date' command doesn't exist on Windows, so the 'clock' tcl command
      was substituted...

    - Fix bug with simulation control panels. Action from one panel (or the
      console) now correctly configures all simulation-control panes...

    - Fix a reported bug with handling of non-unity precisions. For example,
      verilog simulation precisions of 1ps, 1ns, 1ms, etc would work fine ; 
      precisions of 100ps, 10ns, etc would give incorrect simulation and
      wave-display behavior

    - Add a console manager. This will (hopefully) facilitate smooth
      support for multiple console windows.

    - Add terminal-console support. This console can be enabled by passing
      "-console" to ivi on startup.
      This console is currently being used for entering commands for 
      automated testing...

    - Drop lines were not drawn on Solaris in the structure windows. Fixed
      this problem...

    - Fixed problem compiling IVI with gcc-3.3.x

    - Add a scalar value-change color. This is similar to the vector
      value-change color added in the last release

#********************************************************************
#* 0.3-pre-20031024 Release
#********************************************************************
    - Signal-list and signal value-list fg and bg were not set during 
      construction. This has been fixed
    - Color and relief for the padding frames beneath the signal-list and 
      signal-value-lists are now the same as the signal-list/signal-value-list 
      panes...
    - Added a simulation-control bar to the wave window. Updated the bar
      on the console window as well...
      - grey out fields when they cannot be used (ie 'run' while simulating)
      - Add drop-down to select amount of time to advance simulation
    - Move the 'scroll' window contents to the wave window toolbar... The
      control is now more accessible.
    - Add vector 'transition' color to wave-window colorscheme. Transitions
      between binary values in vector signals are drawn in this color
    - Maximize time units throughout IVI. Time should be displayed in
      maximized time units in:
      - cursor-delta
      - cursor time
      - wave window timescale
      - simulation-time display
      

#********************************************************************
#* 0.3-pre-20031014 Release
#********************************************************************
    - Fix signal display with MSB<LSB (data[0:31])
    - Change display of vector signals on Z/X to binary transitions. 
      Previously, one of the transitions would be drawn in X/Z color. Now, 
      both transitions are drawn in binary-signal color. 
    - Fix shared-memory alignment problem on Solaris. The start of value
      changes must be word (4-byte) aligned
    - Wave window now updates during simulation
    - Add support for multi-level configuration database.
    - Configuration at various levels can now be saved to a file. Any
      user-supplied preferences are now written back to the ivi.conf file
      in ~/.ivi
    - Added a wave window color-prefs dialog. Color schemes can be created
      and modified. User-supplied settings are saved to the user-prefs
      file. See Edit->Preferences on the WaveWidget menubar
    - Add a 'scroll window'. This special window contains a knob that can
      be used to quickly, but smoothly, scroll through the trace data.
          The speed of scrolling can be adjusted to allow for quick scanning or
      very fine-grain adjustments.
          See WaveWidget->Windows->Scroll Window
    - Fix a bug with simulator exit. Calling '_exit' in the simulator when
      IVI exits prevents the simulator from flushing/closing its open files...
      Calling 'exit' works fine.
    - Implement new 'exec' primitive. The hope is that this can work better
      cross-platform than the existing (hacked) use of TCL's 'exec' proc
    - Fixed two bugs with wave display. Wave display was corrupted when:
        - traces didn't start at time 0
	- wave display was scrolled past the last transition on the trace


#********************************************************************
#* 0.3-pre-20030827 Release
#********************************************************************
    - Moving waveform cursors edge-to-edge now scrolls the wave view if
      the cursor moves off the screen.
    - Wave window traces now support enumerated trace values.
        - Enumerated values are enabled via the per-signal radix popup window
        - Enumerated values are saved to format files
    - Added dialog to configure enumerated values for traces. The dialog
      can be accessed via the WaveWindow Edit menu.
    - Add support for the Cver verilog simulator 
      (http://www.pragmatic-c.com/gpl-cver)
    - Add open-design dialog. Allows design-type to be specified. Design
      type is auto-detected based on the design file extension
    - Fix for MacOSX support of TkTables plugin
    - IVI now allows vvp to be installed outside of IVI_HOME. If 
      $IVI_HOME/bin/vvp exists, then this simulator is used. Otherwise, the
      PATH is used to find vvp.

#********************************************************************
#* 0.3-pre-20030730 Release
#********************************************************************
    Probably the biggest change of this release is that the VVP simulator
is now integrated as a separate executable rather than a library. This 
allows support for the other big feature of this release: simulation 
restart. 
    It's quite likely that some things are now broken that were not previously
broken. Please let me know of these bugs.

    - IVI is now able to integrate standalone simulators (executables). This
    approach is now used for the VVP Verilog simulator. It also may allow the
    integration of a simulator such as SystemC in the future. 
      Consequences of this new support:
      - support for shared-memory files for storing wave data.
      - objects for managing remote processes and message channels between
        IVI and these remote processes

    - IVI supports simulation restart in this release. Either use the command
    "restart_design" or the menu entry on the 'Simulation' menu button.
      Design restart involves:
      - closing the current design
      - cleaning up all clients of that simulation
      - opening the design again
      - re-creating the displayed signals that were present when the simulation
        was restarted


    In addition to the two 'big features, these small changes have been made...
    - Vector traces that are all-X or all-Z now display as a centered
      single-line trace. Previously, these values were displayed as a
      normal vector trace (two lines with a value displayed).
      The idea is that this single-line trace is easier to distiguish

    - Fixed a bug with opening wave-data files. If the wave-data file
      was bad, a DFIO object was left hanging around. This would cause
      subsequent attempts at opening good wave-data files to fail.

    - DFIO values are now represented as 8-bit a/b value pairs. This
      provides better data packing for >1-bit signal values and makes
      computations on the values more efficient

    - The beginnings of 

    Limitations/Regressions
    -----------------------
    - The testbench script commands do not function. These commands are
      the get/put value commands and the put_trace command. These commands
      will be fixed in a future release

    - Viewing signal values in the wave widget by cursor-dragging is 
      currently broken. The feature works partially, but any operation
      that refreshes the wave window (zoom change, add cursor, expand trace)
      causes the value list to go to '--'

    - This release is only supported on Linux. It is known not to work on
      MacOX and Windows, and has not been built or tested on Solaris

#********************************************************************
#* 0.2-pre-20030622 Release
#********************************************************************
    
    - Add BWidgets to the IVI tree

    - Add new toolbar and icons to Wave Window

    - Make cursor modal in wave window. Toolbar buttons sets whether
      the cursor moves wave cursors or zooms in

    - Fix export of ivi_wave icon (windows port)

    - Change SDB open to use 'auto-detect' by default

    - Fix 'iverilog' command on Windows. The command no longer causes
      IVI to cease responding...

    - Fixed a UMR error in the DesignDB. Although this seemed to be 
      harmless on Unix, it was causing seemingly random crashes on Windows.

    - Changed font configuration. This mainly affects Unix systems. I am 
      now using WmDefault to probe the window-manager defaults for Unix 
      window managers. WmDefault is not reliable for Windows, and doesn't 
      support Aqua, so no changes there...

#********************************************************************
#* 0.2-pre-20030615 Release
#********************************************************************
    This release introduces initial support for the Windows platform.
It is recommended that you download the IVI installer to try IVI on Windows.
If you wish to build IVI on Windows, please see the README in the win32 
directory.
    Please see the README.issues file for information on the bugs 
present in the Windows port at this time.

#********************************************************************
#* 0.2-pre-20030527 Release
#********************************************************************
    - Fixed compilation problems for Solaris

#********************************************************************
#* 0.2-pre-20030518 Release
#********************************************************************
    - Add support for OS X mouse bindings. 
      - <Control-Button-1> opens a RMB popup menu (corresponds to Button-3 
        on Unix)
	
      - <Command-Button-1> causes multiple selection on the wave window
        signal-list. Due to a bug in the listbox, this combination does not
	work there.
	
      - Felix has added support for packaging Tcl/Tk frameworks with the
        application on OS X

#********************************************************************
#* 0.2-pre-20030510 Release
#********************************************************************

    - Add "-view" and "-view_<fmt>" command-line options. These options
      allow waveform-data files to be loaded from the command-line

    - Felix has added basic support for OS X drag-and-drop

    - Added simple filename extension-based filetype recognition. This 
      is done of Export and Import when the data type is not explicitly
      specified

    - Added basic error checking to the VCD import filter. Only files 
      with at least one "$end" are considered valid. 

#********************************************************************
#* 0.2-pre-20030427 Release
#********************************************************************
    All in all, this release has a relatively high number of big changes. 
Unfortunately, perhaps, most of these changes are not user-visible.  The build
system has been extensively modified, providing better cross-platform support. 
    The biggest user-visible change is support for Mac OS X. Many thanks go
to Felix Bertram, who has worked long and hard to perfect the OS X port.

    -   The build system has been completely overhauled. Libtool was
      consistently giving problems on non-Linux platforms. Automake,
      by itself, would have been fine. Unfortunately, Automake 
      assumes that libtool is being used for shared libraries.
        The upshot is that use of Libtool and Automake have been
      removed. IVI now just uses Make and Autoconf.
        It is reasonable to expect some instability from this change
      for a few releases.

    - Added support for do-file translators. The IVI command-line now 
      accepts options of the form -<...>_do <file>. IVI attempts to 
      run a TCL command named <...>_do and pass it <file>.

    - Changed menu handling to have better cross-platform support. 
      Windows and OSX now look better...

   - Fixed  a bug with menu-path naming. The existing code would 
     attempt to create menu elements with "..." in the path name.

   - Changed IVI to use static Tcl/Tk linking. This removes the need for an
     application wrapper script to setup library paths.

   - Provide basic support for running iverilog from within IVI. Added options
     to the config database to support library pathing.

   - Support for Aqua under OS X has been added. 

   - Improved configure support for Tcl/Tk has been added. It is now easier
     to use a system Tcl/Tk installation. Previously, a ivi_home-local 
     installation was expected.

   - Felix added an example of configuring library paths for iverilog
     via the IVI configuration files (vendor_lib)

   - Added some utility dialogs - allow setting CWD and opening include files

   - Fixed crash on exit bug. The WaveWidget Tk widget was not performing
     all required steps for exit.

#********************************************************************
#* 0.1-20030309 Release
#********************************************************************
    - DR 685763: Support lockable cursors. When a cursor is locked, it
                 may not be moved. This can be helpful in preventing 
                 accidental movement.

    - DR 686970: Cursor lock-state is saved to the format file

    - DR 680053: Added separate slots for each cursor in the wave window. 

    - DR 678927: Added basic cursor-delta measurements to the wave window. 

    - DR 686967: Unexpanded vector values containing X/Z are colorized

    - DR 686899: Waveform print's basic functionality is present. There
                 are several _big_ limitations - only Landscape is supported
                 and some dimensional limitations are present.
                 - printing may only be Nx1 pages
                 - Only landscape printing is supported
                 - 
    - DR 695778: build script broken for minirisc design

    - DR 695775: Added SafeInit routines to modules. This seems to be
                 necessary on OSX.

#********************************************************************
#* 0.1-20030209 Release
#********************************************************************
    - Removed Tix completely from IVI. Tix was removed due to instabilities 
      and slowness that I was experiencing (unexplainable seg-faults, mainly)

    - Wave-format save-files now save _and_ restore the window-id correctly.
      This means that if the format is saved for "Window1", "Window1" will be
      brought up when the format is restored.

    - Fix DR67194 - missing libvvp causes seg fault

    - Fix DR672273  - Multiple SDBs are supported in wave save-fmt file. If
      signals from more than one SDB are saved in a save-file, all signals
      are SDB-qualified. If signals from only one SDB are saved in a save
      file, then they are not SDB-qualified.

    - Added ability to insert menu items into existing menus. Only works
      at startup time, and is restricted to inserting 'commands'.

    - Add support for tcl8.4.1/tk8.4.1. Mainly fixed compilation errors - 
      8.4.1 uses 'const' more liberally...

    - Signal list on wave window now supports moving blocks of signals. 
      The tree widget now manages this activity, so user-visibility is
      better (a bar is drawn to show where the signals will be dropped)

    - Added rudimentary stack-trace functionality. Now, when IVI crashes,
      it should be possible to get some clue as to why... Note that this
      functionality requires that GDB be installed on the system.

    - Changed name of String.[cc|h] to ivi_String.[cc|h]. Some platforms
      (macosx, for one) don't recognize case in filenames...

    - Added very rudimentary support for graphing sequences. This can be
      accessed by opening the Wave Editor (File->New->Wave Editor). Any
      sequences will be shown. The sequence may be added to the editor's
      wave-window, where it will be graphed.


#********************************************************************
#* 0.1-20030108 Release
#********************************************************************
    - Added get and put commands. 
        - The 'put value' command allows values, and sequences of values, to be
        driven onto signals in the simulation.
        - The 'get value' command allows the current simulation value of signals
        within the simulation to be read.

    - Added 'put trace' command. This allows signal values from a Signal 
    Database (SDB) to be applied, during simulation, to a signal. 

    NOTE :: Please see the online documentation 
        (Ivi Commands->Testbench Scripting Commands) for more details on 
	these commands. 

    - Added the 'create_seq' command. This command allows an identifier to be 
    assigned to a sequence of values. This identifier may later be used in a
    'put value' command to assign the sequence of values to a signal.

    - Fixed several display bugs in the Wave Window.
        - An expanded signal whose expanded height (total number of traces)
	  exceeded the size of the display would not be displayed.

    - Released patched version of Icarus Verilog 0.7

    - Converted more IVI widgets from tixWidget format to TCL namespace format.
      This is part of a longterm move away from using TIX in IVI.

    - Zoom setting is now correctly restored from a wave-format file

    - Changed displayed loaded-design from file-path to top-level module.

    - Quite a bit of internal cleanup and creation of base-classes. This work
    doesn't create any visible new features, but will make addition of new
    features easier.

    - Added logging infrastructure. This is not user-visable yet, but may
    assist in debugging problems in the future.

    - Fixed a couple of bugs reported by Ernst Gill on SuSE 8.1. The csh
    installed on SuSE doesn't behave the same as the csh on Mandrake (my 
    dev environment). Due to this, I converted a csh script to a compiled
    executable.

    - Tix 8.1 has window-manager detection code. This code is present to 
    make Tix apps take on the window-manager look-and-feel. 
      This detection code DOES NOT WORK under KDE. This bug was reported 
    debugged by Ernst Gill. 
      It seems that updating the preferences file 
         ($IVI_HOME/lib/tix8.1/pref/WmDefault.tcl) with the latest version 
	 from the Tix distribution fixes this problem.

    NOTE :: I do not plan to update the ivi_home-tcl package with the latest
    Tix because I am phasing out the use of Tix in IVI. By the next release,
    all use of Tix should be removed. If you require assistance in using
    IVI with KDE, please contact me directly: ballance@ballance.dhs.org

#********************************************************************
#* 0.1-20021101 Release
#********************************************************************
    - Added ability to open multiple wave-viewing windows.

    - Work on signal-data import/export filter API mostly complete. There 
      is a sample import/export filter for the stub DFIO. Look in 
      <root_dir>/src/stub_dfio/StubFilter.[cc|h]

    - Added ability to have multiple signal databases open at any given time.
      A tabbed interface was added to the structure-view window...

    - Removed some Tix widgets from the interface. I am seeing some flaky
      behavior from some combination of Tix widgets (Notebook, Tree, Paned-win).
      Even though I like the look of Tix widgets, it seems best to transition
      away from these widgets due to support issues.

    - Allowed signals to be added to the wave window after time 0. Previously,
      these signals would be mis-displayed.

    - Added rudimentry VCD import functionality. The code was derived from 
      a gtkwave helper application (vcd2lxt).

    - Added an import/export filter for 'stub' format. At this time, the 
      'stub' format is simply a test format. The format may change over time.

    #****************************************************************
    #* Known Issues
    #****************************************************************
    - "add wave" command doesn't handle multiple SDBs. Signals are 
      added from the default (first-registered) SDB

    - Wave-Setup files do not support multiple SDBs.



