2007-01-11 Andrew Haley <aph@redhat.com>
[official-gcc.git] / libstdc++-v3 / ChangeLog-1998
blob2549db48483854dfe643f3742294778ede5a5075
1 1998-12-31  Benjamin Kosnik  <bkoz@lunatic.cygnus.com>
3         * bits/fstream.tcc: Add fstream ctor for cin/cout/etc.
4         * bits/std_fstream.h: Ditto.
5         * src/stdstreams.cc: Ditto.
7         * math/cpowl.c: Fix header typo with last change.
9 1998-12-31  Benjamin Kosnik  <bkoz@loony.cygnus.com>
11         * COPYING: New file (GPL v 2).
12         * LICENSE.STD: Remove.
13         * ./*: Change license.
15 1998-12-30  Benjamin Kosnik  <bkoz@haight.constant.com>
17         * bits/std_streambuf.h (std): Remove static on _M_init.
18         * bits/streambuf.tcc (std): Ditto.
20         * bits/std_fstream.h: Add changes as discussed with Nathan, including
21         state_type and codecvt_type members, the allocation of an internal
22         buffer, the streamlined codecvt calls, etc.
24 1998-12-21  Benjamin Kosnik  <bkoz@haight.constant.com>
26         * bits/std_sstream.h: Tweak.
27         * bits/fstream.tcc: Remove unused stubs.
28         * bits/std_fstream.h: Tweak.
30 1998-12-17  Benjamin Kosnik  <bkoz@tintin.cygnus.com>
32         * bits/std_streambuf.h: Move _IO_file_flags into basic_filebuf.
33         Remove unused _IO_* members, possibly put into filebuf, which may
34         need them.
35         * bits/std_fstream.h: Add _M_flag.
36         * bits/sbuf_iter.h: Tweak.
38         * bits/std_cstdio.h: Add SEEK_SET, SEEK_END, SEEK_CUR.
39         * bits/ios_base.h: Use.
41         * src/stdstreams.cc: Modify to reflect standard ctors for
42         filebuf.
43         * src/misc-inst.cc: Ditto.
45         * bits/os_raw.h: Wrap in std namespace. Model parameters on
46         underlying C library calls instead of the underlying unix
47         filesystem.
48         * src/os_raw.cc (_S_os_open): Use fopen, and compute a mode
49         string as per p.659.
50         (_S_os_close): Model on fopen.
51         (_S_os_read): Model on fread.
52         (_S_os_write): Model on fwrite.
53         (_S_os_seek): Model on fseek.
55         * bits/ios_base.h: Tweak.
56         * bits/std_iosfwd.h: Wrap libio.h include with extern "C".
57         * bits/std_sstream.h: Tweak.
58         * bits/sstream.tcc: Remove old, uncalled code.
59         * bits/std_fstream.h: Major reconstruction.
60         * bits/fstream.tcc: Disable for the time being.
62 1998-12-11  Benjamin Kosnik  <bkoz@haight.constant.com>
64         * bits/basic_string.h: Fix insert method.
65         * stl/bits/stl_iterator.h: Remove previous hack.
66         * bits/std_streambuf.h (sbumpc): Correct increment/return oddness.
67         * bits/std_sstream.h: Fix more regressions.
68         * testsuite/27/27stringbuf.C: Add (almost) complete tests.
70 1998-12-09 Benjamin Kosnik  <bkoz@loony.cygnus.com>
72         * bits/basic_string.h: Tweak.
74         * stl/bits/stl_iterator.h: Specialize iterator_traits for int so
75         that string::append can be instantiated. HACK--checkin
76         basic_string::iterator class.
78 1998-12-07  Benjamin Kosnik  <bkoz@haight.constant.com>
80         * bits/std_sstream.h: Tweak.
81         * bits/sstream.tcc: Tweak ctors.
83         FIXME invalid friend defs. . WHERE ARE THEY??
85         * bits/sbuf_iter.h (istreambuf_iterator::equal): Change to new
86         names for basic_streambuf data members.
88         * bits/std_streambuf.h: Add getloc() initialization bits.
89         basic_streambuf(): Initialize with global locale data.
90         imbue(): Set _M_init.
92         * bits/std_streambuf.h(seekoff, seekpos): Complete with invalid
93         stream pos == pos_type(off_type(-1)).
94         in_avail(): Complete default implementation.
95         snextc, sbumpc, sputbackc, sungetc, sputc, setg, xsputn,
96         underflow, uflow, xsgetn, showmany, sync: Ditto.
98         * bits/std_streambuf.h: _M_snextc_helper(): Remove.
100         * bits/streambuf.tcc (sputbackc): Temporarily remove, need to
101         re-populate with in-line member functions that are too big.  Add
102         initialization for _M_init.
104 1998-12-03  Benjamin Kosnik  <bkoz@cygnus.com>
106         * bits/sstream.tcc: Convert _Allocator to _Alloc.  Add typedefs
107         for basic_string and basic_streambuf. Scope _IO_buf_* pointers to
108         streambuf_type.
110         * src/stdstreams.cc (std): Disable wchar_t instantiations.
112         * bits/c++config.h (_G_DEPRICATED): Add.
113         (_G_USE_WCHAR_T): Add.
114         * bits/std_streambuf.h: Radical reconstruction of basic_streambuf.
115         Take out _Streambuf_base. Put _IO_FILE data member in basic_filebuf.
116         * bits/streambuf.tcc (sputbackc): Remove ctor anti-def, Tweak.
117         * bits/std_fstream.h: Add comment for implementation.
118         * src/streambuf.cc: Remove.
119         * src/Makefile.in: Remove streambuf.lo.
120         * src/misc-inst.cc: Tweak.
122 1998-12-02  Benjamin Kosnik  <bkoz@cygnus.com>
124         * bits/std_sstream.h: Add const_cast to rdbuf returns.
125         * testsuite/27stringstream.C: Modify.
127 1998-11-25  Benjamin Kosnik  <bkoz@haight.constant.com>
129         * src/Makefile.in (libstdc___la_OBJECTS): Add streambuf.lo.
130         (libstdc___la_SOURCES): Ditto.
132         * bits/streambuf.tcc: Tweak.
134         * src/streambuf.cc: New file, add out-of-line definitions for
135         _Streambuf_base.
137         * src/misc-inst.cc: Remove _Streambuf_base instantiations.
138         Comment out wchar_t versions of the buffer instantiations, for now.
140         * bits/std_streambuf.h: Wrap libio.h include with extern "C".
141         Remove template wrapper around _Streambuf_base.
142         Move IO_* data members into _Streambuf_base.
143         Move _Streambuf_base members into streambuf.tcc.
145         * bits/c++config.h (_G_USE_LIBIO): Enable.
147 1998-11-02  Nathan Myers <ncm@cantrip.org>
149         * CHECKLIST: downgrade iterator implementations
150         * DESIGN: fill out notes about unimplemented features
152 1998-10-31  Nathan Myers <ncm@cantrip.org>
154         * CHECKLIST: itemized list of all interfaces, and status of each.
156 1998-10-30  Nathan Myers  <ncm@cantrip.org>
158         * RELEASE-NOTES: add notes about optional includes, linking, running
159         * src/Makefile.am: handle header installs properly
160         * src/Makefile.in: regenerate from new src/Makefile.am
162 1998-10-30  Benjamin Kosnik  <bkoz@loony.cygnus.com>
164         * bits/basic_string.h: Revert npos pending ciso646.
165         * src/Makefile.am: Revert CXX flags for now.
166         * src/Makefile.in: Ditto.
168 1998-10-30  Brendan Kehoe  <brendan@cygnus.com>
170         * bits/std_sstream.h: Re-order ctors to put base before member
171         inits.
173 1998-10-30  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>
175         * stl/bits/std_memory.h: Fix typo.
177 1998-10-30  Nathan Myers <ncm@cantrip.org>
179         * src/string[A-Z]+.cc: change back to include "string.cc".
180         * src/Makefile.am: revert filename changes.  We need a different
181         way to keep filenames in std/ from confusing Make.
182         * bits/basic_string.h: define _S_max_size right, return it from
183         string::max_size(); churn definition of npos again.
184         * bits/string.tcc: fix _S_frob_size to avoid uint overflow.
185         * bits/ios.cc: remove #ifdef on ios_base locale member initialization
186         * BUGS: clear cruft.
187         * C++STYLE: Touchup for release.
188         * CHECKLIST: Touchup for release.
189         * DESIGN: New file.
190         * LICENSE.STD: Add requirement to retain copyrights and to provide
191         the license with any copies.
192         * README: Update for release.
193         * TODO: Minor touchup for release.
194         * RELEASE-NOTES: prepare for release
196 1998-10-29  Ulrich Drepper  <drepper@cygnus.com>
198         * src/string[A-Z]+.cc: Include stdstring.cc, not string.cc.
200         * src/Makefile.am (CXXFLAGS): Define _GNU_SOURCE.
202         * src/Makefile.am (CXXLINK): New variable.  Make sure we don't use
203         CXX to generate the shared object.
205         * src/Makefile.am (headers): Remove duplicated char_traits.h.
207 1998-10-29  Brendan Kehoe  <brendan@cygnus.com>
209         * bits/basic_string.h (basic_string<>::max_size): Subtract 1, not
210         2, from npos, solving infinite loop problems.
212 1998-10-29 18:41  Ulrich Drepper  <drepper@cygnus.com>
214         * src/Makefile.am: Add rules to install headers.
216 1998-10-29  Nathan Myers <ncm@cantrip.org>
218         * bits/std_ostream.h: Remove #ifdef on operator<< for long double
219         * bits/ostream.tcc:   Remove #ifdef on operator<< for long double
220         * shadow/libio.h:
221         * shadow/unistd.h:
222         * shadow/bits/wrap_libio.h:
223         * shadow/bits/wrap_unistd.h: New files.
225 1998-10-29  Brendan Kehoe  <brendan@cygnus.com>
227         * bits/ostream.tcc (operator<<): Wrap with #ifdef
228         _G_HAVE_LONG_DOUBLE_IO, to match bits/std_ostream.h.
230 1998-10-29  Ulrich Drepper  <drepper@cygnus.com>
232         * src/Makefile.am: Add temporarily rules to make sure misc-inst.cc
233         is not compiled with -fno-implicit-templates in effect.
235         * src/Makefile.am (EXTRA_SOURCES): Add string.cc and wstring.cc here.
236         (libstdc___la_SOURCES): Add all the string*.cc and wstring*.cc files.
237         * src/stringADDCS.cc: Wrapper around string.cc to define individual
238         function.
239         * src/stringADDPS.cc: Likewise.
240         * src/stringADDSC.cc: Likewise.
241         * src/stringADDSP.cc: Likewise.
242         * src/stringADDSS.cc: Likewise.
243         * src/stringBIST.cc: Likewise.
244         * src/stringBOST.cc: Likewise.
245         * src/stringCHTR.cc: Likewise.
246         * src/stringEQPS.cc: Likewise.
247         * src/stringEQSP.cc: Likewise.
248         * src/stringEQSS.cc: Likewise.
249         * src/stringEXTRA.cc: Likewise.
250         * src/stringGEPS.cc: Likewise.
251         * src/stringGESP.cc: Likewise.
252         * src/stringGESS.cc: Likewise.
253         * src/stringGETLI.cc: Likewise.
254         * src/stringGTPS.cc: Likewise.
255         * src/stringGTSP.cc: Likewise.
256         * src/stringGTSS.cc: Likewise.
257         * src/stringINSER.cc: Likewise.
258         * src/stringLEPS.cc: Likewise.
259         * src/stringLESP.cc: Likewise.
260         * src/stringLESS.cc: Likewise.
261         * src/stringLTPS.cc: Likewise.
262         * src/stringLTSP.cc: Likewise.
263         * src/stringLTSS.cc: Likewise.
264         * src/stringMAIN.cc: Likewise.
265         * src/stringNEPS.cc: Likewise.
266         * src/stringNESP.cc: Likewise.
267         * src/stringNESS.cc: Likewise.
268         * src/stringSCOPY.cc: Likewise.
269         * src/wstringADDCS.cc: Wrapper around wstring.cc to define individual
270         functions.
271         * src/wstringADDPS.cc: Likewise.
272         * src/wstringADDSC.cc: Likewise.
273         * src/wstringADDSP.cc: Likewise.
274         * src/wstringADDSS.cc: Likewise.
275         * src/wstringBIST.cc: Likewise.
276         * src/wstringBOST.cc: Likewise.
277         * src/wstringCHTR.cc: Likewise.
278         * src/wstringEQPS.cc: Likewise.
279         * src/wstringEQSP.cc: Likewise.
280         * src/wstringEQSS.cc: Likewise.
281         * src/wstringEXTRA.cc: Likewise.
282         * src/wstringGEPS.cc: Likewise.
283         * src/wstringGESP.cc: Likewise.
284         * src/wstringGESS.cc: Likewise.
285         * src/wstringGETLI.cc: Likewise.
286         * src/wstringGTPS.cc: Likewise.
287         * src/wstringGTSP.cc: Likewise.
288         * src/wstringGTSS.cc: Likewise.
289         * src/wstringINSER.cc: Likewise.
290         * src/wstringLEPS.cc: Likewise.
291         * src/wstringLESP.cc: Likewise.
292         * src/wstringLESS.cc: Likewise.
293         * src/wstringLTPS.cc: Likewise.
294         * src/wstringLTSP.cc: Likewise.
295         * src/wstringLTSS.cc: Likewise.
296         * src/wstringMAIN.cc: Likewise.
297         * src/wstringNEPS.cc: Likewise.
298         * src/wstringNESP.cc: Likewise.
299         * src/wstringNESS.cc: Likewise.
300         * src/wstringSCOPY.cc: Likewise.
301         * src/string.cc: Remove now unneeded #defines now.
303 1998-10-29 Nathan Myers <ncm@cantrip.org>
305         * bits/locfacets.tcc: Define num_put::put(... const void*), improve
306         integer formatting.
307         * bits/ostream.tcc: Delete cruft, rewrite various op<< as members,
308         add definitions for double, long double, const void*.
309         * bits/std_ostream.h: Move op<<'s back into class ostream,
310         define some in-line.
311         * bits/string.tcc: fix unnecessary-copying bug in op[], typos in
312         string construction from input iterators that Brendan reported.
315 1998-10-28  Brendan Kehoe  <brendan@cygnus.com>
317         * stl/bits/stl_pair.h (op!=, op>, p<=, op>=): Add missing definitions.
319         * bits/valarray_meta.h (class _Constant): Move declaration to the
320         top, so the rest of the file can grok it.
321         (_ApplyBinaryFunction::operator[]): Add missing parenthesis.
323         * bits/std_sstream.h (basic_ostringstream::str): Fix typo of extra
324         semicolon.
325         (basic_stringstream::str, both instances): Likewise.
327 1998-10-28 Nathan Myers <ncm@cantrip.org>
329         * bits/locfacets.h: fix num_put<>::falsename()
330         * bits/locfacets.tcc: fix _Format_cache<>::_M_populate bool name init
331         * testsuite/27/27octfmt.C, testsuite/27/27octfmt.C: new tests
332         * bits/locfacets.tcc: touch up _S_group_digits.
333         * src/misc-inst.cc: adjust _S_group_digits insts to match.
335 1998-10-27 Nathan Myers <ncm@cantrip.org>
337         * stl/bits/stl_config.h: Turn off long long support, for now.
338         * src/locale-inst.cc: Instantiate num_put<> only for
339         ostreambuf_iterator, num_get only for istreambuf_iterator.
340         * src/misc-inst.cc: Delete duplicate locale-related instantiations,
341         add lots of new instantiations for num_put support function templates;
342         remove junk about __match_parallel for ostreambuf_iterator.
344 1998-10-27 Nathan Myers <ncm@cantrip.org>
346         * bits/locfacets.tcc: Make num_put's digit grouping work.
347         * bits/string.tcc: More uglification.
348         * src/ios.cc: initialize format cache right
350 1998-10-26 Nathan Myers <ncm@cantrip.org>
352         * bits/basic_string.h: Uglify more names.
353         * bits/fstream.tcc: Rewrite some filebut output handling.
354         * bits/ios_base.h: Cosmetic.
355         * bits/locfacets.h: Changes to _Format_cache for support of num_put.
356         Also, specialize its default ctor for optimal default case.
357         #ifdef out "long long" prototypes for now.
358         * bits/locfacets.tcc: Do complete, optimized num_put<>::do_put
359         implementation for integer types.  (Still needs optimized
360         std::copy() applied to ostreambuf_iterator to be optimal.)
361         * bits/ostream.tcc: Write operator<< for long, bool types.
362         Make other operators<< non-members, per spec.  (Many still
363         not implemented.)  Identify those that fail to create a sentry.
364         * bits/sbuf_iter: Cosmetic.
365         * bits/std_fstream.h: Add some filebuf members.
366         * bits/std_locale.h: Include <limits> for use in bits/locfacets.h
367         * bits/std_ostream.h: Make member operators<< global, per spec.
368         (Should do the same in std_istream.h.)
369         * bits/std_string.h: Include <limits> for use in bits/locfacets.h
370         * bits/string.tcc: Uglify names
371         * shadow/bits/std_cstdlib.h: Optimize std::div and std::ldiv.
372         * src/ios.cc: Specialize _Format_cache<> for char and wchar_t,
373         for optimal default behavior.
375 1998-10-26  Benjamin Kosnik  <bkoz@loony.cygnus.com>
377         * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc again.
379 1998-10-21 Nathan Myers <ncm@cantrip.org>
381         * src/locale.cc: make ctype operations actually work for glibc
382         * CHECKLIST: add a comprehensive (i.e. huge) implementation
383         checklist of stdlib facilities.  Not filled in yet.
385 1998-10-20 Nathan Myers <ncm@cantrip.org>
387         * bits/string.tcc: fix patching NULs on string ends.
389 1998-10-19 Nathan Myers <ncm@cantrip.org>
391         * bits/std_iosfwd.h: eliminate "basic_" prefix on streambuf
392         iterator forward declarations
393         * bits/sbuf_iter.h: eliminate default template argument definitions
394         on streambuf iterators (rely on <iosfwd> decls).
395         * TODO: add note about lazy facet construction
396         * bits/basic_ios.h: hit operator void* again.  This should be the
397         last time we need to touch it.
398         * bits/basic_ios.h: copyfmt now returns *this.
399         * bits/basic_string.h: fix npos again.  npos cannot be defined as zero.
400         * bits/basic_string.h: put back overloaded constructors; adjust
401         behavior for default allocator on copy constructor.
402         * bits/char_traits.h: make not_eof return correct type.
403         * bits/loccore.h: remove call to bits/std_stdexcept.h; subincludes
404         cannot be in non-standard headers or we get include loops (bad)
405         * bits/loccore.h: delete ifdef'd out workarounds for old compiler bugs.
406         * bits/loccore.h: add apparatus to support lazy construction of
407         facets.
408         * bits/locfacets.tcc: Uglify names in __match_parallel decl.
409         * bits/std_ios.h: add include of <typeinfo> to get bad_cast for
410         locale use_facet<> failure.
411         * bits/std_locale.h: same.
412         * bits/std_string.h: same.
413         * bits/std_stdexcept.h: change exception member __msg from a
414         reference to a regular object.
415         * bits/string.tcc: add pasting a NUL on the end of strings after
416         each operation. We had already left room for it, but previously
417         plugged it only on a call to c_str(), but the WG changed the
418         requirement when I wasn't looking.  (Can't leave them alone for
419         a second without they break something else.)
420         * bits/valarray_meta.h: add Gaby's changes from 981018.
421         * src/locale.cc: add new type _Bad_use_facet to be thrown on
422         failure of use_facet<>().
423         * src/stdexcept.cc: remove pragma, remove bkoz's #if 0,
424         comment out leftover member definitions
426 1998-10-16  Ulrich Drepper  <drepper@cygnus.com>
428         * string/Makefile.am: Revert last change.
429         * math/Makefile.am: Likewise.
431 1998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>
433         * bits/std_sstream.h: Fix typo.
435 1998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>
437         * src/Makefile.am (libstdc___la_SOURCES): Add misc-inst.cc.
439         * bits/std_sstream.h: Add typedefs, member definitions. Clean.
440         * bits/std_stdexcept.h: Remove.
442 1998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>
444         * src/misc-inst.cc: Tweak again.
446         * bits/std_sstream.h: Move out-of-line definitions to sstream.tcc.
447         * bits/sstream.tcc: New file.
449 1998-10-15  Ulrich Drepper  <drepper@cygnus.com>
451         * configure.in: Test for machine/param.h, sys/machine.h and fp.h.
452         Don't run AC_C_BIGENDIAN if machine/param.h or sys/machine.h are
453         available.
455         * math/mathconf.h: Include sys/machine.h, machine/param.h and fp.h
456         if available.
457         (INFINITE_P): Use IS_INF macro if available.
459 1998-10-15  Ulrich Drepper  <drepper@cygnus.com>
461         * math/Makefile.am (EXTRA_LTLIBRARIES): Renamed from
462         noinst_LTLIBRARIES.
463         * string/Makefile.am: Likewise.
465 1998-10-15  Ulrich Drepper  <drepper@cygnus.com>
467         * configure.in (AC_CHECK_FUNCS): Add finite, qfinite, fpclass, and
468         qfpclass.
469         (AC_CHECK_HEADERS): Add machine/endian.h.  If no header specifying
470         endianess is available run AC_C_BIGENDIAN.
472         * math/clog10l.c: Add ugly hack around bug in Irix 6.2 header until
473         fixincludes is fixed.
474         * math/clogl.c: Likewise.
475         * math/csqrtl.c: Likewise.
476         * math/mycabsl.c: Likewise.
478         * math/mathconf.h: Include machine/endian.h if possible.  If no
479         header describing endianess is available rely on WORDS_BIGENDIAN
480         macro.
481         (FINITE_P, FINITEF_P, FINITEL_P): Use finite functino if available.
482         (INFINITE_P, INFINITEF_P, INFINITEL_P): Use fpclass function if
483         available.
485         * src/complex.cc (polar): Don't use sincos on OSF machines.
487 1998-10-09  Benjamin Kosnik  <bkoz@loony.cygnus.com>
489         * src/locale-inst.cc: Don't instantiate time_get for
490         ostreambuf_iterators as time_get::do_get_weekday and
491         time_get::do_get_monthname use __match_parallel, which is illegal
492         for ostreambuf_iterators to use, as they don't have operator== or
493         operator!=.
494         * bits/std_stdexcept.h: Add dtor definitions.
495         Use stl/bits/std_stdexcept.h instead of this file?
496         * bits/sbuf_iter.h : Tweak.
497         * src/misc-inst.cc: Tweak.
499 1998-10-09  Benjamin Kosnik  <bkoz@haight.constant.com>
501         * bits/std_stdexcept.h: New file.
502         * src/stdexcept.cc: Define the following:
503         logic_error::what()
504         runtime_error::what()
506         * src/misc-inst.cc: New file.
507         * src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc.
508         (libstdc___la_OBJECTS): Add misc-inst.lo.
510         * bits/basic_string.h: Disable non-standard ctor declarations.
511         * bits/string.tcc: Disable definitions as well.
512         * src/string.cc: Disable <ios> dependencies.
513         * bits/sbuf_iter.h (std): Add default to template parameter for
514         ostreambuf_iterator and istreambuf_iterator.
515         * bits/std_iosfwd.h: Change istreambuf_iterator to
516         basic_istreambuf_iterator. Likewise for ostreambuf.
517         * bits/locfacets.tcc (__match_parallel): Fix typo.
518         * src/ios.cc (imbue): Remove the _G_HAVE_LOCALE guards around
519         ios_base::imbue.
520         * bits/std_streambuf.h: Define _Streambuf_base::getloc().
521         * bits/std_istream.h: Define the following:
522         get (basic_streambuf<char_type,_Traits>& __sb, char_type __delim)
523         get (char_type* __s, streamsize __n, char_type __delim);
524         getline (char_type* __s, streamsize __n, char_type __delim)
525         * bits/loccore.h : FIXME friend template code for use_facet.
526         Add std_stdexcept.h include so that range_error will be defined.
527         Add explicit conversion to string for range_error throws. (HACK?)
529 1998-10-8  Ulrich Drepper  <drepepr@cygnus.com>
531         * configure.in: Check for sincos, sincosf, and sincosl.
532         * src/complex.cc (polar): Use sincos if available.
534         * bits/c++config.h: Fix hack to get LONG_LONG* definitions on Linux.
535         * stl/bits/std_limits.h: Include bits/c++config.h.  HACK!!!
537         * math/clog10.c: Fix typo (FP_INIFITE_P -> INFINITE_P).
539         * math/cpow.c: Use c_log, not clog.
540         * math/cpowf.c: Likewise.
541         * math/cpowl.c: Likewise.
543         * math/cexp.c: Remove unused fpclassify calls.  Use FINITE_P instead
544         of isfinite call.
546         * math/mathconf.h (FINITE_P, FINITEF_P, FINITEL_P): Define using
547         isfinite macro if it is available.
548         (INFINITE_P, INFINITEF_P, INFINITEL_P): Define using isinf macro.
550         * math/ccosf.c: Use appropriate test macros for this type.
551         * math/ccoshf.c: Likewise.
552         * math/ccoshl.c: Likewise.
553         * math/ccosl.c: Likewise.
554         * math/cexpf.c: Likewise.
555         * math/cexpl.c: Likewise.
556         * math/clog10f.c: Likewise.
557         * math/clog10l.c: Likewise.
558         * math/clogf.c: Likewise.
559         * math/clogl.c: Likewise.
560         * math/csinf.c: Likewise.
561         * math/csinhf.c: Likewise.
562         * math/csinhl.c: Likewise.
563         * math/csinl.c: Likewise.
564         * math/csqrtf.c: Likewise.
565         * math/csqrtl.c: Likewise.
566         * math/ctanf.c: Likewise.
567         * math/ctanhf.c: Likewise.
568         * math/ctanhl.c: Likewise.
569         * math/ctanl.c: Likewise.
571 1998-10-06  Benjamin Kosnik  <bkoz@bliss.nabi.net>
573         * bits/basic_ios.h: Fix previous change.
575 1998-10-06  Benjamin Kosnik  <bkoz@bliss.nabi.net>
577         * bits/basic_ios.h: Add const_cast<basic_ios&>
578         (operator void*): As per 5.2.9 p 2, make sure static_cast is
579         well-formed.
580         * bits/char_traits.h: No _CharT for specialization, change to 0.
581         * bits/basic_string.h: As per 9.4.2 p4, initialize with
582         constant-initializer.
583         * bits/locfacets.tcc: Add template parameter to initialization list.
585 1998-10-02  Benjamin Kosnik  <bkoz@loony.cygnus.com>
587         * bits/basic_string.h: Should just be <, not <=.
589 1998-10-01  Benjamin Kosnik  <bkoz@bliss.nabi.net>
591         * bits/string.tcc (compare): Fix for strings that are similar, but
592         not the same length.
594 1998-09-04  Brendan Kehoe  <brendan@cygnus.com>
596         * bits/c++config.h: For __linux__, define _GNU_SOURCE.  This is
597         required for us to get LONG_LONG_{MIN,MAX} out of gcc's limits.h.
598         We can't check for __GLIBC__ here, since this header can be read
599         before any system one (that would lead to features.h) being used.
601         * stl/bits/stl_config.h (__STL_LONG_LONG): Re-enabled
603         * stl/bits/std_limits.h [__STL_LONG_LONG]: Fix usage to use
604         LONG_LONG_MIN, LONG_LONG_MAX, and ULONG_LONG_MAX.
606         * stl/bits/stl_config.h: Don't do __STL_LONG_LONG, it uses
607         LONGLONG_{MIN,MAX} which I can't find the origin of.
609 1998-09-03  Brendan Kehoe  <brendan@cygnus.com>
611         * stl/bits/stl_iterator.h: Add extern decl of cin for now; where
612         should this come from, if not iostream.h?
613         (class istream_iterator): Make the new operator!= a friend also.
615         * stl/bits/stl_config.h: Define __STL_HAS_WCHAR_T,
616         __STL_MEMBER_TEMPLATE_CLASSES, and __STL_LONG_LONG.  Don't include
617         _G_config.h like the egcs one does.
619 1998-09-01  Brendan Kehoe  <brendan@cygnus.com>
621         * bits/string.tcc: Call `_M_destroy' instead of `destroy'.
623         * bits/valarray_meta.h: Throughout, rename _Expr typedefs to be
624         _Expr1 (or _Expr_def if it's taken), and change definitions.
625         Avoids redecl of the template parm.
627         * bits/string.tcc (basic_string copy ctor): Fix typo in declaration.
628         (operator>>): Initialize __ERROR with ios_base::goodbit, not 0.
630         * bits/std_streambuf.h (_POSIX_SOURCE): Only define if it's not
631         already done.
633         * src/locale-inst.cc: New file, **TOTAL HACK**.  There has GOT to
634         be a better way to do this.
636         * src/stlinst.cc: New file.
638         * BUGS: New file, with various discovered bugs that need to be
639         fixed.
641         * Makefile.in, math/Makefile.in, string/Makefile.in,
642         src/Makefile.in: Reran automake.
644         Workarounds, these may not all be the final fixes:
646         * bits/basic_ios.h (class basic_ios): Make _M_strbuf be protected,
647         not private, for basic_istream::get() in std_istream.h to be able
648         to use it.
649         (basic_ios::operator void*): Don't use static_cast for the false
650         case.
651         (basic_ios::copyfmt): Fix `rhs.except' to be `rhs.exceptions ()'.
652         This appears to have been in sep94, but didn't get corrected
653         afterwards.
655         * bits/basic_string.h (npos): Don't init here.
656         * bits/string.tcc: Instead, do initialization here, to -1 instead
657         of the size_type destructor.
659         * src/traits.cc, src/wtraits.cc: New files.
660         * bits/char_traits.h: For char_traits<char> and
661         char_traits<wchar_t>, declare static, but define over in the src
662         files.
664         * bits/gslice.h: Comment out forward decls of _Array, valarray,
665         gslice_array, and _GsliceExpression.
667         * bits/std_cstdio.h [__sparc__ && __svr4__]: #undef all of
668         clearerr, feof, ferror, getc, getchar, putc, putchar, stdin,
669         stdout, and stderr.  Note we do get unresolved refs to stdin, but
670         that'll get fixed by the "true" solution.
672         * bits/std_ios.h: Include <bits/std_streambuf.h> to get the
673         definition of basic_streambuf.h, which is used in basic_ios.h to
674         call pubimbue.
676         * bits/std_streambuf.h: Don't include libio.h for now.
677         (class basic_streambuf): Define missing methods pubimbue and
678         getloc.
680         * src/Makefile.am (libstdc___la_SOURCES): Add stdexcept.cc,
681         ios.cc, os_raw.cc, stdstreams.cc, locale.cc, localename.cc,
682         locale-inst.cc, stlinst.cc, traits.cc, wtraits.cc.
684         * src/ios.cc: Instantiate basic_ios<char> and basic_ios<wchar_t>.
686         * src/locale.cc: Come up with munged versions of _S_toupper,
687         _S_tolower, and _S_table instead of the glibc-specific ones, so
688         they're at least defined, if not necessarily usable.  The glibc
689         ones on any other system will yield unresolved refs to
690         __ctype_{b,toupper,tolower}.
692         * src/string.cc: Define all of ADDCS, ADDPS, et al.  Add
693         basic_ios, basic_istream, basic_ostream.  Don't do char_traits
694         anymore cuz of the explicit specialization in char_traits.h.
695         Also add _S_string_copy, but this doesn't fix it -- cf the BUGS
696         file for the details.
698         * stl/bits/stl_algobase.h (equal): Fix to do `! (x==y)'.
699         * stl/bits/stl_iterator.h (__distance): Likewise.
701         * stl/bits/stl_iterator.h: As with 8/18 set, define missing op!=,
702         op>, op<=, and op>= for reverse_iterator.  Also add op!= for
703         istream_iterator.
705 1998-08-26  Brendan Kehoe  <brendan@cygnus.com>
707         * bits/string.tcc (basic_string::compare (const char*)): Fix to
708         return 0, not 1.
710 1998-08-25  Brendan Kehoe  <brendan@cygnus.com>
712         This should really be fixed with __asm__ directives renaming the
713         symbol, but keeping the function.
714         * math/clogf.c (c_logf): Renamed from `clogf'.
715         * math/clogl.c (c_logl): Renamed from `clogl'.
716         * math/complex-stub.h (c_logf, c_logl): Change decls.
718         * bits/locfacets.h (class _Numeric_get): For friend decls, rename
719         _CharT and _InIter parms, since they duplicate the enclosing ones.
721 1998-08-19  Brendan Kehoe  <brendan@cygnus.com>
723         Deal with conflict of the iostreams `clog' and our internal
724         complex number `clog'.
725         * src/complex.cc: Call `c_log' instead of `clog'.
726         * math/clog.c (c_log):: Renamed from clog.
727         * math/complex-stub.h (c_log): Renamed from clog decl.
729         * bits/locfacets.h (class _Numeric_get): Tweak fwd decls of the
730         get/put classes.
731         (num_put::put): #if 0 long long version, since we don't declare or
732         define the long long version of do_put.
734 1998-08-18 Nathan Myers <ncm@cantrip.org>
736         * bits/basic_string.h: add basic_string<>::push_back(), fix return
737         type of get_allocator (thanks to Ryszard Kabatek).
738         * bits/char_traits.h: make init order of fpos<> members
739         match decl order.
740         * bits/ios_base.h: fix decls of ios_base bitmask & enum types, add
741         flags _S_fd_in etc. for special filebuf ctor.
742         * bits/locfacets.h: make _Numeric_get and _Format_cache public
743         to work around problems in friend declarations.
744         * bits/locfacets.tcc: qualify _S_get_cache in num_get<>::get(..bool&),
745         fix random type errors & typos
746         * bits/std_fstream.h: major refitting to bypass libio (for now),
747         instrument to use bits/fstream.tcc template definitions
748         * bits/std_iosfwd.h: mess with wrappers
749         * bits/std_istream.h: remove meaningless comment
750         * bits/std_ostream.h: instrument to work with ostream.tcc.
751         * bits/std_streambuf.h: instrument to work with streambuf.tcc
752         * bits/fstream.tcc: template defs for <fstream>
753         * bits/ostream.tcc: template defs for <ostream>
754         * bits/streambuf.tcc: template defs for <streambuf>
755         * bits/os_raw.h: thin OS interface wrapper, to bypass libio (for now).
756         * Delete .cc files, replace with bits/*.tcc
757         src/fstream.cc
758         src/istream.cc
759         src/ostream.cc
760         src/streambuf.cc
761         * Add files:
762         src/os_raw.cc: thin interface to OS, to bypass libio (for now).
763         src/stdstreams.cc: cout, cin, etc. definitions
764         (these still need work: must be init'd before user statics.)
767 1998-08-18  Brendan Kehoe  <brendan@cygnus.com>
769         Sent to SGI before checkin:
770         * stl/bits/stl_vector.h (operator!=, operator>, operator<=,
771         operator>=): Define.
772         * stl/bits/stl_bvector.h (vector<bool>::flip): Define method.
773         * stl/bits/stl_deque.h (operator!=, operator>, operator<=,
774         operator>=): Define.
775         (operator==, operator<): Add inline.
776         * stl/bits/stl_map.h (operator!=, operator<, operator<=,
777         operator>=): Define.
778         * stl/bits/stl_multimap.h (operator!=, operator<, operator<=,
779         operator>=): Define.
780         * stl/bits/stl_list.h (operator!=, operator<, operator<=,
781         operator>=): Define.
782         * stl/bits/stl_set.h (operator!=, operator<, operator<=,
783         operator>=): Define.
784         * stl/bits/stl_multiset.h (operator!=, operator<, operator<=,
785         operator>=): Define.
787         * bits/std_valarray.h (_Shift_left, _Shift_right): Inherit from
788         unary_function.
790 1998-08-15 Nathan Myers <ncm@cantrip.org>
792         * bits/ios_base.h: change nominal bitmask and enum types to real enums
793         * bits/locfacets.h: make _Format_cache bool names usable by num_get
794         * bits/locfacets.tcc: make num_get<>::get(... bool&) use _Format_cache
795         * bits/std_fstream.h: minor cleanups: ctors delegate to open()
796         * bits/std_iosfwd.h: more bitmask changes, for ios_base::iostate
797         * bits/std_sstream.h: formatting cleanups
799 1998-08-14 Nathan Myers <ncm@cantrip.org>
801         * bits/locfacets.tcc: implement num_get<>::do_get(..., bool&)
802         * bits/locfacets.tcc: implement time_get<>::do_get_weekday
803         * bits/locfacets.tcc: implement time_get<>::do_get_monthname
804         * bits/locfacets.h:   fix missing argument in do_get_monthname
805         (this is a bug in the standard, ref. 36 in my list.)
806         * bits/locfacets.h: make month and day name caches mutable
807         * bits/locfacets.tcc: various typos in get() functions
808         * bits/sbuf_iter.h: fix omission in istreambuf_iterator::op++().
809         * bits/std_streambuf.h: fix typo in sgetn (Brendan)
811 1998-08-12 Nathan Myers <ncm@cantrip.org>
812         * move streambuf iterators to bits/sbuf_iter.h
813         * optimize streambuf iterators
814         * begin generalizing streambuf
815         * begin implementing num_get<>::get (starting with bool)
816         * patch stl/bits/stl_config.h so that relops operators are
817         contained properly, out of the way.
819 1998-07-24 Nathan Myers <ncm@cantrip.org>
820         * Fold in SGI 3.11 changes (uglified names, some algorithm
821           improvements, very minor bug fixes.)
822         * Uglify names elsewhere to match (s/_T/_Tp/).
823         * Begin work on optimized streambuf
824         * Put complex.cc in namespace std:: (thanks Martin)
826 1998-07-17 Nathan Myers <ncm@cantrip.org>
828         * bits/char_traits.h: add _Char_traits_match template.
829         * bits/string.tcc: fix bugs in various find_last* members.
830         * bits/basic_string.h: redeclare member _S_find.
831         * stl/bits/stl_iterator.h: change member names in nonstandard
832           templates bidirectional_reverse_iterator and
833           random_access_reverse_iterator to match expected changes
834           in upstream source.
835         * src/string.cc: fix definitions of stream operators.
837 1998-07-14 16:06  Ulrich Drepper  <drepper@cygnus.com>
839         * Makefile.am (SUBDIRS): Add string.
841         * configure.in: Test for long double functions separately.  Test for
842         ISO C 89 float functions.  Test for endian.h and sys/isa_defs.h.
843         Generate string/Makefile.
845         * bits/c++config.h: Define mbstate_t for Solaris.
847         * bits/char_traits.h: Remove unused #if.
849         * bits/std_cwchar.h: Declare wide char string functions.
851         * m4/stringfcts.m4: New file.
853         * math/complex-stub.h: Declare nan.
854         * math/nan.c: New file.
856         * math/mathconf.h: Hack around missing endian.h file.
857         Handle missing NAN definition.
858         Handle missing float math functions.
860         * src/Makefile.am (libstdc___la_LIBADD): Add libstring.la.
861         (libstdc___la_LDFLAGS): Set version information.
863         * src/complexl.cc: Don't compile any code if no long double functions
864         are available.
866         * string/Makefile.am: New file.
867         * string/dummy.c: New file.
868         * string/wmemchr.c: New file.
869         * string/wmemcmp.c: New file.
870         * string/wmemcpy.c: New file.
871         * string/wmemmove.c: New file.
872         * string/wmemset.c: New file.
874 1998-07-14 10:45  Ulrich Drepper  <drepper@cygnus.com>
876         * configure.in: Make it work.
877         * install-sh: New file.
878         * missing: New file.
879         * mkinstalldirs: New file.
880         * m4/mathfcts.m4: New file.
881         * math/Makefile.am: New file.
883         * bits/std_complex.h (conj): Mark specializations as inline.
885         * math/carg.c: New file.
886         * math/cargf.c: New file.
887         * math/cargl.c: New file.
888         * math/mycabs.c: New file.
889         * math/mycabsf.c: New file.
890         * math/mycabsl.c: New file.
891         * math/signbit.c: New file.
892         * math/signbitf.c: New file.
893         * math/signbitl.c: New file.
895         * math/ccos.c: Avoid ISO C 9x functionality.
896         * math/ccosf.c: Likewise.
897         * math/ccosh.c: Likewise.
898         * math/ccoshf.c: Likewise.
899         * math/ccoshl.c: Likewise.
900         * math/ccosl.c: Likewise.
901         * math/cexp.c: Likewise.
902         * math/cexpf.c: Likewise.
903         * math/cexpl.c: Likewise.
904         * math/clog.c: Likewise.
905         * math/clog10.c: Likewise.
906         * math/clog10f.c: Likewise.
907         * math/clog10l.c: Likewise.
908         * math/clogf.c: Likewise.
909         * math/clogl.c: Likewise.
910         * math/cpow.c: Likewise.
911         * math/cpowf.c: Likewise.
912         * math/cpowl.c: Likewise.
913         * math/csin.c: Likewise.
914         * math/csinf.c: Likewise.
915         * math/csinh.c: Likewise.
916         * math/csinhf.c: Likewise.
917         * math/csinhl.c: Likewise.
918         * math/csinl.c: Likewise.
919         * math/csqrt.c: Likewise.
920         * math/csqrtf.c: Likewise.
921         * math/csqrtl.c: Likewise.
922         * math/ctan.c: Likewise.
923         * math/ctanf.c: Likewise.
924         * math/ctanh.c: Likewise.
925         * math/ctanhf.c: Likewise.
926         * math/ctanhl.c: Likewise.
927         * math/ctanl.c: Likewise.
929         * math/complex-stub.h: New file.
931         * math/mathconf.h: New file.
933         * src/Makefile.am: New file.
935         * src/complex.cc: Use mathconf.h instead of complex.h.
936         Don't use cabs, always use __mycabs.
938 1998-02-13  Brendan Kehoe  <brendan@cygnus.com>
940         * iterator (class reverse_iterator): Do some tweaks to be in sync
941         w/ the FDIS.