| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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/main.test: (Tcl_Main-4.5): processing of one interactive
command before passing control to the loop routine registered with
Tcl_SetMainLoop() [Bug 1481986].
|
|
|
|
|
|
|
|
| |
* doc/scan.n:
* generic/tclScan.c: [scan $s %u] is documented to accept only
* tests/scan.test: decimal formatted integers. Fixed code to
match.
|
|
|
|
| |
http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0
|
|
|
|
| |
* tests/trace.test: and enterstep traces. [Bug 1458266]
|
|
|
|
| |
* tests/fileSystem.test: family of path normalization bugs.
|
|
|
|
|
|
|
| |
* tests/indexObj.test: there are extensions that rely on the prior
* doc/GetIndex.3: behavior that the empty string cannot succeed
as a unique prefix matcher, so I'm restoring Donal Fellow's solution.
Added mention of this detail to the documentation. [Bug 1464039]
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
strings to be matched by the Tcl_GetIndexFromObj machinery, in
the same manner as any other key. [Bug 1464039]
|
| |
|
|
|
|
| |
Tcl_GetIndexFromObj. Also added tests.
|
|
|
|
| |
* tests/fileSystem.test: tries to go beyond root.[Bug 1379287]
|
|
|
|
| |
rest of the Tcl test suite.
|
|
|
|
| |
overflow to use mp_int calculations.
|
|
|
|
|
| |
calculations in native types as much as possible, moving to mp_ints
only when necessary.
|
|
|
|
| |
be sure to do case-insensitive filtering. [Bug 1457065]
|
|
|
|
|
| |
are reported as failed tests rather than bugs in the test suite if
the recursion causes a segfault.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Consistent method of calling test constraints, and (try to) move constraint
setup to the top of the test file
|
|
|
|
|
|
|
|
|
| |
* macosx/tclMacOSXFCmd.c: codes and 'hidden' flag, as documented in
* tests/macOSXFCmd.test: glob.n; objectified OSType handling in [glob]
* unix/tclUnixFile.c: and [file attributes]; fix globbing for hidden
files with pattern==NULL arg. [Bug 823329]
* generic/tclIntPlatDecls.h:
* generic/tclStubInit.c: make genstubs
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also make the format of the ChangeLog a bit more internally consistent, making
it easier to search it for bug numbers, etc.
|
| |
|
| |
|
|
|
|
| |
self-contained with regard to setup and cleanup. [Bug 681793].
|
|
|
|
|
|
|
|
|
| |
the list of POSIX modes used when opening a file for
'a'ppend. This enables the proper automatic seek-to-end-on-write
by the OS. See [Bug 680143] for longer discussion.
* tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check
the new handling of 'a'.
|
|
|
|
|
|
|
|
|
|
| |
to 40 seconds to allow for really slow machines. Also extended
actual/expected results with value of variable 'done' to make it
clearer when a test fails due to a timeout. [Bug 792159].
* generic/tclPipe.c (TclCreatePipeline): Modified the processing
of pipebars to fail if the last bar is followed only by
redirections. [Bug 768659].
|
| |
|
| |
|
|
|
|
|
| |
* tests/apply.test (apply-5.1): fix [apply] error messages
so that they quote the lambda expression [Bug 1447355].
|
|
|
|
| |
* tests/incr.test:
|
|
|
|
|
| |
* tests/parse.test: simplify TclEvalObjvInternal and to correct
the auto-loading of alias targets (parse-8.12). [Bug 1444291].
|
|
|
|
|
| |
* tests/fileSystem.test: paths with /../ that lead back
to the root of the filesystem, like /foo/.. [Bug 1379287].
|
|
|
|
|
|
|
| |
* tests/namespace.test: evaluations act the same as [uplevel #0]
* tests/parse.test: evaluations, even when execution traces or
* tests/trace.test: invocations of [::unknown] are present.
[Bug 1439836].
|
| |
|
|
|
|
| |
* tests/namespace.test: interacts with TCL_EVAL_* flags. [Patch 958222]
|
|
|
|
|
| |
* tests/ioCmd.test: of exceptional return codes in the channel
reflection layer. [Bug 1372348].
|
|
|
|
|
| |
* tests/indexObj.test: when TCL_EXACT matching is requested.
* tests/ioCmd.test:
|
|
|
|
|
|
|
|
|
|
| |
* doc/incr.n: Revised [incr] to auto-initialize when varName
* generic/tclExecute.c: argument is unset. [Patch 1413115].
* generic/tclVar.c:
* tests/compile.test:
* tests/incr-old.test:
* tests/incr.test:
* tests/set.test:
|
| |
|
| |
|
|
|
|
| |
command auto-completion test. [Bug 1422736].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Encoding.3: New subcommand [encoding dirs].
* doc/encoding.n: New routine Tcl_GetEncodingNameFromEnvironment.
* generic/tcl.decls: Made public:
* generic/tclBasic.c: TclGetEncodingFromObj
* generic/tclCmdAH.c: -> Tcl_GetEncodingFromObj
* generic/tclEncoding.c:TclGetEncodingSearchPath
* generic/tclInt.decls: -> Tcl_GetEncodingSearchPath
* generic/tclInt.h: TclSetEncodingSearchPath
* generic/tclTest.c: -> Tcl_SetEncodingSearchPath
* library/init.tcl: Removed commands:
* tests/cmdAH.test: [tcl::unsupported::EncodingDirs]
* tests/encoding.test: [testencoding path] (Tcltest)
* unix/tclUnixInit.c: [Patch 1413934].
* win/tclWinInit.c:
* generic/tclDecls.h: make genstubs
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
|