Tcl Source Code

Check-in [6624676119]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Replaced another couple of 'double' declarations with 'volatile double' to work around misrounding issues in mingw-gcc 3.4.5.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-5-branch
Files: files | file ages | folders
SHA1: 66246761191bd409a93dc6908827bb2aa292ef41
User & Date: kbk 2011-04-02 21:55:39
Original Comment: Replaced another couple of 'double' declarations with 'volatile double' to work around misrounding issues in mingw-gcc 3.4.5.
Original User & Date: 200002852 2011-04-02 21:55:39
Context
2011-04-04
16:29
[3202030] Updated README files, repairing broken URLs and other rot. check-in: d22d901bff user: dgp tags: core-8-5-branch
14:26
Merge to feature branch Closed-Leaf check-in: c29f1b7a0d user: dkf tags: rfe-3216010
2011-04-02
22:07
Replaced another couple of 'double' declarations with 'volatile double' to work around misrounding ... check-in: 147186904c user: kbk tags: trunk
21:55
Replaced another couple of 'double' declarations with 'volatile double' to work around misrounding ... check-in: 6624676119 user: kbk tags: core-8-5-branch
2011-03-30
22:29
Fixed execute permission for unix/ldAix on this branch. core-8-4-branch and trunk are ok, so a merge... check-in: 4946996d08 user: andreask tags: core-8-5-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.







1
2
3
4
5
6
7






2011-03-24  Donal K. Fellows  <[email protected]>

	* generic/tclFCmd.c (TclFileAttrsCmd): Ensure that any reference to
	temporary index tables is squelched immediately rather than hanging
	around to trip us up in the future.

2011-03-21  Jan Nijtmans  <[email protected]>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
2011-04-02  Kevin B. Kenny  <[email protected]>

	* generic/tclStrToD.c (QuickConversion): Replaced another couple
	of 'double' declarations with 'volatile double' to work around
	misrounding issues in mingw-gcc 3.4.5.

2011-03-24  Donal K. Fellows  <[email protected]>

	* generic/tclFCmd.c (TclFileAttrsCmd): Ensure that any reference to
	temporary index tables is squelched immediately rather than hanging
	around to trip us up in the future.

2011-03-21  Jan Nijtmans  <[email protected]>

Changes to generic/tclStrToD.c.

2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688

2689
2690
2691
2692
2693

2694
2695
2696
2697
2698
2699
2700
 *	Returns the converted string, or NULL if the bignum method must
 *	be used.
 *
 *-----------------------------------------------------------------------------
 */

inline static char*
QuickConversion(double d,	/* Number to format */
		int k,		/* floor(log10(d)), approximately */
		int k_check,	/* 0 if k is exact, 1 if it may be too high */
		int flags,	/* Flags passed to dtoa:
				 *    TCL_DD_SHORTEN_FLAG */
		int len,	/* Length of the return value */
		int ilim,	/* Number of digits to store */
		int ilim1,	/* Number of digits to store if we
				 * musguessed k */
		int* decpt,	/* OUTPUT: Location of the decimal point */
		char** endPtr)	/* OUTPUT: Pointer to the terminal null byte */
{
    int ieps;			/* Number of 1-ulp roundoff errors that have
				 * accumulated in the calculation*/
    Double eps;			/* Estimated roundoff error */
    char* retval;		/* Returned string */
    char* end;			/* Pointer to the terminal null byte in the
				 * returned string */


    /*
     * Bring d into the range [1 .. 10)
     */
    ieps = AdjustRange(&d, k);


    /*
     * If the guessed value of k didn't get d into range, adjust it
     * by one. If that leaves us outside the range in which quick format
     * is accurate, bail out.
     */
    if (k_check && d < 1. && ilim > 0) {







|

















>




|
>







2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
 *	Returns the converted string, or NULL if the bignum method must
 *	be used.
 *
 *-----------------------------------------------------------------------------
 */

inline static char*
QuickConversion(double e,	/* Number to format */
		int k,		/* floor(log10(d)), approximately */
		int k_check,	/* 0 if k is exact, 1 if it may be too high */
		int flags,	/* Flags passed to dtoa:
				 *    TCL_DD_SHORTEN_FLAG */
		int len,	/* Length of the return value */
		int ilim,	/* Number of digits to store */
		int ilim1,	/* Number of digits to store if we
				 * musguessed k */
		int* decpt,	/* OUTPUT: Location of the decimal point */
		char** endPtr)	/* OUTPUT: Pointer to the terminal null byte */
{
    int ieps;			/* Number of 1-ulp roundoff errors that have
				 * accumulated in the calculation*/
    Double eps;			/* Estimated roundoff error */
    char* retval;		/* Returned string */
    char* end;			/* Pointer to the terminal null byte in the
				 * returned string */
    volatile double d;		/* Workaround for a bug in mingw gcc 3.4.5 */

    /*
     * Bring d into the range [1 .. 10)
     */
    ieps = AdjustRange(&e, k);
    d = e;

    /*
     * If the guessed value of k didn't get d into range, adjust it
     * by one. If that leaves us outside the range in which quick format
     * is accurate, bail out.
     */
    if (k_check && d < 1. && ilim > 0) {