?? cl-log.txt
字號:
=========================================
Combined STLFilt.pl / CL.cpp Revision Log
=========================================
====
2004
====
2/3
Added the following information to the "Bugs/Limitations" section of
README.TXT:
When the Proxy CL.EXE is linked with setargv.obj for support of automatic
wild-card expansion, the command:
cl /? (with or without the space)
will fail if the root directory of your current drive contains any
entries having a name exactly one character in length. Unfortunately,
setargv.obj does not seem to recognize the slash as an option delimiter,
and treats the sequence the same as it would "\?".
Workaround: use /help instead of /? whenever you get a bunch of "illegal
option" diagnostics while using cl/? .
1/15 (cl.cpp v3.43a)
Added ".cc" as a recognized C++ source file extension, and ".o" as a
recognized object file extension, to the Proxy compiler.
Thanks to Stefan Naewe for pointing out these omissions.
====
2003
====
12/23 (STLFilt.pl v2.70, CL.CPP v2.43)
Corrected a /meta:D mode parsing bug that caused in internal errors and/
or strange line breaks if the sequence ">> " appeared in a message in
the context of closing delimiters for nested template parameter lists.
The sequence ">> " in a message, when referring to the right-shift
operator, was incorrectly being turned into "> > ".
Corrected another /meta:D bug involving appearances of the sequence "()"
in various contexts.
Corrected a premature closing of the NativeLog.txt file in the event of
an internal parsing error, causing errors on all subsequent attempts to
write to the file.
The Proxy CL now accepts the /lognative option to force creation of the
Perl script debugging log file NativeLog.txt. Formerly, the only way to
specify creation of the log file when using the Proxy CL was to configure
the option LOG_NATIVE_MSGS in Proxy-CL.INI.
12/17 (STLFilt.pl v2.69)
Added logic to correct for when MSVC inserts gratuitous CR-LF characters
into certain diagnostics exceeding 2048 characters in length. This issue
showed up in, but may not necessarily be restricted to, .PLG files
being processed by the VC Tools technique.
A couple of clarifications/corrections to the comments in Proxy-CL.INI:
1. Clarification: In the comment at the end of Proxy-CL.INI's "NATIVE_CL"
configuration line, the NATIVE_CL value must be base filename only
(not a complete "pathname" specification).
2. Correction: In the comment at the end of the DEBUG_DIR line, the debug
log file name is cl-dblog.txt, *not* cl-log.txt (that's *this* file!)
12/12 (STLFilt.pl v2.68)
Enhanced the .PLG-file processing algorithm (used in the "MSVC
Tools" approach to on-demand Decryption within the MSVC IDE). A
big Thank You to Karl Bouchard for analyzing a slew of PLG files
to help define a more general solution than had been implemented
previously. The new algorithm is described in detail near the end
of the updated README-VCTool.txt file.
12/04 (STLFilt.pl v2.67a)
Fixed wrapping error in /break:D mode when the text ">", "<", ">>"
or "<<" appeared in a message.
11/28 (STLFilt.pl v2.67)
Corrected several r.e. clauses that could possibly have lead to "use of
uninitialized value" messages from Perl.
11/19 (STLFilt.pl v2.66)
Patched an obscure condition that drew a
"Use of uninitialized value in multiplication (*)..."
error during -break:D mode wrapping.
Made sure that lines are never wrapped in the middle of pathnames, even
if that means an output line length may exceed the /width setting (figuring
it is more important for editors to be able to automatically locate the
point of the error than it is to unconditionally honor the /width value).
11/11 (STLFilt.pl v2.65)
Corrected possible problem recognizing "const pointers" (as opposed
to pointers-to-const) in certain constructs.
10/20 (STLFilt.pl v2.64, CL.CPP v2.42)
Added /with:x option to Perl script and Proxy CL:
/with:x Set "with" clause substitution policy to x, where x is
L[ong] or S[hort] (the default). In "Long" mode, "with"
clauses are left intact (no substitution). THIS DISABLES
MOST OTHER STL-RELATED DECRYPTION. The /with:L option
was provided by request to facilitate certain MPL-related
work in conjunction with the /meta-related options.
08/08 (STLFilt.pl v2.63a)
Tuned some of the comments at the top of the script.
07/29 (STLFilt.pl v2.63)
Just some minor tweaks of the internal error logging mechanism.
06/12 (STLFilt.pl v2.62)
Cleaned up some unused variables, added $show_internal_err variable
to allow verbose crash diagnostics to be muted.
06/11 (STLFilt.pl v2.61)
Picked up some cases involving string::iterator for the Dinkum libs.
06/09 (STLFilt.pl v2.60)
Added support for the Dinkum Unabridged Library (VC6, VC7, VC7.1)
06/06 (STLFilt.pl v2.52)
Corrected Plain-mode wrapping logic to fix another off-by-1 error that
had been emitting spurious blank lines.
06/05 (CL.CPP v2.41a)
Wildcards (such as *.cpp) now work on the Proxy CL command line (just
needed to be linked with SETARGV.OBJ).
05/31 (STLFilt.pl v2.51)
A few /meta (/break:D) mode bugs fixed:
- '(' character with spaces around it was not being recognized as in-
creasing the nesting level, causing an internal error later on the
line when the matching ')' was encountered
- '>=' and '<=' operators were not excluded from '>' and '<' detection
Dropped the $space_close_brackets option; it now always puts spaces between
consecutive '>' characters (unless they're the >> operator, with any luck.)
This was necessary to keep the /meta wrapping logic from getting out of
control.
/iter:L now forces $newiter to 'iterator', so the word 'iterator' is
never shortened in /iter:L mode.
Added platform configuration sections in STLTask.INI for MSVC 7 and 7.1.
05/14 (STLFilt.pl v2.50, CL.CPP v2.41)
Major update of the Perl script, adding support for special intelligent
line wrapping of long template-based typenames as typical of template
metaprogramming applications. This is the same wrapping logic that has
been in the gcc-specific script (gSTLFilt.pl) for several months, finally
ported to the MSVC version (the /meta option is new to both platforms).
New command-line options:
/break:x Break algorithm: D[ave Abrahams] or P[lain] (the default).
The "Dave" option employs the new wrapping algorithm.
/cbreak:x Comma break: B = break before commas (default), A = after
[applies only in /break:D mode]
/closewrap:x Wrap before unmatched closing delimiters: Y (default) or N
[applies only in /break:D mode]
/meta:x Configure for metaprogramming [Y] or not [N] as follows:
/meta:y (or just /meta) forces /break:D, and forces /cbreak
and /closewrap options according to values specified in the
$meta_y_cbreak and $meta_y_closewrap variable initiali-
zations, respectively.
/meta:n forces /break:P (/cbreak and /closewrap don't apply.)
If no /meta option is present, the default values for
/break, /cbreak and /closewrap are determined by
the INI file (if using a Proxy compiler) or by the settings
of $break_algorithm, $comma_wrap and $close_wrap in the
user-configurable area of the Perl script.
In either case, if the output width hasn't yet been set to
a non-zero value, it is set to 80 (choosing a wrapping
flavor makes no sense with wrapping disabled.) This may be
overridden by a subsequent /width option.
Note also that /meta may not be specified in the INI files,
because it is intended as a command-line "override"
mechanism. The individual settings of /break, /cbreak and
/closewrap, however, may be (and apply only when the /meta
option is not used.)
A new Perl script user-configurable variable, $space_after_commas, forces a
space after any comma appearing in messages. Default value is 0 (don't).
Made some adjustments to start-of-line processing to smooth out MSVC's
somewhat random tabbing behavior. Now the first line of each message (con-
taining the primary error's filename/line number) is not indented, and
subsequent lines (in "Plain" break algorithm mode) are indented exactly
one tab stop. "Dave" mode has its own, more elaborate set of tabbing rules.
The Proxy CL has been updated to recognize all the above options.
04/22 (STLFilt.pl v2.46)
Shortened the primary regex ($t) a tad more.
04/12 (STLFilt.pl v2.45, updated README-VCTool.txt to support VC7)
Turns out it wasn't all that trivial to adapt the new IDE "Tool" approach
to VC7. I had to hack the Perl script a bit more, and new instructions
have been added to the doc file (README-VCTool.txt) explaining how to set
it up within VC7.
04/11
STLTask (.EXE and sources) have been updated with a fix to the wxWindows
library that keeps the tray icon from disappearing as a result of the
taskbar re-initializing itself (such as after a Windows Explorer crash).
Many thanks to Graeme Prentice for solving this long-standing problem.
04/08 (STLFilt.pl v2.44)
Adjusted handling of the phrase 'iterator' to avoid shortening it unless
one of the standard iterator types is involved, and added some comments
to the user-configurable section to show how to disable all iterator
filtering.
Restored the default value of $lognative to 'N', after it was inadvertently
left at 'Y' for the v2.43 release (oops).
04/05 (STLFilt.pl v2.43, new files: README-VCTool.txt and MFiltTool.BAT)
Thanks to Alex Pirseyedi, there is now a nice documented technique for
allowing on-demand Decryption from within the MSVC IDE that does *not*
require installation of the Proxy CL.EXE! The new README-VCTool.txt
file describes the procedure, and MFiltTool.BAT is provided as a driver
script. This technique uses facilities I'm not very familiar with, so if
anybody finds issues please let me know ASAP and I'll do my best to iron
them out. So far, though, this looks like a big win. Thanks, Alex!
03/19 (CL.CPP v2.40)
The Proxy CL now accepts quotation marks around pathnames in Proxy-CL.INI,
and detects faulty quotation.
03/18
Added simultaneous multi-platform support to STLTask via a new config-
uration file, STLTask.INI, to be placed into the same directory as
Proxy-CL.INI. The new version of STLTask is backwards-compatible with the
old Proxy-CL.INI, so the new features don't show up unless you actually
tailor and install STLTask.INI into the Windows directory. For more
details, see the latest version of README-STLTask.txt in the package.
03/10
Had a report of C4786 warnings not being properly filtered, which ended up
being an MSVC issue: The IDE occasionally streams stand-alone filenames
(of the files being compiled) right into the middle of error/warning
messages, creating a garbled mess I've found no reasonable way to filter.
Rather than attempting to compensate for this, which might work 90% of the
time but suppress important status information the rest of the time, I've
decided to punt completely. If anyone knows how to correct or sanely adjust
for MSVC's multithreading defects, please let me know...
02/05 (STLFilt.pl v2.42)
Optimized the primary regex, $t, to avoid "regex too long" blowups under
some older versions of Perl. This should also result in substantially
faster execution under all Perl implementations.
01/30 (STLFilt.pl v2.41)
Fixed obscure bug when "[]" sequence present in a "with" clause
substitution.
01/18 (STLFilt.pl v2.40, CL.CPP v2.30)
Thanks to careful detective work and some new defensive coding above and
beyond the call of duty by Thomas Becker, the package is now compatible
with ActivePerl 5.8.
Two new variables in the user-configurable section of STLFilt.pl:
$hide_generated_warns: optionally suppresses "has generated..."
warnings
$hide_deprecated_warns: optionally suppresses "..was declared
deprecated" warnings
Both default to 1 (suppress the warnings).
====
2002
====
12/24 (STLFilt.pl v2.32)
Fixed some remaining line-wrapping issues, esp. wrt MSVC7/STLport
12/22 (STLFilt.pl v2.31)
Corrected the "off-by-1" error in /width:nn processing, so that
the nn in /width:nn can be the actual width of the display (instead of
one less) and things come out looking right.
Finally got fed up with the screwy indentation of MSVC6 messages and
decided to reformat them into something that does not induce dizziness.
Tweaked the wrapping algorithm some more for MSVC7 so that a) the tabbing
is more aesthetic, b) candidate signatures get a smidgen more indentation,
pathnames always appear at the start of a line and d) semicolons always
force a line break.
12/17
Discovered that ActivePerl 5.8 (the new release) does not work
correctly with the Proxy CL. For now, please use only ActivePerl 5.6.1.
12/03 (STLFilt.pl v2.30)
Tuned the Perl script for MSVC 7.1 beta ("Everett"):
"Multiple candidate" errors get reformatted back to the way they'd
come out if /WL weren't being used (more or less).
Also, the new "stdext" namespace qualification is stripped.
9/07 (STLFilt.pl v2.21)
Re-ordered the user-configurable settings section, so that all options
corresponding to available command-line switches are together at the top,
and other settings appear at the end of the list.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -