diff options
author | dgp <dgp@users.sourceforge.net> | 2005-10-08 14:42:44 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2005-10-08 14:42:44 (GMT) |
commit | 76faac0f28fe9661f23ff9e35f44df1d899420e5 (patch) | |
tree | 7e3de1d0523d70328cfd81d9864b897058823d34 /ChangeLog | |
parent | 98a6fcad96289a40b501fbd2095387a245fd804d (diff) | |
download | tcl-76faac0f28fe9661f23ff9e35f44df1d899420e5.zip tcl-76faac0f28fe9661f23ff9e35f44df1d899420e5.tar.gz tcl-76faac0f28fe9661f23ff9e35f44df1d899420e5.tar.bz2 |
TIP#237 IMPLEMENTATION
[kennykb-numerics-branch] Resynchronized with the HEAD; at this
checkpoint [-rkennykb-numerics-branch-20051008], the HEAD and
kennykb-numerics-branch contain identical code.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 586 |
1 files changed, 583 insertions, 3 deletions
@@ -1,9 +1,54 @@ +2005-10-08 Don Porter <dgp@users.sourceforge.net> + + TIP#237 IMPLEMENTATION + + [kennykb-numerics-branch] Resynchronized with the HEAD; at this + checkpoint [-rkennykb-numerics-branch-20051008], the HEAD and + kennykb-numerics-branch contain identical code. + + [kennykb-numerics-branch] Merge updates from HEAD + + * generic/tclExecute.c: More performance macros and special + handling of the wide integer type for performance on 32-bit + systems. + +2005-10-07 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Macro GetNumberFromObj() is version of + TclGetNumberFromObj() that saves a function call for common uses. + + * generic/tclInt.h: Made #undef NO_WIDE_TYPE the default on + 32-bit systems. Being able to use 64-bit values without leaping + to mp_int should help with performance. + * generic/tclObj.c: Bug fixes in the #undef NO_WIDE_TYPE + * generic/tclExecute.c: configuration. + + * generic/tclExecute.c: Improved performance of comparison opcodes + and bitwise operations and removed yet more dead code. + 2005-10-07 Jeff Hobbs <jeffh@ActiveState.com> * unix/tclUnixFCmd.c (TraverseUnixTree): Adjust 2004-11-11 change to * tests/fCmd.test (fCmd-20.2): account for NFS special files with a readdir rewind threshold. [Bug 1034337] +2005-10-06 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Improved performance of INST_RSHIFT and + INST_LSHIFT. + +2005-10-05 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Improved performance of INST_MULT, INST_DIV, + INST_ADD, and INST_SUB and replaced a "goto... label" with a + "break from loop" in TclIncrObj() and removed some dead code. + 2005-10-05 Andreas Kupries <andreask@activestate.com> * generic/tclPipe.c (TclCreatePipeline): Fixed [SF Tcl Bug @@ -28,6 +73,18 @@ Correct the resizing of the environ array. We assume that we are in full ownership, but that's not correct.[Bug 979640] +2005-10-04 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Updated TclIncrObj() to more efficiently + add native long integers. Also updated IllegalExprOperandType + and the INST_UMINUS, INST_UPLUS, INST_BITNOT, and + INST_TRY_CVT_TO_NUMERIC sections for performance. + + * generic/tclBasic.c: Updated more callers to make use of + TclGetNumberFromObj. Removed some dead code. + 2005-10-04 Jeff Hobbs <jeffh@ActiveState.com> * win/tclWinSerial.c (SerialSetOptionProc): free argv [Bug 1067708] @@ -56,6 +113,17 @@ * generic/tclTimer.c (Tcl_DeleteTimerHandler): bail out early if passed NULL argument. +2005-10-03 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c: Re-implemented ExprRoundFunc and ExprEntierFunc + to use TclGetNumberFromObj. + + * generic/tclInt.h: Added new routine TclGetNumberFromObj to + * generic/tclObj.c: provide efficient access to the actual + internal rep of a numeric Tcl_Obj without conversions. + 2005-10-03 Kevin Kenny <kennykb@acm.org> * tools/loadICU.tcl: Changed the file names of message catalogs @@ -71,12 +139,29 @@ * generic/tclMain.c: Separate encoding conversion of command line arguments from list formatting. [Bug 1306162]. +2005-09-30 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclStringObj.c: Bug fix: Missing cast to large enough + integral size before << operations led to broken [format %llx] results. + Thanks to Robert Henry for reporting the bug. + 2005-09-29 Jeff Hobbs <jeffh@ActiveState.com> * doc/mathfunc.n: implementation for TIP #255, expr min/max * library/init.tcl: * tests/info.test, tests/expr-old.test: +2005-09-27 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tcl.h: Changed name of the new Tcl_Obj intrep field + * generic/tclObj.c: from "bignumValue" to "ptrAndLongRep" as + * generic/tclProc.c: described in TIP 237, and more suitable for + other more general uses. + 2005-09-27 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> * tests/binary.test (binary-14.18): Added test for [Bug 1116542] @@ -84,11 +169,67 @@ 2005-09-26 Kevin Kenny <kennykb@acm.org> + [kennykb-numerics-branch] Merge updates from HEAD. + +2005-09-26 Kevin Kenny <kennykb@acm.org> + * libtommath/: Updated to release 0.36. * generic/tommath.h: Regenerated. * generic/tclTomMathInterface.h: Added ten missing aliases for mp_* functions to avoid namespace pollution in Tcl's exported symbols. [Bug 1263012] + +2005-09-23 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * unix/Makefile.in: Added -DMP_PREC=4 switch to all compiles so + * win/Makefile.in: that minimum memory requirements of mp_int's + * win/makefile.vc: will not be quite so large. [Bug 1299153]. + + * generic/tclStrToD.c: Fixed memory leak. [Bug 1299803]. + * generic/tclObj.c: + +2005-09-20 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Revise TclIncrObj() to call + Tcl_GetBignumAndClearObj. + + * generic/tcl.decls: Add Tcl_GetBignumAndClearObj. + * generic/tclObj.c: + + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: + +2005-09-16 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclInt.h: Added TclBNInitBigNumFromWideInt() + * generic/tclTomMathInterface.c: so that every caller isn't + required to duplicate the sign logic to use the unsigned interface. + + * generic/tclBasic.c: Reduce the number of places where Tcl + * generic/tclExecute.c: intrudes into the internal format details + * generic/tclObj.c: of the mp_int struct. + * generic/tclStrToD.c: + * generic/tcLStringObj.c: + + * generic/tclTomMath.h: Added mp_cmp_d to routines from + * unix/Makefile.in: libtommath used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + + * libtommath/bn_mp_add_d.c: Bug fix. For mp_add_d(&a, d, &c), + when &a has the value -d, then the value &c computed should be zero, + but mp_add_d was producing an inconsistent zero value with a sign + field of MP_NEG, something like a value of -0, which other routines + in libtommath can't handle. + + * generic/tclExecute.c: Dropped all creation of "bigOne" values + and just use tommath routines that accept the value "1" directly. 2005-09-15 Miguel Sofer <msofer@users.sf.net> @@ -96,6 +237,8 @@ 2005-09-15 Don Porter <dgp@users.sourceforge.net> + [kennykb-numerics-branch] Merge updates from HEAD. + * generic/tclStringObj.c (TclAppendFormattedObjs): Revision to eliminate one round of string copying. @@ -165,6 +308,11 @@ 2005-09-12 Don Porter <dgp@users.sourceforge.net> + [kennykb-numerics-branch] Merge updates from HEAD. + + * generic/tclCmdAH.c: Added support for the "ll" width + * generic/tclStringObj.c: specifier to [format]. + * generic/tclStringObj.c (TclAppendFormattedObjs): Bug fix: make sure %ld formats force the collection of a wide value, when the value could be a different long. @@ -176,6 +324,10 @@ 1286256]. The other warning can be removed only by removing the panic/return code. +2005-09-09 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD. + 2005-09-09 Kevin Kenny <kennykb@acm.org> * generic/tclStringObj.c: Added two missing casts to silence @@ -228,6 +380,17 @@ * generic/tclObj.c (pendingObjDataKey): Added missing 'static' to stop symbol from leaking outside the Tcl library. [Bug 1263012] +2005-09-02 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclScan.c: Bug fix: The %o, %x, %i formats of [scan] + must not accept any 0b or 0o prefixes. [scan $s %o] must continue + to work even with KILL_OCTAL enabled. + + * generic/tclInt.h: Added TCL_PARSE_SCAN_PREFIXES to the flags + * generic/tclStrToD.c: accepted by TclParseNumber. + 2005-09-01 Andreas Kupries <andreask@activestate.com> * unix/tclUnixSock.c (InitializeHostName): Synchronized use of @@ -252,6 +415,22 @@ * generic/tclIORChan.c (RcNewHandle): Synchronized use of static modifier in declaration and definition of function. +2005-09-01 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: TclParseNumber calls meant to parse an + integer value now pass the TCL_PARSE_INTEGER_ONLY flag. + + * generic/tclScan.c: Extended [scan] to accept the %lld, + %llo, %llx, and %lli formats. Numeric scanning is now done + via TclParseNumber calls. + + * generic/tclInt.h: Extended TclParseNumber to accept new flag + * generic/tclStrToD.c: values TCL_PARSE_INTEGER_ONLY, + TCL_PARSE_OCTAL_ONLY, and TCL_PARSE_HEXIDECIMAL_ONLY, to give caller + more control over the parsing rules. + 2005-08-31 Vince Darley <vincentdarley@sourceforge.net> * doc/FileSystem.3: @@ -261,12 +440,35 @@ allowed. Tcl's core itself (tclEncoding.c:FillEncodingFileMap()) calls this with a NULL interpreter. +2005-08-30 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: Extended bignum support to include bignums + so large they will not pack into a Tcl_Obj. When they outgrow Tcl's + string rep length limits, a panic will result. + + * generic/tclTomMath.h: Added mp_sqrt to routines from + * unix/Makefile.in: libtommath used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + + * generic/tclBasic.c: Extended sqrt(.) so that range covers + the entire double range, accepting as many bignums in the domain + as that will allow. + 2005-08-29 Andreas Kupries <andreask@activestate.com> * library/tm.tcl (::tcl::tm::roots): Accepted Don Porter's patch for [Tcl SF Bug 1189657]. Syncs the implementation to the specification (TIP #189). +2005-08-29 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD. + + * generic/tclBasic.c: Restored round(.) to the Tcl 8.4 rules. + 2005-08-29 Kevin Kenny <kennykb@acm.org> * generic/tclBasic.c (ExprMathFunc): Restored "round away from @@ -302,6 +504,19 @@ duplicated object on the floor, which was a memory leak (and a wrong result too). Thanks to Andreas Kupries for reporting this. +2005-08-25 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD + + * generic/tclExecute.c: Bug fix. INST_RSHIFT: shift of negative + values produced incorrect results. + + * generic/tclExecute.c: Bug fix. INST_*SHIFT opcodes stack + management. [expr 0<<6] should be 0, not 6. + + * generic/tclBasic.c: Extended the domain of round(.) to all + non-Inf, non-NaN doubles, using bignums for the result as needed. + 2005-08-24 Andreas Kupries <andreask@activestate.com> TIP#219 IMPLEMENTATION @@ -337,6 +552,37 @@ point numbers with the largest and smallest possible significands, and added test cases for them. +2005-08-24 Kevin Kenny <kennykb@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Corrected some TRACE bugs that prevented + compilation with --enable-symbols=all. + * generic/tclStrToD.c: Revised commentary to prepare for a + renaming of the file, removed some dead code, and fixed a bug + where TclBignumToDouble failed on huge negative numbers. + * tests/binary.test (binary-65.*): Added missing 'ieeeFloatingPoint' to + large/small significand tests. + * tests/expr.test (expr-45.*) Added missing braces around expressions. + +2005-08-24 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c: Revised implementation of the ceil(.) and + * generic/tclInt.h: floor(.) math functions in light of the + * generic/tclStrToD.c: revised comparison operators, so that it + is always true that ($x <= ceil($x)) and ($x >= floor($x)). The + simple approach of "convert to double and call ceil() or floor()" + could not guarantee that. + + * generic/tclExecute.c: Bug fix: TclBignumToDouble return -Inf when + appropriate. Removed declarations of removed routines. + + * generic/tclExecute.c: Revised the type promotion rules of the + comparison operators so that they form proper equivalence classes + over the set of numeric strings. + 2005-08-23 Mo DeJong <mdejong@users.sourceforge.net> * unix/configure.in: @@ -344,11 +590,165 @@ * win/configure.in: Update minimum autoconf version to 2.59. +2005-08-23 Kevin Kenny <kennykb@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclCmdMZ.c (Tcl_StringObjCmd): + * generic/tclInt.h: + * generic/tclObj.c (Tcl_GetBooleanFromObj, SetDoubleFromAny, + Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_GetBignumFromObj): + * generic/tclParseExpr.c (GetLexeme): + * generic/tclScan.c (Tcl_ScanObjCmd): + * generic/tclStrToD.c (TclParseNumber): + * tests/binary.test (binary-62.1-65.7): + * tests/expr.test (expr-40.1-42.1): + * scan.test (scan-14.1,14.2): + Modified Tcl_ParseNumber to accept an argument to force + interpretation as decimal, and modified [scan] to use it. + Corrected a bug where Not a Number with hexadecimal information + bits returned consistently incorrect values. #ifdef-ed out + some code that is needed only for IBM hexadecimal floating point. + Fixed bugs in code to handle the corner cases of smallest and + largest significands. Added test cases to improve test coverage + in generic/tclStrToD.c. Added test cases for 0b notation (TIP + #114). Removed TclStrToD, and the static functions that it calls, + which are now dead code (TclParseNumber now does all input + floating-point conversions.) + +2005-08-23 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclStrToD.c: Bug fix: set shift magnitude properly whether + we're expanding to mp_int type or not. + + * generic/tclExecute.c: Bug fix: ACCEPT_NAN under INST_UMINUS. + + * generic/tclStrToD.c: New macros TIP_114_FORMATS and KILL_OCTAL to + configure acceptance of 0o and 0b numbers and rejection of "leading + zero as octal". + + * generic/tclBasic.c: Re-used the guts of int(.) and wide(.) math + functions to perform conversions in OldMathFuncProc. + + * generic/tclBasic.c: Support for ACCEPT_NAN. + * generic/tclExecute.c: + + * generic/tclInt.decls: Restored TclExprFloatError to internal stubs + * generic/tclBasic.c: table, and moved definition back to tclExecute.c + * generic/tclExecute.c: from tclBasic.c to handle #undef ACCEPT_NAN. + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclInt.h: New internal macros TclIsNaN and TclIsInfinite + * generic/tclBasic.c: replace the IS_NAN and IS_INF macros scattered + * generic/tclExecute.c: here and there. + * generic/tclObj.c: + * generic/tclStrToD.c: + * generic/tclUtil.c: + 2005-08-22 Daniel Steffen <das@users.sourceforge.net> * unix/tclConfig.h.in: autoheader-2.59. -cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> +2005-08-22 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclInt.h: New ACCEPT_NAN macro to mark code that supports + * generic/tclCmdAH.c: or disables accepting of the NaN value at + * generic/tclExecute.c: various points. + * generic/tclLink.c: + + * generic/tclStrToD.c: Bug fix. Parsing of +/- Infinity was reversed. + + * generic/tclTestObj.c: Disabled unused [testconvertobj] command. + + * generic/tclBasic: Added [expr {entier(.)}]. Rewrote int(.) + and wide(.) to use the same guts, accepting all non-Inf doubles as + arguments. + + * generic/tclInt.h: New routine TclInitBignumFromDouble. + * generic/tclStrToD.c: Modified to return code and write error message. + + * generic/tclInt.h: TCL_WIDE_INT_IS_LONG implies NO_WIDE_TYPE. + * generic/tclObj.c: Removed now unnecessary tests of the + * generic/tclStrToD.c: TCL_WIDE_INT_IS_LONG definition. + + * generic/tclInt.h: New internal routine TclSetBignumIntRep + * generic/tclObj.c: consolidates packing of bignum value into + * generic/tclStrToD.c: a Tcl_Obj within one source code file. + + * tests/expr.test: Corrected the wideIs64bit constraint. + * tests/format.test: + * tests/scan.test: + +2005-08-21 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclInt.h: Moved TclParseInteger to tclUtil.c + * generic/tclParseExpr.c: and made it static. + * generic/tclUtil.c: + + * generic/tclInt.decls: Moved TclExprFloatError to tclBasic.c and + * generic/tclBasic.c: made it static. + * generic/tclExecute.c: + + * generitc/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclExecute.c: errno, IS_NAN, IS_INF, LLD no longer called in + this file; dropped/disabled support for them. + + * generic/tclCompExpr.c: errno no longer used in these files; + * generic/tclParseExpr.c: dropped support "hack" for it. + + * generic/tclStrToD.c: Disabled out of date support "hack" for errno. + + * generic/tclBasic.c: Eliminated VerifyExprObjType. Initialize + errno to zero in OldMathFuncProc. + +2005-08-19 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c: Updated OldMathFuncProc and ExprAbsFunc to + do less invasion into numeric Tcl_Obj internals. Made ExprDoubleFunc, + ExprIntFunc, ExprWideFunc, and ExprRoundFunc bignum-aware. Revised + ExprSrandFunc error message. + + * generic/tclProc.c: Wrapped a few tclWideIntType uses in + * generic/tclCmdMZ.c: #ifndef NO_WIDE_TYPE. + + * generic/tclInt.h: #define'd NO_WIDE_TYPE. + + * generic/tclVar.c: Replaced TclPtrIncrVar and TclPtrIncrWideVar + * generic/tclInt.h: with TclPtrIncrObjVar and replaced TclIncrVar2 + * generic/tclInt.decls: and TclIncrWideVar2 with TclIncrObjVar2. New + routines call on TclIncrObj to do the work. + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclCmdIL.c: Rework Tcl_IncrObjCmd and the INST_*INCR* + * generic/tclExecute.c: opcodes to use the new routines. + +2005-08-18 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Fixed string rep invalidation bug in + * tests/dict.test (dict-11.17): INST_DICT_INCR_IMM rewrite. + + * generic/tclDictObj.c: DictIncrCmd rewrite to use TclIncrObj. + + * generic/tclInt.h: TclIncrObj static -> internal + * generic/tclExecute.c: + +2005-08-17 George Peter Staplin <GeorgePS@XMission.com> * generic/tclBasic.c: eliminate a namespace clash caused by BuiltinFuncTable not being static. @@ -365,6 +765,106 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> clock-50.1 into two tests, with a more permissive check on the error message for an out-of-range value. +2005-08-17 Kevin Kenny <kennykb@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c (Tcl_Expr{Long,Double}{,Obj}): Updated to + * generic/tclTest.c: deal with + * tests/expr-old.test: bignums (well, + * tests/expr.test: mostly). + Added a missing "errno=0;" in ExprUnaryFunc so that spurious + error returns aren't detected. + Added test cases for Tcl_Expr* and Tcl_Expr*Obj because + there was very poor test coverage in those areas. + * generic/tclParseExpr.c: Reworked parsing of numbers to call + TclParseNumber rather than trying to do things locally. + * generic/tclStrToD.c: Corrected a comment. Changed so that + *endPtrPtr does not include any trailing whitespace. + +2005-08-17 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: New routine TclIncrObj to centralize the + increment operation needed in many places. Updated + INST_DICT_INCR_IMM to make use of it. + +2005-08-16 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Made bit shifting opcodes and INST_MOD + bignum-aware. + + * tests/scan.test: Making << bignum-aware means that repeated + * tests/string.test: left shifting cannot turn a positive into + a negative. Revised [int_range] and [largest_int] utility commands + in the test suite that relied on that happening. Without revision + they became infinite loops. + + * generic/tclExecute.c: Made binary bitwise opcodes bignum-aware. + + * generic/tclTomMath.h: Added mp_or and mp_xor to routines from + * unix/Makefile.in: libtommath used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + +2005-08-15 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Updates from HEAD. + * generic/tclExecute.c: More revisions to IllegalExprOperandType. + Merged INST_BITNOT with INST_UMINUS and make it bignum-aware + according to the rule: ~a = -a - 1. Disabled unused code and + noted more TODOs. + + * generic/tclInt.decls: Disabled TclLooksLikeInt() and all callers. + * generic/tclUtil.c: + * generic/tclCompCmds.c: + + * generic/tclBasic.c: Rewrite of VerifyExprObjType(). + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclExecute.c: Updated execution of comparison bytecodes + to be bignum-aware, routing string compares through INST_STR_CMP. + +2005-08-14 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Updated execution of arithmetic bytecodes + to be bignum-aware, and to allow calculations on NaN to produce + a NaN result. INST_UMINUS updated to call mp_neg. + + * generic/tclTomMath.h: Added mp_and, mp_expt_d, and mp_neg to + * unix/Makefile.in: routines from libtommath used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + +2005-08-13 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: Extended Bignum auto-narrowing to auto-narrow + to tclWideIntType when appropriate; this helps keep things working as + the bytecode execution code is migrated to supporting bignums. + + * generic/tclExecute.c: Major overhaul of IllegalExprOperandType. + Changed several TclNewFooObj() calls to more logically appropriate + ones. Added several TODO comments marking opportunies for future + work. Made more use of the eePtr->constants. Made INST_UMINUS + bignum aware. + +2005-08-12 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Simplify doCondJump. Use eePtr->constants + as result of INST_DICT_NEXT, INST_LAND, and INST_LOR. Separate + INST_LNOT from INST_UMINUS and simplify. + 2004-08-12 Kevin Kenny <kennykb@acm.org> * generic/tclClock.c (MktimeObjCmd): @@ -375,8 +875,25 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> Tcl's time can track system time on Linux even if TZ is not set. Changed ::tcl::clock::Mktime to check for failure, and added a test case that mimics failure but is really success. + +2005-08-11 Don Porter <dgp@users.sourceforge.net> -2005-08-11 Kevin Kenny <kennykb@acm.org> + [kennykb-numerics-branch] + + * generic/tclExecute.c: Rewrite of INST_LAND/INST_LOR to take + advantage of loss of "pure double" issues. Merged INST_UPLUS + with INST_TRY_CVT_TO_NUMERIC and updated to use improved rules + for impure "double"s as well. + + * generic/tclStrToD.c: Restored conditional generation of + tclWideIntType values by TclParseNumber so that Tcl's not + completely broken while bignum calculation support is incomplete. + The NO_WIDE_TYPE macro can be used to disable this. + + * generic/tclBasic.c (ExprAbsFunc): First pass making [expr abs(.)] + bignum-aware. + +2004-08-11 Kevin Kenny <kennykb@acm.org> * generic/tclEvent.c: Eliminated the USE_THREAD_STORAGE * generic/tclInt.h: option (which is on in every build @@ -391,6 +908,24 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> * win/rules.vc: just a little bit cleaner.) * win/tcl.m4: * win/tclWinThrd.c: + +2005-08-10 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclTomMath.h: Added mp_shrink, mp_to_unsigned_bin, + * unix/Makefile.in: mp_to_unsigned_bin_n, and mp_unsigned_bin_size + * win/Makefile.in: to routines from libtommath used by Tcl. + * win/makefile.vc: + + * generic/tommath.h: make gentommath_h + + * generic/tclObj.c: Substantial rewrite to make all number + parsing flow through TclParseNumber(). Also established the + NO_WIDE_TYPE and BIGNUM_AUTO_NARROW #ifdef's to help track the + assumptions of different portions of the code. + + * generic/tclInt.h: Added NO_WIDE_TYPE #ifdefs 2005-08-10 Kevin Kenny <kennykb@acm.org> @@ -410,12 +945,24 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> * generic/tclPathObj.c: fix to [file rootname] bug in optimized code path reported on comp.lang.tcl. +2005-08-08 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: Replaced some goto's with loops and started + use of BIGNUM_AUTO_NARROW and NO_WIDE_TYPE. + 2005-08-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tclThreadStorage.c: Stop exposing the guts of the thread storage system through the internal stubs table. Client code should always use the standard API. +2005-08-05 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + * generic/tclObj.c: Rewrote Tcl_GetDoubleFromObj(). + 2005-08-05 Donal K. Fellows <dkf@users.sf.net> * unix/tclUnixInit.c (localeTable): Solaris uses a non-standard @@ -444,6 +991,12 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> 2005-08-04 Don Porter <dgp@users.sourceforge.net> + [kennykb-numerics-branch] Updated from HEAD + + * generic/tclObj.c: Rewrote Tcl_GetBooleanFromObj() and supporting + routines to make use of TclParseNumber. This reduces the potential + number of times a string value must be scanned. + * generic/tclObj.c: Simplified routines that manage the typeTable. Deleted the UpdateStringOfBoolean() routine, that can never be called. @@ -454,6 +1007,10 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> * generic/tclInt.h: [Bug 1251399] * generic/tclObj.c: +2005-08-02 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Updated from HEAD + 2005-07-30 Daniel Steffen <das@users.sourceforge.net> * unix/tclLoadDyld.c (TclpDlopen, TclpLoadMemory): workarounds @@ -627,6 +1184,23 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> on Windows to favor GetComputerName() over gethostname() as a source of the information. +2005-07-12 Kevin Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Updated from HEAD + + * generic/tclCmdMZ.c (Tcl_StringObjCmd): + * generic/tclInt.h: + * generic/tclObj.c (Tcl_GetDoubleFromObj, SetDoubleFromAny, + Tcl_GetIntFromObj, SetIntOrWideFromAny): + * generic/tclStrToD.c (TclParseNumber, etc.): + * tclTomMathInterface.c (TclBNInitBignumFromWideUInt): + * tests/obj.test (obj-1.1, obj-2.2, obj-3.1, obj-3.2): + + Initial attempt at an implementation of TIP #249, comprising + a unified parser and modifications to the Tcl_Get*FromObj + routines to use it. Further integration of the parser is + necessary and planned. + 2005-07-12 Donal K. Fellows <dkf@users.sf.net> * doc/lsearch.n: Clarify documentation of -exact option; wording was @@ -1180,8 +1754,14 @@ cvs2005-08-17 George Peter Staplin <GeorgePS@XMission.com> 2005-05-12 Kevin Kenny <kennykb@acm.org> * doc/mathfunc.n: Changed NAME line to match the name of the page. + +2005-05-11 Kevin Kenny <kennykb@acm.org> -2005-05-11 Kevin Kenny <kennykb@acm.org> + [kennykb-numerics-branch] Resynchronized with the HEAD; at this + checkpoint [-rkennykb-numerics-branch-20050511], the HEAD and + kennykb-numerics-branch contain identical code. + +2005-05-11 Kevin Kenny <kennykb@acm.org> * generic/tclStrToD.c (TclStrToD, RefineResult, ParseNaN): Changed the code to cast 'char' to UCHAR explicitly when |