aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorPaul Eggert2011-04-19 23:24:51 -0700
committerPaul Eggert2011-04-19 23:24:51 -0700
commit8b9587d73b579fb2fdd0eaaa1ed5fd608653e522 (patch)
tree2f0c598b1d7bfe1e08fdf7b36fce973d7cbd657e /src/ChangeLog
parent602ea69dc7a93969742958ee6af3feae23cd1e02 (diff)
downloademacs-8b9587d73b579fb2fdd0eaaa1ed5fd608653e522.tar.gz
emacs-8b9587d73b579fb2fdd0eaaa1ed5fd608653e522.zip
Make the Lisp reader and string-to-float more consistent.
* data.c (atof): Remove decl; no longer used or needed. (Fstring_to_number): Use new string_to_float function, to be consistent with how the Lisp reader treats infinities and NaNs. Do not assume that floating-point numbers represent EMACS_INT without losing information; this is not true on most 64-bit hosts. Avoid double-rounding errors, by insisting on integers when parsing non-base-10 numbers, as the documentation specifies. Report integer overflow instead of silently converting to integers. * lisp.h (string_to_float): New decl, replacing ... (isfloat_string): Remove. * lread.c (read1): Do not accept +. and -. as integers; this appears to have been a coding error. Similarly, do not accept strings like +-1e0 as floating point numbers. Do not report overflow for some integer overflows and not others; instead, report them all. Break out the floating-point parsing into a new function string_to_float, so that Fstring_to_number parses floating point numbers consistently with the Lisp reader. (string_to_float): New function, replacing isfloat_string. This function checks for valid syntax and produces the resulting Lisp float number too.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4a675cc96c6..c232c242fd7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,28 @@
12011-04-20 Paul Eggert <eggert@cs.ucla.edu>
2
3 Make the Lisp reader and string-to-float more consistent.
4 * data.c (atof): Remove decl; no longer used or needed.
5 (Fstring_to_number): Use new string_to_float function, to be
6 consistent with how the Lisp reader treats infinities and NaNs.
7 Do not assume that floating-point numbers represent EMACS_INT
8 without losing information; this is not true on most 64-bit hosts.
9 Avoid double-rounding errors, by insisting on integers when
10 parsing non-base-10 numbers, as the documentation specifies.
11 Report integer overflow instead of silently converting to
12 integers.
13 * lisp.h (string_to_float): New decl, replacing ...
14 (isfloat_string): Remove.
15 * lread.c (read1): Do not accept +. and -. as integers; this
16 appears to have been a coding error. Similarly, do not accept
17 strings like +-1e0 as floating point numbers. Do not report
18 overflow for some integer overflows and not others; instead,
19 report them all. Break out the floating-point parsing into a new
20 function string_to_float, so that Fstring_to_number parses
21 floating point numbers consistently with the Lisp reader.
22 (string_to_float): New function, replacing isfloat_string.
23 This function checks for valid syntax and produces the resulting
24 Lisp float number too.
25
12011-04-19 Eli Zaretskii <eliz@gnu.org> 262011-04-19 Eli Zaretskii <eliz@gnu.org>
2 27
3 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of 28 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of