OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [doc/] [xml/] [manual/] [evolution.xml] - Blame information for rev 750

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 742 jeremybenn
2
         xml:id="appendix.porting.api" xreflabel="api">
3
4
 
5
API Evolution and Deprecation History
6
  
7
    ISO C++
8
    api
9
    evolution
10
    deprecation
11
    history
12
  
13
14
 
15
 
16
 
17
18
A list of user-visible changes, in chronological order
19
20
 
21
<constant>3.0</constant>
22
 
23
 
24
  
25
Extensions moved to include/ext.
26
  
27
 
28
29
Include files from the SGI/HP sources that pre-date the ISO standard
30
are added. These files are placed into
31
the include/backward directory and a deprecated warning
32
is added that notifies on inclusion (-Wno-deprecated
33
deactivates the warning.)
34
35
 
36
Deprecated include backward/strstream added.
37
 
38
Removal of include builtinbuf.h, indstream.h, parsestream.h, PlotFile.h, SFile.h, stdiostream.h, and stream.h.
39
40
 
41
 
42
 
43
44
 
45
<constant>3.1</constant>
46
 
47
  
48
  
49
 
50
51
Extensions from SGI/HP moved from namespace std
52
to namespace __gnu_cxx. As part of this, the following
53
new includes are
54
added: ext/algorithm, ext/functional, ext/iterator, ext/memory, and ext/numeric.
55
56
 
57
58
Extensions to basic_filebuf introduced: __gnu_cxx::enc_filebuf, and __gnu_cxx::stdio_filebuf.
59
60
 
61
62
Extensions to tree data structures added in ext/rb_tree.
63
64
 
65
66
Removal of ext/tree, moved to backward/tree.h.
67
68
 
69
70
 
71
<constant>3.2</constant>
72
 
73
  
74
  
75
Symbol versioning introduced for shared library.
76
 
77
Removal of include backward/strstream.h.
78
 
79
Allocator changes. Change __malloc_alloc to malloc_allocator and __new_alloc to new_allocator. 
80
 
81
    For GCC releases from 2.95 through the 3.1 series, defining
82
   __USE_MALLOC on the gcc command line would change the
83
   default allocation strategy to instead use  malloc and
