PERCEPS Revision History

Revision History:

3.5.0 (6/22/99)
  New maintainer: Tom Bryan
  Version 3.5 is the last release by Mark Peskin.
  This release reflected the current state of the code when Tom Bryan
    took over the PERCEPS project.
  New features: 
  - Nested class docs are only printed when declarations are printed.
  - Nested classes are no longer included in the standard class lists.
  Bug fixes:
  - Nested classes filename issues resolved.
  - Improved robustness of -m option.

3.4.1 (2/16/98)

  Bug Fixes:
  - Fixed bug that caused mangling of comment data when the -b option
    was specified.
  - Fixed locking bug in pre-processor caused by quoted parentheses
    in argument lists.

3.4.0 (2/13/98)

  New Features:
  - Added merging of memeber function documentation (-m switch).
  - Added context-switching {if class\struct\union\nested} blocks,
    allowing in-line documentation of nested classes.
  - Added template-controlled output generation ({genfile} tag).
  - Added template file include statement ({include} tag).
  - Added word-wrap option for comment output.
  - Allows customization of comment marker strings.
  - Added environment-variable-based location of template files
    (-o switch).
  - Added template file line continuation.
  - Added selective class documentation feature (-n switch).
  - Added quiet mode (-q switch).

  Bug Fixes:
  - Revamped code pre-processor is no longer confused by such
    obscurities as escaped quotes (\"), Double commenting (/* /* */),
    quoted comment strings ("/*" or "//"), or unmatched quotes in
  - Special characters are now re-inserted into text BEFORE plugins
    are called.
  - Nested classes now have parentage reported properly.
  - Improved handling of operator functions.
  - Multi-line macro handling.
  - Fixed typedef struct handling.
  - Fixed obscure problem with constructor-initializer lists being
    reported as members.
  - Comments on the same line as a member are now always associated
    with that member regardless of the -b option setting.

3.3.1 (1/22/98)

  Bug Fixes:
  - Fixed obscure parsing problem that could cause misassignment of global
    variable values.
  - Fixed even more obscure crashing bug caused by certain quoted strings.
  - {member} tag no longer concatenates class name onto member name.

3.3.0 (12/30/97)

  New Features:
  - Added recursive {foreach parent all} and {foreach child all} loops.
  - Added { if parent /regex/ } and { if child /regex/ } pattern matching
    conditional expressions.
  Bug Fixes:
  - Fixed problem with use of .perceps_conf files in recursive 
    directory scans.
  - { if inherited } tag now works properly.
  - Fixed crashing bug related to use of the "enum" keyword in comments.

3.2.3 (12/27/97)

  Bug Fixes:
  - Fixed problem that prevented printing of non-class item documentation.
  - Added and enabled switch to use ASCII codes for "&", "<", and ">" 
    instead of "&amp;", "&lt;", and "&gt;" in html documentation for
    better results with buggy versions of Netscape Navigator.
3.2.2 (12/18/97)

  Bug Fixes:
  - Fixed problem handling quoted quotes (i.e. "'" or '"') in source.
  - Fixed problem with {if name /pattern/} tag.
  - Tweaked function pattern matching to better handle operator overloads.

3.2.1 (12/16/97)

  Bug Fixes:
  - Fixed prepping of default tag delimeters (caused tags not to be processed)
  - Fixed bug in custom sorts
  - Fixed bug in handling of custom comments appearing before class

3.2.0 (12/15/97)

  New Features:
  - Looping over/listing of ALL members of a class, including inherited 
    members with "all" option added to {foreach} tag.
  - User-selectible template tag delimeters.  No longer restricted to 
    braces ("{}").
  - { memberef } tag generates unique html-clean member anchors.

  Bug Fixes:
  - Nested loops over global variables are now handled properly.
  - Fixed handling of multiply nested classes & structs (locking error).
  - Templatized nested classes/structs are now handled (locking error).
  - HTML tags are now stripped from comments in non-html output when
    the -h option is enabled.  
  - Default parameters which include a function call are now supported

3.1.1 (11/19/97)

  Bug Fixes:
  - Fixed bug in processing with comments beginning "//*"
  - Fixed bug in handling of comments with single & double quotes or 

3.1.0 (11/17/97)

  New Features:
  - Selective documentation of non-class items.  Only commented non-class
    items will be documented.  -e command line switch overrides.
  - Globals are now prevented with interfering with the PERCEPS internal
  - Plugin filters can now produce PERCEPS template tags by setting the
    $keeptags switch.
  Bug Fixes:
  - Global object declarations with inits are now parsed properly.
  - Fixed handling of "class" keyword in member type declarations.
  - Fixed handling of "untyped" global structs and unions.
  - Improved typedef and enum handling.
  - PERCEPS now parses GCS-Style function syntax.
  - Fixed an obscure template parsing bug that could cause portions of
    output to mysteriously "disappear".

3.0.8 (11/07/97)

  Bug Fixes:
   - Fixed problem with comments/macros containing braces that could cause
     PERCEPS to lock.
   - Eliminated spurious "CLASS" output file generation.
   - Fixed problem with default substitute scope resolution operator used with
     MacPerl and eliminated hard-coding of command line when PERCEPS is 
     run from within MPW/Toolserver.
  New Features:
   - Added 'templates' directory to distribution for 3rd party template
3.0.7 (10/27/97)

  Bug Fixes:
  - Fixed problem with generated html syntax evident when using Netscape
  - Minor modification to allow easier adjustment of scope resolution operator
    to suit various filesystems.

3.0.6 (10/20/97)

  Bug Fixes:
  - Fixed problem handling c-style comments that start with "*" using -c
  - Fixed problem parsing single-element enumerations.

3.0.5 (10/17/97)

  Bug Fixes:
  - Fixed my non-globbing recursive directory search.  Doesn't lock now.
  - Fixed problem with classes containing typedefs, which are now documented.
  - Fixed parsing of multiple nested classes within a single class.
  - Fixed problem which caused some members not to be documented.
  - Fixed problems caused by comments in function and enum argument lists.
  - Fixed parsing of multi-line C-style comments when -c switch is used.
  - Changed directory config file name to .perceps_conf to avoid conflicts
    with build-time file.
  New Features:
  - Exception handling added.
  - Added {keephtml} template switch
  - Improved inheritance list handling, allowing comments between inheritance
    list and opening bracket.
3.0.4 (10/16/97)

  Bug Fixes:
  - Eliminated bug that caused static member initializations to incorrectly
    change the identifier of the associated class, which in turn caused the
    affected classes to be dropped from {foreach class} loops in index lists,

3.0.3 (10/16/97)

  Bug Fixes:
  - Eliminated globbing from directory scanning routine for better
    compatibility with non-UNIX operating systems.
  - Fixed problem with typedef and function parsing routines.

3.0.2 (10/15/97)

  Bug Fixes:
  - Fixed probelm with forward class declarations.
  - Fixed possible NULL class generation & resultant autolinking mess.
  - Fixed duplicate command line switch... Recursive directory search flag
    changed to -f.
  - Fixed {applet} tag parameter parsing.  Changed default applet height and
    width to 100%.
  - Fixed tratment of virtual inheritance.
  - Fixed treatment of comments placed before class members (-b option).

3.0.1 (10/14/97)

  Bug Fixes:
  - Fixed erroneous carry-over of stray comments to next input file.
  - Fixed parsing of nested classes with inheritance and inheritance
    from nested classes.
3.0.0 (10/13/97)

  New Features:
  - Added documentation of non-class items (functions,globals,typedefs,macros).
  - Added nested class support.
  - Added support for unions.
  - Added custom sort option to {foreach} blocks.
  - Added first, last, and mid loop conditionals.
  - Added input custom filtering.
  - Added inline, abstract class, & pure virtual function detection
  - Added support for comments placed before members.
  - Added recursive directory search features.
  - Added global variable multi-file template support.
  Bug Fixes:
  - Fixed treatment of templates in item return types.
  - Many minor bug fixes.

2.1.1 (4/22/97)

  New Features:
  - Added { n } tag to bring features in-line with documetation.
  Bug Fixes:
  - Changed to "more correct" syntax for clearing associative arrays.
  - Fixed and improved selective re-builds, which now occur when default 
    filter files are altered or when output files have been deleted.
2.1.0 (4/18/97)

  New Features:
  - MacPerl Support
  - Global variables will now be passed to appropriate plugin filter file, if it exists.

2.0.1 (4/17/97)

  New Features:
  - Additional example template set added to distribution.
  Bug Fixes:
  - Fixed minor bug that caused improper handling of {if detail} statement 
    in template files.
2.0.0 (4/16/97)

  New Features:
  - Added Custom Comments and Global Variables.
  - Added Plugin Filters, including {filter}...{endfilter} statement in
  - Added global-variable foreach loops and {global} tag.
  - Allowed negation of conditional statements
  - Added {nobreak}...{endnobreak} and {n} tags to allow better linebreak
  - Added {buildtime} and {modtime} tags.
  - Friend functions and classes are now handled.
  - Added {autolink} tag, which allows autolink window targeting.
  Bug Fixes:
  - Fixed bug that caused insertion of an extra semicolon in references
    to class members using the {name} tag.
  - Fixed a bug that casues PERCEPS to lock-up when processing statement
    blocks with null contents (e.g. {if}{endif})

1.4.3 (3/18/97)

  Bug Fixes:
  - Fixed bug in c-style comment handling.
  - Fixed bug that caused perceps not to run properly when given a single
    header file.

1.4.2 (3/17/97)

  New Features:
  - Added a new command line switch (-c), that forces the inclusion of
    c-style comments in documentation.
  - Added a new command line switch (-u), that forces the inclusion of
    ALL comments before a class definion, even if they don't follow a
    "short decription" comment.
  Bug Fixes:
  - replaced the "{endif}" in the {else}...{endif} construct with
    "{endelse}" to avoid bugs in nested statements. Updated example
  - Fixed a bug in the c-style comment stripping.  Actually, this is a work
    around for the fact that Perl doesn't always do minimal expression
    matching as it is supposed to.

1.4.1 (3/14/97)

  New Features:
  - Added a new command line switch (-h), which, when set, causes the 
    comments to be treated as html instead of plaintext.

1.4.0 (3/13/97)

  New Features:
  - PERCEPS now only generates output files if the associated header
    or template files have been modified since the last build. Re-builds
    can be forced with the -r command line option.

1.3.0 (3/11/97)

  New Features:
  - Allows comments describing the class to be placed before the start
    of the class definition for better conformance with typical 
    commenting styles.
  Bug Fixes:
  - Some weaknesses in the parsing routines with the potential to cause
    bugs (though none have as yet been reported) were cleaned up.

1.2.0 (2/5/97)

  New Features:
  - Handles multi-member declarations (i.e. int a,b,c;) properly.
  - Handles multiple definitions of same class more gracefully.
  Bug Fixes:
  - No longer confuses func() and func() const.
  - Fixed bug that cause multiple listings of same class.
  - Handles scope resolution operator (::) in type declarations.
  - Fixed handling of multi-item templates in inheritance lists.
  - Fixed problem with recognition of public blocks at beginning of line.
  - Many tweaks to pattern matching to support more varied syntax.
  - Other minor bug fixes.

1.1.2 (2/5/97)
  - Fixed several bugs inadvertently introduced in version 1.1.0 (sigh).

1.1.1 (2/4/97)
  - Fixed a bug that crashed PERCEPS when using named enumerations.

1.1.0 (2/3/97)

  New Features:
  - Recognizes structs as well as classes.
  - Recognizes enumerations
  - Recognizes const methods
  - {if struct}, {if enum}, and {if const} statements added in templates 
    to support above features (see revised documentation).
  - if-then construct in templates now supports "else" statement 
    (see revised documentation).
  Bug Fixes:
  - Method and member declarations can now be multi-line.
  - Inline method stripper fixed.
  - Numerous other bug fixes (some small, some not so small).
1.0.1 (1/24/97)
  - Revised diagnostic output slightly.  Corrected minor reporting bug.
  - Included template to generate Meta Content Fromat (mcf) files with 

1.0.0 (1/14/97)
  - Inital release.

Tom Bryan
Last modified: Tue Oct 23 09:05:24 EDT 2007