Commit 8551be35 authored by Christian Heimes's avatar Christian Heimes

The new float repr causes too much trouble and pain. I'm disabling the feature...

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...
parent 00192153
...@@ -134,7 +134,8 @@ def test_main(): ...@@ -134,7 +134,8 @@ def test_main():
FormatFunctionsTestCase, FormatFunctionsTestCase,
UnknownFormatTestCase, UnknownFormatTestCase,
IEEEFormatTestCase, IEEEFormatTestCase,
ReprTestCase) #ReprTestCase
)
if __name__ == '__main__': if __name__ == '__main__':
test_main() test_main()
...@@ -299,7 +299,6 @@ OBJECT_OBJS= \ ...@@ -299,7 +299,6 @@ OBJECT_OBJS= \
Objects/genobject.o \ Objects/genobject.o \
Objects/fileobject.o \ Objects/fileobject.o \
Objects/floatobject.o \ Objects/floatobject.o \
Objects/doubledigits.o \
Objects/frameobject.o \ Objects/frameobject.o \
Objects/funcobject.o \ Objects/funcobject.o \
Objects/intobject.o \ Objects/intobject.o \
......
...@@ -306,6 +306,7 @@ PyFloat_AsStringEx(char *buf, PyFloatObject *v, int precision) ...@@ -306,6 +306,7 @@ PyFloat_AsStringEx(char *buf, PyFloatObject *v, int precision)
format_float(buf, 100, v, precision); format_float(buf, 100, v, precision);
} }
#ifdef Py_BROKEN_REPR
/* The following function is based on Tcl_PrintDouble, /* The following function is based on Tcl_PrintDouble,
* from tclUtil.c. * from tclUtil.c.
*/ */
...@@ -407,6 +408,8 @@ format_float_repr(char *buf, PyFloatObject *v) ...@@ -407,6 +408,8 @@ format_float_repr(char *buf, PyFloatObject *v)
format_double_repr(buf, PyFloat_AS_DOUBLE(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 /* Macro and helper that convert PyObject obj to a C double and store
the value in dbl; this replaces the functionality of the coercion the value in dbl; this replaces the functionality of the coercion
slot function. If conversion to double raises an exception, obj is slot function. If conversion to double raises an exception, obj is
...@@ -491,8 +494,14 @@ float_print(PyFloatObject *v, FILE *fp, int flags) ...@@ -491,8 +494,14 @@ float_print(PyFloatObject *v, FILE *fp, int flags)
static PyObject * static PyObject *
float_repr(PyFloatObject *v) float_repr(PyFloatObject *v)
{ {
#ifdef Py_BROKEN_REPR
char buf[30]; char buf[30];
format_float_repr(buf, v); format_float_repr(buf, v);
#else
char buf[100];
format_float(buf, sizeof(buf), v, PREC_REPR);
#endif
return PyString_FromString(buf); return PyString_FromString(buf);
} }
...@@ -1391,9 +1400,11 @@ _PyFloat_Init(void) ...@@ -1391,9 +1400,11 @@ _PyFloat_Init(void)
double_format = detected_double_format; double_format = detected_double_format;
float_format = detected_float_format; float_format = detected_float_format;
#ifdef Py_BROKEN_REPR
/* Initialize floating point repr */ /* Initialize floating point repr */
_PyFloat_DigitsInit(); _PyFloat_DigitsInit();
#endif
} }
void void
......
...@@ -484,10 +484,10 @@ ...@@ -484,10 +484,10 @@
<File <File
RelativePath="..\Objects\dictobject.c"> RelativePath="..\Objects\dictobject.c">
</File> </File>
<File <!--File
RelativePath="..\Objects\doubledigits.c"> RelativePath="..\Objects\doubledigits.c">
</File> </File-->
<File <File
RelativePath="..\PC\dl_nt.c"> RelativePath="..\PC\dl_nt.c">
</File> </File>
<File <File
......
...@@ -819,10 +819,10 @@ ...@@ -819,10 +819,10 @@
RelativePath="..\..\Objects\dictobject.c" RelativePath="..\..\Objects\dictobject.c"
> >
</File> </File>
<File <!--File
RelativePath="..\..\Objects\doubledigits.c" RelativePath="..\..\Objects\doubledigits.c"
> >
</File> </File-->
<File <File
RelativePath="..\..\Objects\enumobject.c" RelativePath="..\..\Objects\enumobject.c"
> >
......
...@@ -1370,10 +1370,10 @@ ...@@ -1370,10 +1370,10 @@
RelativePath="..\Objects\dictobject.c" RelativePath="..\Objects\dictobject.c"
> >
</File> </File>
<File <!--File
RelativePath="..\Objects\doubledigits.c" RelativePath="..\Objects\doubledigits.c"
> >
</File> </File-->
<File <File
RelativePath="..\Objects\enumobject.c" RelativePath="..\Objects\enumobject.c"
> >
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment