summaryrefslogtreecommitdiffstats
path: root/tests/expr-old.test
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclParseExpr.c: Completely new expression parserdgp2006-07-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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:
* * tests/compExpr-old.test: Updated testmathfunctions constraintdgp2006-04-061-2/+2
| | | | | | | | | | * tests/compExpr.test: to post-TIP-232 world. * tests/expr-old.test: * tests/expr.test: * tests/info.test: * tests/indexObj.test: Corrected other test errors revealed by * tests/upvar.test: testing outside the tcltest application.
* Added knownBug constraints.dgp2006-03-211-3/+3
|
* Use test constraints properly instead of looking in tcl_platformdkf2006-03-211-8/+8
| | | | | Consistent method of calling test constraints, and (try to) move constraint setup to the top of the test file
* * tests/compile.test: Updated tests with changed behaviordgp2005-11-091-54/+54
| | | | | | | | | * 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/unixNotfy.test (1.1,2): Update error message whitespace todgp2005-11-011-2/+2
| | | | | | | match changes in code. * tests/expr-old.test (expr-32.52): Use int(.) to restrict result of left shift to the C long range.
* Marked several failing tests as "knownBug" until they can be updated.dgp2005-10-211-20/+20
|
* TIP#237 IMPLEMENTATIONdgp2005-10-081-1/+99
| | | | | | [kennykb-numerics-branch] Resynchronized with the HEAD; at this checkpoint [-rkennykb-numerics-branch-20051008], the HEAD and kennykb-numerics-branch contain identical code.
* implementation for TIP #255, expr min/maxhobbs2005-09-291-1/+43
|
* * tests/compExpr-old.test: Still more conversion of "nonPortable"dgp2005-07-281-24/+16
| | | | | | | | | | | | | * 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.
* Merged kennykb-numerics-branch back to the head; TIPs 132 and 232Kevin B Kenny2005-05-101-34/+102
|
* * generic/tcl.decls:dgp2005-05-021-1/+8
| | | | | | | * generic/tclBasic.c: Simplified implementation of Tcl_ExprString. * tests/expr-old.test: * generic/tclDecls.h: `make gentstubs`
* Added test for [1109484]dkf2005-01-281-2/+6
|
* niggly test suite fixesdgp2004-11-031-2/+2
|
* Fix pseudo-constraintdkf2004-10-311-2/+2
|
* added support for wide integers to round(); [Bug 908375], reported byMiguel Sofer2004-07-031-1/+16
| | | | Hemang Lavana.
* Standardize some use of test constraints onto names that are documenteddkf2004-06-231-3/+3
|
* Massive test cleanup; all tests are run, and constraints are used where ↵dkf2004-05-191-33/+20
| | | | necessary.
* More elimination of dup test numbers [Bugs 710365, 710369]dkf2003-03-271-7/+7
|
* * doc/CmdCmplt.3: Applied Patch 585105 to fully CONST-ifydgp2002-08-051-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* * generic/tclExecute.c:Miguel Sofer2002-07-261-1/+23
| | | | | * tests/expr-old.test: fix for erroneous error messages in [expr], [Bug 587140] reported by Martin Lemburg.
* fix for [Bug #542588], where "too large integers" were reported asMiguel Sofer2002-04-181-1/+8
| | | | "floating-point value" in [expr] error messages.
* More expr syntax error improvementsdkf2001-12-061-8/+8
|
* Improved messages produced on getting a syntax error in an expressiondkf2001-12-041-33/+21
|
* Fixed typo.dkf2001-04-091-2/+2
|
* 2000-12-14 Don Porter <dgp@users.sourceforge.net>dgp2000-12-141-1/+7
| | | | | | | | | | * generic/tclExecute.c: * tests/expr-old.test: Re-wrote Tcl's [expr rand()] and [expr srand($seed)] implementations, fixing a range error on some 64-bit platforms. Added tests that detect the bug. The rewrite changes the seed -> sequence map on 64-bit platforms, only for seed >= 2^31, a slight incompatibility. [Bug 121072, Patch 102781]
* * doc/expr.n:hobbs2000-05-091-5/+29
| | | | | | | | | | | | * tests/expr.test: * tests/expr-old.test: added tests for 'eq' and 'ne' * generic/tclExecute.c: * generic/tclCompile.h: added INST_STREQ and INST_STRNEQ opcodes that do strict string comparisons. * generic/tclCompExpr.c: added 'eq' and 'ne' string comparison operators. * generic/tclParseExpr.c (GetLexeme): added 'eq' and 'ne' expr parse terms (string (in)equality check).
* * tests/*.test: Changed all occurances of "namespace importericm2000-04-101-2/+2
| | | | ::tcltest" to "namespace import -force ::tcltest" [Bug: 3948].
* * tests/env.test: removed knownBug limitation from working testhobbs1999-12-041-5/+5
| | | | | | | | | | | | | | | | | | * 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.
* Modified the tests to use the package tcltestjenn1999-06-261-2/+3
|
* merged tcl 8.1 branch back into the main trunkstanton1999-04-161-11/+30
|
* cleaned up test suite so most of the tests pass on Windowsstanton1998-11-021-2/+2
|
* Replaced SCCS strings, fixed binary filescore_8_0_3stanton1998-09-141-1/+1
|
* checks for existence of test commandshershey1998-07-281-1/+10
|
* Initial revisionrjohnson1998-03-261-0/+920