head	1.25;
access;
symbols;
locks; strict;
comment	@# @;


1.25
date	2000.04.14.08.12.46;	author bkoz;	state Exp;
branches;
next	1.24;

1.24
date	2000.03.21.06.24.03;	author bkoz;	state Exp;
branches;
next	1.23;

1.23
date	2000.03.14.01.26.25;	author bkoz;	state Exp;
branches;
next	1.22;

1.22
date	2000.02.16.08.39.32;	author bkoz;	state Exp;
branches;
next	1.21;

1.21
date	2000.02.15.22.36.20;	author bkoz;	state Exp;
branches;
next	1.20;

1.20
date	2000.02.09.18.06.34;	author bkoz;	state Exp;
branches;
next	1.19;

1.19
date	99.12.15.04.52.18;	author gdr;	state Exp;
branches;
next	1.18;

1.18
date	99.12.06.08.04.05;	author gdr;	state Exp;
branches;
next	1.17;

1.17
date	99.11.29.18.32.59;	author bkoz;	state Exp;
branches;
next	1.16;

1.16
date	99.10.10.02.58.38;	author bkoz;	state Exp;
branches;
next	1.15;

1.15
date	99.09.21.10.53.42;	author gdr;	state Exp;
branches;
next	1.14;

1.14
date	99.08.24.16.03.52;	author bkoz;	state Exp;
branches;
next	1.13;

1.13
date	99.08.18.08.31.14;	author bkoz;	state Exp;
branches;
next	1.12;

1.12
date	99.06.29.15.41.32;	author bkoz;	state Exp;
branches;
next	1.11;

1.11
date	99.06.28.19.25.25;	author gdr;	state Exp;
branches;
next	1.10;

1.10
date	99.06.28.18.01.19;	author gdr;	state Exp;
branches;
next	1.9;

1.9
date	99.06.25.07.34.31;	author gdr;	state Exp;
branches;
next	1.8;

1.8
date	99.06.07.09.22.29;	author bkoz;	state Exp;
branches;
next	1.7;

1.7
date	99.06.02.18.41.52;	author bkoz;	state Exp;
branches;
next	1.6;

1.6
date	99.05.23.18.48.43;	author gdr;	state Exp;
branches;
next	1.5;

1.5
date	99.05.17.20.03.05;	author bkoz;	state Exp;
branches;
next	1.4;

1.4
date	99.05.14.05.29.47;	author gdr;	state Exp;
branches;
next	1.3;

1.3
date	99.05.06.01.33.37;	author gdr;	state Exp;
branches;
next	1.2;

1.2
date	99.05.05.00.38.58;	author bkoz;	state Exp;
branches;
next	1.1;

1.1
date	99.04.02.13.32.15;	author gdr;	state Exp;
branches;
next	;


desc
@@


1.25
log
@
2000-04-13  Benjamin Kosnik  <bkoz@@haight.cygnus.com>

	* bits/std_fstream.h (filebuf::sync): Need to use the abstracted
	io interface here instead of the libio particulars.

	* config/threads-posix.h: Consistency with stl_config.h.

	* mkcheck.in (CXX_FLAG): Add DDEBUG_ASSERT back in.

2000-04-13  Loren J. Rittle  <ljrittle@@acm.org>

        * mknumeric_limits: Rename generic type template parameter name
        '_T' to '_Tp'.
        * stl/bits/type_traits.h: Ditto.
@
text
@#! /bin/sh

# mknumeric_limits: generates
# - part of bits/std_limits.h completed by gen-num-limits.cc
# - src/limitsMEMBERS.cc that contains the definition of various
#   static data members of specialization of class template numeric_limits
#

echo "running mknumeric_limits"

: ${CXX:=g++}

case `uname` in
    CYGWIN*) 
	LDFLAGS='-nodefaultlibs -lcygwin -lc -lkernel32 -lgcc' ;;
    *) 
	LDFLAGS='-nodefaultlibs -lgcc -lc' ;;
esac

BUILD_DIR=$1
if [ ! -d "$BUILD_DIR" ]; then
  echo "build directory $BUILD_DIR not found, exiting."
  exit 1
fi

