summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2005-10-08 14:42:44 (GMT)
committerdgp <dgp@users.sourceforge.net>2005-10-08 14:42:44 (GMT)
commit76faac0f28fe9661f23ff9e35f44df1d899420e5 (patch)
tree7e3de1d0523d70328cfd81d9864b897058823d34 /ChangeLog
parent98a6fcad96289a40b501fbd2095387a245fd804d (diff)
downloadtcl-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--ChangeLog586
1 files changed, 583 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 659563e..77e4faa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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