math: Provide FP_ILOGB0 and FP_ILOGBNAN.
[gnulib.git] / ChangeLog
index 0076e06..00493ce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,407 @@
+2012-04-03  Bruno Haible  <bruno@clisp.org>
+
+       math: Provide FP_ILOGB0 and FP_ILOGBNAN.
+       * lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Define fallback.
+       * tests/test-math.c: Check that FP_ILOGB0, FP_ILOGBNAN are defined.
+       (main): Check their values.
+       * doc/posix-headers/math.texi: Mention the FP_ILOGB0, FP_ILOGBNAN
+       problem.
+
+2012-04-03  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'logbl-ieee'.
+       * modules/logbl-ieee-tests: New file.
+       * tests/test-logbl-ieee.c: New file.
+
+       New module 'logbl-ieee'.
+       * modules/logbl-ieee: New file.
+
+       Tests for module 'logb-ieee'.
+       * modules/logb-ieee-tests: New file.
+       * tests/test-logb-ieee.c: New file.
+
+       New module 'logb-ieee'.
+       * modules/logb-ieee: New file.
+
+       Tests for module 'logbf-ieee'.
+       * modules/logbf-ieee-tests: New file.
+       * tests/test-logbf-ieee.c: New file.
+       * tests/test-logb-ieee.h: New file.
+
+       New module 'logbf-ieee'.
+       * modules/logbf-ieee: New file.
+
+2012-04-03  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'logbl'.
+       * modules/logbl-tests: New file.
+       * tests/test-logbl.c: New file.
+
+       New module 'logbl'.
+       * lib/math.in.h (logbl): New declaration.
+       * lib/logbl.c: New file.
+       * m4/logbl.m4: New file.
+       * m4/math_h.m4 (gl_MATH_H): Test whether logbl is declared.
+       (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBL, HAVE_LOGBL,
+       REPLACE_LOGBL.
+       * modules/math (Makefile.am): Substitute GNULIB_LOGBL, HAVE_LOGBL,
+       REPLACE_LOGBL.
+       * modules/logbl: New file.
+       * tests/test-math-c++.cc: Check the declaration of logbl.
+       * doc/posix-functions/logbl.texi: Mention the new module.
+
+2012-04-02  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'logbf'.
+       * modules/logbf-tests: New file.
+       * tests/test-logbf.c: New file.
+
+       New module 'logbf'.
+       * lib/math.in.h (logbf): New declaration.
+       * lib/logbf.c: New file.
+       * m4/logbf.m4: New file.
+       * m4/math_h.m4 (gl_MATH_H): Test whether logbf is declared.
+       (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBF, HAVE_LOGBF,
+       REPLACE_LOGBF.
+       * modules/math (Makefile.am): Substitute GNULIB_LOGBF, HAVE_LOGBF,
+       REPLACE_LOGBF.
+       * modules/logbf: New file.
+       * tests/test-math-c++.cc: Check the declaration of logbf.
+       * doc/posix-functions/logbf.texi: Mention the new module.
+
+2012-04-02  Bruno Haible  <bruno@clisp.org>
+
+       logb tests: More tests.
+       * tests/test-logb.h: New file, based on tests/test-logb.c and
+       tests/test-frexp.h.
+       * tests/test-logb.c: Include minus-zero.h, test-logb.h.
+       (main): Just invoke test_function.
+       * modules/logb-tests (Files): Add tests/test-logb.h,
+       tests/minus-zero.h, tests/randomd.c.
+       (Makefile.am): Add randomd.c to test_logb_SOURCES.
+
+       logb: Provide replacement and workarounds.
+       * lib/math.in.h (logb): Ensure declaration. Replace if REPLACE_LOGB
+       is 1.
+       * lib/logb.c: New file.
+       * m4/logb.m4 (gl_FUNC_LOGB_WORKS): New macro.
+       (gl_FUNC_LOGB): Invoke it. Set HAVE_LOGB, REPLACE_LOGB.
+       * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGB.
+       * modules/math (Makefile.am): Substitute REPLACE_LOGB.
+       * modules/logb (Files): Add lib/logb.c.
+       (Depends-on): Add isfinite, frexp, isnand.
+       (configure.ac): Compile the replacement code logb.c if needed.
+       * tests/test-math-c++.cc: Check the declaration of logb.
+       * doc/posix-functions/logb.texi: Mention the replacement and the bug
+       with subnormal numbers.
+
+2012-04-02  Bruno Haible  <bruno@clisp.org>
+
+       log10* tests: Speed up.
+       * tests/test-log10.h (test_function): Reduce amount of random numbers
+       to test.
+
+2012-04-01  Bruno Haible  <bruno@clisp.org>
+
+       logf-ieee: Fix test whether logf works.
+       * m4/logf.m4 (gl_FUNC_LOGF): Fix typo in test program.
+
+2012-04-01  Bruno Haible  <bruno@clisp.org>
+
+       log10l: Work around log10l-ieee test failure on IRIX 6.5.
+       * lib/log10l.c: Include <float.h>
+       (log10l): On IRIX, normalize the +Infinity value.
+       * modules/log10l (Depends-on): Add 'float'.
+       * doc/posix-functions/log10l.texi: Mention the IRIX problem with
+       +Infinity.
+
+       log10f-ieee: Work around test failure on NetBSD 5.1.
+       * m4/log10f-ieee.m4: New file.
+       * m4/log10f.m4 (gl_FUNC_LOG10F): If gl_FUNC_LOG10F_IEEE is present,
+       test whether log10f works with a negative argument. Replace it if not.
+       * lib/log10f.c (log10f): For negative arguments, return NaN.
+       * modules/log10f-ieee (Files): Add m4/log10f-ieee.m4.
+       (configure.ac): Invoke gl_FUNC_LOG10F_IEEE.
+       * doc/posix-functions/log10f.texi: Mention the log10f-ieee module.
+
+       log10f-ieee: Work around test failure on Solaris 9.
+       * modules/log10f-ieee (Depends-on): Add log10-ieee.
+       (configure.ac): Require gl_FUNC_LOG10F.
+
+       log10-ieee: Work around test failure on NetBSD 5.1 and Solaris 11.
+       * m4/log10-ieee.m4: New file.
+       * m4/log10.m4 (gl_FUNC_LOG10): If gl_FUNC_LOG10_IEEE is present, test
+       whether log10 works with a negative argument. Replace it if not.
+       * lib/log10.c (log10): For negative arguments, return NaN.
+       * modules/log10-ieee (Files): Add m4/log10-ieee.m4.
+       (configure.ac): Invoke gl_FUNC_LOG10_IEEE.
+       * doc/posix-functions/log10.texi: Mention the log10-ieee module.
+
+       Tests for module 'log10l-ieee'.
+       * modules/log10l-ieee-tests: New file.
+       * tests/test-log10l-ieee.c: New file.
+
+       New module 'log10l-ieee'.
+       * modules/log10l-ieee: New file.
+
+       Tests for module 'log10-ieee'.
+       * modules/log10-ieee-tests: New file.
+       * tests/test-log10-ieee.c: New file.
+
+       New module 'log10-ieee'.
+       * modules/log10-ieee: New file.
+
+       Tests for module 'log10f-ieee'.
+       * modules/log10f-ieee-tests: New file.
+       * tests/test-log10f-ieee.c: New file.
+       * tests/test-log10-ieee.h: New file.
+
+       New module 'log10f-ieee'.
+       * modules/log10f-ieee: New file.
+
+2012-04-01  Bruno Haible  <bruno@clisp.org>
+
+       log10l: Work around AIX 5.1, IRIX 6.5, OSF/1 5.1 bug.
+       * lib/math.in.h (log10l): Override if REPLACE_LOG10L is 1.
+       * lib/log10l.c (log10l): If log10l exists, use it and provide just the
+       workaround.
+       * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): New macro.
+       (gl_FUNC_LOG10L): Invoke it. Set REPLACE_LOG10L.
+       * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10L.
+       * modules/math (Makefile.am): Substitute REPLACE_LOG10L.
+       * modules/log10l (configure.ac): Consider REPLACE_LOG10L.
+       (Depends-on): Update conditions.
+       * doc/posix-functions/log10l.texi: Mention the MSVC9, AIX 5.1,
+       IRIX 6.5, OSF/1 5.1 problems.
+
+2012-04-01  Bruno Haible  <bruno@clisp.org>
+
+       log10f: Work around OSF/1 5.1 bug.
+       * lib/math.in.h (log10f): Override if REPLACE_LOG10F is 1.
+       * lib/log10f.c (log10f): If logf exists, use it and provide just the
+       workaround.
+       * m4/log10f.m4 (gl_FUNC_LOG10F_WORKS): New macro.
+       (gl_FUNC_LOG10F): Invoke it. Set REPLACE_LOG10F.
+       * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10F.
+       * modules/math (Makefile.am): Substitute REPLACE_LOG10F.
+       * modules/log10f (configure.ac): Consider REPLACE_LOG10F.
+       (Depends-on): Update conditions.
+       * doc/posix-functions/log10f.texi: Mention the OSF/1 5.1 problem.
+
+2012-04-01  Bruno Haible  <bruno@clisp.org>
+
+       log10: Work around OSF/1 5.1 bug.
+       * lib/math.in.h (log10): New declaration.
+       * lib/log10.c: New file.
+       * m4/log10.m4 (gl_FUNC_LOG10_WORKS): New macro.
+       (gl_FUNC_LOG10): Invoke it. Set REPLACE_LOG10.
+       * m4/math_h.m4 (gl_MATH_H): Test whether log10 is declared.
+       (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG10, REPLACE_LOG10.
+       * modules/math (Makefile.am): Substitute GNULIB_LOG10, REPLACE_LOG10.
+       * modules/log10 (Files): Add lib/log10.c.
+       (Depends-on): Add math.
+       (configure.ac): If REPLACE_LOG10 is 1, compile an override.
+       * tests/test-math-c++.cc: Check the declaration of log10.
+       * doc/posix-functions/log10.texi: Mention the OSF/1 5.1 problem.
+
+2012-03-31  Bruno Haible  <bruno@clisp.org>
+
+       log10l tests: More tests.
+       * modules/log10l-tests (Files): Add tests/test-log10l.h,
+       tests/minus-zero.h, tests/randoml.c.
+       (Makefile.am): Add randoml.c to test_log10l_SOURCES.
+       * tests/test-log10l.c: Include <float.h>, minus-zero.h, test-log10l.h.
+       (main): Invoke test_function.
+
+       log10f tests: More tests.
+       * modules/log10f-tests (Files): Add tests/test-log10.h,
+       tests/minus-zero.h, tests/randomf.c.
+       (Makefile.am): Add randomf.c to test_log10f_SOURCES.
+       * tests/test-log10f.c: Include <float.h>, minus-zero.h, test-log10.h.
+       (main): Invoke test_function.
+
+       log10 tests: More tests.
+       * tests/test-log10.h: New file.
+       * modules/log10-tests (Files): Add tests/test-log10.h,
+       tests/minus-zero.h, tests/randomd.c.
+       (Makefile.am): Add randomd.c to test_log10_SOURCES.
+       * tests/test-log10.c: Include <float.h>, minus-zero.h, test-log10.h.
+       (main): Invoke test_function.
+
+2012-03-31  Simon Josefsson  <simon@josefsson.org>
+
+       fflush: Fix syntax error.
+       * lib/fflush.c: Include unused-parameter.h, needed for
+       _GL_UNUSED_PARAMETER.
+       * modules/fflush (Depends-on): Add snippet/unused-parameter.
+
+2012-03-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: pacify GCC when compiling GRUB
+       * lib/regcomp.c (init_dfa): Make a pointer 'const', to avoid
+       a diagnostic.  Reported by Vladimir Serbinenko in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00163.html>.
+
+2012-03-29  Eric Blake  <eblake@redhat.com>
+
+       stdio: don't assume gets any more
+       * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
+       support.
+       * modules/stdio (Makefile.am): Likewise.
+       * lib/stdio-read.c (gets): Likewise.
+       * tests/test-stdio-c++.cc: Likewise.
+       * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
+       * lib/stdio.in.h (gets): Make warning occur in more places.
+       * doc/posix-functions/gets.texi (gets): Update documentation.
+       Reported by Christer Solskogen.
+
+       maint.mk: fix syntax checks without exclusions
+       * top/maint.mk (_sc_search_regexp): Allow for empty variable.
+       Reported by Daniel P. Berrange.
+
+       strerror_r: avoid compiler warning
+       * lib/strerror_r.c (strerror_r): Hoist extern declaration to top
+       level.
+
+       fflush: avoid compiler warning
+       * lib/fflush.c (update_fpos_cache): Mark variables that are
+       potentially unused.
+
+2012-03-25  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'localeconv'.
+       * modules/localeconv-tests: New file.
+       * tests/test-localeconv.c: New file.
+
+       New module 'localeconv'.
+       * lib/locale.in.h (localeconv): New declaration.
+       * lib/localeconv.c: New file.
+       * m4/localeconv.m4: New file.
+       * m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_LOCALECONV,
+       REPLACE_LOCALECONV.
+       * modules/locale (Makefile.am): Substitute GNULIB_LOCALECONV,
+       REPLACE_LOCALECONV.
+       * modules/localeconv: New file.
+       * modules/nl_langinfo (Depends-on): Add localeconv.
+       * modules/human (Depends-on): Likewise.
+       * doc/posix-functions/localeconv.texi: Mention the new module.
+
+2012-03-25  Bruno Haible  <bruno@clisp.org>
+
+       locale: Provide a complete 'struct lconv'.
+       * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
+       'struct lconv' does not contain int_p_cs_precedes.
+       * tests/test-locale.c (main): Check that 'struct lconv' is complete.
+       * doc/posix-headers/locale.texi: Update.
+
+       locale: Provide a complete 'struct lconv' on Solaris 10, 11.
+       * m4/locale_h.m4 (gl_LOCALE_H): On Solaris, define _LCONV_C99.
+       * doc/posix-headers/locale.texi: Update.
+
+       locale: Provide a working 'struct lconv'.
+       * lib/locale.in.h (lconv): Override if REPLACE_STRUCT_LCONV is 1.
+       * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
+       'struct lconv' does not even contain decimal_point.
+       (gl_LOCALE_H_DEFAULTS): Initialize REPLACE_STRUCT_LCONV.
+       * modules/locale (Makefile.am): Substitute REPLACE_STRUCT_LCONV.
+       * tests/test-locale.c (main): Check that 'struct lconv' is complete.
+       * doc/posix-headers/locale.texi: Mention the problems with
+       'struct lconv'.
+       Reported by Gianluigi Tiesi <sherpya@netfarm.it>.
+
+2012-03-24  Bruno Haible  <bruno@clisp.org>
+
+       Enable common subexpression optimization in GCC.
+       * lib/unitypes.in.h (_UC_ATTRIBUTE_CONST, _UC_ATTRIBUTE_PURE): New
+       macros.
+       * lib/unicase.in.h (uc_toupper, uc_tolower, uc_totitle): Declare with
+       GCC attribute 'const'.
+       (uc_locale_language): Declare with GCC attribute 'pure'.
+       * lib/unicase/caseprop.h (uc_is_cased, uc_is_case_ignorable): Declare
+       with GCC attribute 'const'.
+       * lib/unictype.in.h (uc_is_general_category_withtable,
+       uc_combining_class, uc_combining_class_name,
+       uc_combining_class_long_name, uc_bidi_class_name,
+       uc_bidi_category_name, uc_bidi_class_long_name, uc_bidi_class,
+       uc_bidi_category, uc_is_bidi_class, uc_is_bidi_category,
+       uc_decimal_value, uc_digit_value, uc_numeric_value,
+       uc_joining_type_name, uc_joining_type_long_name, uc_joining_type,
+       uc_joining_group_name, uc_joining_group, uc_is_property_*, uc_script,
+       uc_block, uc_is_c_whitespace, uc_is_java_whitespace,
+       uc_c_ident_category, uc_java_ident_category, uc_is_alnum, uc_is_alpha,
+       uc_is_cntrl, uc_is_digit, uc_is_graph, uc_is_lower, uc_is_print,
+       uc_is_punct, uc_is_space, uc_is_upper, uc_is_xdigit, uc_is_blank):
+       Declare with GCC attribute 'const'.
+       (uc_general_category_name, uc_general_category_long_name,
+       uc_general_category_byname, uc_general_category,
+       uc_is_general_category, uc_combining_class_byname,
+       uc_bidi_class_byname, uc_bidi_category_byname, uc_joining_type_byname,
+       uc_joining_group_byname, uc_script_byname, uc_is_script, uc_is_block):
+       Declare with GCC attribute 'pure'.
+       * lib/unigbrk.in.h (uc_graphemeclusterbreak_property,
+       uc_is_grapheme_break, u8_grapheme_next, u16_grapheme_next,
+       u32_grapheme_next, u8_grapheme_prev, u16_grapheme_prev,
+       u32_grapheme_prev, lib/uniname.in.h (unicode_name_character): Declare
+       with GCC attribute 'pure'.
+       * lib/uninorm.in.h (uc_composition): Declare with GCC attribute
+       'const'.
+       (uninorm_decomposing_form): Declare with GCC attribute 'pure'.
+       * lib/unistr.in.h (): Declare with GCC attribute 'const'.
+       (u8_check, u16_check, u32_check, u8_mblen, u16_mblen, u32_mblen,
+       u8_cmp, u16_cmp, u32_cmp, u8_cmp2, u16_cmp2, u32_cmp2, u8_chr, u16_chr,
+       u32_chr, u8_mbsnlen, u16_mbsnlen, u32_mbsnlen, u8_strmblen,
+       u16_strmblen, u32_strmblen, u8_strlen, u16_strlen, u32_strlen,
+       u8_strnlen, u16_strnlen, u32_strnlen, u8_strcmp_gnu, u8_strcmp,
+       u16_strcmp, u32_strcmp, u8_strncmp, u16_strncmp, u32_strncmp,
+       u8_strchr, u16_strchr, u32_strchr, u8_strrchr, u16_strrchr,
+       u32_strrchr, u8_strcspn, u16_strcspn, u32_strcspn, u8_strspn,
+       u16_strspn, u32_strspn, u8_strpbrk, u16_strpbrk, u32_strpbrk,
+       u8_strstr, u16_strstr, u32_strstr, u8_startswith, u16_startswith,
+       u32_startswith, u8_endswith, u16_endswith, u32_endswith): Declare with
+       GCC attribute 'pure'.
+       * lib/uniwbrk.in.h (uc_wordbreak_property): Declare with GCC attribute
+       'const'.
+       * lib/uniwidth.in.h (uc_width): Simplify declaration.
+       (u8_width, u16_width, u32_width, u8_strwidth, u16_strwidth,
+       u32_strwidth): Declare with GCC attribute 'pure'.
+
+       Enable common subexpression optimization in GCC.
+       * lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
+       (alphasort): Declare with GCC attribute 'pure'.
+       * lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
+       (atoll): Declare with GCC attribute 'pure'.
+       * lib/string.in.h (mbslen, mbsnlen, mbschr, mbsrchr, mbsstr,
+       mbscasecmp, mbsncasecmp, mbspcasecmp, mbscasestr, mbscspn, mbspbrk,
+       mbsspn, strverscmp): Declare with GCC attribute 'pure'.
+       * lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
+       (btowc, wctob, wcwidth, wmemchr, wmemcmp, wcslen, wcsnlen, wcscmp,
+       wcsncmp, wcscasecmp, wcsncasecmp, wcschr, wcsrchr, wcscspn, wcsspn,
+       wcspbrk, wcsstr, wcswidth): Declare with GCC attribute 'pure'.
+
+2012-03-24  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Avoid unintended error output from 'cmp'.
+       * gnulib-tool (func_add_file, func_update_file, func_import): Use
+       "cmp -s", not "cmp > /dev/null".
+
+2012-03-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       gnulib-tool: fix imprecise comments w.r.t. an automake bug
+
+       It's not just Automake versions < 1.9b that creates an empty
+       pkgdatadir at installation time if pkgdata_DATA is specified
+       to empty; modern automake versions do this as well, at least
+       until automake 1.11.4 (not yet released at the moment of writing,
+       but soon to appear).  That behaviour was generally considered a
+       feature rather than a bug, at least until this discussion:
+       <http://lists.gnu.org/archive/html/automake/2012-03/msg00014.html>
+
+       See also automake bugs #10997 and #11030.
+
+       * gnulib-tool (func_emit_lib_Makefile_am): Adjust comments.  Add
+       reference to relevant automake bug numbers.
+       (func_emit_tests_Makefile_am): Likewise.
+
 2012-03-20  Reuben Thomas  <rrt@sc3d.org>
 
        announce-gen: use Digest::SHA when possible
 
        logl: Work around OSF/1 5.1 bug.
        * lib/math.in.h (logl): Override if REPLACE_LOGL is 1.
-       * lib/logl.c (logl): If logf exists, use it and provide just the
+       * lib/logl.c (logl): If logl exists, use it and provide just the
        workaround.
        * m4/logl.m4 (gl_FUNC_LOGL_WORKS): New macro.
        (gl_FUNC_LOGL): Invoke it. Set REPLACE_LOGL.