AdaBrowse Version History

VersionDateDescription
4.0.3 22-Feb-2005 Three minor bug fixes:
  • Description.Library = Inside works now correctly.
  • Indices honor Index_XRef (again).
  • The Makefile should work now even if the current directory is not in the PATH. (Uses ./get_gcc now.)
4.0.2 19-Nov-2003

New -X option for definition of "environment" variables. (As in GNAT.)

Code clean-up: added license pragmas (GNAT specific) to all units; separated some purely ASIS stuff into a new Asis2 subsystem, which is GMGPL'ed and intended for separate release.

Correction in the Makefile to split $PATH correctly on Unix, where the path separator is ':', not ';'!

4.0.1 22-Aug-2003

Minor improvement in the generated HTML: width specification for indentation table cells is now relative ("2%") instead of absolute (10). Solves a minor display problem on IE 5.0.

4.0 11-Jul-2003

New major feature: AdaBrowse supports now the GNAT project manager, including naming schemes defined in project files! Requires GNAT 3.15p or later. If built from the sources, project file support will only be included if compiled with GNAT 3.15p or later and the compiler sources are available.

Major overhaul of the index generation part of AdaBrowse. Newly, indices can be defined by the user using expressions of boolean predicates to define what goes into an index.

3.4.2 26-Jun-2003