if [ ! -d "$BUILD_DIR/bits" ]; then
  mkdir  "$BUILD_DIR/bits"
fi
if [ ! -d "$BUILD_DIR/src" ]; then
  mkdir  "$BUILD_DIR/src"
fi

OUT_H="$BUILD_DIR/bits/std_limits.h"
OUT_C="$BUILD_DIR/src/limitsMEMBERS.cc"

if [ -f $OUT_C ]; then
    rm -f $OUT_H OUT_C
fi

SRC_DIR=$2
if [ ! -d "$SRC_DIR" ]; then
  echo "source directory $SRC_DIR not found, exiting."
  exit 1
fi

XCOMPILE=$3
if [ $XCOMPILE -eq 1 ]; then
  echo "using default values for cross compiles"
  cp $SRC_DIR/bits/limits_generic.h $OUT_H
  cp $SRC_DIR/src/limits_generic.cc $OUT_C
  exit 0;
fi   

cat <<EOF > $OUT_H
// The template and inlines for the -*- C++ -*- numeric_limits classes.

// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library 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 2, or (at your option)
// any later version.

// This library 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 this library; see the file COPYING.  If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.

// As a special exception, you may use this file as part of a free software
// library without restriction.  Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License.  This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.

// Note: this is not a conforming implementation.
// Written by Gabriel Dos Reis <Gabriel.Dos-Reis@@cmla.ens-cachan.fr>

//
// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT!
//

//
// ISO 14882:1998
// 18.2.1
//

#ifndef _CPP_NUMERIC_LIMITS
#define _CPP_NUMERIC_LIMITS 1

#include <bits/c++config.h>
#include <bits/std_cfloat.h>

namespace std {

    enum float_round_style {
        round_indeterminate       = -1,
        round_toward_zero         = 0,
        round_to_nearest          = 1,
        round_toward_infinity     = 2,
        round_toward_neg_infinity = 3
    };

    enum float_denorm_style {
        denorm_indeterminate = -1,
        denorm_absent        = 0,
        denorm_present       = 1
    };

    template<typename _Tp> struct numeric_limits {
        static const bool is_specialized = false;

        static _Tp min() throw() { return static_cast<_Tp>(0); }
        static _Tp max() throw() { return static_cast<_Tp>(0); }

        static const int digits = 0;
        static const int digits10 = 0;
        static const bool is_signed = false;
        static const bool is_integer = false;
        static const bool is_exact = false;
        static const int radix = 0;

        static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
        static _Tp round_error() throw() { return static_cast<_Tp>(0); }

        static const int min_exponent = 0;
        static const int min_exponent10 = 0;
        static const int max_exponent = 0;
        static const int max_exponent10 = 0;

        static const bool has_infinity = false;
        static const bool has_quiet_NaN = false;
        static const bool has_signaling_NaN = false;
        static const float_denorm_style has_denorm = denorm_absent;
        static const bool has_denorm_loss = false;

        static _Tp infinity() throw()  { return static_cast<_Tp>(0); }
        static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
        static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
        static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }

        static const bool is_iec559 = false;
        static const bool is_bounded = false;
        static const bool is_modulo = false;

        static const bool traps = false;
        static const bool tinyness_before = false;
        static const float_round_style round_style = round_toward_zero;
    };

    template<typename _Tp> _Tp __limits_infinity();
    template<typename _Tp> _Tp __limits_quiet_NaN();
    template<typename _Tp> _Tp __limits_signaling_NaN();
    template<typename _Tp> _Tp __limits_denorm_min();

EOF

echo "$CXX $CPPFLAGS -I$BUILD_DIR \
    -o "$BUILD_DIR/src/gen-num-limits" "$SRC_DIR/src/gen-num-limits.cc" \
     $LDFLAGS"

$CXX $CPPFLAGS -I$BUILD_DIR \
    -o "$BUILD_DIR/src/gen-num-limits" "$SRC_DIR/src/gen-num-limits.cc" \
     $LDFLAGS

if [ ! -f "$BUILD_DIR/src/gen-num-limits" ]; then
  echo "gen-num-limits failed to build, exiting."
  exit 1
fi

