| Commit message (Collapse) | Author | Age | Files | Lines |
|\ \ |
|
| |/ |
|
|\ \
| |/ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Break up [file] into an ensemble. Note that the ensemble is safe in
itself, but the majority of its subcommands are not.
* generic/tclFCmd.c (FileCopyRename,TclFileDeleteCmd,TclFileAttrsCmd)
(TclFileMakeDirsCmd): Adjust these subcommand implementations to work
inside an ensemble.
(TclFileLinkCmd, TclFileReadLinkCmd, TclFileTemporaryCmd): Move these
subcommand implementations from tclCmdAH.c, where they didn't really
belong.
* generic/tclIOCmd.c (TclChannelNamesCmd): Move to more appropriate
source file.
* generic/tclEnsemble.c (TclMakeEnsemble): Start of code to make
partially-safe ensembles. Currently does not function as expected due
to various shortcomings in how safe interpreters are constructed.
* tests/cmdAH.test, tests/fCmd.test, tests/interp.test: Test updates
to take into account systematization of error messages.
|
| |
| |
| |
| |
| |
| |
| | |
* generic/tclStubInit.c: TclFormatInt restored at slot 24
* generic/tclUtil.c (TclFormatInt): restore TclFormatInt func from
2005-07-05 macro-ization. Benchmarks indicate it is faster, as a
key int->string routine (e.g. int-indexed arrays).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclStrToD.c:
* generic/tclTest.c:
* generic/tclTomMath.decls:
* generic/tclUtil.c:
* tests/util.test:
* unix/Makefile.in:
* win/Makefile.in:
* win/makefile.vc: Rewrite of Tcl_PrintDouble and TclDoubleDigits
that (a) fixes a severe performance problem with floating point
shimmering reported by Karl Lehenbauer, (b) allows TclDoubleDigits
to generate the digit strings for 'e' and 'f' format, so that it
can be used for tcl_precision != 0 (and possibly later for [format]),
(c) fixes [Bug 3120139] by making TclPrintDouble inherently
locale-independent, (d) adds test cases to util.test for
correct rounding in difficult cases of TclDoubleDigits where fixed-
precision results are requested. (e) adds test cases to util.test for
the controversial aspects of [Bug 3105247]. As a side effect, two
more modules from libtommath (bn_mp_set_int.c and bn_mp_init_set_int.c)
are brought into the build, since the new code uses them.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* doc/tclvars.n: Performance fix for TIP #280.
* generic/tclBasic.c:
* generic/tclExecute.c:
* generic/tclInt.h:
* generic/tclInterp.c:
* tests/info.test:
* tests/interp.test:
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[fconfiguyre] commands.
* generic/tclInt.h: Introduce TclCreateSocketAddress() as a
* generic/tclIOSock.c: replacement for the platform-dependent
* unix/tclUnixSock.c: TclpCreateSocketAddress() functions.
* unix/tclUnixChan.c: Extend the [socket] and [fconfigure]
* unix/tclUnixPort.h: commands to behave as proposed in
* win/tclWinSock.c: TIP #162.
* win/tclWinPort.h:
* compat/fake-rfc2553.c: A compat implementation of the APIs
* compat/fake-rfc2553.h: defined in RFC-2553 (getaddrinfo() and
friends) on top of the existing
gethostbyname() etc.
* unix/configure.in: Test whether the fake-implementation is
* unix/tcl.m4: needed.
* unix/Makefile.in: Add a compile target for fake-rfc2553.
* win/configure.in: Allow cross-compilation by default
* tests/socket.test: Improve the test suite to make more use of
* tests/remote.tcl: randomized ports to reduce interference with
tests running in parallel or other services
on the machine.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclCmdIL.c: update): a saner NRE.
* generic/tclCompExpr.c:
* generic/tclCompile.c: This makes TclNRExecuteByteCode
* generic/tclCompile.h: (ex TEBC) to be a normal NRE
* generic/tclExecute.c: citizen: it loses its special status.
* generic/tclInt.decls: The logic flow within the BC engine is
* generic/tclInt.h: simplified considerably.
* generic/tclIntDecls.h:
* generic/tclObj.c:
* generic/tclProc.c:
* generic/tclTest.c:
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Also replaced a funky NRCallTEBC with the new call TclNRExecuteByteCode.
|
|/
|
|
| |
Tcl bytecode language
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: it now schedules the command and returns
* generic/tclCmdMZ.c: TCL_RETURN. This fixes all issues with
* generic/tclExecute.c: [catch] and [try] - [Bug 3046594],
* generic/tclInt.h: [Bug 3047235] and [Bug 3048771]. Thanks
* generic/tclNamesp.c: dgp for exploring the dark corners.
* tests/tailcall.test: More thorough testing is required.
|
|
|
|
|
|
| |
* generic/tclExecute.c: errors early on, so that errorInfo
* generic/tclInt.h: contains the proper info [Bug 3047235]
* generic/tclNamesp.c:
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: (a) fix #3047235
* generic/tclCompile.h: (b) enable fix for #3046594
* generic/tclExecute.c: (c) enable recursive tailcalls
* generic/tclInt.h:
* generic/tclNamesp.c:
* tests/tailcall.test:
|
| |
|
|
|
|
|
|
| |
Change TclpThreadCreate and Tcl_CreateThread
signature, making clear that "proc" is a function
pointer, as in all other "proc" function parameters.
|
| |
|
|
|
|
|
| |
(TclBignumToDouble, TclCeil, TclFloor), and
related tommath functions.
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h (TclAppendBytesToByteArray): placing overflow
protection responsibility on caller. Convert "len" argument to signed
int which any value already vetted for overflow issues will fit into.
* generic/tclStringObj.c: Update caller; standardize panic msg.
* generic/tclBinary.c (UpdateStringOfByteArray): Add panic
when the generated string representation would grow beyond Tcl's
size limits. [Bug 2994924]
|
|
|
|
|
|
| |
* generic/tclStringObj.c (Tcl_AppendObjToObj): an append of a byte
array to another into an efficent operation. The problem was the (lack
of) a proper growth management strategy for the byte array.
|
|
|
|
|
|
|
|
|
|
|
| |
Move <limits.h> include from
tclInt.h to tclWinPort.h, and
eliminate unneeded <stdlib.h>, <stdio.h> and
<string.h>, which are already in tclInt.h
Move "tclInt.h" from regcustom.h
up to regex.h.
tclAlloc.c: Unneeded <stdio.h> include
tclExecute.c: Fix gcc warning: comparison between signed and unsigned
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deletion of traces is not optimized out...
* generic/tclExecute.c (ExecuteExtendedBinaryMathOp)
(TclCompareTwoNumbers,ExecuteExtendedUnaryMathOp,TclExecuteByteCode):
[Patch 2981677]: Move the less common arithmetic operations (i.e.,
exponentiation and operations on non-longs) out of TEBC for a big drop
in the overall size of the stack frame for most code. Net effect on
speed is minimal (slightly faster overall in tclbench). Also extended
the number of places where TRESULT handling is replaced with a jump to
dedicated code.
|
|
|
|
| |
* generic/tclInt.h:
|
|
|
|
|
|
| |
* generic/tclExecute.c: to fix yieldTo, which had not survived
* generic/tclInt.h: the latest mods to tailcall. Thanks kbk
for detecting the problem.
|
|
|
|
| |
Eliminate various unnecessary type casts.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclDecls.h: to export Tcl_LoadFile, Tcl_FindSymbol,
* generic/tclIOUtil.c: and Tcl_FSUnloadFile to the public API.
* generic/tclInt.h:
* generic/tclLoad.c:
* generic/tclLoadNone.c:
* generic/tclStubInit.c:
* tests/fileSystem.test:
* tests/load.test:
* tests/unload.test:
* unix/tclLoadDl.c:
* unix/tclLoadDyld.c:
* unix/tclLoadNext.c:
* unix/tclLoadOSF.c:
* unix/tclLoadShl.c:
* unix/tclUnixPipe.c:
* win/Makefile.in:
* win/tclWinLoad.c:
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* use do { ... } while (0) in macros
* avoid shadowing one local variable with another
* use clearer 'foo.bar++;' instead of '++foo.bar;' where result not
required (i.e., semantically equivalent)
* follow Engineering Manual rules on spacing and declarations
|
|
|
|
| |
restoring potential binary incompatibility with Tcl 8.5
|
|
|
|
| |
reliably call the object's destructor.
|
|
|
|
| |
Split the [switch] compiler for sanity's sake.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
prevent space within stub table function parameters
if the parameter type is a pointer.
Minor formatting, and VOID -> void.
Change signature of TclNRInterpProcCore,
and TclOONewProc(Instance|)MethodEx,
indicating that errorProc is a function pointer
tclVar.c: fixed two gcc warnings
|
|
|
|
| |
alteration to error messages, otherwise no change.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
immediately after a function name, so the
format of function definitions in tcl*Decls.h
matches all other tcl*.h header files.
- Change Tcl_ArgvFuncProc, Tcl_ArgvGenFuncProc
and GetFrameInfoValueProc to be function
definitions, not pointers, for consistency
with all other Tcl function definitions.
|
|
|
|
|
| |
and various other minor CYGWIN
compilation problems
|
|
|
|
| |
know about bottomPtr, tebc does not need to behave differently on exit for coros
|
|
|
|
|
|
| |
* generic/tclExecute.c: The initial call still requires its
* generic/tclInt.h: own instance of tebc, but on resume coros
can execute in the caller's tebc.
|
|
|
|
| |
* generic/tclInt.h:
|
|
|
|
| |
* generic/tclInt.h: [Patch 2910056]
|