Work-around for yet another bug in ASIS: the transitive closure of "with"es (used when the "-all was given on the command-line) returned by ASIS-for-GNAT 3.16a doesn't contain implicitly "with"ed parents of explicitly "with"ed child units. AdaBrowse now compensates for this bug.

3.4.1 07-Jun-2003

Work-around for yet another bug in ASIS: the text span returned by ASIS-for-GNAT for private type declarations with more than one discriminant ends at the first semicolon, i.e. after the first discriminant. AdaBrowse now compensates for this bug.

Improved handling of casing in unit indices (including the "known children" section of parent units). If the source contained inconsistent casing, this could re-appear in these indices, although AdaBrowse tries hard to make casing consistent everywhere.

By default, AdaBrowse no longer processes the private parts of task and protected declarations. Use the "-private" command-line option to make it process them. (AdaBrowse always processes private compilation units, though. This is on purpose: if you ask it to process such a unit, you most probably have a good reason to do so, and I don't like tools second-guessing the user's intentions.)

General minor code clean-up.

3.4 30-May-2003

Correction in AdaBrowse and work-around for yet another bug in ASIS-for-GNAT so that the "private" keyword in private compilation unit declarations is no longer swallowed. Also added a new PRIVATE boolean attribute to the UNIT and CHILD elements in the generated XML; bumped the DTD version to 1.1. Made corresponding documentation changes.

Version number changed to 3.4 instead of 3.3.1 because of the change in the DTD.

3.3 28-Apr-2003

Minor changes to work around a bug in GNAT 3.16a and another bug in ASIS-for-GNAT 3.16a.

ASIS-for-GNAT 3.16a claims in its version string to be an ASIS for GNAT 5.00 (which is the (forthcoming) gcc 3.x-based GNAT). However, the ASIS library only checks the version of the tree file, it no longer requires the compiler version to match the ASIS library version exactly.

The only reason for incrementing the version number to 3.3 instead of 3.2.1 is the fairly long time (five months) between these two versions.

3.2 26-Nov-2002

Change in the global type index; contains now also subtypes.

New command line option "-private" for making AdaBrowse process the private parts of packages, too.

AdaBrowse 3.2 is the first version for GNAT 3.15p.

3.1 11-Nov-2002

Minor correction in associating comments with "use" or "use type" clauses: the key Description.Clause newly applies only to interior clauses; a new key Description.Context_Clause governs finding descriptions for the context clauses as a whole.

Also corrected the documentation: it had "Description.Clauses" instead of "Description.Clause" (singular).

3.0 30-Aug-2002

Complete refactoring of the output part of AdaBrowse. Previously, tree traversals and output generation were intermingled; now they're cleanly separated, which opens the way to the next major improvement:

AdaBrowse now not only can generate HTML output, but also XML output! There's a DTD for this XML in the distribution. The generated XML can then be further processed by whatever tool you like, and it can be parsed by any XML 1.0 compliant off-the-shelf XML parser. The XML file contains all the structure and information found in the HTML output, including all cross-references. Hence, to generate documentation in e.g. docbook or texinfo format, use AdaBrowse to generate XML, and then generate your favorite format from that. Saves you the trouble of having to write an Ada 95 parser, and saves me the trouble of having to provide a potentially unbounded set of special-purpose formatters for any imaginable output format.

Minor improvements in cross-reference generation for implicitly inherited subprograms and enumeration literals; the cross-reference newly goes to the explicit declaration (if there is one) the item is inherited from. Also improved cross-references to items in generic instantiations, which now can point to the corresponding item from the generic template even in the case of nested generics.

Cross-references in HTML now by default use both the line and the column number, whereas previous versions only used the line number. Warning: this makes HTML files generated by AdaBrowse 3.0 incompatible with files generated by earlier versions! To get the old, line-number-only behavior, use the new command-line option -l.

Bug correction in the handling of the Path and the [No_]XRef and Include/Exclude keys, which contrary to the documentation just ignored later definitions for the same unit prefix. Now they all honor the last definition for any particular prefix.

2.13 09-July-2002 Minor code clean-up; as well as a minor change to the [No_]XRef and Include/Exclude keys, which now do longest prefix matching on the unit names.
2.12 04-July-2002

The generated HTML files now include a default style specification that can be overridden by style rules in an external style sheet specified by a "-s" command-line option or the Style_Sheet key in a configuration file.

New configuration file keys XRef and Include to specify exceptions to the sets of units defined by the No_XRef and Exclude keys.

2.11 03-July-2002

Minor correction in the "Path" keys in configuration files (2.1 had a bug making this work only if the unit name prefix was all lowercase.)

New command line option "-g" and config file key "Refs_To_Standard" to make AdaBrowse generate cross-refences to items from the standard library.

Major speed-up: previous versions opened and closed ASIS contexts each and every time. Newly, this is only done if a recompilation was necessary. (ASIS-for-GNAT seems to have a huge memory leak when a context is closed.)

2.1 01-July-2002

Major re-haul of the formatting of descriptions:

  • Introduction of parameters for user-defined HTML mark-up, i.e. user-defind tags may now have attributes, which can be referenced in the replacement.
  • Addition of user-defineable formatting rules, which in the extreme make it possible to completely replace the default formatting (by running an external command).

Also, generally cleaned up the formatting code and corrected a few problem cases in HTML generation (such as superfluous or even plain wrongly placed <P> tags, or character entities given in hexadecimal format, or a typo which made AdaBrowse emit a MTEA tag instead of a META tag, or a new <!DOCTYPE element, which uses "W3C" instead of "IETF" now and specifies "HTML 4.01 Transitional" instead of "HTML 4.0").

Some re-factoring and speed optimizations (the latter both within AdaBrowse and also for typical loading of the generated HTML pages: previous versions enclosed descriptions in yet another table, V3.0 now uses a DIV element for the same purpose, which usually renders faster than a table).

Restructured a large part of the User's Guide.

2.01 03-May-2002 Code clean-up and minor improvement of environment variable substitution.
2.0 02-May-2002

AdaBrowse now supports user-defined HTML mark-up: you can define your own tags! See the user's guide for more information.

AdaBrowse now does environment variable substitution on some entries in configuration files, and one configuration file may now include another one.

1.61 26-Apr-2002 Another work-around for a bug in ASIS-for-GNAT, which sometimes crashes on generic parameter associations in an instantiation, if named notation is chosen and the formal parameter name is an operator symbol.
1.6 24-Apr-2002

Minor change in the algorithm for finding descriptions such that it properly handles trailing comments, too.

Also, if AdaBrowse is running in file input mode and the -all option was given, previous versions processed units referenced by several units multiple times, causing warnings if -x was given and also causing these multiply processed units to appear multiple times in the indices. This has been corrected now; any unit in a run of AdaBrowse will be processed at most once.

Finally, yet another work-around for yet another bug in ASIS-for-GNAT, which returns bogus information of "String" in "Some_Const : constant String := ...".

1.51 08-Apr-2002

Code clean-up such that gcc -gnatwa -gnaty3abefhiklmprt is silent. (The style checks are the same as plain -gnaty, but without -gnatyc and -gnatys because I don't like these.)

Also, replaced the license on the gal*.* and util*.* units: these no longer use the Ada Community License (the one the Booch components use) but the GNAT modified GPL. See the user's guide for comments.

1.5 03-Apr-2002

New options "-p" and "-t" to generate subprogram and type indices (global, over all units processed).

Also, a minor correction in the generation of structured indices to correctly handle cases where child units without their parents appear in the index.

1.4 26-Mar-2002 AdaBrowse can now handle unit specifications given by krunched file names. See the user's guide for more information.
1.36 25-Mar-2002

Another work-around for a bug in ASIS-for-GNAT 3.14p: ASIS goes into an endless loop (or blocks otherwise) on the source "pragma Inline ("&");" if the operator references more than one function, and some of these functions are predefined operators. The work-around in AdaBrowse is never to try to generate a cross-reference for operators in pragmas.

Also corrected a layout error in the generated HTML for task types without task definition as in "task type X (A : Integer);".

1.35 21-Mar-2002 Bug-fix in finding the primitive operations: AdaBrowse failed sometimes with an exception.
1.34 20-Mar-2002 Another work-around for a bug in ASIS-for-GNAT 3.14p: ASIS fails on record components having a type specified with an attribute, as in "record X : Integer'Base; end record;".
1.33 19-Mar-2002 Bug fix: AdaBrowse crashed on object renaming declarations.
1.32 18-Mar-2002

AdaBrowse newly replaces pairs of "@" without white-space in between by the HTML tags <CODE> and </CODE>, respectively. Hence one can use "@Some_Var@" as a shortcut for "<CODE>Some_Var</CODE>" in an Ada comment. See the user's guide for more information.

AdaBrowse now allows line comments starting with "#" in the input file in file input mode.

Improved the User's Guide, especially section 5.3.

Bug correction: if a comment contains a "&" that already is the start of a named character entity (e.g. "&lt;", or "&#34;"), then do not replace the "&" by "&amp;".

1.31 15-Mar-2002 -i and -is now optionally take a filename argument specifying the filename of the index; "-" makes it write the index to stdout.
1.3 14-Mar-2002 Uses some packages from my Util subsystem now. As a result, configuration file syntax has changed slightly (it allows now trailing comments on a line, and also supports line continuations.) Also extended the -f and -o options for the new "file input mode". Also added -i and -is options for index generation.
1.21 05-Mar-2002 Some improvements in finding primitive operations, as well a work-around for yet another bug in ASIS-for-GNAT 3.14p.
1.2 26-Feb-2002 AdaBrowse now takes apart the source completely. First "fully javadoc-like" version.
1.1 06-Feb-2002 Internal version, never released. Major code clean-up. New options -q and -x, many new keys in configuration files for customizing cross-reference generation and finding descriptions.
1.01 04-Feb-2002 Improved error message, added -a/-all/--all option, tries to create tree files (by calling GNAT) if initially opening the library unit failed. I.e. it is no longer necessary to create the tree files by hand! AdaBrowse can do it for you now.
1.0 02-Feb-2002 Initial public release