?? cl-log.txt
字號:
than run-time conditional testing.
9/3 (CL.cpp v2.11)
Added logic to strip trailing slashes/backslashes off all pathnames
specified in the config file (and in the defaults set in the source
code); that way, pathname option settings may be written with or without
trailing slashes.
Changed comment delimiters in Proxy-CL.INI from '#' to ';' [as the
user who reported this to me pointed out, I must be using Perl too
much ;-) ]
Corrected the order of sections in the sample Proxy-CL.INI to match
the order shown in the sample entries at the top of the file
9/2 Official Version 2 Release!
(STLFilt.pl version 1.1)
Changed approach to "long identifier" warnings and their detritus. Now
a flag gets set when the "long identifier" warning is detected, and sub-
sequent messages containing "see reference to class template" are only
stripped when the immediately preceding message was a long identifier
warning. My previous blanket disposal of all "see reference to..."
messages was throwing the baby out with the bath water, since some of
those messages refer to things *other* than long identifier warnings.
9/1 (STLFilt.pl version 1.09)
ifstream / ofstream class support added to Perl script
9/1
Switched to new configuration file scheme, where Proxy-CL.INI resides
in the system Windows directory.
Changed the Proxy CL banner message text to say "Message Decryption"
instead of "Err0r Decryption". *I* liked the "Err0r" message, but no
one else seems to. I surrender.
Added "SILENT" configuration option for Proxy CL. If true,
always suppresses the Proxy CL banner message.
Created GLOSSARY.txt, since several documents now refer to the
glossary of terms.
Renamed INSTALL.txt ==> CUSTOMIZE.txt. Basic installation instructions
are now in QUICKSTART.txt, so CUSTOMIZE.txt just talks about rebuilding
CL and STLTask from the source code, and about using STLFilt.BAT
Added runtime debugging capability for the Proxy CL. New options:
DEBUG=true or false: enables/disables debugging log
DEBUG_DIR=directory: directory to write logging information to
(The filenames used for logging are hard-wired as CL-dblog.txt and
atfile.txt)
8/29
Added QUICKSTART.txt, a Quick Start guide to the entire package.
Deleted CL-ALT.CPP, and all mentions of it, from the distribution.
8/28 (STLFilt.pl version 1.08)
Removed all deprecated "depth_policy" logic from CL.cpp and STLFilt.pl
8/27 (CL.cpp version 2.1 pre-release)
Added a runtime configuration file capability to CL.cpp. Now, if the
Proxy CL.EXE detects the file Proxy-CL.INI in the Windows directory,
it reads configuration information from it that overrides the various
pathname settings wired into CL.cpp. A precompiled CL.EXE, along with
a sample Proxy-CL.INI, are now included in the distribution package.
Removed the requirement of adding "extra" quotes to the PERL_EXE and
FILTER_SCRIPT symbols in the user-configurable part of CL.cpp (and the
new configuration file). Now, all filenames consistently should NOT
have extra quotations. I've added the extra quotes automatically when
building the internal command lines used to invoke Perl.
Updated installation instructions to describe the *new* Proxy CL location.
Now, the Proxy CL should be placed into MSVC's bin directory (AFTER
renaming the native CL.EXE to CL2.EXE!).
Added /GX to command line options for compiling CL.cpp (to silence some
warnings)
8/15
Added a glossary, plus some additional material explaining the operation
of, and rationale behind, the Proxy CL program.
8/3 (CL.cpp version 2.03)
Corrected problem with not properly quoting the command name in _spawnvp
calls. Thanks to Matthew Douglass for bringing this to my attention.
Corrected a horrendous dynamic memory bug: when building the new_argv array
and detecting the "/nologo" option, the new_argv pointer was not allocated
dynamically, yet later it was being delete[]'ed. I still don't understand
why this didn't instantly bomb the memory allocator...good luck or bad!???
(STLFilt.pl version 1.07)
The identifier 'iterator' used alone was being inappropriately filtered.
In "/iter=s" mode, const iterators were not correctly filtered.
8/2 (STLFilt.pl version 1.06)
Fixed support for STLport basic strings
8/1 (STLFilt.pl version 1.05)
istringstream and ostringstream now recognized and filtered
(CL.cpp version 2.02)
Added a sleep call to correct a timing problem on multiprocessor systems
(STLTask version 1.41)
Reformatted some messages and buttons; it had looked OK to *me*, but I'd
been running "large" fonts. Made it line up for "small" fonts.
7/19 (STLFilt.pl version 1.04)
Fixed filtering of "struct" keyword so that it doesn't disappear when
diagnosing errors referring to *anonymous* structures (thanks to John
Penney for reporting this bug)
6/23 (CL.cpp 2.01)
Removed literal "cl2.exe" references from messages; substituted STANDARD_CL
6/22 (CL.cpp)
Official release of CL.cpp v2.0
6/21 (CL.cpp version 2 pre-release)
Corrected comments referring to putting quotes around pathname symbolic
constants in the user-configurable section of CL.cpp. Turns out,
FILT_FILE does not need, and indeed *must not have* the extra double-quotes
around it.
Added note about driving STLFilt.BAT via the VC++ "Tools" menu.
(Thanks to John Hattan for pointing out the previous two items)
Added some folks to the acknowledgments section who were inadvertently
omitted (sorry--I really try to acknowledge *everyone* who takes the
trouble to email me with bug reports and suggestions!)
The original declaration of my scratchpad loop variable "i" as a size_t,
while being stylish, also caused a serious problem under Win2K when
combined with a boundary condition bug in the command line processing code
(I was looking at argv[0] as an argument). I turned "i" back into a vanilla
"int", and also fixed the looping condition in question. The bug only
manifested under Win2K because there, argv[0] doesn't necessarily have
its .EXE extension showing...
6/20 (CL.cpp version 2 pre-release):
Major re-write. Took out as much "C String" logic as possible, replacing
it all with C++ strings. No more magic numbers for buffer sizes! CL.EXE is
much bigger now, circa 190K vs. the previous 50K. However, it ought to be
a lot more robust.
Tackled that old MIDL .odl problem again; discovered that passing the
original argv value directly to _spawnvp seems to have been the crux of the
problem. Now I process all argv arguments the same, whether filtering is
enabled or not, adding quotation marks to them. _spawnvp now gets my
modified argv (named new_argv in the code) instead of the original argv.
Beats me why this should be necessary for _spawnvp. MSVC works in myst...
Changed erroneous reference to "STLFILE" in the CL.cpp comments.
This symbol had long since been renamed to FILT_FILE. I should probably re-
view my old comment lines more often.
6/14 (CL.cpp version 1.05):
Back to "Err0r" for the sign-on. I forgot to test the backspace hack in
the IDE, where it displays as a graphics character. Foo!
Launched the stlfilter mailing list (see top of README.txt for subscription
information)
6/13 (CL.cpp version 1.04):
Fixed a bug with CL command-line propagation involving trailing '\'
characters in parameters. This manifested when attempting to compile the
STLport library, for example. Thanks for Andy Philpotts for help on this.
I figured out a way to say "Error" instead of "Err0r" in the CL.EXE sign on
message: I use a backspace sequence in the word, which ends up undetectable
on a CRT.
(STLFilt.pl version 1.03)
Basically canned the entire "depth policy" idea. I had put it in originally
just to deal with STLport's debug iterators. Turns out a procedural string
scan works a lot more efficiently to reduce *all* STLport debug iterators
no matter now complex, and the simple iteration I've always done takes care
of complex STL types. So, I've reduced the default depth policy to 'S'
and deprecated the depth policy feature altogether. It is possible someone
might need the 'M' and 'L' settings for SOMEthing, though, so I left them
in. However, so far I haven't found any need to use them.
Seems there's a VC bug where messages related to that obnoxious 4786
warning are sometimes fragmentary, e.g., "foobar (100) : while
referring to"... so now I delete those lines as well.
6/10 (STLFilt.pl version 1.02)
Implemented several excellent suggestions by Michael Cook:
1. Instead of counting passes to reduce nested typenames and always
performing a fixed number of passes, I now loop indefinitely until a pass
has completed where there were no substitutions made. This is so obvious
an improvement that I deserve a dunce cap for not having thought of it.
2. Added idiomatic '\b' word-boundary delimiters to many r.e.'s,
both in place of the '(\W)' technique I'd been using earlier *and* in
places I'd previously had no word-boundary checking at all (which would
have triggered iterator substitution for non-STL identifiers such as
'foobariterator'... oops!)
Added support for STLport's debug mode in STLFilt.pl. I special cased the
STLport debug-mode iterators: they all now simply map to "dbg_iter". I
just don't have the time to generalize the iterator policy for these
constructs.
Added /depth:x command-line option to CL.cpp and STLFilt.pl. The higher
depth specifications allow detection of more complex nested typenames.
The 'L' option sets the maximum depth, and slows down processing
considerably. However, this level of complexity may be necessary to handle
things like STLport in debug mode. The 'S' option is roughly equivalent to
the old default complexity; The 'M' supports more complexity than the
original default, and is the new default. The default may be customized in
STLFilt.pl by setting the value of the $def_depth_policy variable in the
user-configurable section.
Added documentation in INSTALL.txt and README.txt (Bugs/Limitations)
regarding VC's behavior when searching for a CL.EXE to spawn. Turns out
that just saying the Proxy CL has to be "in the system PATH" is wrong;
see README.txt for the gory details.
5/28 (STLFilt.pl version 1.01)
Added $| = 1; to the Perl script to force output autoflush. Duh.
5/28 (CL.cpp version 1.02)
CUJ article posted on CUJ website as the Web Feature for July, 2001
Enlarged the fixed-length buffers used within hasExt() from 100 to BUFSIZE
(now #defined up top as 500). Long pathnames were overflowing the original
buffer size (thanks to Jan Stette for first reporting this, and also for
the output autoflush fix above.)
Separated out the version number of STLFilt.pl from CL.cpp.
5/25/01 (CL.cpp version 1.01)
Fixed bug: double quotes in CL command line not handled properly (thanks to
Dominic Mathieu for first reporting this.)
5/22/01 (CL.cpp, STLFilt.pl version 1.0)
Official Release. CUJ website distribution version frozen.
5/17/01 (STLFilt.pl version .992)
Removed unnecessary leading underscore checks from STLFilt.pl that
used to be needed when I *thought* the STLport namespace was "STL",
not "_STL" (as it actually is). This was just a dumb benign bug.
Clarified some stuff in README.txt; added the "Bugs / Limitations"
section to README.txt.
Clarified some stuff in INSTALL.txt.
5/16/01 (STLFilt.pl version .991)
Added all those "(\W)"'s in the front of "annoyances" r.e.'s and
modified the substitution text, just in case the names are actually
the tail end of a longer identifier
5/14/01 (STLFilt.pl version .99):
Added support for the STLport 4.x standard containers (finally!)
5/13/01
Fixed Crash problem when CL invoked with no args at all. Whoops!
5/8/01
Revved STLTask to 1.1 (see README in STLTask package for details)
5/4/01
fixed extension-detecting bugs in CL
5/2/01 (version .982):
Modified CL to recognize indirect command line files (@filename).
Looks at the LAST argument of the LAST line ONLY!!! to determine
whether or not to filter.
Created STLTask program to control installation/uninstallation and
filter toggle from the tray. Uses wxWindows (since I still can't
stomach programming with MFC...)
4/30/01 (version .981):
Changed CL to only activate filtering when the source
file extension matches one of the strings in the explicit extension
list filterExt, which should contain only valid C++ source file
extensions (thanks to Wilka for this suggestion)
4/24/01 (version .97):
Made sure CL.cpp put double quotes around command
line parameters when rebuilding the command line for propagation
to CL2.
4/18/01 (version to .96):
Added support for multi-word types (that had somehow been totally
overlooked) such as "unsigned long", "const signed char *", etc.
Added some intelligent handling for wide-character variations of
string (wstring) and streams (wistream and wostream).
4/4/01 (version .95):
Added command-line specification of iterator policy to CC*.cpp and
STLFilt.pl. Command line options of the form:
/iter:x
are now supported, where x may be: small, medium or large (only first
letter is examined, ignoring case, so all abbreviations OK):
small: $iter_policy set to 'S' (always truncated)
medium: $iter_policy set to 'M' ("intelligent" truncation)
long: $iter_policy set to 'L' (never truncate)
If supplied on the CL command line, the option is simply passed
along to STLFilt.pl, where it is recognized.
The initial assignment to $iter_policy in STLFilt.pl specifies the
*default* iteratior policy; any supplied /iter:x option now overrides
that default.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -