Project Analyzer - Version history
==================================


Major differences       v4.1             v3.1
----------------------  ---------------  --------------- 
Supported VB versions   3-5              3-4
Windows versions        Win 95/NT        Win 3.x
New add-in              Project Graph

v4.x also has lots of other new features.



Detailed Version History
========================

v4.1.05 February 1998
        A few little bug fixes

v4.1.04 February 1998
        *** New feature ***
        1. Project Printer has a new option: Comment manual. 
           This feature collects comments and formats them into a
           code manual like report. Comments must use a special syntax,
           as described in the Help file.

        *** Minor enhancements ***
        1. Project Printer can group procedures by their type:
           Sub/Function/Event/Property
        2. Project Graph includes an Expand command in the right-click
           menu.
        
        *** Bug fixes ***
        1. Fixed a bug with nested #If...#End If directives

        *** Terminology change ***
        1. Public Enums and Types in Public classes (with Attribute 
           VB_Exposed set) are not reported as dead, because they may be
           used outside the current project by another project.

v4.1.03 January 1998
        *** Bug fix ***
        1. Fixed "Unexpected error" at start-up
           Compiled with original VB 5.0 DLLs and OCXs 


v4.1.02 January 1998
        Compiled with some DLLs and OCXs that were newer than those that
        with VB 5.0 => Didn't work with the original DLLs 
        ("Unexpected error")

        *** Bug fix ***
        1. Fixed handling of #compiler directives with 'comments

