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
comments.
- 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 "&", "<", and ">" 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
definitions.
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
parenthesis.
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
namespace.
- 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
sets.
3.0.7 (10/27/97)
Bug Fixes:
- Fixed problem with generated html syntax evident when using Netscape
Communicator.
- 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
option.
- 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,
etc.
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
templates.
- Added global-variable foreach loops and {global} tag.
- Allowed negation of conditional statements
- Added {nobreak}...{endnobreak} and {n} tags to allow better linebreak
control.
- 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
templates.
- 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
distribution.
1.0.0 (1/14/97)
- Inital release.
Tom Bryan
Last modified: Tue Oct 23 09:05:24 EDT 2007