| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
generate the string representation if we know already beforehand that the parsing will fail.
Use TCL_NO_DEPRECATED in stead of KILL_OCTAL for removing the (deprecated un-prefixed) octal support.
Adapt test-cases, so they work without octal support as well.
|
| |
|
|\
| |
| |
| | |
chars to actually follow that constraint. This requires not trusting isalnum(.) and isalpha(.) to deliver portable identical results.
|
| |
| |
| | |
Commit a test that demonstrates that.
|
| | |
|
| |
| |
| |
| | |
New "testbytestring" command which can be used to replace the (to-be-deprecated) "bytestring" command from tcltest and/or the "indentity" encoding.
Adapt many testcases to use the "testbytestring" command.
|
|\ \
| |/ |
|
| | |
|
| |
| |
| |
| | |
combination with tcltest86.dll to do that (Windows only)
|
| | | |
| \ | |
|\ \ \
| | |/
| | |
| | |
| | | |
that have been parsed as missing operator syntax errors before with the
form NUMBER + FUNCTION.
***POTENTIAL INCOMPATIBILITY***
|
| |/ |
|
|/ |
|
|\
| |
| | |
more harm than good. Purged them.
|
| |
| |
| | |
more harm than good. Purged them.
|
| |
| |
| |
| |
| |
| |
| | |
* tests/fileSystem.test: indiciate that these test files
* tests/notify.test: use features of tcltest 2. [Bug 706114]
* tests/parseExpr.test:
* tests/unixNotfy.test:
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
zero strings passed as the "permissions" argument as octal numbers,
even if Tcl itself no longer parses integers in that way.
* unix/tclUnixFCmd.c: Revise the "-permissions" [file attribute] so
that it interprets leading zero strings as octal numbers, even if Tcl
itself no longer parses integers in that way.
* generic/tclCompExpr.c: Corrections to code that produces
* generic/tclUtil.c: extended "bad octal" error messages.
* tests/cmdAH.test: Test revisions so that tests pass whether or
* tests/cmdIL.test: not Tcl parses leading zero strings as octal.
* tests/compExpr-old.test:
* tests/compExpr.test:
* tests/compile.test:
* tests/expr-old.test:
* tests/expr.test:
* tests/incr.test:
* tests/io.test:
* tests/lindex.test:
* tests/link.test:
* tests/mathop.test:
* tests/parseExpr.test:
* tests/set.test:
* tests/string.test:
* tests/stringComp.test:
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclCompExpr.c: Added a "mark" field to the OpNode
struct, which is used to guide tree traversal. This field costs
nothing since alignement requirements used the memory already.
Rewrote ConvertTreeToTokens() to use the new field, which permitted
consolidation of utility routines CopyTokens() and
GenerateTokensForLiteral().
|
| |
| |
| |
| |
| |
| | |
* tests/parseExpr.test: Several tests of syntax error messages
to check that when expression substrings are truncated they leave
visible the context relevant to the reported error.
|
| |
| |
| |
| |
| |
| | |
* tests/parseExpr.test: testing the error messages of the
new expr parser. Several bug fixes and code simplifications that
appeared during that effort.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* tests/compExpr.test: with the new expr parser.
* tests/compile.test:
* tests/expr-old.test:
* tests/expr.test:
* tests/for.test:
* tests/if.test:
* tests/parseExpr.test:
* tests/while.test:
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* tests/compExpr.test: that depend on the exact format of the error
* tests/compile.test: messages of the pre-2006-07-05 expression
* tests/expr-old.test: parser. The constraint is on by default (i.e.
* tests/expr.test: those test still fail), but it can be turned
* tests/for.test: off by passing '-constraints newExprParser'
* tests/if.test: to tcltest, which will skip the 196 failing
* tests/parseExpr.test: tests in the testsuite that are caused by
* tests/while.test: the new expression parser error messages.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
that builds a parse tree instead of operating with deep recursion.
This corrects reports of stack-blowing crashes parsing long
expressions [Bug 906201] and replaces a fundamentally O(N^2)
algorithm with an O(N) one [RFE 903765]. The new parser is better
able to generate error messages that clearly report both the nature
and context of the syntax error [Bugs 1029267, 1381715]. For now,
the code for the old parser is still present and can be activated
with a "#define OLD_EXPR_PARSER 1". This is for the sake of a clean
implementation patch, and for ease of benchmarking. The new parser
is non-recursive, so much lighter in stack consumption, but it
does use more heap, so there may be cases where parsing of long
expressions that succeeded with the old parser will lead to out
of memory panics with the new one. There are still more improvements
possible on that point, though significant progress may require
changes to the Tcl_Token specifications documented for the public
Tcl_Parse*() routines.
***POTENTIAL INCOMPATIBILITY*** for any callers that rely on the
exact (usually terrible) error messages generated by the old parser.
This includes a large number of tests in the test suite.
* generic/tclInt.h: Replaced TclParseWhiteSpace() with
* generic/tclParse.c: TclParseAllWhiteSpace() which is what
* generic/tclParseExpr.c: all the callers really needed.
Breaking whitespace runs at newlines is useful only to the command
parsing function, and it can call the file scoped routine
ParseWhiteSpace() to do that.
* tests/expr-old.test: Removed knownBug constraints that masked
* tests/expr.test: failures due to revised error messages.
* tests/parseExpr.test:
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Consistent method of calling test constraints, and (try to) move constraint
setup to the top of the test file
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* tests/execute.test: due to addition of bignums.
* tests/expr-old.test:
* tests/expr.test:
* tests/parseExpr.test:
* tests/platform.test:
* tests/string.test:
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* tests/error.test: tests into tests with constraints that
* tests/expr-old.test: describe the limits of their
* tests/expr.test: portability. Also more consolidation
* tests/fileName.test: of constraint synonyms.
* tests/format.test: wideis64bit, 64bitInts => wideIs64bit
* tests/get.test: wideIntegerUnparsed => wideIs32bit
* tests/load.test: wideIntExpressions => wideBiggerThanInt
* tests/obj.test:
* tests/parseExpr.test: Dropped "roundOffBug" constraint that
* tests/string.test: protected from buggy sprintf.
|
| | |
|
| | |
|
| |
| |
| |
| | |
necessary.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/resource.test: [Bugs 710370, 710358]
* tests/dict.test:
* tests/dict.test: Updated [package require tcltest] lines to
* tests/fileSystem.test: indiciate that these test files
* tests/lrepeat.test: use features of tcltest 2. [Bug 706114]
* tests/notify.test:
* tests/parseExpr.test:
* tests/unixNotfy.test:
* tests/winDde.test:
|
| |
|
|
|
|
|
| |
string "0x" (recognize leading "0" as an integer). [Bug 648441].
* tests/parseExpr.test (parseExpr-19.1): Test for Bug 648441.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Concat.3: all remaining public interfaces of Tcl.
* doc/CrtCommand.3: Notably, the parser no longer writes on
* doc/CrtSlave.3: the string it is parsing, so it is no
* doc/CrtTrace.3: longer necessary for Tcl_Eval() to be
* doc/Eval.3: given a writable string. Also, the
* doc/ExprLong.3: refactoring of the Tcl_*Var* routines
* doc/LinkVar.3: by Miguel Sofer is included, so that the
* doc/ParseCmd.3: "part1" argument for them no longer needs
* doc/SetVar.3: to be writable either.
* doc/TraceVar.3:
* doc/UpVar.3: Compatibility support has been enhanced so
* generic/tcl.decls that a #define of USE_NON_CONST will remove
* generic/tcl.h all possible source incompatibilities with
* generic/tclBasic.c the 8.3 version of the header file(s).
* generic/tclCmdMZ.c The new #define of USE_COMPAT_CONST now does
* generic/tclCompCmds.c what USE_NON_CONST used to do -- disable
* generic/tclCompExpr.c only those new CONST's that introduce
* generic/tclCompile.c irreconcilable incompatibilities.
* generic/tclCompile.h
* generic/tclDecls.h Several bugs are also fixed by this patch.
* generic/tclEnv.c [Bugs 584051,580433] [Patches 585105,582429]
* generic/tclEvent.c
* generic/tclInt.decls
* generic/tclInt.h
* generic/tclIntDecls.h
* generic/tclInterp.c
* generic/tclLink.c
* generic/tclObj.c
* generic/tclParse.c
* generic/tclParseExpr.c
* generic/tclProc.c
* generic/tclTest.c
* generic/tclUtf.c
* generic/tclUtil.c
* generic/tclVar.c
* mac/tclMacTest.c
* tests/expr-old.test
* tests/parseExpr.test
* unix/tclUnixTest.c
* unix/tclXtTest.c
* win/tclWinTest.c
|
| |
|
| |
|
|
|
|
| |
::tcltest" to "namespace import -force ::tcltest" [Bug: 3948].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/all.tcl: ensured that ::tcltest::testsDirectory would be
set to an absolute path
* tests/expr-old.test:
* tests/parseExpr.test:
* tests/string.test:
* generic/tclGet.c:
* generic/tclInt.h:
* generic/tclObj.c:
* generic/tclParseExpr.c:
* generic/tclUtil.c:
* generic/tclExecute.c: added TclCheckBadOctal routine to enhance
error message checking for when users use invalid octal numbers
(like 08), as well as replumbed the Expr*Funcs with a new
VerifyExprObjType to simplify type handling.
|
| |
|
|
|