0.2.1 - Now export std::calloc & std::realloc - Implement std::ws - Implement istream>> (*pf)(istream) - Implement istream>> (*pf)(ios_base) - Implement string::find_last_not_of - Convert some string functions to use traits::eq in spec compliance - String now accepts resize filler character - String::assign(iterator first, iterator last) now implemented - Clean up double-semicolons - Add parent class scoping as appropriate - Make ios::Init() exported again - Replace cwchar and cstdio with my own versions, getting rid of GNU badness - Add eh_alloc to source - replacing more objects from the GNU implementation - Add configurable use of TLS as appropriate (migrating this way - no support deprecated) - Make ostream formating more accurately reflect specification (curtesy Gavin Lambert) - Make streams respect the ios_base::app flag. Added test case to check for this in fstream - Elliminate unuse architecture config code (Thanks to Mike Frysinger) - Added preliminary implementation of - Fixed memory error in list::remove implementation - Fix memory leak in vector 0.2.0 - Now can compare set iterators and const_iterators - Now can compare map iterators and const_iterators - Now can get a const value from operator* on set/map iterator - Added fixed to std::map / std::multimap - Clean up test suite - Map test now tests for some additional error conditions - Map iterators still invalidated improperly - Fix to functional binder using wrong type - Long double support now depends on float support 0.1.12 - Add missing const declarators to some data types (thanks to asierllano) - Fix list::swap to alter the nubmer of elements - Fix map and mmap code find functions - Add const operator== and operator!= to multiple containers - Removied 3-argument string::compare and substituted 5-arguement compare with defaults - Re-instituted basic_ios() constructor. istream/ostream now manually call protected init() - Fixed implementation of uflow() (Thanks tommi) - badbit now set if data not written in ostream code - fix implementation of traits::copy - Call flush far less often - Now with multimap::operator== (thanks to tommi) - Implementation of istreambuf_iterator::equal() (Thanks to tommi) - Fix certain exception implementations - Istream now sets error bits correctly (thanks to tommi) - Change implementation of streambuf::xsputn - Fix of binder2nd operator implementation - Elliminated unneccessary pointers in ostream and istream - use pointers in base class instead - Added tests of utilities - Now handle calls to new() requesting 0 bytes without throwing exception - Changed behaviour of sstream to more closely match standard, GNU libstdc++ and the rest of iostream - Fix implementation for man_fun to use mem_fun1_t as appropriate - Fix const on mem_fun1_t - Remove const from auto_ptr::release() - Add const to map::const_iterator operator->() - Add const to set::const_iterator operator->() - Provide for default argument to vector::resize() - Implemented std::ends - Implemented [multi]set comparison operators - Fixed deque operator== - Deque const_iterator now works properly - Fix auto_ptr() copy constructor to not be const - Better fix for deque const_iterator - Undef min/max in algorithm to get rid of macro versions - Yet Another Implementation of deque::iterator - Implemented swap(string, string) - Change algorithms swap to use copy constructor instead of default constructor - Added a little more from gslice_array - Created comparison operatators for list - Added binary operators to valarray - Added trig operators to valarray - Fixed typos in valarray (thanks to psm) - Broke spec slightly in slice_array to allow copying to make borken apps/compilers work - More fixes to auto_ptr const correctness - Fix deque constness in deque const_iterator typenames - Fix stringstream buffer xsputn implementation 0.1.11 - Expanding basic_string automatically expands vector, even if not explicitly expanding vector for other data types. No cost and may save space. - Explicitly share istream code for tokenizing stream - Fix of bind2nd in function (Thanks to Ted Schroeder) - Properly implement fstream::sync() - now works - Added std::streamoff - Added operators for fpos in ios - Fix resize() call in string wrapping non-existant resize() call - Fix operator >= in string - Performance speedup in vector/string (now *use* preallocated buffer space) - Showbase is no longer on by default - i|ostream now call the constructor for basic_ios properly - Fixes to how snextc() works. Code now fixed - seekoff() and thus tellg now returns ftell to give useful information - General iostream cleanups - Additions to io and other tests - Added test for streambuf - Made changes to iostream - now reads first and last character! - Update istream::read to list amount of data last read successfully - Add configuration option to avoid expanding pesky [con|de]structors - Implemented std::auto_ptr - don't know how I missed that one - Now able to have all support libraries imported (libgcc_eh) - wchar output now works properly - note that performance sucks necessarily - Fix to string::erase() so it now actually erases 0.1.10 - Implemented clog and changed cerr to meet spec (unbuffered) - Implemented wcout, wcin, wcerr and wclog - Added functions to support conversion of wchar to appropriate types - Cleanup of #includes in header files to reduce bloat and compilation time - Added ostream support for wchar - Fixed missing const declaration in functional causing problems with algorithms Peter S. Mazinger: Added -z defs to $(CC) -shared - Fixed wchar enhancements if wchar is not enabled - Cleaned up tests system to be much easier to add additional tests - Fixed problems in getline() code - Major performance increase on fstream input code (4.5X, approximately) - Move libgcc_eh and libsupc++ code into separate directories - More code expansion into the library to make executibles much smaller - Remove unneeded typedefs to clean up the code and make it easier to understand - nearly complete - only need to implement pow() - Fixed problem with failing to handle end-of-file notification - Removed certain enhancements until I can figure out why they are spewing warnings 0.1.9 Peter S. Mazinger: wchar cleanups across the board - Make sure that operator= changes the number of elements in the vector. - Fix to string::pop_back function scope - reverse_iterator copying fixed - Have max string length test aginst proper variable (oops) - Change sstream to use append instead of push_back all of the time - Make string::append start reading at the correct location - Convert sstream to allow seeking on write stream without truncation - Convert sstream xsputn to use either append or replace - Elliminate duplicate size_t definition - now use C library version - Make sure string assign(size_type n, Ch c) clears the string before resizing - Fix string insert functions to move the correct amount of data - Reimplemented cstring, cassert, cerrno, cstdlib 0.1.8 - Fixed problem in which returned this instead of *this for operator= - Fixed an problem using . instead of -> Oops. - Added string find, rfind, find_first_of and find_last_of functions - Moved operator+(string, string) into library binary. - Added header. Forgot that little thing. Oops. - Fixed insert for vector. Technique shamelessly stolen from glibc++ - fix problem in list which incorrectly handles pointers - Create native std::string::find(Ch) instead of calling through string constructor. - Fix of istream getline (only sets failbit if extracted 0 chars, not copied 0 chars) - Fix string::find so we can scan the last character in the string. - Fix map iterator overloading class definion - Fix map iterator returning value not reference - Change tests to check changes - Change ios::operator() to return 1 instead of this - Fix [i|o]stream to check open() return value - Change fstream open functions to use the proper bitwise operators - Change allocator functionality so that it works according to spec. - Conversion of STL to use allocator::construct/destroy - Make test suite nicer. 0.1.7 - 2004-12-23 - Significant changes to the library - Converted a lot of forced instanteation from double definitions to ifdef tricks - Merged some of the helper functions into the main files - Split off i/ostream string code from core string header - Lots of little bugfixes done involving function definitions, etc. - Fixed a spec error in list code - erase now returns a pointer after deleted elements, not before - Fixed a spec error in streambuf - now call pbackfail instead of returning error. - Added more code to valarray - now supports slice_array - untested - Modified test suite (by popular demand). Now the process can be automated - Added targets make tests and make test. tests builds tests and test runs them 0.1.6 - 2004-11-30 - Fixed problem with straembuf where a value was being returned instead of a pointer - Fixed a problem where a buffer was not flushed on close of an fstraem - Added basic test for fstream - Started working on better way to expand symbols in library 0.1.5 - 2004-09-26 - Added code for all algorithms - Fixed map/set code to prevent infinite loops. Oops. - Fixed list code to prevent most memory leaks. 1 still remains, but unknown location - stlport v 1.00 test suite now compiles, links and runs. Some issues remain - Fix deque constructor using the wrong end_pointer value - Added erase capability to vector - Changed multimap::find to point to first matching element instead of any matching element - Added more tests to test suite based upon problems from stlport test suite - Altered istream_iterator template so that it handles begining of stream conditions properly - Fixed make_heap and sort_heap functions to sort in the correct order - Fixed a few pedantic errors in std::string as it relates to the vector base - All (known) stlport issues have been resolved. Compiles and runs properly. 0.1.4 - 2004-09-10 - Fixed minor previous errors - Added heap functions. Just treat as a descending sorted list - Added more code to - Added <, <=, >, >= comparisons to deque iterators (don't know why I missed them in the first place) - Making Makefiles a little bit better. 0.1.3 - 2004-09-06 - Compiles with gcc 3.4, thus it is far more "correct" than previously - Started adding code for valarray 0.1.2 - 2004-09-05 - Completed all core code for set, multiset, map and multimap. Rewrote to use inheritance to cut code duplication - Added more algorithms - Now compiles the stlport 1.0 testsuite (some minor changes to not test extensions needed) - Does not yet link stlport testsuite - missing implementations of a number of functions - Added sort algorithm - using a bubble sort for now. - sort_stable will likely remain bubble sort for some time (It is both stable and in-place) - sort will likely be converted to a heap sort eventually (It is in-place, but non-stable) - List sort is a bubble sort. Might change later (insertion sort?), but it is difficult to work with list limitations - Split iterator code into two sections to cut down on dependency hell - Compiles ncurses c++ library and test application 0.1.1 - 2004-09-01 - Removed semicolons on the closing of namespaces. My compiler doesn't warn, so I may have missed one or two - Fixed a problem with the istream code which caused it to fail to read in the first character of input. - Changed compiler flags to not generate some warnings on >=GCC 3.4 - Changed build process to prevent misconfiguration under certain circumstances - Added stringstream and all of it's incarnations - Added - Added - code is considered 'under development' - not finished 0.1.0 - 2004-08-28 - Nearly done all algorithms - Added some SGI extensions - Completed numerics libraries - Only multimap has yet to be started of containers - Lots of bug fixes - Coompiles all of the stlport C++ STL tests up to mmap1.cpp (no multimap)