11998-12-31  Benjamin Kosnik  <bkoz@lunatic.cygnus.com>
2
3	* bits/fstream.tcc: Add fstream ctor for cin/cout/etc.
4	* bits/std_fstream.h: Ditto.
5	* src/stdstreams.cc: Ditto.
6
7	* math/cpowl.c: Fix header typo with last change.
8
91998-12-31  Benjamin Kosnik  <bkoz@loony.cygnus.com>
10
11	* COPYING: New file (GPL v 2).
12	* LICENSE.STD: Remove.
13	* ./*: Change license.
14
151998-12-30  Benjamin Kosnik  <bkoz@haight.constant.com>
16
17	* bits/std_streambuf.h (std): Remove static on _M_init.
18	* bits/streambuf.tcc (std): Ditto.
19
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.
23
241998-12-21  Benjamin Kosnik  <bkoz@haight.constant.com>
25
26	* bits/std_sstream.h: Tweak.
27	* bits/fstream.tcc: Remove unused stubs.
28	* bits/std_fstream.h: Tweak.
29
301998-12-17  Benjamin Kosnik  <bkoz@tintin.cygnus.com>
31
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.
37
38	* bits/std_cstdio.h: Add SEEK_SET, SEEK_END, SEEK_CUR.
39	* bits/ios_base.h: Use.
40
41	* src/stdstreams.cc: Modify to reflect standard ctors for
42	filebuf.
43	* src/misc-inst.cc: Ditto.
44
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.
54
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.
61
621998-12-11  Benjamin Kosnik  <bkoz@haight.constant.com>
63
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.
69
701998-12-09 Benjamin Kosnik  <bkoz@loony.cygnus.com>
71
72	* bits/basic_string.h: Tweak.
73
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.
77
781998-12-07  Benjamin Kosnik  <bkoz@haight.constant.com>
79
80	* bits/std_sstream.h: Tweak.
81	* bits/sstream.tcc: Tweak ctors.
82
83	FIXME invalid friend defs. . WHERE ARE THEY??
84
85	* bits/sbuf_iter.h (istreambuf_iterator::equal): Change to new
86	names for basic_streambuf data members.
87
88	* bits/std_streambuf.h: Add getloc() initialization bits.
89	basic_streambuf(): Initialize with global locale data.
90	imbue(): Set _M_init.
91
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.
97
98	* bits/std_streambuf.h: _M_snextc_helper(): Remove.
99
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.
103
1041998-12-03  Benjamin Kosnik  <bkoz@cygnus.com>
105
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.
109
110	* src/stdstreams.cc (std): Disable wchar_t instantiations.
111
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.
121
1221998-12-02  Benjamin Kosnik  <bkoz@cygnus.com>
123
124	* bits/std_sstream.h: Add const_cast to rdbuf returns.
125	* testsuite/27stringstream.C: Modify.
126
1271998-11-25  Benjamin Kosnik  <bkoz@haight.constant.com>
128
129	* src/Makefile.in (libstdc___la_OBJECTS): Add streambuf.lo.
130	(libstdc___la_SOURCES): Ditto.
131
132	* bits/streambuf.tcc: Tweak.
133
134	* src/streambuf.cc: New file, add out-of-line definitions for
135	_Streambuf_base.
136
137	* src/misc-inst.cc: Remove _Streambuf_base instantiations.
138	Comment out wchar_t versions of the buffer instantiations, for now.
139
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.
144
145	* bits/c++config.h (_G_USE_LIBIO): Enable.
146
1471998-11-02  Nathan Myers <ncm@cantrip.org>
148
149	* CHECKLIST: downgrade iterator implementations
150	* DESIGN: fill out notes about unimplemented features
151
1521998-10-31  Nathan Myers <ncm@cantrip.org>
153
154	* CHECKLIST: itemized list of all interfaces, and status of each.
155
1561998-10-30  Nathan Myers  <ncm@cantrip.org>
157
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
161
1621998-10-30  Benjamin Kosnik  <bkoz@loony.cygnus.com>
163
164	* bits/basic_string.h: Revert npos pending ciso646.
165	* src/Makefile.am: Revert CXX flags for now.
166	* src/Makefile.in: Ditto.
167
1681998-10-30  Brendan Kehoe  <brendan@cygnus.com>
169
170	* bits/std_sstream.h: Re-order ctors to put base before member
171	inits.
172
1731998-10-30  Ryszard Kabatek  <kabatek@chemie.uni-halle.de>
174
175	* stl/bits/std_memory.h: Fix typo.
176
1771998-10-30  Nathan Myers <ncm@cantrip.org>
178
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
195
1961998-10-29  Ulrich Drepper  <drepper@cygnus.com>
197
198	* src/string[A-Z]+.cc: Include stdstring.cc, not string.cc.
199
200	* src/Makefile.am (CXXFLAGS): Define _GNU_SOURCE.
201
202	* src/Makefile.am (CXXLINK): New variable.  Make sure we don't use
203	CXX to generate the shared object.
204
205	* src/Makefile.am (headers): Remove duplicated char_traits.h.
206
2071998-10-29  Brendan Kehoe  <brendan@cygnus.com>
208
209	* bits/basic_string.h (basic_string<>::max_size): Subtract 1, not
210	2, from npos, solving infinite loop problems.
211
2121998-10-29 18:41  Ulrich Drepper  <drepper@cygnus.com>
213
214	* src/Makefile.am: Add rules to install headers.
215
2161998-10-29  Nathan Myers <ncm@cantrip.org>
217
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.
224
2251998-10-29  Brendan Kehoe  <brendan@cygnus.com>
226
227	* bits/ostream.tcc (operator<<): Wrap with #ifdef
228	_G_HAVE_LONG_DOUBLE_IO, to match bits/std_ostream.h.
229
2301998-10-29  Ulrich Drepper  <drepper@cygnus.com>
231
232	* src/Makefile.am: Add temporarily rules to make sure misc-inst.cc
233	is not compiled with -fno-implicit-templates in effect.
234
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.
302
3031998-10-29 Nathan Myers <ncm@cantrip.org>
304
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.
313
314
3151998-10-28  Brendan Kehoe  <brendan@cygnus.com>
316
317	* stl/bits/stl_pair.h (op!=, op>, p<=, op>=): Add missing definitions.
318
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.
322
323	* bits/std_sstream.h (basic_ostringstream::str): Fix typo of extra
324	semicolon.
325	(basic_stringstream::str, both instances): Likewise.
326
3271998-10-28 Nathan Myers <ncm@cantrip.org>
328
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.
334
3351998-10-27 Nathan Myers <ncm@cantrip.org>
336
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.
343
3441998-10-27 Nathan Myers <ncm@cantrip.org>
345
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
349
3501998-10-26 Nathan Myers <ncm@cantrip.org>
351
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.
374
3751998-10-26  Benjamin Kosnik  <bkoz@loony.cygnus.com>
376
377	* src/Makefile.in (libstdc___la_SOURCES): Add misc-inst.cc again.
378
3791998-10-21 Nathan Myers <ncm@cantrip.org>
380
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.
384
3851998-10-20 Nathan Myers <ncm@cantrip.org>
386
387	* bits/string.tcc: fix patching NULs on string ends.
388
3891998-10-19 Nathan Myers <ncm@cantrip.org>
390
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
425
4261998-10-16  Ulrich Drepper  <drepper@cygnus.com>
427
428	* string/Makefile.am: Revert last change.
429	* math/Makefile.am: Likewise.
430
4311998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>
432
433	* bits/std_sstream.h: Fix typo.
434
4351998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>
436
437	* src/Makefile.am (libstdc___la_SOURCES): Add misc-inst.cc.
438
439	* bits/std_sstream.h: Add typedefs, member definitions. Clean.
440	* bits/std_stdexcept.h: Remove.
441
4421998-10-15  Benjamin Kosnik  <bkoz@haight.constant.com>
443
444	* src/misc-inst.cc: Tweak again.
445
446	* bits/std_sstream.h: Move out-of-line definitions to sstream.tcc.
447	* bits/sstream.tcc: New file.
448
4491998-10-15  Ulrich Drepper  <drepper@cygnus.com>
450
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.
454
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.
458
4591998-10-15  Ulrich Drepper  <drepper@cygnus.com>
460
461	* math/Makefile.am (EXTRA_LTLIBRARIES): Renamed from
462	noinst_LTLIBRARIES.
463	* string/Makefile.am: Likewise.
464
4651998-10-15  Ulrich Drepper  <drepper@cygnus.com>
466
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.
471
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.
477
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.
484
485	* src/complex.cc (polar): Don't use sincos on OSF machines.
486
4871998-10-09  Benjamin Kosnik  <bkoz@loony.cygnus.com>
488
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.
498
4991998-10-09  Benjamin Kosnik  <bkoz@haight.constant.com>
500
501	* bits/std_stdexcept.h: New file.
502	* src/stdexcept.cc: Define the following:
503	logic_error::what()
504	runtime_error::what()
505
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.
509
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?)
528
5291998-10-8  Ulrich Drepper  <drepepr@cygnus.com>
530
531	* configure.in: Check for sincos, sincosf, and sincosl.
532	* src/complex.cc (polar): Use sincos if available.
533
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!!!
536
537	* math/clog10.c: Fix typo (FP_INIFITE_P -> INFINITE_P).
538
539	* math/cpow.c: Use c_log, not clog.
540	* math/cpowf.c: Likewise.
541	* math/cpowl.c: Likewise.
542
543	* math/cexp.c: Remove unused fpclassify calls.  Use FINITE_P instead
544	of isfinite call.
545
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.
549
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.
570
5711998-10-06  Benjamin Kosnik  <bkoz@bliss.nabi.net>
572
573	* bits/basic_ios.h: Fix previous change.
574
5751998-10-06  Benjamin Kosnik  <bkoz@bliss.nabi.net>
576
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.
584
5851998-10-02  Benjamin Kosnik  <bkoz@loony.cygnus.com>
586
587	* bits/basic_string.h: Should just be <, not <=.
588
5891998-10-01  Benjamin Kosnik  <bkoz@bliss.nabi.net>
590
591	* bits/string.tcc (compare): Fix for strings that are similar, but
592	not the same length.
593
5941998-09-04  Brendan Kehoe  <brendan@cygnus.com>
595
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.
600
601	* stl/bits/stl_config.h (__STL_LONG_LONG): Re-enabled
602
603	* stl/bits/std_limits.h [__STL_LONG_LONG]: Fix usage to use
604	LONG_LONG_MIN, LONG_LONG_MAX, and ULONG_LONG_MAX.
605
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.
608
6091998-09-03  Brendan Kehoe  <brendan@cygnus.com>
610
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.
614
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.
618
6191998-09-01  Brendan Kehoe  <brendan@cygnus.com>
620
621	* bits/string.tcc: Call `_M_destroy' instead of `destroy'.
622
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.
626
627	* bits/string.tcc (basic_string copy ctor): Fix typo in declaration.
628	(operator>>): Initialize __ERROR with ios_base::goodbit, not 0.
629
630	* bits/std_streambuf.h (_POSIX_SOURCE): Only define if it's not
631	already done.
632
633	* src/locale-inst.cc: New file, **TOTAL HACK**.  There has GOT to
634	be a better way to do this.
635
636	* src/stlinst.cc: New file.
637
638	* BUGS: New file, with various discovered bugs that need to be
639	fixed.
640
641	* Makefile.in, math/Makefile.in, string/Makefile.in,
642	src/Makefile.in: Reran automake.
643
644	Workarounds, these may not all be the final fixes:
645
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.
654
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.
658
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.
663
664	* bits/gslice.h: Comment out forward decls of _Array, valarray,
665	gslice_array, and _GsliceExpression.
666
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.
671
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.
675
676	* bits/std_streambuf.h: Don't include libio.h for now.
677	(class basic_streambuf): Define missing methods pubimbue and
678	getloc.
679
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.
683
684	* src/ios.cc: Instantiate basic_ios<char> and basic_ios<wchar_t>.
685
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}.
691
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.
697
698	* stl/bits/stl_algobase.h (equal): Fix to do `! (x==y)'.
699	* stl/bits/stl_iterator.h (__distance): Likewise.
700
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.
704
7051998-08-26  Brendan Kehoe  <brendan@cygnus.com>
706
707	* bits/string.tcc (basic_string::compare (const char*)): Fix to
708	return 0, not 1.
709
7101998-08-25  Brendan Kehoe  <brendan@cygnus.com>
711
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.
717
718	* bits/locfacets.h (class _Numeric_get): For friend decls, rename
719	_CharT and _InIter parms, since they duplicate the enclosing ones.
720
7211998-08-19  Brendan Kehoe  <brendan@cygnus.com>
722
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.
728
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.
733
7341998-08-18 Nathan Myers <ncm@cantrip.org>
735
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.)
765
766
7671998-08-18  Brendan Kehoe  <brendan@cygnus.com>
768
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.
786
787	* bits/std_valarray.h (_Shift_left, _Shift_right): Inherit from
788	unary_function.
789
7901998-08-15 Nathan Myers <ncm@cantrip.org>
791
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
798
7991998-08-14 Nathan Myers <ncm@cantrip.org>
800
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)
810
8111998-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.
818
8191998-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)
825
8261998-07-17 Nathan Myers <ncm@cantrip.org>
827
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.
836
8371998-07-14 16:06  Ulrich Drepper  <drepper@cygnus.com>
838
839	* Makefile.am (SUBDIRS): Add string.
840
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.
844
845	* bits/c++config.h: Define mbstate_t for Solaris.
846
847	* bits/char_traits.h: Remove unused #if.
848
849	* bits/std_cwchar.h: Declare wide char string functions.
850
851	* m4/stringfcts.m4: New file.
852
853	* math/complex-stub.h: Declare nan.
854	* math/nan.c: New file.
855
856	* math/mathconf.h: Hack around missing endian.h file.
857	Handle missing NAN definition.
858	Handle missing float math functions.
859
860	* src/Makefile.am (libstdc___la_LIBADD): Add libstring.la.
861	(libstdc___la_LDFLAGS): Set version information.
862
863	* src/complexl.cc: Don't compile any code if no long double functions
864	are available.
865
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.
873
8741998-07-14 10:45  Ulrich Drepper  <drepper@cygnus.com>
875
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.
882
883	* bits/std_complex.h (conj): Mark specializations as inline.
884
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.
894
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.
928
929	* math/complex-stub.h: New file.
930
931	* math/mathconf.h: New file.
932
933	* src/Makefile.am: New file.
934
935	* src/complex.cc: Use mathconf.h instead of complex.h.
936	Don't use cabs, always use __mycabs.
937
9381998-02-13  Brendan Kehoe  <brendan@cygnus.com>
939
940	* iterator (class reverse_iterator): Do some tweaks to be in sync
941	w/ the FDIS.
942
943