The new float repr causes too much trouble and pain. I'm disabling the feature until we have sorted out the issues on all machines. 64bit machines seem to have issues and Guido has reported even worse.

Guido: It's pretty bad actually -- repr(1e5) comes out as '1.0'... Ditto for
repr(1eN) for most N... Both in 2.6 and in 3.0...
This commit is contained in:
Christian Heimes 2007-12-11 00:54:34 +00:00
parent 0c64fb435a
commit f15c66e143
6 changed files with 21 additions and 10 deletions

View File

@ -134,7 +134,8 @@ def test_main():
FormatFunctionsTestCase,
UnknownFormatTestCase,
IEEEFormatTestCase,
ReprTestCase)
#ReprTestCase
)
if __name__ == '__main__':
test_main()

View File

@ -299,7 +299,6 @@ OBJECT_OBJS= \
Objects/genobject.o \
Objects/fileobject.o \
Objects/floatobject.o \
Objects/doubledigits.o \
Objects/frameobject.o \
Objects/funcobject.o \
Objects/intobject.o \

View File

@ -306,6 +306,7 @@ PyFloat_AsStringEx(char *buf, PyFloatObject *v, int precision)
format_float(buf, 100, v, precision);
}
#ifdef Py_BROKEN_REPR
/* The following function is based on Tcl_PrintDouble,
* from tclUtil.c.
*/
@ -407,6 +408,8 @@ format_float_repr(char *buf, PyFloatObject *v)
format_double_repr(buf, PyFloat_AS_DOUBLE(v));
}
#endif /* Py_BROKEN_REPR */
/* Macro and helper that convert PyObject obj to a C double and store
the value in dbl; this replaces the functionality of the coercion
slot function. If conversion to double raises an exception, obj is
@ -491,8 +494,14 @@ float_print(PyFloatObject *v, FILE *fp, int flags)
static PyObject *
float_repr(PyFloatObject *v)
{
#ifdef Py_BROKEN_REPR
char buf[30];
format_float_repr(buf, v);
#else
char buf[100];
format_float(buf, sizeof(buf), v, PREC_REPR);
#endif
return PyString_FromString(buf);
}
@ -1391,9 +1400,11 @@ _PyFloat_Init(void)
double_format = detected_double_format;
float_format = detected_float_format;
#ifdef Py_BROKEN_REPR
/* Initialize floating point repr */
_PyFloat_DigitsInit();
#endif
}
void

View File

@ -484,10 +484,10 @@
<File
RelativePath="..\Objects\dictobject.c">
</File>
<File
<!--File
RelativePath="..\Objects\doubledigits.c">
</File>
<File
</File-->
<File
RelativePath="..\PC\dl_nt.c">
</File>
<File

View File

@ -819,10 +819,10 @@
RelativePath="..\..\Objects\dictobject.c"
>
</File>
<File
<!--File
RelativePath="..\..\Objects\doubledigits.c"
>
</File>
</File-->
<File
RelativePath="..\..\Objects\enumobject.c"
>

View File

@ -1370,10 +1370,10 @@
RelativePath="..\Objects\dictobject.c"
>
</File>
<File
<!--File
RelativePath="..\Objects\doubledigits.c"
>
</File>
</File-->
<File
RelativePath="..\Objects\enumobject.c"
>