Release 1.3, patchlevel 0 (4/18/2000)

This release is the first version of CodeSurfer to run on both the Windows/x86 and the Solaris/sparc platforms.  This release introduces some important performance enhancements, some fairly minor new features and some bug fixes.

Performance

  1. Partitioning of non-local variables.  The most significant improvement in this release concerns how non-local variables are modeled at procedure call sites and at procedure entry points.  Until now,  every single non-local variable that was used/modified by a procedure was represented by a global-formal-in/out vertex.  Now however, a global-formal-in/out vertex can represent multiple non-local variables.  This set of variables is known as a partition.  This improvement in efficiency does not lead to any decrease in accuracy.  This table shows the improvements for some standard benchmarks.  Note that the improvement is much more significant for large programs than for small.  Note also that the slicing time is greatly reduced for large programs.

    A few parts of the user interface have modified to reflect this change.  The API function pdg-vertex-parameter-symbol has been replaced with pdg-vertex-parameter-symbols, which returns the list of variables in the partition for that vertex.
  1. Project Viewer display.  The display of long lists of items in the project viewer has been made more efficient.

New Features

  1. License management.  CodeSurfer now uses FLEXlm version 7.0
  2. Preferences.  The user preferences mechanism has been changed to make it more consistent.  All preferences are now persistent, even if NOT changed through the preferences dialog.  A new preferences dialog box has been introduced to allow access to all preferences at once.
  3. Functions menu.  The Functions menu in the file viewer no longer overflows the screen.  It is now truncated after a fixed number of functions and an entry at the end allows the user to bring up a dialog box showing all functions in a scrollable window.
  4. New APIs.  Some new functions have been added to the CodeSurfer Scheme API: pdg-retrieve-vertex,pdg-vertex-id and pdg-call-actuals-in-as-list.
  5. CFGs file format.  An optional field has been added to the .cfgs file format.
  6. Filters.  The user interface to the filters mechanism has changed.

Bugs

  1. Scheme garbage collection.  A bug in the STk garbage collector on x86 platforms was causing STk runtime background errors.  This has been corrected.
  2. Summary edges.  A bug in the computation of summary edges has been corrected.
  3. Hash tables.  Two problems with the implementation of hash tables have been fixed.  First, the implementation of hash functions for the lifted STk types has been improved.  This means that using these types as keys to hash tables is now much more efficient.  Second, a bug in how hash comparision functions were invoked that could lead to items being non-retrievable has been fixed.

Free Trial | Products | Customers | Support | News | Jobs | About Us         © 2007-2008, GrammaTech, Inc. All rights reserved.