diff options
| author | Paul Eggert | 2011-04-19 23:24:51 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-19 23:24:51 -0700 |
| commit | 8b9587d73b579fb2fdd0eaaa1ed5fd608653e522 (patch) | |
| tree | 2f0c598b1d7bfe1e08fdf7b36fce973d7cbd657e /src/ChangeLog | |
| parent | 602ea69dc7a93969742958ee6af3feae23cd1e02 (diff) | |
| download | emacs-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/ChangeLog | 25 |
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 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-04-19 Eli Zaretskii <eliz@gnu.org> | 26 | 2011-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 |