v4.1.01 January 1998
        *** Major new features ***
        1. New add-in, Project Graph.
        2. Support for compiler directives 
           (#Const, #If..#ElseIf..#Else..#End If)
        3. The Hypertext, Procedure Details and File Details windows 
           merged into VB Browser

        *** Minor enhancements ***
        1. Added more sophisticated error messages to the analysis 
        2. Support for line numbers (but not for line labels)
        3. Comments and Attribute statements displayed with a special 
           color in the Hypertext window
        4. Report|File details now lists HelpContextIDs for Controls

        *** Bug fixes ***
        1. Vars/consts in (declarations) are not falsely referenced by
           DLL procedure declarations
        2. Fixed a problem with subscripts and multi-dimensional arrays.
           Example: MyArray(1, 2) = 1234
           This is now correctly detected as an assignment to MyArray, not 
           just a reference.
        3. A ReDim Preserve statement doesn't create a new array
        4. UserControls and UserDocuments don't have a HelpContextID
           property, so the Problem Report doesn't report missing
           HelpContextID's for these module types, but only for Forms
           and PropertyPages.
        5. Calls to Private UserControls detected
        6. Supports Control references. Calls to Control methods and
           properties are not mistaken for other things.
        7. Fixed a problem where hyperlink hotspots appeared in strange 
           places



v4.0.08 December 1997
        *** Bug fixes ***
        1. References to vars/consts defined in the (declarations)
           section handled properly (an LCase function was missing...)
        2. Unformatted display reports are not limited to 32K (fixed
           again)
        3. Clipboard Copy from Formatted display reports is not limited 
           to 32K 
        4. Added error detection to the analysis. Fixed 2 bugs that
           caused the rest of the analysis of a module to be skipped in 
           phase 2/2. This caused lots of dead things with no apparent
           reason in previous versions.
        5. Fixed an error that happened when the Called by window 
           (from the Hypertext window) was empty and Show was pressed.


v4.0.07 November 1997
        *** Bug fixes ***
        1. Unformatted display reports are not limited to 32K
        2. Fixed "dead" procedures that were caused by calls from either 
           a) Implemented members of abstract base classes
           b) Public member procedures of public classes
        3. Public member procedures of public classes are not dead 
           (see project.hlp for Terminology)
        4. "Assigned only" variables in the Vars & Consts window 
           and File Details window reported correctly.
        5. Private Types/Enums are not reported as Needless Globals
        6. Procedure boundaries detected as defined in VB. This means
           that comments between End Sub and the next Sub statement
           belong to the same procedure as in VB's editor. 
        7. VB 5.0: Ignores anything in the [RVB] section of a .vbp file
        8. Procedures ending with a type character ($%&!#@) handled
           correctly
        9. Fixed a bug in the Name shadowing report that caused 
           Error #10 when opening another project for analysis.

v4.0.06 November 1997
        *** Minor enhancements ***
        1. The max number of calls from a procedure to other procedures
           increased to 100. The same holds for calls from a module to 
           other modules.
        2. If the max number of calls from a procedure is exceeded, it
           will not result in "dead" procedures that are not dead in
           reality.

        *** Bug fixes ***
        1. No crash in the Vars & consts window when the list is
           empty. The same fix for the References window.
        2. Modules with only a (declarations) section (and no
           procedures) are not skipped in Phase 2/2

        *** Changes ***
        1. If project.exe is older than 6 months, displays a message
           every other month telling to check if a newer version is
           available.
        2. The unregistered version shows a questionnaire about Project
           Analyzer, which the user can fill in and email to VBShop

v4.0.05 October 1997
        *** Minor enhancements ***
        1. In the unregistered version, strike-out of dead things 
           is now enabled in the Hypertext window, as well as in 
           Project Printer
        2. Added some more room for the project name under the project
           icon in the main window
        3. Object variable references, assignments and deadness are now
           defined differently from that of non-object variables. See
           project.hlp for Terminology for more details. The most
           important change is that an object variable is considered
           live if it contains an object (even if there are no
           calls to the methods and properties of the object).
        4. Creates descriptions for .sud and .sup files in the Registry
           if none exists

        *** Bug fixes ***
        1. Correctly handles multiple Private Declare statements with 
           the same procedure name
        2. Ignores commented Declare statements, as well as comments
           after any Sub|Function|Property statements
        3. The Hypertext window strikes out dead Types/Enums 
        4. Type and Enum references are counted in a 
           Sub|Function|Property statement too
        5. References to procedure Let, Set, and Get are now more exact
           than before. Also references to MyClass(123).MyProperty
           work, no problem with the subscript.
        6. Fixed Problem report: Minimizable forms without icon and
           Forms with ControlBox but without icon.
        7. Fixed a bug with Type blocks containing a member named Type
        8. Double click in the procedure list of the main window now 
           responds to the Double click setting of General options
        7. The Nested conditionals metric is now calculated correctly
        8. Support for the syntax Optional MyParam = DefaultValue
           for procedure parameters
        9. Fixed a bug in the Name shadowing report that caused 
           Property Lets/Gets/Sets being reported as shadowing each
           other
       10. Special characters (other than A-Z a-z, like  etc.) are
           handled OK in RTF to Help reports


v4.0.04 October 1997
        *** Minor enhancements ***
        1. Page up/down in the Hypertext window now moves a whole page
           at a time, not just 10 rows as it did before
        2. Increased the number of last opened files in the File menu 

        *** Bug fixes ***
        1. Removed extra lines (dead vars/consts) at the beginning of
           Project summary report
        2. Added a debug button to find the reason why the rare 
           error #10 occurs
        3. Fixed a crash when the Hypertext window was resized too small
        4. Corrected a refresh bug in the Metrics window
        5. Fixed a problem in the Call Tree window that caused the last
           item of a branch to "forget" its descendants


v4.0.03 September 1997
        *** Minor enhancements ***
        1. List variables / constants window looks better

        *** Minor new features ***
        1. Report on References to vars/consts (from vars/consts window)

        *** Bug fixes ***
        1. Fixed a bug that limited figures in the Design quality report,
           Cyclomatic complexity to 3 digits.
        2. Events driven by objects declared WithEvents are not "dead"
        3. Added more error detection to start of analysis to find the 
           reason for error #10
        4. Looks better also with non-standard color schemes
        5. Fixed a bug with the Summary report: Dead vars/consts count

v4.0.02 September 1997 
        *** Minor enhancements ***
        1. Public methods and properties of ActiveX controls are not
           reported as dead (in OCX projects)
        2. Super Project Analyzer reads .vbg files too

        *** Bug fixes ***
        1. Fixed an Overflow bug in Project Printer 
           (Show metrics checked)
        2. Fixed a hang in analysis phase 2/2
        3. Added error detection to start of analysis to overcome 
           error #10

v4.0.01 September 1997 
        *** Minor enhancements ***
        1. DLL report turned into Library report that includes
           OCX and VBX files too, as well as DLLs checked in the
           References window (VB 4.0 and later)
        2. Design quality report calculates Type/Enum names in
           'Average identifier length'

        *** Bug fixes ***
         1. Fixed bug with Static Subs/Functions that caused extra Static
            variables named Sub/Function to be created
         2. Fixed bug with array declarations
         3. Project Analyzer can now be minimized again
         4. Dead local vars/consts in event procedures are now reported
            (except for event parameters - it wouldn't be wise to list 
            those because they can't be removed by the programmer)
         5. Added error handling to printer reports
         6. Fixed procedure names in Name shadowing report, part 
            Global/module-level vars & consts shadowed by proc-level 
            vars & consts
         7. Gray windows instead of colorful ones option works in the
            Archive window too
         8. Fixed Problem report - Forms without icons
         9. Fixed Project summary report: 'Smallest source file' and 
            'Number of identifiers' (VB 4 & 5 only)
        10. Summary report, VB 3.0 only: Global name table and 
            Global symbol table sizes include Types
        11. Fixed bug with "dead" Types/Enums (Project Analyzer 
            and Super Project Analyzer in particular)
        12. Type/Enum declarations will now contain no comments
        13. A private variable called "Enum" will not show up any more

v3.9.01 August 1997 
BETA    *** Major new feature ***
        1. Support for VB 5.0
           Supports most of the new VB5 file types, like .PAG, .CTL 

        *** Major enhancements ***
        1. FRX view supports GIF, JPEG and some textual data types
           like TextBox.Text, ListBox.List, ListBox.ItemData and 
           UserControl.PropertyPages
        2. You can extract pictures from .FRX to a separate file
        3. User-defined Types analyzed, as well as Enums. 
           They are included on Needless Globals and Problem Report.
        4. New Call tree window
        5. It's faster

        *** Minor enhancements ***
        1. Attribute statements (internal VB properties in source 
           files) are italicized in Hypertext and Project Printer
        2. References (like .tlb files) show up in the project file 
           list (The same files are shown in VB5 by clicking at
            Project|References menu command)
        3. Long lines in reports to Display are wrapped
        4. Support for Help Workshop (HCW.EXE, RTF to HLP reports)

        *** Bug fixes ***
        1. Incorrect references from Property Get to 
           Property Set/Let are discarded
        2. Attribute statements (internal VB properties in source 
           files) are ignored when code is being analyzed
        3. Fixed module names in Procedure details window
        4. Fixed module and procedure names in List procedures

        *** Some minor changes ***
        1. Moved some options from Options menu to 
           Options|General options dialog box
        2. Doesn't use project.ini any more, saves the settings in 
           the system registry
        3. Support for .wri files removed
        4. Doesn't normalize procedure/variable/constant declarations
           (formerly normalized e.g. Dim, Private, Static etc. into 
            "Private" and Global & Public into "Public")
        5. Adds the Analyze verb to .vbp and .mak files. 
           When you right-click a VB project file in the Windows 
           Explorer, select Analyze to run Project Analyzer.

        *** Some VB5 features implemented ***
        1. Accepts all then new types of VB source files and all 
           the new project types like ActiveXControl
        2. FRX view shows the new binary file types like .PGX, 
           .CTX etc.
        3. An ActiveXControl file (.CTL) may refer to a PropertyPage
           file (.PAG) with the PropertyPages property
        4. WithEvents keyword
        5. Enums
        6. Related Documents 

v3.1.08 July 1997
        *** Bug fixes ***
        1. ReDim'd local arrays & array parameters handled correctly
        2. Local variables/constants can now be dead too
        3. Constant references in the (declarations) section 
           are handled correctly
        4. Fixed an error in the Design quality report
        5. Added error handling to option Report to File

v3.1    Old version with add-ins (VB 3.0-4.0)
v3.0    Old version (VB 3.0-4.0)
v2.9    Beta version (VB 3.0-4.0)
v2.x    Old version (VB 3.0 only)
v1.x    Initial version (VB 3.0 only) Feb 1995

