Why STLFilt?
STLFilt was initially conceived as a
teaching aid, to allow students taking C++ and/or STL-specific workshops
to make sense of typically overbloated STL error messages. Today,
however, even some C++ experts have adopted STLFilt for use in everyday
development. The results may not always be perfect, but most of
the time the information lost during Decryption is not critical
to the application being debugged. The rest of the time, Decryption
is easy enough to bypass.
The distribution for each platform (compiler/library set) is self-contained
and tuned to the idiosyncrasies of that platform. Each Perl script
performs basic regex substitutions for all the standard (and extended,
if present in the library) STL components, while certain versions
of the script go further with respect to message ordering, line
wrapping, library header error treatment, etc., as I unilaterally
deemed appropriate for that platform.
Depending upon the platform, there are up to three different ways
to integrate STLFilt into your development cycle. The minimal installation
(supported on all platforms) allows Decryption on demand from a
command prompt, or via a simple batch file/shell script driver.
For this approach, all you really need are the Perl script and a
Perl interpreter.
In the MSVC distribution, a special "IDE Tools"-based
technique allows you to create a button in the IDE to filter error
messages on demand.
The third approach: in the full-blown configuration, the versions
for MSVC, gcc and Intel C++ include a "Proxy compiler"
(CL.EXE in the MSVC distribution) to be found by the IDE and invoked
as if it were the native C++ compiler (the actual native compiler
gets renamed as part of STLFilt installation, and the Proxy compiler
knows what that filename is). To filter C++ error messages, the
Proxy compiler sets up an interprocess pipe between the native compiler
executable and a Perl interpreter. The native compiler's diagnostics
are then piped into the standard input of the Perl process (executing
the Decryptor Perl script) to simplify STL-related messages. The
output of the Perl script is then captured by the IDE and displayed
in its output area, while the process status code of the native
compiler process controls the subsequent behavior of the IDE's build
sequence.
The MSVC, gcc and Intel versions also include STLTask, a tray icon
utility that enables/disables Decryption, installs/uninstalls the
Proxy compiler, provides on-demand filtering of clipboard contents
(MSVC IDE only), and prepares your compiler installation for the
application of a compiler Service Pack or upgrade.
One programmer's essential details are another programmer's noise;
much effort has been put into allowing users to "roll their
own" feature set for the Decryption process. After installing
the package, be sure to carefully examine the entire "User-Configurable
Options" section near the top of the Perl script (STLFilt.pl
for MSVC), to see what your options are. Many of those options may
be controlled via the primary configuration file (Proxy-CL.INI in
the MSVC distribution) and command-line options to either the Proxy
compiler, the Perl script itself, or both. Note that some options
can only be changed by tailoring the Perl script's user-configurable
settings directly.
My C/C++ Users Journal article about STLFilt is permanently
available for viewing here.
Why Freeware?
At times I imagine it might be nice to have a few bucks come in
for every copy of STLFilt downloaded, but mostly I'm glad I just
decided to make it free. C++ represents a technology I hold near
and dear to my heart, and it gives me great pleasure to have found
something within my power to do that would make the coolest new
features of the language more accessible to programmers. Moreover,
STLFilt's status as Freeware has helped inspire folks like Thomas
Becker to make invaluable contributions to the project. I'm extremely
grateful to everyone who has "chipped in" with code, bug
reports, ideas, publicity, or anything else.
If/when funds begin flowing back into training departments, it
is my hope that folks in the position of hiring IT trainers consider
BD Software for their on-site educational
needs in C/C++, Java, Perl and Unix.
Home |
Courses |
Tools |
Resources
Clients |
Successes |
Contact |
Site Map |
Links |
About Us
All text and images on this website are Copyright © 2001-2003 BD Software. All rights reserved.
|