"$BUILD_DIR/src/gen-num-limits" >> $OUT_H

cat <<EOF >> $OUT_H
} // namespace std

#endif // _CPP_NUMERIC_LIMITS
EOF

trait_name=numeric_limits

cat <<EOF > $OUT_C
// Static data members of -*- C++ -*- numeric_limits classes

// Copyright (C) 1999 Cygnus Solutions
//
// This file is part of the GNU ISO C++ Library.  This library 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 2, or (at your option)
// any later version.

// This library 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 this library; see the file COPYING.  If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.

// As a special exception, you may use this file as part of a free software
// library without restriction.  Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License.  This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.

// Written by Gabriel Dos Reis <Gabriel.Dos-Reis@@cmla.ens-cachan.fr>

//
// ISO C++ 14882:1998
// 18.2.1
//

#include <bits/std_limits.h>
namespace std {
EOF

for type_name in bool char 'signed char' 'unsigned char' \
	    short 'unsigned short' int 'unsigned int' \
	    long 'unsigned long' 'long long' 'unsigned long long' \
	    float double 'long double'
    do
     grep "<$type_name>" $OUT_H >/dev/null 2>&1 || continue
     cat <<EOF >> $OUT_C

    const bool $trait_name<$type_name>::is_specialized;
    const int  $trait_name<$type_name>::digits;
    const int  $trait_name<$type_name>::digits10;
    const bool $trait_name<$type_name>::is_signed;
    const bool $trait_name<$type_name>::is_integer;
    const bool $trait_name<$type_name>::is_exact;
    const int  $trait_name<$type_name>::radix;
    const int  $trait_name<$type_name>::min_exponent;
    const int  $trait_name<$type_name>::min_exponent10;
    const int  $trait_name<$type_name>::max_exponent;
    const int  $trait_name<$type_name>::max_exponent10;
    const bool $trait_name<$type_name>::has_infinity;
    const bool $trait_name<$type_name>::has_quiet_NaN;
    const bool $trait_name<$type_name>::has_signaling_NaN;
    const float_denorm_style $trait_name<$type_name>::has_denorm;
    const bool $trait_name<$type_name>::has_denorm_loss;
    const bool $trait_name<$type_name>::is_iec559;
    const bool $trait_name<$type_name>::is_bounded;
    const bool $trait_name<$type_name>::is_modulo;
    const bool $trait_name<$type_name>::traps;
    const bool $trait_name<$type_name>::tinyness_before;
    const float_round_style $trait_name<$type_name>::round_style;
EOF

done

cat <<EOF >> $OUT_C
} // namespace std


EOF
@


1.24
log
@

2000-03-20  Benjamin Kosnik  <bkoz@@cygnus.com>

        * *: Change copyright holder from "Cygnus Solutions" to "Free
	Software Foundation, Inc."

	* docs/configopts.html: Explain what "hella versions" means.
	* docs/install.html: Some tweaks--nice job on this Phil.
	* docs/documentation.html: Add a direct link to configuration options.

	* src/Makefile.am (OPTIMIZE_CXXFLAGS): Add in extras.
	* docs/17_intro/RELEASE-NOTES (New): Add.
	* bits/c++config.h (__GLIBCPP__): Bump version.

	* config/c_io_libio.cc (__basic__file(__c_lock*)): Change argument
	type to match prototype.
