The porting part of this patch fixes bugs on non-IEEE platforms
with frexp, ldexp, logb.
* admin/CPP-DEFINES (HAVE_CBRT, HAVE_LOGB, logb): Remove.
* configure.ac (logb, cbrt): Do not check for these functions,
as they are not being used.
* doc/lispref/numbers.texi (Float Basics, Arithmetic Operations, Math Functions):
Document that / and mod (with floating point arguments), along
with asin, acos, log, log10, expt and sqrt, return special values
instead of signaling exceptions.
(Float Basics): Document that logb operates on the absolute value
of its argument.
(Math Functions): Document that (log ARG BASE) also returns NaN if
BASE is negative. Document that (expt X Y) returns NaN if X is a
finite negative number and Y a finite non-integer.
* etc/NEWS: Document NaNs versus signaling-error change.
* src/data.c, src/lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
Now static.
* src/floatfns.c: Simplify discussion of functions that Emacs doesn't
support, by removing commented-out code and briefly listing the
C89 functions excluded. The commented-out stuff was confusing
maintenance, e.g., we thought we needed cbrt but it was commented out.
(logb): Remove decl; no longer needed.
(isfinite): New macro, if not already supplied.
(isnan): Don't replace any existing macro.
(Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
are present on all C89 platforms.
(Ffrexp): Do not special-case zero, as frexp does the right thing
for that case.
(Flogb): Do not use logb, as it doesn't have the desired meaning
on hosts that use non-base-2 floating point. Instead, stick with
frexp, which is C89 anyway. Do not pass an infinity or a NaN to
frexp, to avoid getting an unspecified result.
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Copyright (C) 2001-2012 Free Software Foundation, Inc.
See the end of the file for license conditions.
The admin directory
This directory contains scripts and other things useful for developing
and maintaining Emacs. These files are not part of Emacs releases
because they are not deemed generally useful, and you have to know
what you do when using them.
* Instructions and scripts used to prepare an Emacs release.
** FOR-RELEASE
Living list of activities that must be completed before the next release.
** make-tarball.txt
Instructions to create pretest or release tarballs, announcements, etc.
** admin.el
Utilities for setting version numbers and alike.
** make-announcement, make-changelog-diff
Scripts used to prepare release announcements.
* Scripts that can be used to build and test Emacs.
** build-configs
Build Emacs in various configurations.
** make-emacs
Build Emacs in various ways.
** quick-install-emacs
Install emacs quickly (`incrementally').
** alloc-colors.c
A utility program that allocates a given number of colors on X. Can
be used to debug Emacs with dense colormaps (PseudoColor).
** check-doc-strings
Check doc strings against documentation.
** cus-test.el
Tests for custom types and load problems.
** diff-tar-files
Show files added/removed between two tar files.
Brief description of sub-directories:
charsets scripts for generating charset map files
in ../etc/charsets
unidata scripts for generating character property files
in ../lisp/international
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
end: