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