84
   free. (This same functionality is now spelled _GLIBCXX_FORCE_NEW, see
85
   this page
86
   for details.
87
   
88
 
89
 
90
Error handling in iostreams cleaned up, made consistent. 
91
 
92
 
93
94
 
95
<constant>3.3</constant>
96
 
97
  
98
  
99
100
 
101
<constant>3.4</constant>
102
 
103
  
104
  
105
106
Large file support.
107
108
 
109
 Extensions for generic characters and char_traits added in ext/pod_char_traits.h.
110
111
 
112
113
Support for wchar_t specializations of basic_filebuf enhanced to support UTF-8 and Unicode, depending on host. More hosts support basic wchar_t functionality.
114
115
 
116
117
Support for char_traits beyond builtin types.
118
119
 
120
121
Conformant allocator class and usage in containers. As
122
part of this, the following extensions are
123
added: ext/bitmap_allocator.h, ext/debug_allocator.h, ext/mt_allocator.h, ext/malloc_allocator.h,ext/new_allocator.h, ext/pool_allocator.h.
124
125
 
126
127
This is a change from all previous versions, and may require
128
source-level changes due to allocator-related changes to structures
129
names and template parameters, filenames, and file locations. Some,
130
like __simple_alloc, __allocator, __alloc,  and 
131
_Alloc_traits have been removed.
132
133
 
134
Default behavior of std::allocator has changed.
135
 
136
137
   Previous versions prior to 3.4 cache allocations in a memory
138
   pool, instead of passing through to call the global allocation
139
   operators (i.e., __gnu_cxx::pool_allocator).  More
140
   recent versions default to the
141
   simpler __gnu_cxx::new_allocator.
142
143
 
144
 Previously, all allocators were written to the SGI
145
   style, and all STL containers expected this interface. This
146
   interface had a traits class called _Alloc_traits that
147
   attempted to provide more information for compile-time allocation
148
   selection and optimization. This traits class had another allocator
149
   wrapper, __simple_alloc<T,A>, which was a
150
   wrapper around another allocator, A, which itself is an allocator
151
   for instances of T. But wait, there's more:
152
   __allocator<T,A> is another adapter.  Many of
153
   the provided allocator classes were SGI style: such classes can be
154
   changed to a conforming interface with this wrapper:
155
   __allocator<T, __alloc> is thus the same as
156
   allocator<T>.
157
   
158
 
159
    The class allocator used the typedef
160
   __alloc to select an underlying allocator that
161
   satisfied memory allocation requests. The selection of this
162
   underlying allocator was not user-configurable.
163
   
164
 
165
166
Extension Allocators
167
 
168
169
170
171
172
173
 
174
  
175
    
176
      Allocator (3.4)
177
      Header (3.4)
178
      Allocator (3.[0-3])
179
      Header (3.[0-3])
180
    
181
  
182
 
183
  
184
  
185
    __gnu_cxx::new_allocator<T>
186
    ext/new_allocator.h
187
    std::__new_alloc
188
    memory
189
  
190
  
191
    __gnu_cxx::malloc_allocator<T>
192
    ext/malloc_allocator.h
193
    std::__malloc_alloc_template<int>
194
    memory
195
  
196
  
197
    __gnu_cxx::debug_allocator<T>
198
    ext/debug_allocator.h
199
    std::debug_alloc<T>
200
    memory
201
  
202
  
203
    __gnu_cxx::__pool_alloc<T>
204
    ext/pool_allocator.h
205
    std::__default_alloc_template<bool,int>
206
    memory
207
  
208
  
209
    __gnu_cxx::__mt_alloc<T>
210
    ext/mt_allocator.h
211
     
212
     
213
  
214
  
215
    __gnu_cxx::bitmap_allocator<T>
216
    ext/bitmap_allocator.h
217
     
218
     
219
  
220
  
221
222
223
 
224
    Releases after gcc-3.4 have continued to add to the collection
225
   of available allocators. All of these new allocators are
226
   standard-style. The following table includes details, along with
227
   the first released version of GCC that included the extension allocator.
228
   
229
 
230
231
Extension Allocators Continued
232
 
233
234
235
236
237
 
238
239
  
240
    Allocator
241
    Include
242
    Version
243
  
244
245
 
246
247
  
248
    __gnu_cxx::array_allocator<T>
249
    ext/array_allocator.h
250
    4.0.0
251
  
252
  
253
    __gnu_cxx::throw_allocator<T>
254
    ext/throw_allocator.h
255
    4.2.0
256
  
257
258
259
260
 
261
 
262
263
Debug mode first appears.
264
265
 
266
267
Precompiled header support PCH support.
268
269
 
270
271
Macro guard for changed, from _GLIBCPP_ to _GLIBCXX_.
272
273
 
274
275
Extension ext/stdio_sync_filebuf.h added.
276
277
 
278
279
Extension ext/demangle.h added.
280
281
 
282
 
283
284
 
285
<constant>4.0</constant>
286
 
287
  
288
  
289
290
TR1 features first appear.
291
292
 
293
294
Extension allocator ext/array_allocator.h added.
295
296
 
297
298
Extension codecvt specializations moved to ext/codecvt_specializations.h.
299
300
 
301
302
Removal of ext/demangle.h.
303
304
 
305
 
306
307
 
308
<constant>4.1</constant>
309
 
310
  
311
  
312
 
313
 
314
315
Removal of cassert from all standard headers: now has to be explicitly included for std::assert calls.
316
317
 
318
 Extensions for policy-based data structures first added. New includes,
319
types, namespace pb_assoc.
320
321
 
322
 
323
 
324
 Extensions for typelists added in ext/typelist.h.
325
326
 
327
 Extension for policy-based basic_string first added: __gnu_cxx::__versa_string in ext/vstring.h.
328
329
 
330
331
 
332
<constant>4.2</constant>
333
 
334
  
335
  
336
 
337
 
338
 Default visibility attributes applied to namespace std. Support for -fvisibility.
339
340
 
341
TR1 random, complex, and C compatibility headers added.
342
 
343
 Extensions for concurrent programming consolidated
344
into ext/concurrence.h and ext/atomicity.h,
345
including change of namespace to __gnu_cxx in some
346
cases. Added types
347
include _Lock_policy, __concurrence_lock_error, __concurrence_unlock_error, __mutex, __scoped_lock.
348
 
349
 Extensions for type traits consolidated
350
into ext/type_traits.h. Additional traits are added
351
(__conditional_type, __enable_if, others.)
352
353
 
354
 Extensions for policy-based data structures revised. New includes,
355
types, namespace moved to __pb_ds.
356
357
 
358
 Extensions for debug mode modified: now nested in namespace
359
std::__debug and extensions in namespace
360
__gnu_cxx::__debug.
361
 
362
 Extensions added: ext/typelist.h
363
and ext/throw_allocator.h.
364
365
 
366
367
 
368
<constant>4.3</constant>
369
 
370
  
371
  
372
 
373
 
374
375
C++0X features first appear.
376
377
 
378
TR1 regex and cmath's mathematical special function added.
379
380
 
381
382
Backward include edit.
383
384
385
  
386
    Removed
387
  
388
algobase.h algo.h alloc.h bvector.h complex.h
389
defalloc.h deque.h fstream.h function.h hash_map.h hash_set.h
390
hashtable.h heap.h iomanip.h iostream.h istream.h iterator.h
391
list.h map.h multimap.h multiset.h new.h ostream.h pair.h queue.h rope.h set.h slist.h stack.h streambuf.h stream.h tempbuf.h
392
tree.h vector.h
393
  
394
  
395
  
396
    Added
397
  
398
  hash_map and hash_set
399
  
400
  
401
  
402
    Added in C++11
403
  
404
    auto_ptr.h and binders.h
405
  
406
  
407
 
408
409
 
410
411
Header dependency streamlining.
412
413
 
414
415
  algorithm no longer includes climits, cstring, or iosfwd 
416
  bitset no longer includes istream or ostream, adds iosfwd 
417
  functional no longer includes cstddef
418
  iomanip no longer includes istream, istream, or functional, adds ioswd 
419
  numeric no longer includes iterator
420
  string no longer includes algorithm or memory
421
 
422
  valarray no longer includes numeric or cstdlib
423
  tr1/hashtable no longer includes memory or functional
424
  tr1/memory no longer includes algorithm
425
  tr1/random no longer includes algorithm or fstream
426
427
 
428
429
Debug mode for unordered_map and unordered_set.
430
431
 
432
433
Parallel mode first appears.
434
435
 
436
Variadic template implementations of items in tuple and
437
    functional.
438
439
 
440
Default what implementations give more elaborate
441
    exception strings for bad_cast,
442
    bad_typeid, bad_exception, and
443
    bad_alloc.
444
445
 
446
447
PCH binary files no longer installed. Instead, the source files are installed.
448
449
 
450
451
Namespace pb_ds moved to __gnu_pb_ds.
452
453
 
454
455
 
456
 
457
<constant>4.4</constant>
458
 
459
  
460
  
461
 
462
463
C++0X features.
464
465
 
466
467
468
  
469
    Added.
470
  
471
  
472
    atomic,
473
    chrono,
474
    condition_variable,
475
    forward_list,
476
    initializer_list,
477
    mutex,
478
    ratio,
479
    thread
480
  
481
482
 
483
484
  
485
    Updated and improved.
486
  
487
  
488
    algorithm,
489
    system_error,
490
    type_traits
491
  
492
493
 
494
495
  
496
    Use of the GNU extension namespace association converted to inline namespaces.
497
  
498
499
 
500
501
  
502
    Preliminary support for initializer_list
503
    and defaulted and deleted constructors in container classes.
504
  
505
506
 
507
508
  
509
    unique_ptr.
510
  
511
512
 
513
514
  
515
    Support for new character types char16_t
516
    and char32_t added
517
    to char_traits, basic_string, numeric_limits,
518
    and assorted compile-time type traits.
519
  
520
521
 
522
523
  
524
    Support for string conversions to_string
525
    and to_wstring.
526
  
527
528
 
529
530
  
531
    Member functions taking string arguments were added to iostreams
532
    including basic_filebuf, basic_ofstream,
533
    and basic_ifstream.
534
  
535
536
 
537
538
  
539
    Exception propagation support,
540
    including exception_ptr, current_exception, copy_exception,
541
    and rethrow_exception.
542
  
543
544
545
 
546
 
547
  
548
Uglification of try to __try
549
and catch to __catch.
550
  
551
 
552
  
553
Audit of internal mutex usage, conversion to functions returning static
554
local mutex.
555
  
556
 
557
 Extensions
558
added: ext/pointer.h
559
and ext/extptr_allocator.h. Support
560
for non-standard pointer types has been added
561
to vector
562
and forward_list.
563
564
565
 
566
<constant>4.5</constant>
567
 
568
  
569
  
570
 
571
572
C++0X features.
573
574
 
575
576
577
  
578
    Added.
579
  
580
  
581
    functional,
582
    future,
583
    random
584
  
585
586
 
587
588
  
589
    Updated and improved.
590
  
591
  
592
    atomic,
593
    system_error,
594
    type_traits
595
  
596
597
 
598
599
  
600
    Add support for explicit operators and standard layout types.
601
  
602
603
604
 
605
606
Profile mode first appears.
607
608
 
609
610
Support for decimal floating-point arithmetic, including decimal32, decimal64, and decimal128.
611
612
 
613
614
Python pretty-printers are added for use with appropriately-advanced versions of gdb.
615
616
 
617
618
Audit for application of function attributes notrow, const, pure, and noreturn.
619
620
 
621
622
The default behavior for comparing typeinfo names changed, so
623
in typeinfo, __GXX_MERGED_TYPEINFO_NAMES
624
now defaults to zero.
625
626
 
627
 Extensions modified: ext/throw_allocator.h.
628
629
630
 
631

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.