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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [language/] [cxx/] [ustl/] [current/] [HISTORY] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
2010-03-21 Release 1.4
2
        * Fixed crash in destructor of empty vector, introduced by 1.3
3
        * Fixed list merge, which previously did not compile
4
        * Some portability changes to configure so it will work with dash
5
            when escape char processing bug is fixed (Ubuntu bug #268929)
6
 
7
2009-08-04 Release 1.3
8
        * Some API changes to comply with the current C++ standard
9
            binary_search algo returns true, not the found iterator
10
            stack and queue are now type templates, not container adaptors.
11
            Correctly set eof and fail flags in all stream functions
12
                This allows the use of the non-exception path in streams
13
                verify_remaining will no longer throw unless exceptions are on in the stream
14
                verify_remaining will return false if space is insufficient and set flags
15
                exceptions are on by default in istream and ostream and off elsewhere
16
            Updated return values of stream functions to match the standard
17
            what() on message exceptions returns the text passed to the ctor
18
            set insert also returns an iterator/bool pair
19
            map insert now returns an iterator,bool pair
20
        * streamsize and streamoff types defined
21
        * Added string resize with a value arg
22
        * Added standalone getline
23
        * Added numeric_limits digits and digits10
24
        * Name demangling is now an option, off by default, removing ~20k
25
        * A new and improved nonrecursive make system
26
        * Numerous small size and speed optimizations
27
        * A few minor bugfixes
28
 
29
2008-02-17 Release 1.2
30
        * Fixed ifstream readsome to work correctly on nonblocking fds.
31
        * Yet another try at fixing noalias rearrangments.
32
                Added a memory clobber and +g to noalias templates.
33
        * Added dtors template which will embody range destructors for
34
                destroy and vector dtor instead of vector deallocate. It is
35
                called by destroy through a selector template, turning it off
36
                completely for integral types. This removes empty deallocate
37
                instantiations for integral type vectors.
38
        * Fixed bitset stream_size (bits-words confusion)
39
        * Added workaround for compile error when printing a char array.
40
        * Added static_assert from Loki.
41
 
42
2007-09-02 Release 1.1
43
        * Due to the demise of SourceForge compile farm, this and subsequent
44
                releases are not as well tested the previous ones. So please
45
                report compilation problems, if any, on non-x86_64 platforms.
46
        * Fixed various aliasing problems complained about by gcc 4.2.
47
        * Added noalias_cast(v) to aid in working around the above
48
                aliasing problem. The aliased variables also must be
49
                explicitly touched by an empty asm statement or something.
50
        * Reimplemented stream_size_of as a template stack because the old
51
                implmentation is invalid in gcc 4.2+ due to a change in
52
                overloaded set lookup scope. vector and tuple now have the
53
                standard read/write/stream_size members.
54
        * Reimplemented flow operators as templates.
55
        * STD_STREAMABLE and TEXT_STREAMABLE are no longer necessary.
56
        * Merged some template metaprogramming stuff from Alexandrescu's Loki
57
                library, including typelists and type traits.
58
        * Implemented generic macro list macros. See metamac.h.
59
        * Fixed some bsconf warnings.
60
        * memblock is_linked now correctly returns true when linked to NULL.
61
        * Added back() to string.
62
        * Fixed a memory leak in CBacktrace GetSymbols.
63
        * Changed written exception data to look like an IFF chunk.
64
        * Removed "memory" from some simd spec clobber lists.
65
        * Reduced the amount of code generated by vector stream templates.
66
        * talign will no longer generate a temp object when called with
67
                non-trivial classes. Uses NullValue template to avoid.
68
        * Linking with gcc instead of using -nodefaultlibs is simpler.
69
        * Removed link number overloads. Sadly, I don't know what this will
70
                break, if anything. On my machine the only case is link(p,0),
71
                which generates an ambiguity error and is easily fixed by
72
                explicitly casting the zero to a size_t. The benefit is
73
                cleaner code and fewer problems for the Symbian port, so the
74
                change stays until/unless somebody reports it as a problem.
75
        * Added long4grain and ptr4grain wrappers to explicitly write long
76
                values on 4-grain, even on 64bit platforms.
77
 
78
2006-10-27 Release 1.0 SVN 428
79
        * API CHANGE: ostringstream now works like std::ostringstream, with
80
                an internal buffer instead of writing to an external one
81
                through a link. Instead of passing the buffer to the ctor,
82
                write directly to a default-constructed stream object and
83
                assign buf = os.str() when finished.
84
        * Format change: containers will now write their size as a uint32_t
85
                instead of size_t to allow binary compatibility with 64 bit
86
                architectures. On 32 bit machines this makes no difference.
87
        * Renamed fdostringstream to ofstream.
88
        * Renamed fdistringstream to ifstream.
89
        * Renamed iterator_swap to iter_swap, as in the standard.
90
        * file.h/cc was removed; fstream replaces its functionality.
91
        * Added most remaining i/ostringstream functions that make sense in
92
                this implementation: str, put, get, getline, ignore, peek,
93
                readsome, putback, unget, tellg, seekg, sync, flush, seekp,
94
                tellp, good. The rest will probably not be implemented at
95
                all, since they reference streambufs which don't exist in uSTL.
96
        * Implemented fstream and used it in ifstream/ofstream.
97
        * Added remaining algorithms: find_end, find_first_of, includes,
98
                is_sorted, lexicographical_compare, max_element, min_element,
99
                partial_sort, partial_sort_copy, partition, next_permutation,
100
                prev_permutation, reverse_copy, rotate_copy, search, search_n,
101
                set_difference, set_intersection, set_symmetric_difference,
102
                set_union, and stable_partition. All the algorithms defined by
103
                the C++ standard are now implemented.
104
        * Made ios_base and ios classes instead of namespaces and derived
105
                all stream objects from ios_base. Pulled up state and all
106
                related functions into it. The only problem with this is that
107
                end() conflicts with seekdir end, so you'll need to use
108
                ios scope when you want the latter.
109
        * Align container ends on 4 grain.
110
                While this is not very friendly to 64bit architectures, it is
111
                the only way to allow writing containers portably. It is
112
                better to always align to an arbitrary value than to align to
113
                a platform-dependent one.
114
        * Removed non-const data pointer from memlink.
115
                While enforcing const-correctness is a good thing, the errors
116
                this catches are relatively rare and are all programmer errors.
117
                I must concede that the benefits of having memblocks, strings,
118
                and containers be 16 bytes in size is a great advantage in both
119
                speed and codesize. As a result, one needs to be more mindful
120
                to not modify memlink-derived objects that are linked to const
121
                data; before this change it would have caused a crash, now it
122
                might or might not do that, as with regular pointers.
123
        * Added CBacktrace class for printing backtrace information.
124
        * x86_64 cleanup and improvements, including MMX support.
125
        * Micro-optimization pass for size. Saved 24% (32k)!
126
        * exception now creates a backtrace when thrown.
127
        * Do cout.flush() before read in cin, like std does.
128
        * max_size() on linked objects should return size(), because it is.
129
        * >=, <=, and compare templates no longer require == (>= is !<)
130
        * Pulled rotate code into rotate_fast for memory blocks.
131
        * stream_bounds_exception demangles type names.
132
        * set,map,multiset,multimap now instantiate less crud.
133
        * Abandoned any attempt to use the goddamned byteswap.h.
134
        * Implemented bitset any, none, and count.
135
        * New popcount algorithms.
136
        * Implemented compose1 and compose2 extensions.
137
        * Support building as a .dylib on MacOS.
138
        * Removed --without-cout configure option.
139
 
140
2005-11-10 Release 0.8
141
        * API CHANGE: changed all string's find members to return offsets
142
                instead of iterators. That's what the STL standard requires.
143
                Also added standard-required replace/inserts with offset
144
                arguments. Yes, this is a bit painful. I was using it a lot...
145
                But it's all for the better. I promise!
146
        * Removed char_at and ichar from string; use utf8_begin/end instead.
147
        * Iterator-based string insert now return an iterator, like vector.
148
        * Added more wchar_t overloads to string, include append and assign.
149
        * Updated bsconf to use malloc instead of static buffers.
150
        * construct/destruct will now disappear for integral types.
151
                Integral types have no destructors/constructors.
152
        * Fixed istream_iterator to read on construction and in operator++
153
                as the standard says. Unfortunately, this makes it almost
154
                totally useless, since using it as a source for copy will
155
                always overread by one because copy will call ++ past the
156
                end, which will read one element past the end. This behaviour
157
                is understandable when reading to EOF (which is the only
158
                example ever shown for using it), but worthless when you
159
                have a fixed number of elements you want to read. I'm only
160
                using it to implement utf8 from streams, so, having fixed
161
                that to not overread, I'll chalk it up to standard
162
                compliance.
163
        * Made istream_iterator default constructible and implemented the
164
                EOF check during reading. This should make read-to-EOF
165
                scenario possible.
166
        * Made streams runtime bounds checking on by default.
167
        * Added operator-- to istream_iterator to do unputs.
168
                This works only once for variable-length types because there
169
                is no way to know the length to back up to get the element
170
                before the currently cached one. Constant-length types can
171
                be unput multiple times, and can use -= and - operators.
172
        * fdistringstream underflow will no longer erase the entire buffer.
173
                This helps to keep ungetc working most of the time.
174
        * Similarly fixed utf8in_iterator to read on construction.
175
                This fixed the double-advance bug in utf8in_iterator.
176
        * Fixed utf8in_iterator to not read ahead (except in constructor)
177
                before operator++ is called. This ensures that it does not
178
                read past the end of the string if it isn't 0-terminated.
179
                (Although it will still do so if you call ++)
180
        * Field width should be padded with spaces, not zeroes.
181
        * Implemented some heap algorithms.
182
        * Added VectorRange macro.
183
        * Added relink() call to memlinks for faster resizing.
184
                relink does the work of link, but without calling unlink.
185
        * Added to string substr and like functions.
186
        * Moved simd fill into ualgobase.cc
187
        * configure now recompiles bsconf if its sources change.
188
        * Fixed a rare off-by-one error in ostringstream vprintf.
189
        * Removed fdostringstream printf, since ostringstream has it already.
190
        * Fixed bsconf crash when all inline options are enabled.
191
        * Fixed crash when NULL filename given to file_exception.
192
        * Corrected potential buffer overflow in file_exception and sistream.
193
        * Fixed string rfind for strings; was returning a wrong value sometimes.
194
        * Added copy_link call to memblock to make a copy of linked data.
195
        * Added assert to memlink begin() to warn when writing to a const block.
196
        * Makefile now correctly uses ${MAKE} to recurse.
197
        * Removed all usage of "y" in SIMD asm blocks; gcc<4-> movd, not movq.
198
                This fixes problems with MMX fround on some platforms.
199
        * Removed SSE3 detection from bsconf; it just doesn't work!
200
        * Added BYTE_ORDER detection in bsconf.
201
        * Made BYTE_ORDER and bswap always defined.
202
 
203
2005-06-28 Release 0.7-1
204
        * Now compiles with gcc 4.0.0
205
        * Standard exception constructors now take const char* instead
206
                of string&; this generates much less code.
207
        * Fixed reversed conditional ostringstream.format
208
                This was causing a seek exception sometimes.
209
        * Added ostringstream.vformat
210
        * Added FPU registers to reset_mmx modlist; apparently gcc doesn't
211
                know that they are shared with MMX registers.
212
        * Moved simd copy into ualgobase.cc; they are not inlined anyway.
213
        * Added workaround for BSD which has no __va_copy.
214
                I wonder why nobody reported this as a bug. Is anyone running
215
                BSD out there? Anyone? Anyone at all? Is the damn thing dead?
216
        * So it now compiles on BSD again... Whoohoo...
217
 
218
2005-04-16 Release 0.7
219
        * Removed vector inheritance from memblock.
220
                There are just too many problems with treating a vector
221
                this way. You can still do it explicitly by linking a
222
                memblock to the vector. Removing the inheritance causes
223
                vector to be non-virtual, which drastically reduces
224
                instantiation cost.
225
        * Removed elementSize, elementBytes member functions from cmemlink.
226
                Only vector inheritance needed elementSize.
227
        * Restricted vector link calls to T* instead of void*.
228
                This way there would be explicit casts to warn of weirdness.
229
        * Optimized vector push_back
230
        * ostream will now zero bytes skipped by align.
231
        * memblock will no longer zero newly allocated storage.
232
        * Inlined empty constructors on map,multimap,set,multiset.
233
        * NUMERIC_LIMITS macros to facilitate specialization.
234
        * Fixed string vformat problem crashing on x86_64
235
                Because vsnprintf is called twice, need to copy arglist.
236
        * Added an rm before ln in install to avoid "already exists" errors.
237
                SunOS still doesn't know about the -f flag...
238
        * Split the distribution into ustl and ustl-docs
239
        * New SIZE_OF_BOOL system substitution in bsconf
240
                Only Alpha and Mac have bool as a long, so a define is better.
241
        * Fixed configure being confused with multiple gcc versions.
242
        * Reduced Align code for nonstandard values.
243
        * Pulled up vector/tuple stream operators into generic container
244
                templates in uctrstm.h and made use of resulting macros.
245
        * New TEMPLATE_TYPE macros to allow template building with macros.
246
        * Fixed SSE3 detection in bsconf; thanks to Aloysius Indrayanto.
247
        * Fixed get_temporary_buffer to return size in elements, not in bytes.
248
                This is the proper behaviour as specified in the C++ standard.
249
        * Now using libc qsort in the sort algorithm.
250
                This may give you trouble if you are using a custom comparator
251
                that requires initialization outside the constructor. You can
252
                write a wrapper class that does the initialization in the
253
                constructor. Or, you can use stable_sort.
254
                I'm doing this to both speed up the common case and to reuse
255
                the functionality already linked to in libc. If you really
256
                need to have a sort with a parametrized comparator and don't
257
                want to change your code, file a bug report and I'll change
258
                it back. I just don't think anyone is using this type of
259
                construction.
260
        * Finished heap algorithms.
261
        * Added priority_queue.
262
        * Added deque as a define to list.
263
        * Added noalias template to circumvent the type-punned pointer
264
                dereference warning given by gcc 4.1.0+
265
 
266
2005-01-17 Release 0.6
267
        * The library is relicensed under the MIT License (was LGPL)
268
        * Dropped support for locale due to its great complexity and ugliness.
269
                You can include  from libstdc++ if you still want it.
270
        * ostringstream now uses snprintf for all integer types, so the output
271
                will be localized according to libc locale settings. As a side
272
                effect of this, you will not be able to print negative hex
273
                numbers any more (as in -6AD4), not that it was a good idea...
274
        * tuple will no longer align at the end:
275
                This affects you if you write tuples with small elements
276
                off default grain. For example, writing tuple<2,int16>
277
                on grain 2 would have aligned prior to this change, causing
278
                sub-optimal packing if you wrote an array of such tuples,
279
                since each one only needs grain 2 alignment.
280
        * Fixed incorrect use of __alignof__ in pair stream operators.
281
        * Added size_t ul-or-ui detection code to bsconf and fixed the
282
                size_t/pointer overload in uutility to use it.
283
        * Added erase(iterator,const_iterator) overload for string
284
        * Added alloca_link macro.
285
        * cmemlink will now throw bad_alloc if linking to !p && n.
286
        * multiset and multimap will insert equal elements in order.
287
                I wasn't able to find any guidance concerning the order of
288
                equal elements; it appears to be unspecified. Prior to this
289
                change equal elements were inserted in reverse order, which
290
                is bad idea because it causes a larger copy to make space.
291
                (Note that multimap only compares the key, since the mapped
292
                value is not required to have an operator<. If you want them
293
                sorted, you can use sort() on it.)
294
        * Fixed remove_copy algorithms to not require value operator !=.
295
        * bool will now be written as a byte regardless of the type size.
296
        * sistream now handles 64bit types correctly.
297
 
298
2004-11-11 Release 0.5
299
        * configure will now properly enable mmx compiler flags.
300
        * configure has a --with-profile option.
301
        * Fixed a bug in ostringstream format inserting extra '\0'
302
        * Fixed a bug in string find which sometimes did not match at the
303
                beginning of the text.
304
        * ostringstream will now use faster paged allocation.
305
        * New alignof specializations for cmemlink(size_t) and string(1)
306
        * Fixed tuple's value constructors to zero unspecified values.
307
        * Added parentheses around ctr argument in foreach for computed vars.
308
        * General simd interface for tuple optimization.
309
        * Proper link interface in vector, that takes element count.
310
        * set_terminate and set_unxpected prototypes are now available.
311
        * LOOKUP_TEXT_STREAMABLE macro for printing through name arrays.
312
        * Fixed iterator_swap to take iterators by value (reference& swap bad)
313
        * Container random_shuffle.
314
        * vformat method for string to allow implementation of custom printfs.
315
        * TestAndSet inline utility function with the cmpxchg instruction.
316
        * Fixed tuple stream_size_of to add up the elements if nonintegral.
317
        * Added is_integral member to numeric_limits for specialization aid.
318
        * Changed limits is_signed from a function to a bool like SGI does it.
319
 
320
2004-07-28 Release 0.4-3
321
        * A ChangeLog! After all these years...
322
        * SIMD instruction support for fill and copy
323
        * matrix template (on top of tuple)
324
                3dNow! instructions are supported for vector transforms.
325
        * New utility templates
326
            absv                - absolute value.
327
            sign                - -1 for negative, 0 for 0, 1 for positive
328
            abs_distance        - returns an absolute value of the difference.
329
            distance            - now returns ptrdiff_t, as in SGI STL.
330
            size_of_elements    - useful for working with static arrays in
331
                                  templates; returns sizeof(T) * n.
332
            pack_type           - useful for unrolling loops, packs a small
333
                                  type into a big one.
334
            alignof             - recommended alignment for a type (uses GCC
335
                                  __alignof__ extension, if available)
336
            eachfor             - same as foreach, but for reverse_iterator
337
        * get_temporary_buffer implemented using alloca and macros
338
        * Updated rotate to use alloca for small moves.
339
                This should speed up vector operations, like insert and erase.
340
        * Fixed copy_backward to actually copy backward rather than reverse.
341
        * Made resize virtual in memblock to properly handle strings.
342
        * sostream/sistream will handle wchar_t properly (as utf8 read/write)
343
        * ustring.cc: fixed multiple wchar_t insert
344
        * ustring.cc: changed allocation strategy to simply reserve the space
345
                for the null terminator instead of tweaking size() all the
346
                time. It's cleaner and saner this way.
347
        * benchmarking tool in bvt
348
        * More functions implemented in bitset.
349
        * Added --with-static and --without-shared flags to configure.
350
 
351
2004-05-22 Release 0.4-2
352
        * ostringstreams will now correctly resize the buffer as needed.
353
        * Fixed floating point output
354
                (well, not really, just switched to using snprintf)
355
 

powered by: WebSVN 2.1.0

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