@
text
@d118 1
a118 1
    template<typename _T> struct numeric_limits {
d121 2
a122 2
        static _T min() throw() { return static_cast<_T>(0); }
        static _T max() throw() { return static_cast<_T>(0); }
d131 2
a132 2
        static _T epsilon() throw() { return static_cast<_T>(0); }
        static _T round_error() throw() { return static_cast<_T>(0); }
d145 4
a148 4
        static _T infinity() throw()  { return static_cast<_T>(0); }
        static _T quiet_NaN() throw() { return static_cast<_T>(0); }
        static _T signaling_NaN() throw() { return static_cast<_T>(0); }
        static _T denorm_min() throw() { return static_cast<_T>(0); }
d159 4
a162 4
    template<typename _T> _T __limits_infinity();
    template<typename _T> _T __limits_quiet_NaN();
    template<typename _T> _T __limits_signaling_NaN();
    template<typename _T> _T __limits_denorm_min();
@


1.23
log
@
2000-03-13  Benjamin Kosnik  <bkoz@@cygnus.com>

	* acconfig.h: Add bits.
	* configure.in: Move AM_PROG_LIBTOOL up in file.
	Tweak cross compiling info.
	* configure: Regenerate.

	* mknumeric_limits (XCOMPILE): Echo compilation line for
	gen-num-limits.cc

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Add aix checks.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* config/aix/ctype.cc (ctype): Tweak.
	* config/aix/bits/ctype_base.h (ctype_base): Tweak.
	* config/aix/bits/ctype_specializations.h: New file.
@
text
@d57 1
a57 1
// Copyright (C) 1999 Cygnus Solutions
@


1.22
log
@
2000-02-15  Benjamin Kosnik  <bkoz@@cygnus.com>

	Jim Parsons  <parsons@@clearway.com>
	* testsuite/27_io/istream_unformatted.cc (test06): Add test.
	* bits/istream.tcc (read): Set failbit if !good(). Don't increment
	gcount if eof.
	(readsome): Same.

	Michel Decima  <michel.decima@@cnet.francetelecom.fr>
	* testsuite/27_io/streambuf.cc: Add test.
	* bits/streambuf.tcc (xsgetn): Don't test for valid mode.
	(xsputn): Same.

	* src/Makefile.am (AM_CXXFLAGS): Pass down AC_CXXFLAGS,
	OPTIMIZE_CXXFLAGS, etc. So --enable-debug and --enable-namespaces
	will work correctly, for instance.
	* src/Makefile.in: Regenerate.

	* bits/locale_facets.h: Fix merge error.
	(num_put::put(unsigned long long): And here.
	* mknumeric_limits (trait_name): Same.
@
text
@d166 4
@


1.21
log
@
2000-02-15  Chip Salzenberg  <chip@@valinux.com>

        Support 'configure --enable-long-long'.
        * bits/c++config.h (_GLIBCPP_USE_LONG_LONG): Remove.
        * stl/bits/stl_config.h (__STL_LONG_LONG): Remove '#if 0'.
        * acconfig.h (_GLIBCPP_USE_LONG_LONG): Add.  Default to undef.
        * acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Define flag macro.
        * configure.in (GLIBCPP_ENABLE_LONG_LONG): Use it.

	* aclocal.m4: Regenerate.
        * config.h.in: Regenerate.
        * configure: Regenerate.

2000-02-15  Chip Salzenberg  <chip@@valinux.com>

        Improve (complete?) 'long long' support.
        * mknumeric_limits: Call $CXX with $CPPFLAGS.  Define statics
        for {,unsigned} long long if the limits header declares them.
        * src/gen-num-limits.cc: Include <bits/c++config.h> early.
        (__USE_GNU, _GNU_SOURCE): Define if _GLIBC_USE_LONG_LONG.
        (long long, unsigned long long): Gen limits if _GLIBC_USE_LONG_LONG.
        * bits/locale_facets.h (num_get<>::get(..., long long &)): Define.
        (num_put<>::put(..., long long)): Likewise.
        (num_put<>::put(..., unsigned long long)): Likewise.
        * bits/locale_facets.tcc (_S_format): Rename from _S_format_long.
        Templatize last parameter to support 'long long'.
        (num_put<>::put(...)): Call _S_format with new name.
        (num_put<>::put(..., long long)): Define.
        (num_put<>::put(..., unsigned long long)): Likewise.
        * src/locale-inst.cc (_S_format): Instantiate under new name.
@
text
@d231 1
@


1.20
log
@
2000-02-09  Benjamin Kosnik  <bkoz@@cygnus.com>

	* mknumeric_limits (XCOMPILE): Add more support for cross compiling.
	* bits/limits_generic.h: New file, defaults.
	* src/limits_generic.cc: New file, defaults.
	* configure.in (LIBS): Run mknumeric_limits at configure time.
	* acconfig.h: Remove PACKAGE VERSION HAVE_COMPLEX
	HAVE_LC_MESSAGES, tidy, clean, etc.
	* src/Makefile.am (geberated_sources): Remove.

	* bits/fpos.h: Use _GLIBCPP_USE_LIBIO guards for libio typenames
	(_IO_off_t, _IO_ssize_t)

	* src/complex.cc: Use glibc's <complex.h> if
	possible. . . apparently this was not being done before. Include
	tweaks.
	(abs): Enable cabs if it's around, instead of mycabs.
	* src/complexf.cc (FCT): Add global scope to match complex.cc.
	* src/complexl.cc (FCT): Same.
	* math/Makefile.am (EXTRA_LONG_DOUBLE_yes): Change mycabsl to cabsl.
	(libmath_la_SOURCES): And here.
	* math/(mycabs.c, mycabsf.c, mycabsl.c): Move to. . .
	* math/(cabs.c, cabsf.c, cabsl.c): . . . Here.
	* math/complex-stub.h: Move c_log declarations into. . .
	* math/mathconf.h: Here. This is because glibc's <complex.h>
	declares cclog, not c_log. The case of the dueling standards. . .
	* math/mathconf.h: Add _GLIBCPP_HAVE_* to macros.
	* math/Makefile.am: Change.
	* math/nan.c (nan): Change signature.
	* math/mathconf.h (NAN): Same.
	* math/complex-stub.h (nan): And here.

	* Makefile.am (rebuild-stamp): Remove libio and libio
	dependancies.  Plan to take out libio subdir and just merge with
	libio in top level gcc directory. Of course, this assumes there is
	a libio in the top level directory (ie ../src_dir). This will
	probably change the way this library is configured by default.
	* libio/*: Remove.
@
text
@d166 1
a166 1
$CXX -I$BUILD_DIR \
d228 2
a229 1
	    long 'unsigned long' float double 'long double'
@


1.19
log
@1999-12-15  Gabriel Dos Reis  <dosreis@@cmla.ens-cachan.fr>

        * mknumeric_limits (OUT_C): restart only if $OUT_C is present.

        * bits/std_complex.h
        (complex<float>::complex(const complex<double>&),
        complex<float>::complex(const complex<long double>&)): Define.

        * docs/17_intro/TODO: Update.
@
text
@a25 6
SRC_DIR=$2
if [ ! -d "$SRC_DIR" ]; then
  echo "source directory $SRC_DIR not found, exiting."
  exit 1
fi

d39 14
@


1.18
log
@1999-12-06  Gabriel Dos Reis  <dosreis@@cmla.ens-cachan.fr>

        * mknumeric_limits: Don't use $CXXFLAGS when building
        gen-num-limits. It's definitely wrong to use it since $CXXFLAGS
        generally instructs the compiler not to emit template
        instantiations and we end up with undefined symbols. Sigh.
@
text
@d42 2
a43 2
if [ -f $OUT_H ]; then
    rm -f $OUT_H
a254 10










@


1.17
log
@
1999-11-29  Chip Salzenberg  <chip@@valinux.com>

	* Makefile.in: Tweaks for CXXFLAGS.
	* */Makefile.in: Same.

1999-11-29  Mumit Khan  <khan@@xraylith.wisc.edu>

        * configure.in: Check for wide character support.
        * bits/c++config.h.in (_GLIBC_USE_WCHAR_T): Move from here ...
        * acconfig.h (_GLIBC_USE_WCHAR_T): to here.
        * bits/string.tcc (wstring::_S_find): Guard wchar_t specialization.

1999-11-29  Mumit Khan  <khan@@xraylith.wisc.edu>

        * acinclude.m4: Fix typo.
        * src/complex.cc: Fix macro line continuation.

1999-11-29  Petter Urkedal  <petter@@matfys.lth.se>

        * src/Makefile.am (CXXFLAGS): Add -Wno-format to allow non-
        string literals in format, as used in locale-facets.tcc.
@
text
@d42 2
a43 2
if [ -f $OUT_C ]; then
    rm -f $OUT_H $OUT_C
d158 1
a158 1
$CXX $CXXFLAGS \
d160 1
a160 1
    -I$BUILD_DIR $LDFLAGS
@


1.16
log
@
1999-10-08  Benjamin Kosnik  <bkoz@@haight.constant.com>

        * bits/std_cmath.h: Correctly cast int to double.
        * testsuite/26_numerics/c_math.cc: Add test.

        * mknumeric_limits (OUT_C): Tweaks.
        * src/gen-num-limits.cc: Checks for WCHAR_MIN, WCHAR_MAX before
        trying to instantiate type_traits<wchar_t>.
        * acconfig.h: Add _GLIBCPP_HAS_WCHAR_MIN_MAX.
        * configure.in (LIBS): Plus checks for WCHAR_MIN, WCHAR_MAX.
        * configure: Regenerate.
@
text
@d11 2
a12 1
CXX=g++
d158 2
a159 1
$CXX -o "$BUILD_DIR/src/gen-num-limits" "$SRC_DIR/src/gen-num-limits.cc" \
@


1.15
log
@1999-09-21  Gabriel Dos Reis  <dosreis@@cmla.ens-cachan.fr>

        * bits/valarray_array.h: Fix typo.

        * mknumeric_limits: Make sure we are regenerating things from
        scratch.  Otherwise things get redefined.  Not good.
@
text
@d18 1
d24 1
@


1.14
log
@
1999-08-23  Benjamin Kosnik  <bkoz@@cygnus.com>

	* mknumeric_limits (numeric_limits): Add default definitions to
	member functions.
	* testsuite/18_support/numeric_limits.cc: New file.
@
text
@d39 4
@


1.13
log
@
1999-08-17  Benjamin Kosnik  <bkoz@@decepticon.cygnus.com>

	* src/Makefile.am (CXXFLAGS): Add -O2.
	* src/Makefile.in: Likewise.

	* src/gen-num-limits.cc: Conditionally allow wchar_t. See what
	this breaks. . .
	* mknumeric_limits (numeric_limits): Uglify.

	* bits/std_istream.h: Fix warnings.
	* bits/locale_facets.tcc: Collateral damage from
	char_traits<char>::int_type change.

	* testsuite/27_io/istream_extractor_char.cc: Terminate strings.
@
text
@d106 2
a107 2
        static _T min() throw();
        static _T max() throw();
d116 2
a117 2
        static _T epsilon() throw();
        static _T round_error() throw();
d130 4
a133 4
        static _T infinity() throw();
        static _T quiet_NaN() throw();
        static _T signaling_NaN() throw();
        static _T denorm_min() throw();
d136 2
a137 2
        static const bool is_bounded = true;
        static const bool is_modulo = true;
@


1.12
log
@#
1999-06-29  Ryszard Kabatek <kabatek@@chemie.uni-halle.de>
         * bits/string.tcc: New implementation and interface of _M_mutate.
           Adapt the change in all functions that call _M_mutate.
         * bits/basic_string.h: And here.
1999-06-29  Benjamin Kosnik  <bkoz@@happy.cygnus.com>
	* testsuite/21_strings/capacity.cc (test01): Fix.
1999-06-29  Phil Edwards  <pedwards@@ball.com>
        * mknumeric_limits:  Exit script if gen-num-limits isn't built.
@
text
@d103 1
a103 1
    template<typename T> struct numeric_limits {
d106 2
a107 2
        static T min() throw();
        static T max() throw();
d116 2
a117 2
        static T epsilon() throw();
        static T round_error() throw();
d130 4
a133 4
        static T infinity() throw();
        static T quiet_NaN() throw();
        static T signaling_NaN() throw();
        static T denorm_min() throw();
d136 4
d144 4
a147 4
    template<typename T> T __limits_infinity();
    template<typename T> T __limits_quiet_NaN();
    template<typename T> T __limits_signaling_NaN();
    template<typename T> T __limits_denorm_min();
d152 1
a152 1
    $LDFLAGS
@


1.11
log
@        * mknumeric_limits (LDFLAGS): fix.
@
text
@d149 6
@


1.10
log
@        * mknumeric_limits (LDFLAGS): set it according to the system.
        * math/mathconf.h (NAN): Check whether host is running under
        Cygwin and make the appropriate definition.
        * math/complex-stub.h (nan): protect declaration.
@
text
@d13 1
a13 1
    Cygwin*) 
@


1.9
log
@        * mknumeric_limits (LDFLAGS): Swap -lc and -lgcc.
@
text
@d1 1
a1 1
#! /bin/bash
d12 6
a17 1
LDFLAGS=-'nodefaultlibs -lgcc -lc'
@


1.8
log
@@@
1999-06-07  Benjamin Kosnik  <bkoz@@tintin.cygnus.com>
	* bits/basic_string.h: Fixes for out-of-memory segv for large strings.
	Remove _S_construct signature for forward_iterator_tag and
	input_iterator_tag.
	Clean _M_fold.
	* src/string-inst.cc: Same, tweaks.
	* bits/string.tcc: Same, tweaks.
	* testsuite/21_strings/ctor_copy_dtor.cc: Add/clarify tests.
	* mkcheck (LOG_FILE): Fix filebuf-[2,3].tst checks.
	* mknumeric_limits (LD_FLAGS): Add -nodefaultlibs -lc -lgcc as per
	Gaby.
	* src/locale.cc: Final separation for char/wchar_t bits.
@
text
@d12 1
a12 1
LDFLAGS=-'nodefaultlibs -lc -lgcc'
@


1.7
log
@#
1999-06-02  Benjamin Kosnik <bkoz@@madcow.cygnus.com>
	* bits/char_traits.h: Add _G_USE_WCHAR_T macro guards.
	* stl/bits/stl_string_fwd.h: Same.
	* bits/locale_facets.h: Same.
	* bits/locale_facets.tcc: Same.
	* src/wstring-inst.cc: And here.
	* src/gen-c++config.cc: Comment _G_USE_WCHAR_T. Leading to
 	problems on HPUX 10.20.
	* your-build-directory-here/bits/c++config.h: Just kidding, do it
 	here as a temporary hack till the compiler/host problems get
 	worked out.
	* bits/locale_facets.tcc (num_get::do_get): Change from ifdef
 	HAVE_STRTOLD to HAVE_STRTOLD && !(__hpux). Apparently, problems
 	converting "long double" to struct long_double. Probably should be
 	done with one macrom (HAVE_STRTOLD) at configure time.
	* bits/std_cmath.h: Comment out pow(double, int) defintion as
 	gives re-declaration under hpux10.20. Revert previous change, as
 	kills linux/x86, solaris 2.7, hpux builds. These should be done
 	using autoconf, see std_cctype.h and the solutions started in
 	configure.in (see config.h for the generated file.)
	* mknumeric_limits (LDFLAGS): Remove '-nodefaultlibs -lc', as
 	-nodefaultlibs prevents linking under HPUX 10.20 as __main is not
 	defined.
	* docs/index.html: Add some useful links.
	* docs/17_intro/contribute.html: Fix broken links.
@
text
@d12 1
a12 1
LDFLAGS=
@


1.6
log
@        * mknumeric_limits (LDFLAGS): set appropriate link flags.
@
text
@d12 1
a12 1
LDFLAGS='-nodefaultlibs -lc'
@


1.5
log
@#
1999-05-17  Benjamin Kosnik  <bkoz@@happy.cygnus.com>
	* bits/std_streambuf.h: Same.
	* bits/loccore.h (_Bad_use_facet): Remove bits warned about.
	* bits/locfacets.h (std): Same.
	* bits/sstream.tcc: Same.
	* testsuite/27_io/stringstream.cc: Tweak.
	* testsuite/27_io/filebuf.cc: Adjust.
	* testsuite/21_strings/capacity.cc (test01): Add more
	string::reserve tests.
	* bits/c++config.h: Remove broken CCTYPE.
	* bits/std_cctype.h: Tweak, remove de-macroization, enable
	squesterd topper implementation.
	* bits/std_cwctype.h: Same.
	* bits/missing.h: Remove.
	* bits/std_locale.h: Remove missing.h include.
	* stl/bits/std_bitset.h (bitset::bitset(string): Tweak to compile.
	* src/Makefile.am (headers): Add bits/std_cwctype.h.
	INCLUDES: Add top_builddir.
	* src/Makefile.in: Regenerate.
	* Makefile.am: Add check and check-install as new targets.
	* testsuite/make_check_libfree++: Move to. . .
	* mkcheck: Here.
	* configure.in: Tweak versions.
	* mknumeric_limits: Set paths correctly.
@
text
@d12 1
d142 2
a143 1
$CXX -o "$BUILD_DIR/src/gen-num-limits" "$SRC_DIR/src/gen-num-limits.cc"
@


1.4
log
@	* mknumeric_limits: tweak.
@
text
@d1 1
a1 1
#! /bin/sh
d9 2
d12 17
a28 2
OUT_H=bits/std_limits.h
OUT_C=src/limitsMEMBERS.cc
d30 2
d141 2
a142 3
$CXX -o gen-num-limits gen-num-limits.cc
./gen-num-limits >> $OUT_H
rm -f ./gen-num-limits
d230 10
@


1.3
log
@	* mknumeric_limits: Fix typo. 'unsigned lont' should read
	'unsigned long'.
	* src/Makefile.am (libstdc___la_SOURCES): add limitsMEMBERS.cc,
	generated by mknumeric_limits to the list. Now std_limits.h is
	basically working.
	* src/Makefile.in (generate-numeric-limits): new target to handle
	automatic generation of bits/std_limits.h and src/limitsMEMBERS.cc.
	(all): add target generate-numeric-limits.
	(libstdc___la_OBJECTS): add limitsMEMBERS.lo
	(libstdc___la_SOURCES): add limitsMEMBERS.cc
@
text
@d122 3
a124 3
$CXX -o src/gen-num-limits src/gen-num-limits.cc
src/gen-num-limits >> $OUT_H
rm src/gen-num-limits
@


1.2
log
@#
1999-05-04  Benjamin Kosnik  <bkoz@@cygnus.com>
	* src/gen-num-limits.cc (round_style): Need to use mknumericlimits
	to generate bits/std_limits.h now, as the SGI std_limits.h is
	being depricated. Not done, but should be done immediately: need
	to make sure this script is run as part of the configuration
	process, because without it "make" in a configured build directory
	will fail. Also tweaked: added a space for float_round_style, and
	used static_cast of zero to default-initialize, which should be ok
	according to the standard. (see 8.5 p5 and 20.1.3).
	* mknumeric_limits (OUT_C): Need this for x86 long
	double extensions.
	* bits/basic_file.h: Include libio.h, not libioP.h.
	* src/basic_file.cc: And add libioP.h include here, so that
	_IO_init, et. al are well-declared.
	* testsuite/make_check_libfree++ (LIB_PATH): Test installed
	headers, not source directory headers.
	* src/Makefile.am (headers): Add stl_range_errors.h, also adjust
	for ext/*.  Also add basic_file.h.
	* src/Makefile.in (headers): Same.
	* bits/std_string.h: Reduce dependencies for faster
	pre-processing. Move istream and ostream specific defines into
	istream.tcc and ostream.tcc respectively.
	* bits/string.tcc: And here.
	* bits/basic_string.h: Move getline inline out-of-line, and to
	istream.tcc.
	* bits/istream.tcc: Move string::getline and operator>> here.
	* bits/ostream.tcc: And here too.
	* bits/utility.h: Remove, as clashes with a standard header. Put
	__OUTOFRANGE and __LENGTHERROR macros into string.tcc for the time
	being, until this can be combined with SGI's approach.
	* bits/string.tcc: Add macros, as above.
	* bits/loccore.h: Add _Count_ones defines.
	* bits/std_string.h: And here too.
	* bits/std_locale.h: And here.
	* bits/std_ios.h: Take out include here.
	* src/Makefile.am (headers): Remove utility.h
	* src/Makefile.in (headers): Remove utility.h
	* stl/bits/*: Update to SGI STL 3.20.
	* stl/ext/pthread_alloc: Delete this file.
@
text
@d4 1
a4 1
# - art of bits/std_limits.h completed by gen-num-limits.cc
d115 4
d177 1
a177 1
	    long 'unsigned lont' float double 'long double'
d211 1
a211 1
EOF@


1.1
log
@New files. To generate bits/std_limits.h
@
text
@d60 1
@

