HeaderDoc Release Notes

The HeaderDoc Tools Suite consists of a series of Perl scripts and several small C helper applications that allows conversion of documentation embedded in header files in many languages into HTML and other output formats.

HeaderDoc 8 is the latest incarnation of the HeaderDoc tool and encompasses a series of versions:

HeaderDoc 8.0

HeaderDoc 8 is nearly a rewrite of HeaderDoc from the ground up. It incorporates the functionality of previous versions but also provides a number of new features, such as declaration syntax coloring/highlighting and an easier-to-use comment syntax. These features are described in Major Features.

HeaderDoc 8 adds a number of additional languages with various levels of support. These are described in Languages Supported.

HeaderDoc 8 also adds a number of new (optional) tags for convenience. These are described in New Tags.

HeaderDoc 8.5

HeaderDoc 8.5 adds a C preprocessor for more advanced header parsing. This is described in Using the C Preprocessor.

HeaderDoc 8.6

HeaderDoc 8.6 is a bug fix update to HeaderDoc 8.5, with a few minor features added.

HeaderDoc 8.7

HeaderDoc 8.7 adds support for Doxygen tags (@ form only) and adds support for IDL files. In addition, it includes a test suite (source distribution only) and contains numerous bug fixes.

HeaderDoc 8.8

HeaderDoc 8.8 adds support for AppleScript and Python, along with partial support for Tcl and Ruby. See Troubleshooting for more information about limitations in Tcl and Ruby support.

HeaderDoc 8.8 also enhances the resolveLinks tool to support importing external cross-reference files.

Finally, HeaderDoc 8.8 bundles the regression test suite as part of the installation.

Languages Supported

HeaderDoc 8 supports many more languages than HeaderDoc 7. This table shows the various languages and the level of support.

Table A-1  HeaderDoc 8 Language Support

Language

HeaderDoc 7 support

HeaderDoc 8 support

AppleScript

no

yes (8.8)

C headers

yes

yes

C++

yes

yes

Objective C

yes

yes

C source code

no

yes

IDL

no

yes (8.7)

K&R C sources

no

yes

Java

no

yes *

JavaScript

no

yes *

Pascal

no

yes

PHP

sort-of (hack)

yes

Perl

no

yes **

Python

no

yes (8.8)

Ruby

no

yes (8.8)

Shell Scripts

no

yes **

Mach IPC Interface Definitions

no

yes

Major Features

HeaderDoc 8 has a number of new features.

New Tags

This section attempts to list all of the new tags added in HeaderDoc 8 (some of which were actually available, but undocumented, in HeaderDoc 7).

@classdesign

Text block describing the overall design of a class

@coclass

String describing a class that this class was designed to work with

@dependency

String describing a class upon which this class depends heavily

@exception

String describing an exception thrown by a function/method/class

@functiongroup

Tag for grouping functions and methods; this takes priority over the @group tag with respect to functions and methods.

@group

Tag for grouping data, functions, and so on, thus changing the order in which they appear in the table of contents.

(Note: the @functiongroup tag takes priority over the @group tag for functions.)

@helper

String telling what helper classes this class uses

@helps

For helper classes, string telling what sort of classes this class was designed to help

@instancesize

Text block containing the size of an instance of this class

@methodgroup

See @functiongroup.

@ownership

String describing what class instantiates the current class (for example, I/O Kit nubs)

@performance

Text block to describe performance characteristics of a class (for example, “This class is not appropriate for use in high-performance environments”)

@security

Text block to describe security considerations when using this class

@superclass

Adds superclass info to a C pseudoclass; also can be used to cause members of the superclass to be merged into the subclass

@throws

See @exception.

Additional Notes

This section lists known issues in HeaderDoc 8. We hope to improve in these areas in future versions. If you find issues not listed here, please file bugs.

Late-Breaking Bugs

This section describes late-breaking bugs in HeaderDoc 8.9.

There are no known errata yet for HeaderDoc 8.9.

To keep up to date with the latest errata and bug fixes, join the headerdoc-dev mailing list.