diff -r 000000000000 -r bde4ae8d615e os/ossrv/genericopenlibs/cppstdlib/stl/etc/ChangeLog-5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/genericopenlibs/cppstdlib/stl/etc/ChangeLog-5.1 Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,8339 @@ +2007-10-05 Francois Dumont + + * stlport/stl/debug/_iterator.h, _string.h, src/string.cpp: + Removed useless and even invalid workaround used when + _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND is defined. There is now + only one construct check class __construct_checker, + __msvc6_construct_checker has been removed. + +2007-09-28 Petr Ovtchenkov + + * Platform tested: gcc 4.1.2 20060928 (prerelease) + (Ubuntu 4.1.1-13ubuntu5), i686 GNU/Linux, glibc 2.4; + + * release-shared: fail on list_test.cpp:392 + [CPPUNIT_ASSERT(lint1.size() == 20)], suspected compiler's bug; + 1 fail from 395 tests; + + * stldbg-shared: passed 395 tests; + + * Platform tested: gcc 4.1.2, i686 GNU/Linux, glibc 2.4; + + * release-shared: fail on list_test.cpp:392 + [CPPUNIT_ASSERT(lint1.size() == 20)], suspected compiler's bug; + 1 fail from 395 tests; + + * stldbg-shared: passed 395 tests; + + * Platform tested: gcc 4.2.1, i686 GNU/Linux, glibc 2.4; + + * release-shared: passed 395 tests; + + * stldbg-shared: passed 395 tests; + + * Platform tested: gcc 4.1.1, i686 athlon-4 i386 GNU/Linux, + glibc 2.3.6; + + * release-shared: passed 395 tests; + + * stldbg-shared: passed 395 tests; + + * src/c_locale_glibc/c_locale_glibc2.c: this is a C, so + decl allowd only on top of block; + + * Platform tested: gcc 2.95.4 (debian), i686 GNU/Linux, + glibc 2.3.2; + + * release-shared: build success, as library as unit tests, + but run unit tests fail---stalling on spinlock during library + load; looks like problem with correct initialization of + statics; + + * stldbg-shared: fail build library, stlport/stl/debug/_hashtable.h:49: + declaration of `operator ==' as non-function + +2007-09-27 Francois Dumont + + * src/facets_byname.cpp: In collate::do_transform, consider + low == high as a special case, returns empty string in this + case. + +2007-09-27 Petr Ovtchenkov + + * test/unit/find_test.cpp: array initialization missed. + +2007-09-17 Francois Dumont + + * stlport/stl/_num_get.h: Add _STLP_DECLSPEC specification to + several functions that might be access by external code when + num_get facet is instantiated with something else than the + Standard required instantiation. + +2007-09-11 Francois Dumont + + * src/c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c: Fix + _Locale_strxfrm and _Locale_wcxfrm implementation to take + into account strings that are not zero terminated. + + * test/unit/locale_test.cpp: Add check that collate.tranform + method build a key only for chars in the range pass to method. + +2007-09-10 Francois Dumont + + * src/facets_byname.cpp: John Maddock bug report 1788618 fix. + Moreover remove use of an intermediate buffer to get result + of _Locale_strxfrm. + + * test/unit/locale_test.cpp: Add tests for collate::transform + facet method. + + * src/c_locale_win32/c_locale_win32.c: Small modification, + _Locale_strxfrm is supposed to return the number of chars + required to store the generated sorted key without the trailing + zero. + + * src/c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c: Fix + implementation of _Locale_strxfrm, it should never return -1. + +2007-09-10 Petr Ovtchenkov + + * stlport/stl/_string.c: fix bugs in string rfind, find_last_of, + find_last_not_of [bug #1788700, position 0 was wrongly excluded]; + + * test/unit/string_test.cpp: test for problems above. Thanks + to Bred Bored for bug report and initial test. + + * unit tests: Linux 2.6.16.26 (athlon-4), gcc 4.1.1, glibc 2.3.6 + "OK 395 tests" for release-shared and stldbg-shared targets. + +2007-09-09 Petr Ovtchenkov + + * test/unit/rope_test.cpp, stlport/stl/_rope.h: test for + bug #1788615 [bug during copy of rope's iterator] and fix; + suggested by John Maddock. + + * stlport/stl/_algobase.c: symmetry not required for + comparator in case of two different sequences comparison or + searching; symmetrical comparator just may not exist; + + * stlport/stl/debug/_hashtable.h: symmetry not required for + comparator in hashtable in case of containers extention; + symmetrical comparator just may not exist; + + * test/unit/alg_test.cpp: test for problem above, thanks + Oleg Obolenskiy. + +2007-09-06 Francois Dumont + + * test/unit/strstream_buffer_read_test.cpp: Remove useless + strdup call that was moreover introducing a memory leak. + +2007-09-04 Francois Dumont + + * src/allocators.cpp: Fix implementation of _S_chunk_dealloc when + lock free implementation is not in use. Thanks bug report 1787636 + from Sergej Zagursky. + +2007-08-31 Francois Dumont + + * stlport/stl/_cstdio.h, _ctime.h: Add missing macro definition + test before using _WIN32_WCE thanks bug report 1784174. + + * stlport/stl/_bitset.h: Change macro tests in order to check + macro definition before using it thanks bug report 1785679. + + * test/unit/bitset_test.cpp: Bitset::iostream new test to check + correct input/output of bitset class. + + * build/Makefiles/gmake/gcc.mak: Add -Wundef gcc option when building + with gcc under Cygwin MinGW, it is an interesting option to detect + macro check errors. + +2007-08-26 Francois Dumont + + * stlport/stl/config/user_config.h, host.h: Moved the administrative + _STLP_USE_DEFAULT_FILE_OFFSET macro from user_config.h to host.h. + + * stlport/stl/config/_gcc.h: Under MinGW we now use C symbols in + global namespace. Tests with 4.2.1 gcc version shows that C symbols + are not necessarily put in std namespace. + +2007-08-23 Francois Dumont + + * stlport/stl/_complex.h: As in _iosfwd.h, removed useless + _STLP_CLASS_DECLSPEC attribute on complex class declaration. + +2007-08-23 Petr Ovtchenkov + + * stlport/stl/debug/_vector.h: only random access iterators + allow operations 'less-than' and distance; for bidirectional + iterators removed usage of 'less-than', and for others + [like forward and input iterators] removed as usage of 'less-than' + as distance; thanks Oleg Obolenskiy for bug report; + + * test/unit/ioiter_test.cpp: test for problem above. + +2007-08-18 Francois Dumont + + * stlport/stl/_iosfwd.h: Removed useless _STLP_CLASS_DECLSPEC attribute + on class declaration. Latest gcc versions are reporting a warning about + it. + +2007-08-16 Francois Dumont + + * src/dll_main.cpp: Removed useless _Atomic_swap_struct explicit + instantiation, moreover, MSVC 2005 do not support it. + +2007-08-15 Petr Ovtchenkov + + * Repository: bump lib version to 5.1.4; + + * stlport/stl/char_traits.h, src/fstream.cpp: use 64-bits + file operations calls, if available on system; streamoff is + always off64_t, if _LARGEFILE_SOURCE or _LARGEFILE64_SOURCE + defined, i.e. if 64-bits file operations present; + + * stlport/stl/config/user_config.h: add _STLP_USE_DEFAULT_FILE_OFFSET, + force use off_t for streamoff and appropriate file operations calls; + note, that this may lead to problems, for example if _FILE_OFFSET_BITS + defined as 64 somewhere in user's code; + + * test/unit/fstream_test.cpp: test 64 bits type for filesize and + file offset. + +2007-07-22 Petr Ovtchenkov + + * src/fstream.cpp: force use lseek64/mmap64 for HP-UX, if _LARGEFILE64_SOURCE + defined; thanks for Michael Klein. + +2007-07-17 Petr Ovtchenkov + + * stlport/stl/_algo.c, stlport/stl/_algobase.c: search, the __tmp and + __p1 iterators always point at the same position, hence one of them + is redundant; + + * stlport/stl/_algobase.c: in the main-loop of search there are two + successive while-loops doing exactly the same thing; one of them is + redundant and, since it is inside the main-loop, it slows down + the algorithm significantly; + + * stlport/stl/_algo.c, stlport/stl/_algobase.c: in the search the main-loop + condition "while (__first1 != __last1)" is always true and consequently + redundant; this is because the initial adn in-loop conditions virtually + act as guards and will never let the main-loop condition to fail; since + this condition is evaluated in every main-loop iteration, its removal + will also improve the performance of the algorithm; thanks for + Jim Xochellis for this suggestions. + +2007-07-15 Petr Ovtchenkov + + * src/strstream.cpp: "get end" pointer should be initialized + to the "begin of get + N" in obsolete strstream; bug #1536503, + thanks for Jean-Eric Cuendet; + + * test/unit/strstream_buffer_read_test.cpp, build/test/unit/Makefile.inc: + test for bug above; [submitted by Jean-Eric Cuendet]. + +2007-04-02 Francois Dumont + + * 5.1.3 released based on revision 2983. STLport-5.1.3 tag created. + +2007-03-30 Francois Dumont + + * build/lib/configure.bat: Restore TARGET_PROC_SUBTYPE definition + to distinguish between ARM architectures. + +2007-03-22 Francois Dumont + + * stlport/stl/config/_msvc.h, _deque.h, _bvector.h: Portage from + Ulrich Echkardt to EVC 8. + + * doc/README.evc8, README.wince: New documentations about Windows + CE and EVC 8 from Ulrich Echkardt. + + * doc/evc_workaround.txt, doc/README.evc3, First file merged to the + second one. + + * stlport/stl/_stlport_version.h: Bump patch level to 3. + +2007-03-07 Francois Dumont + + * src/dll_main.cpp, stlport/stl/_stdexcept_base.h: Change strncpy_s + invocation to pass _TRUNCATE parameter rather than number of chars + to put in destination string. Default strncpy_s behavior is not to + truncate string if necessary but to report the issue throught a handler + which lead to an application crash if no handler has been set. Thanks + Bronek Kozicki bug report 1674974. + + * stlport/stl/type_traits.h: Add a default constructor declaration + in _TpWithState class to make gcc happy when class is instanciated + with a class with no default constructor. + + * stlport/stl/config/_windows.h: Change definition of + _STLP_WIN32_VERSION macro. We do not report definition inconsistency + between WINVER and _WIN32_VERSION anymore, WINVER is prefered. + +2007-03-01 Francois Dumont + + * test/unit/bitset_test.cpp: Add test for the to_string member + method. + + * stlport/stl/config/_msvc.h, test/unit/locale_test.cpp: Change + MSVC6 configuration that now defines _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS. + Even if MSVC6 supports explicit specification of function template + parameters it do not support the explicit specification for + template methods, unit tests are showing this problem. + + * stlport/stl/type_traits.h, _alloc.h: Small change in stateless + class detection feature. Introduce _IsStateless helper struct for + this purpose even if it can only be used with pure class type and + not with build-in types or enum or union. It avoids MSVC8 warnings. + +2007-02-25 Francois Dumont + + * 5.1.2 released based on revision 2937, tag STLport-5.1.2 created. + + * stlport/stl/config/_prolog.h, build/Makefiles/gmake/bcc.mak, + Patch from Eric Sanford to remove empty base class optimization + for Borland compilers. + + * test/unit/vector_test.cpp: Enable VectorTest::ebo test for Borland + compilers. + +2007-02-22 Francois Dumont + + * stlport/stl/_alloc.h: Add a workaround for compilers with buggy + empty base class optimization which is used in _STLP_alloc_proxy + class. + + * test/unit/vector_test.cpp: New test case VectorTest::ebo to show + problem above. + +2007-02-21 Francois Dumont + + * src/c_locale_win32/c_locale_win32.c: Fixed __ConvertDate and + __ConvertTime to avoid potential infinite loop (bug report + 1663604) + +2007-02-16 Francois Dumont + + * STLport 5.1.1 released based on revision 2919. STLport-5.1.1 + tag created. + +2007-02-14 Francois Dumont + + * stlport/stl/config/_intel.h: Configuration fix, Intel compiler + before 8.1 have problem with template method specialization. Thanks + Dragan Tubic. + +2007-02-09 Francois Dumont + + * test/unit/locale_test.cpp: Enhance LocaleTest::collate_facet + test case to reveal a bug in glibc localization portage. + + * src/c_locale_glibc/c_locale_glibc2.c: Fixed _Locale_strcmp + and _Locale_strcmp and _Locale_strwcmp implementation to take + into account buffer size, comparison used to always been done on the + whole input strings up to the termination character. + + * stlport/stl/type_manips.h, test/unit/mvctor_test.cpp, + type_traits_test.cpp: Remove relation between STLport __true_type and + __false_type and homonyms ones in libstd++. Add workaround in the 2 + test suite requiring use of those types. + +2007-02-08 Francois Dumont + + * stlport/stl/_threads.h, src/locale.cpp: Add missing parenthesis + in some macro checks thanks Jan Echternash bug report 1653966. + + * test/unit/locale_test.cpp: Made LocaleTest::collate_facet test + really meaningful even if it requires french locale support for + part of it. + +2007-02-01 Petr Ovtchenkov + + * stlport/stl/config/_solaris.h: __LONG_MAX__ defined on + 64-bits SPARCs. Thanks Aleksey Sanin. + + * stlport/stl/_sparc_atomic.h, stlport/stl/_threads.h: fixes + for modern SPARCs. Thanks Aleksey Sanin. + +2007-01-28 Francois Dumont + + * stlport/stl/debug/_deque.h: Fix iterator invalidation in erase + of an iterator range thanks to Steve Lobasso indirect report (bug + 1645657). + + * test/unit/deque_test.cpp: New test case for deque erase methods. + +2007-01-19 Francois Dumont + + * stlport/stl/_locale.h, src/locale.cpp: Add throw() specification + on locale default constructor. Add const qualifier on locale::combine + method. Fixed combine implementation to correctly combine + *this with other locale instance. + + * src/locale_impl.h: Removed _get_Locale_impl and + _copy_Nameless_Locale_impl already defined in stlport/stl/_locale.h. + + * src/locale_impl.cpp: In _Locale_impl::insert add check that we + are working on 2 different facet instances before substitution. + + * test/unit/locale_test.cpp: Add test case for locale::combine + method. + +2007-01-12 Francois Dumont + + * c_locale.h, c_locale_dummy.c, c_locale_glibc.c, c_locale_glibc2.c, + c_locale_win32.c: Creation of 2 new functions in the localization + framework _Locale_init and _Locale_final to allow localization + implementations to initialize and release any necessary resources. + + * src/iostream.cpp: Call _Locale_init during io streams initialization + and _Locale_final at end. + + * c_locale_win32/c_locale_win32.c: Add synchronization for locale + lcid look up from name required in multithreaded environment. Two + threads instanciating two facet instances from a given name might + have collide resulting in an undefined behavior. Critical section + used for synchronization is initialized in _Locale_init and freed + in _Locale_final. + + * c_locale_win32/c_locale_win32.c: Add several fields in + _Locale_time struct to avoid use of static buffers in some locale + support functions like _Locale_d_t_fmt _Locale_long_d_t_fmt... + Moreover time format cannot be truncated anymore. + + * stlport/stl/config/_windows.h: Introduce _STLP_WIN32_VERSION + macro set to WINVER or _WIN32_WINDOWS value depending on what + macro is defined. + + * stlport/stl/_threads.h, src/locale.cpp: Add _STLP_WIN32_VERSION + checks to detect Windows 95 platform having a special + _STLP_ATOMIC_INCREMENT and _STLP_ATOMIC_DECREMENT behavior. + +2007-01-08 Francois Dumont + + * stlport/stl/_deque.c: Patch from Kevin Lin to fix iterator + returned by insert at position method. + + * test/unit/deque_test.cpp: Add test case for the deque::insert + methods. + +2006-11-27 Francois Dumont + + * stlport/stl/config/_windows.h: Patch from Michael Fink to check + inclusion of winbase.h and windows.h. + +2006-11-24 Francois Dumont + + * stlport/stl/_fstream.h, src/fstream.cpp, iostream.cpp: Restore + computation of the system dependant page size that was hardcoded + to 4096. Initialisation code has been moved to a static method + called just after Standard iostream initialisation. This code used + to be in the _Filebuf_base constructor that might have been called + simultaneously by several threads. + +2006-11-17 Francois Dumont + + * stlport/stl/config/_macosx.h: Add endianess configuration. + +2006-11-16 Francois Dumont + + * test/unit/resolve_name.cpp: Clean most of MSVC6 workaround, only + one has been kept to have the test pass. + +2006-11-13 Francois Dumont + + * stlport/stl/_cwchar.h: Patch from Michael Fink to fix EVC3 + missing mbstate_t definition. + +2006-11-07 Francois Dumont + + * stlport/stl/_threads.h: Removed _Atomic_swap_struct export + that should be useless as completely inlined. Moreover it was + generating a compilation error using MSVC 2005 under Windows + 64 bits. + +2006-10-26 Francois Dumont + + * test/unit/codecvt_test.cpp: Removed try/catch blocks not + supported by platform missing exception support and moreover + useless as we know the code called in the try and this code + do not throw (thanks Michael Fink report). + + * build/Makefiles/nmake/targetdirs.mak, lib/clean.mak, app/clean.mak: + Complete clobber and distclean rules to really clean all generated + stuffs. + + * build/Makefiles/nmake/top.mak: Patch from Gary Bartlett to make nmake + 'all' rule the default rule. + +2006-10-25 Francois Dumont + + * src/dll_main.cpp: Fix syntax error '>>' rather than '> >' in + a _STLP_alloc_proxy explicit instanciation. + + * stlport/stl/_unordered_set.h: Fix template method for the + associative container extension, use _KT type rather than key_type. + +2006-10-20 Francois Dumont + + * stlport/stl/config: Removed some used macros + _STLP_AUTOMATIC_TYPE_TRAITS + _STLP_UNINITIALIZABLE_PRIVATE + _STLP_STATIC_ARRAY_BUG + _STLP_FULL_ADL_IMPLEMENTED + + * test/unit/codecvt_test.cpp: Ignore test when + _STLP_NO_MEMBER_TEMPLATES defined. + +2006-10-20 Petr Ovtchenkov + + * stlport/stl/_cwchar.h: fix HP-UX problem with WCHAR_MIN, WCHAR_MAX + [Boris Gubenko]. + +2006-10-19 Petr Ovtchenkov + + * test/unit/sstream_test.cpp: check bugreport #1580020, not confirmed. + +2006-10-17 Francois Dumont + + * stlport/stl/_cwchar.h: Restore code to define potentially missing + WCHAR_MIN, WCHAR_MAX macros. It used to be in _mbstate_t.h but was + missing some native includes to work, in _cwchar.h everything should + be fine. + + * test/unit/codecvt_test.cpp: Fix C cast that was losing const + qualifier. + + * stlport/stl/_mbstate_t.h: Avoid definition of _STLP_NO_MBSTATE_T when + using own mbstate_t definition in _STLP_USE_NO_IOSTREAMS mode. This macro + is not supported anymore and should be fixed or removed in future version. + Own mbstate_t will be defined even in no iostreams mode. + + * stlport/stl/config/_evc.h: Now that mbstate_t situation is clear EVC3 + defines _STLP_NO_NATIVE_MBSTATE_T rather than directly defining it in + the config file. + + * test/unit: Several fixes to build with _STLP_NO_EXTENSIONS and + _STLP_NO_ANACHRONISMS. + +2006-10-16 Petr Ovtchenkov + + * stlport/stl/_mbstate_t.h: this header may be included from system + stddef.h, without wchar.h---defines of wchar limits isn't good place + here [WCHAR_MAX, etc.]. + + * test/unit/cwchar.cpp: correct test to hilight problem above. + +2006-10-14 Petr Ovtchenkov + + * test/unit/cwchar.cpp, build/test/unit/Makefile.inc: test a few macros + related to wchar. Inspired by problems in STLPORT_5_1 and boost::regex. + +2006-10-12 Francois Dumont + + * stlport/stl/_numpunct.h, src/numpunct.cpp: numpunct facet _M_truename + _M_falsename and _M_grouping are not static anymore. This seems useless + and moreover was introducing static initialisation order and threading + issues. + + * stlport/stl/c_locale.h, _mbstate_t.h, src/c_locale.h, c_locale.c: + New mbstate_t policy. When no mbstate_t in native library STLport defines + one for its own need in localisation support. This mbstate_t is simply + an int defined in global namespace and imported to STLport namespace. + Internal localisation framework is nt anymore in STLport namespace but + in the global one as it is normaly a C framework. + + * stlport/stl/config/_bc.h: Defines _STLP_NO_NATIVE_MBSTATE_T rather + than internal _STLP_USE_OWN_MBSTATE_T macro. + + * stlport/stl/config/_evc.h: Add comment for EVC3 users, this platform + should define _STLP_NO_NATIVE_MBSTATE_T, but I have not the platform + to check... + + * build/Makefiles/gmake/bcc.mak: Do not force anymore built of C sources + as C++. + + * test/unit/string_test.cpp, istmit_test.cpp: Fixed macro checks to make + tests buildable even when _STLP_NO_IOSTREAMS is defined. + +2006-10-09 Francois Dumont + + * test/unit/codecvt_test.cpp: Fix use of mbstate_t to make it more + portable. + +2006-10-06 Francois Dumont + + * stlport/stl/_alloc.h, _alloc.c: Fixed __debug_alloc implementation + to avoid unjustified assertion about wrong size of buffer to + deallocate, thanks David Deakins and verntx on sourceforge. + + * test/unit/vector_test.cpp: Add test for bug above. + + * stlport/wchar.h, stl/_cwchar.h, _istream.h, _limits.h, _locale.h, + _threads.h, char_traits.h, type_traits.h, _mbstate_t.h: Fix regression + introduce by inclusion of mbstate_t.h in wchar.h. Now _mbstate_t.h is + only included at end of wchar.h and _cwchar.h. All places where _mbstate_t.h + was used are now including _cwchar.h. + +2006-10-05 Francois Dumont + + * build/Makefiles/gmake/bcc.mak: Use -P compiler to force build of C + translation as C++ because of the mbstate_t problem. + + * build/Makefiles/gmake/lib/bcc.mak, rules-a.mak: Fix Borland tlib call + syntax thanks mbkenny. + + * stlport/stl/wchar.h: Add include of internal _mbstate_t.h file to + know STLport status regarding mbstate_t configuration. + + * stlport/stl/c_locale.h: When building platform localisation support + as C++ struct declaration are done in STLport namespace. + + * src/c_locale.h: Removed _mbstate_t.h include that is now included + from wchar.h or _cwchar.h depending on C or C++ build. Removed #error + done too early (see next comment). + + * src/c_locale.c: Add #error statement when building STLport on a platform + having real localisation support but no native mbstate_t definition. In this + case c_locale.c must be built as a C++ translation unit. + + * src/c_locale_win32/c_locale_win32.c: Add Borland workaround to avoid + compilation error now that it is build as a C++ translation unit. + + * stlport/stl/_mbstate_t.h: Now that this file is not included from outside + world we can include internal _cwchar.h rather than cwchar. Removed + a wint_t workaround already existing in _cwchar.h. Removed Borland workaround + that was defining mbstate_t when using this file in a C context, it was + moreover different than the definition in C++ ! Ad a pure C declaration of + mbstate_t when in C. + +2006-10-04 Francois Dumont + + * src/c_locale.h: Add #error to signal issue when building c_locale.c + as a C source when STLport uses its own mbstate_t definition. + + * src/num_put_float.cpp: Modification in Cygwin native lib headers + revealed that we were missing ieeefp.h include. + + * src/dll_main.cpp, stlport/stl/_threads.h: Fix export of + _Atomic_swap_struct for compilers supporting export of templates. + + * stlport/stl/config/_hpacc.h: Some cleanup (unknown _STLP_NO_KOENIG_LOOKUP + macro) and formating fixes. + + * stlport/stl/_bvector.h: Use _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS + rather than reproducing the workaround hidden by this macro. + + * test/unit/vector_test.cpp: Add test case to check iterators comparisons. + +2006-09-26 Francois Dumont + + * src/allocators.cpp: Reorder code blocks to fix build when using + _STLP_LEAKS_PEDANTIC. + + * stlport/stl/_num_put.c: Restore __len >= 2 check in + __copy_integer_and_fill function. It has been removed on the + 2006-07-11, at this time STLport always add the base information + even for 0 value. This modification has been rollback but not this + check. + + * test/unit/num_put_get_test.cpp: Add check for above fix. + +2006-09-26 Francois Dumont + + * src/c_locale_win32/c_locale_win32.c: Add check of code page when + specified in locale name. + + * src/c_locale_win32/c_locale_win32.c: Add checks in __ConvertDate + and _Locale_t_fmt to avoid potential buffer overflow. + + * src/c_locale_win32/c_locale_win32.c: Create __GetLocaleInfoUsingACP + function that merge a call to GetLocaleInfoA and a call to + __ConvertFromACP in one call, the latter function has been removed. + + * src/c_locale.h: Restore _STLP_BEGIN_NAMESPACE when STLport use + its own mbstate_t definition which is only available in STLport + namespace. Fix Borland regression. + + * stlport/stl/_mbstate_t.h: Replace stl/_cwchar.h include with + a cwchar one as this file is included from the outside world when + building STLport lib. + +2006-09-25 Francois Dumont + + * test/unit/codecvt_test.cpp: New test case for the codecvt + facet. + + * test/unit/unordered_test.cpp: size_t replace by int to avoid + 64bits issue warning. + +2006-09-21 Francois Dumont + + * stlport/stl/c_locale.h: Patch from Boris Gubenko to avoid + direct inclusion of internal header from this header that is + access from the outside world when building STLport lib. + +2006-09-20 Francois Dumont + + * test/unit/allocator_test.cpp: Add new test case for allocation of + empty buffer. + + * test/unit/fstream_test.cpp: Use a variable to always point to the same + test file and adopt a 'Standard' file name 'test_file.txt'. + + * stlport/stl/_hash_fun.h: Rollback 2006-08-26 Petr modification that + was introducing a regression with MSVC compilers. + + * stlport/stl/_fstream.c: First attempt to fix seekoff basic_filebuf + implementation when dealing with a codecvt facet having variable + encoding. This fix is surely not complete, discussion with Uli is not + over. + +2006-09-13 Francois Dumont + + * stlport/stl/_exception.h: Made a previously general Windows 64 bits + workaround specific to the cross compiler coming with PSDK. Thanks + Igor Pavlov. + +2006-09-11 Francois Dumont + + * stlport/stl/_num_put.c: Modification in __do_put_integer to avoid + a Hp aCC workaround. + +2006-09-11 Petr Ovtchenkov + + * stlport/stl/_algo.c: search_n with predicate fail in case + when subsequence size is 1; thanks Timmie Smith. + + * test/unit/alg_test.cpp: test for problem. + +2006-09-08 Francois Dumont + + * src/c_locale_win32/c_locale_win32.c: Modification in __GetLCIDFromName + to support the Chinese_Taiwan locale. Add of a __GetLCID call when first + call to it using non NLS mapping fails. + + * src/c_locale_win32/c_locale_win32.c: Change __ParseLocaleString + implementation to correctly handle locale with a name having '.' in + the language or country part like in 'Chinese_Hong Kong S.A.R..950'. + +2006-09-05 Francois Dumont + + * build/lib/configure.bat: Fixed comment for --rtl-dynamic and + --rtl-static options, impact on macros to uncomment in hosts.h + config file was inversed. Thanks Igor Pavlov. + + * build/lib/configure.bat, doc/FAQ, doc/README.msvc, + stlport/stl/config/user_config.h, _hpacc.h: Replaced references to + _site_config.h by hosts.h. Thanks Igor Pavlov. + +2006-08-30 Francois Dumont + + * stlport/stl/_cmath.h, _cstdlib.h: Patch from Boris Gubenko, Hp aCC + native Standard lib already define math functions in global namespace. + + * stlport/stl/_num_put.c: Patch from Boris Gubenko, Hp aCC before version + 60000 do not consider 'const ptrdiff_t' as const enough to be used in a + static buffer declaration. + +2006-08-26 Petr Ovtchenkov + + * stlport/stl/_hashtable.c: allow smaller bucket counts for + hashtable. Thanks Herbert Duerr. + + * stlport/stl/_hash_fun.h: use primary types for hasher, not + typedefs. + + * stlport/stl/type_manips.h: workaround for __true_type/__false_type + for various versions gcc (oh, yes, gcc, it's real pain to detect + real version of libstdc++) + +2006-08-10 Petr Ovtchenkov + + * stlport/stdlib.h: include errno.h for aCC, in case of -mt option in force. + This solve errno problem on HP-UX. Thanks Boris Gubenko. + +2006-08-09 Francois Dumont + + * stlport/stl/config/_msvc.h: Add _STLP_NORETURN_FUNCTION for MSVC + compilers. + + * stlport: Move place of _STLP_FUNCTION_THROWS in function declaration to + make msvc compiler happier, gcc do not care about position of this + attribute. + + * stlport/stl/_ioserr.h: Fixed specification of STLport configuration file + in #error statement. + +2006-08-04 Francois Dumont + + * stlport: Create _STLP_FUNCTION_THROWS depending on _STLP_NORETURN_FUNCTION + and also taking into account exception handling configuration. + + * test/unit/alg_test.cpp, istmit_test.cpp: Fixes to make test buildable with + native compiler Standard library. + +2006-08-03 Francois Dumont + + * build/Makefiles/nmake/evc8.mak: Patch from Ulrich Echkardt to activate + whole program optimization. + +2006-07-31 Francois Dumont + + * Patch from Michael Fink to fix EVC emulator build. + +2006-07-26 Francois Dumont + + * src/fstream.cpp: Fixed MMAP_CHUNK definition, an offset type is signed. + + * Creation of the 5.1.0 RC2 package. + + * Creation of STLPORT_5_1_RC2 tag + +2006-07-25 Francois Dumont + + * stlport/stl/config/_system.h, _windows.h: Fixed MinGW config that also + need _windows.h. + + * stlport/stl/config/_mingw.h: Removed, conflict with platform system + header. + +2006-07-22 Francois Dumont + + * stlport/stl/config: Add _STLP_PLATFORM and _STLP_COMPILER repectively + containing STLport detected platform and compiler names. Some names + are surely not accurate and will be fixed but introducing those macros, + especially _STLP_COMPILER, help to report detection issue. + + * stlport/stl/config/_system.h: Change macro checks in order to guaranty + that only one platform and only one compiler configuration file will be + included. + + * stlport/stl/config/_cygwin.h, _mingw.h: Added + + * stlport/stl/config/features.h: Removed _STLP_NO_MEMBER_TEMPLATE_CLASSES + check when _STLP_USE_TEMPLATE_EXPRESSION is activated. + + * stlport/stl/config/_gcc.h, features.h: Add _STLP_NORETURN_FUNCTION + to signal function not returning, under gcc we use __attribute__((noreturn)). + + * src/locale_impl.h, stlport/stl/_ios_base.h, _locale.h, _range_errors.h, + _rope.h, _string_base.h, _vector.h, debug/_debug.h: Add + _STLP_NORETURN_FUNCTION to function that encapsulate raising of exceptions. + This help to limit warnings about uninitialized variable before use under + gcc. + +2006-07-18 Francois Dumont + + * test/unit/unordered_test.cpp: Change Key data type from size_t + to the more portable int. Fix what seems to be a bad code generation + of gcc under Linux 64 bits resulting in a test failure. + +2006-07-17 Francois Dumont + + * test/unit/alg_test.cpp: New test for find_first_of algo. + + * stlport/stl/config/user_config.h, features.h: string template + expressions is not a transparent feature, some compilers (VC6) + are experimenting ICE with it or some other (gcc) do not accept + it when extending string class (see mystring in + test/unit/string_test.cpp). So default STLport configuration will + be without string template expression, _STLP_DONT_USE_TEMPLATE_EXPRESSION + has been replaced by _STLP_USE_TEMPLATE_EXPRESSION. + +2006-07-16 Francois Dumont + + * test/unit/mvctor_test.cpp: Patch from Michael Fink to avoid a EVC + ARM crash. + +2006-07-13 Francois Dumont + + * stlport/stl/_num_put.c: Rollback modif above, according C printf doc + 0 value shouldn't show their base. + + * stlport/stl/type_traits.h: Avoid instanciation of _IsCVConvertible if + not dealing with pointers. Systematical instanciation was giving + compilation error as soon as type had a special memory alignment, such + types cannot be pass by value in function calls. Thanks andy2222 from + sourceforge. + + * build/Makefiles/nmake/evc3.mak, evc4.mak, evc8.mak: Patch from Ulrich + Eckhardt to remove commctrl.lib dependency, for the moment evc3 and evc4 + only contains a note about this potentially useless dependency. + + * stlport/stl/debug/_string.h: Add missing copy methods in the debug + string implementation thanks Patrick Bennett report. + + * test/unit/string_test.cpp: New copy test case for string::copy. + + * stlport/stl/_algo.h: Add missing _STLP_PRIV namespace scope in calls + to __find_first_of thanks Patrick Bennett report. + +2006-07-11 Francois Dumont + + * stlport/stl/debug/_deque.h, _list.h, _slist.h, _string.h, _vector.h: + Extend use of _Non_Dbg_iter function in all template methods dealing + with iterator range. + + * _num_put.c: Fix to show base in octal or hexadecimal mode even for + 0 value. + + * stlport/stl/_istream.c: Avoid modification of value to extract in + formatted input of short and int when value would overflow. + + * test/unit/num_put_get_test.cpp: Add some tests for above fixes. + + * test/unit/iostream_test.cpp: New tests for general stream + manipulations. + + * stlport/stl/_istream.h: Fix ws iostream function, it do not set failbit + anymore when stream is in eof state. + + * build/lib/msvc.mak: Generation of config.mak is not mandatory anymore + as Intel compiler do not need it for the moment. Only a COMPILER_NAME + is mandatory which is given by icl.mak for Intel compilers and by + config.mak for Microsoft ones. + +2006-07-10 Francois Dumont + + * stlport/stl/debug/_iterator.h: Creation of _Non_Dbg_iter function + returning native iterator of special debug iterator with + compilers supporting partial template function ordering. Fix + a MSVC .Net 2003 issue that seems to be related to a too important + template depth. + + * stlport/stl/debug/_deque.h, _list.h, _slist.h, _string.h, _vector.h: + Use new _Non_Dbg_iter function in constructors from iterator + range. + +2006-07-07 Petr Ovtchenkov + + * build/lib/configure: rollback changes 4 Jul 2006 19:42:55, + it's definitely wrong (phrase with quotes ['] requires double + quotes ["]). + +2006-07-06 Francois Dumont + + * stlport/stl/_num_put.c: Small refactoring with introduction + of the __do_put_integer function for integer types output. Moreover + static buffer size used for formating is now based on output + type sizeof. + + * stlport/stl/_ostream.c: Add some assertion before cast to check that + no significant digit is lost. Add cast to long in int and short output + in order to make type of expression more explicit and correct. This + fix the bug report from Geoffrey Bache on sourceforge about output of + -1 ont value on 64bits linux. + + * test/unit/floatio_test.cpp: Removed, all code moved to NumPutGetTest + test fixture. + + * test/unit/num_put_get_test.cpp: New, contains all tests regarding + input/output of numeric values (locale independant). + + * test/unit/locale_test.cpp: locale independant tests of numeric input/ + output moved to NumPutGetTest test fixture. + +2006-07-04 Francois Dumont + + * stlport/stl/_rope.h, _rope.c: Patch from Peter Hercek to fix a + missing null termination in rope constructor from a character + and a buffer overrun. + + * stlport/stl/_rope.h: Removed special _S_rounded_up implementation + for other types than char and wchar_t. rope implementation is + expecting this method to always return a size > to the given size in + order to store the terminating null character. + + * stlport/stl/_rope.c: Fix reference counter management to avoid memory + leak in _S_destr_concat_char_iter. + +2006-06-30 Francois Dumont + + * src/num_put.cpp, num_put_float.cpp: Patch from Glen Summers + to fix float output using locale with grouping and float value + has no decimal. + + * test/unit/locale_test.cpp: Add some tests showing above bug. + +2006-06-29 Francois Dumont + + * stlport/stl/_algo.h, _algo.c, _algobase.h, _algobase.c, + _hashtable.c: Patch from Andriy Syrovenko to fix implementation + of __equal_range, __lower_bound, __upper_bound when dealing with + a key whom type is different from the value_type of the iterator. + + * test/unit/equal_test.cpp: Add some tests to show above bug. + +2006-06-28 Francois Dumont + + * stlport/stl/_string_sum_methods.h, debug/_string_sum_methods.h: + Small refactoring and simplification of code to avoid a parameter + with default value. This fixing an ICE using MSVC6. + + * test/unit/string_test.cpp: Ignore the newly introduce te_tmp + test using MSVC6. + +2006-06-27 Petr Ovtchenkov + + * stlport/stl/_list.h: fix bug in list.swap, thanks Viktor Govako. + + * test/unit/list_test.cpp: test for bug above. + +2006-06-27 Francois Dumont + + * build/lib/configure: Add --with-lib_motif option to grant STLport + users the possibility of tweaking the generated libraries name. + + * build/Makefiles/gmake/unix/lib.mak: Add code to take into account + configured lib motif in generated library name. + + * build/Makefiles/gmake/netware/lib.mak: Looks like it needs same + defines as the ones in cygming/lib.mak so we simply include this + file. + + * stlport/stl/config/_evc.h: Patch from Michael Fink to fix a + compilation error. + + * test/unit/cppunit/cppunit_mini.h: Patch from Michael Fink to + avoid unused parameter warning. + +2006-06-23 Francois Dumont + + * stlport/stl/_pair.h, _bvector.h, config/_evc.h: Patch from + Ulrich Eckhardt to extend an evc4 MIPS workaround for eVC8 + and to generalize little endian configuration. + + * DMC patch from Eric Sanford. Define _STLP_NO_FUNTION_TMPL_PARTIAL_ORDER + so that many ignored unit test could be now passed. Also specify + Intel 386 instruction set during compilation to limit link errors. + +2006-06-22 Francois Dumont + + * stlport/stl/_algobase.c: Removed check of equivalent predicate + commutativity in find algorithm. In this case, equivalence relation + might have been implemented using a member operator == which is + not commutative thanks Grisha Spivak report. Other checks that are + using an explicit predicate parameter has been kept even if it forces + STLport users to implement commutative functor. + + * test/unit/find_test.cpp: Add test to show above issue. + + * stlport/stl/_hashtable.c: Removed equivalent predicate checks + that are useless as in _STLP_DEBUG mode the debug wrapping add this + check in the functor used to instanciate the non debug hashtable + implementation. + +2006-06-19 Francois Dumont + + * STLport 5.1.0 candidate released. STLPORT_5_1 branch created in + CVS. Version tagged STLPORT_5_1_RC1. + +2006-06-17 Francois Dumont + + * test/unit/type_traits_test.cpp, uninitialized_test.cpp: Add + explicit public inheritance relation to avoid an ICL warning. + + * stlport/stl/config/features.h: Add definition of + _STLP_DEBUG_LEVEL to _STLP_STLPORT_DBG_LEVEL when _STLP_DEBUG + is defined but _STLP_DEBUG_LEVEL hasn't been set. + (thanks an ICL warning report) + + * stlport/stl/config/_intel.h: Remove undef of + _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT, even if the linker complains + about not finding unexpected_exception it looks like it finally do + not use it. + + * test/unit/cppunit/test_main.cpp: Filter definition of + unexpected_exception when building unit test with static STLport + lib. + +2006-06-15 Francois Dumont + + * stlport/stl/config/features.h: Several macro renamed: + - _STLP_LONG_DOUBLE -> _STLP_LONGEST_FLOAT_TYPE + - __DFL_TMPL_PARAM -> _STLP_DFL_TMPL_PARAM + - __DFL_TYPE_PARAM -> _STLP_DFL_TYPE_PARAM + - __DFL_NON_TYPE_PARAM -> _STLP_DFL_NON_TYPE_PARAM + __DFL_TYPE_ARG removed. + + * stlport/stl: Add char_traits template parameter in all + istreambuf_iterator and ostreambuf_iterator instanciation where it + was missing as some compiler might not have supported it. + + * stlport/stl/_time_facets.h, src/locale_impl.cpp: Finaly adopt a + specific gcc workaround for definition of _Locale_time_extract_hint + as friend of time_get_byname facet. Gcc 2.95 prefers to see a template + method otherwise it emits a warning, we want to avoid STLport users + to have to disable this warning. Other compilers will use a simple + function which seems to be more portable. + + * stlport/stl/_vector.h, _pair.h: Patch from Eric Sanford for a + really weird Borland compiler workaround that consists in adding + a _Ret typedef in __move_traits or __type_traits traits struct + that do not normally contain it. + + * stlport/stl/config/_bc.h: Borland free compiler do not support + STLport container extension of template methods. + +2006-06-14 Francois Dumont + + * test/unit: Patch from Ulrich Eckhardt to fix storage of string + literals to const char* rather than simple char*. + + * build/Makefiles/nmake: Ulrich Eckhardt patch: + - /MACHINE:IX86 is obsolete and only supported for backward + compatibility as alias for X86. Replaced all cases of IX86 + with X86. + - /NODEFAULTLIB:OLDNAMES.lib seems to also be universal so I + moved it to the base, too. + - In order to use main() as entry point under CE, use linker + option /ENTRY:mainACRTStartup. This was already done for + evc3,4,8 but I moved it to app/evc-common.mak and documented + it. + + * stlport/stl/_cmath.h, config/_evc.h: Uli patch to activate long + double support for EVC and use _hypot to implement STLport + overload. + + * src/complex.cpp: Remove internal __stlp_hypot that is not necessary + anymore now that STLport always define a hypot function (thanks Uli + remark). + + * stlport/stl/config: Ulrich Eckhardt VC8/CE patch: + - Adapt the code to construct the paths to the native includes + so that it matches the changed structure. This is currently + only for ARM and might need more work for other targets (x86 + works though). + - Make a distinction between the desktop and CE variants concerning + the exception support functions. These now use the same compiler + versions so that can't be used anymore. + - MS' safe string functions are not available under CE - I think, + need to take a closer look at Platform Builder. + + * stlport/stl: Ulrich Eckhardt to adapt STLport to VC8/CE limited + native C library. + +2006-06-13 Francois Dumont + + * stlport/stl/pointers/_tools.h: Add partial specialization for + _IteWrapper helper struct so that when type to store and stored + type are identical input iterators are not wrapped. Otherwise input + iterators are wrapped to perform necessary casts between pointer type + and void*. + + * stlport/stl/_cmath.h: Fixed macros definition used to define all + math functions for compilers supporting long double but not having + float nor long double C math functions. Thanks Ulrich Eckhardt report. + +2006-06-12 Francois Dumont + + * test/unit/set_test.cpp, map_test.cpp: Replace size_t with the + more portable int type when possible. + + * stlport/stl/pointers/_tools.h: Check that type to store is a + pointer type before modifying predicate type for set container. + Wrapping less functor in all cases was making move semantic tests + to fail as predicate is not then detected as being the STLport + less predicate. + + * stlport/stl: DMC patch from Eric Sanford. DMC do not like __ss + variable that is a reserved keyword. + +2006-06-11 Francois Dumont + + * build/Makefiles/nmake: Patch from Ulrich Eckhardt to use + main rather than WinMain for EVC platform. + + * build/test/unit/gcc.mak: Removed redondant macro definition + _STLP_USE_STATIC_LIB under cygwin/mingw as those definition + are part of base make files. + + * stlport/stl/type_manips.h, _hashtable.h: Eric Sanford workaround + for Borland. + +2006-06-09 Francois Dumont + + * test/unit/cppunit: Patch from Ulrich Eckhardt to + - Removed a few superfluous semicolons. + - Made some constructors explicit. + - Documented the meaning of FileReporter::_myStream. + - Reformatted some things to not exceed 100 chars per + line or use several expressions/statements in one line. + + * build/Makefiles/nmake: Patch from Ulrich Eckhardt to + - adds support for x86 (running on e.g. a PC, so-called CEPC). + - adds support for MIPS or more specifically MIPSII, other MIPS + subtypes can easily be added. + - removes a line "DEFS_COMMON = /D%TARGETCPU%" from the config.mak + file generated for MIPS, the same functionality was moved to the + CPU-specific setups where it is done for other CPUs. + - adds an additional compiler flag so that diagnostics better + match what the VC8 IDE expects. + + * stlport/stl: Patch from Ulrich Eckhardt to + - removes several unnecessary semicolons (typically, when + inlining functions like "void foo() {};" where it in fact doesn't + hurt (due to something I consider an oversight in the standard) + but also doesn't make sense. + - fixes inconsistent indentation in three cases, one with the + preprocessor and two with memberfunction bodies. + + * stlport/stl/pointers/_tools.h: Add missing template method + in _CastTraits helper struct used on compiler with no partial + template specialization support. + +2006-06-08 Francois Dumont + + * stlport/stl/pointers/_tools.h, _set.h: Fix problems reported by + gcc that seems to do more check that MSVC on explicit + instanciation of templates. Especially fixed problem introduce + by STLport extension of set template methods. + + * build/Makefiles/gmake/aCC.mak, lib/aCC.mak: Patch from Boris + Gubenko for Hp aCC build. + +2006-06-07 Francois Dumont + + * stlport/stl/pointers: Restore pointer specialization feature. + Major modifications are: + + - vector specialization is done using a qualified void pointer + in order to keep optimization oportunities when working on + pointers. Using a strict void* was forcing wrapping of iterators + in template method making _BothPtrTypes struct helper failing to + detect both pointer types. + + - Fixed set specialization thanks to explicit instanciation added + in ptrspec_test.cpp. + + - Refactoring of algorithm to find storage type from value type. + +2006-06-02 Francois Dumont + + * build/Makefiles/nmake: Patch from Ulrich Eckhardt for + cleanup. Some script refactoring, wrong OPT_STLDBG_STATIC references + replaced by OPT_STATIC_STLDBG. + + * src: Patch from Ulrich Eckhardt to cleanup locale implementation + and fix time facet creation when using dummy locale implementation. + + * stlport/stl/config/_evc.h: Patch from Ulrich Eckhardt to fix + endianess definition. + + * stlport/stl/debug/_hashtable.h: Create a _DbgEqual functor to + check correct equivalent predicate implementation. Add also + missing hash_func and key_eq methods in this mode. + + * stlport/stl/debug/_tree.h: Small refactoring in _DbgCompare + functor. + + * stlport/stl/type_traits.h, boost_type_traits.h: Restore boost + support. + +2006-06-01 Francois Dumont + + * stlport/stl/_tree.h, _set.h, _map.h, debug/_tree.h: Removed + erase template method extension, might conflict with erase + overload taking an iterator. User workaround will be to use + erase(find(key)). + + * stlport/stl/_hashtable.h, _map.h, _set.h, _unordered_set.h, + _unordered_map.h, debug/_hastable.h: Add template methods extension. + + * stlport/stl/config/features.h: Add management of containers template + method extension. + + * stlport/stl/config/_apple.h, _symantec.h: Config update based on + config that used to be in _tree.h and _hashtable.h to remove + container template methods extensions. + +2006-05-31 Francois Dumont + + * stlport/stl/config/_evc.h: Patch from Michael Fink to add ptrdiff_t + definition and forbid use of _STLP_DEBUG mode for evc 3/4 on ARM. + + * build: Ulrich Eckhardt patch for Microsoft Visual Studio 2005 for + Embedded C++ portage. + +2006-05-30 Francois Dumont + + * stlport/stl/type_traits.h: Rename _Is_Integer<_Tp>::_Integral and + _Is_Rational<_Tp>::_Rational in respectively _IsIntegral<_Tp>::_Ret + and _IsRational<_Tp>::_Ret for naming convention coherency. + + * stlport/stl/type_traits.h: Add _TrivialNativeTypeCopy helper to + handle a number of oportunities to use memcpy/memmove in + uninitialized_* or copy algorithms that was not cover by simply + checking type_traits has_trivial* features. + + * stlport/stl/type_traits.h, boost_type_traits.h: Refactor _BothPtrType + implementation, only one version is necessary as it uses _IsPtr that + has a variable implementation depending on config. + + * stlport/stl/_vector.h: Add _DefaultZeroValue specialization for + vector container so that a vector of vector is simply initialized + using a memset to set everything to 0. + + * test/unit/vector_test.cpp: Add check that previous optimization + works as expected. + + * stlport/typeinfo.h: Borland patch from Eric Sanford. + + * DMC patch from Eric Sanford + + * stlport/stl/debug/_tree.h: Patch from Ulrich Eckhardt to add missing + count template method. + + * src/dll_main.cpp: Patch from Ulrich Eckhardt to fix strncpy + usage. + +2006-05-23 Francois Dumont + + * stlport/stl/_deque.h, _deque.c: Change implementation to use + _TrivialInit new feature. + + * stlport/stl/boost_type_traits.h: Add _TrivialInit implementation + using boost type traits. + +2006-05-22 Francois Dumont + + * stlport/stl/type_traits.h: Add _TrivialInit helper struct to + report if a type is trivial to initialize or not that is to say + if the type has a trivial default constructor. Handle native types + exception that are consider as having a trivial default constructor + but that required a 0 initialization on explicit constructor + call. + + * stlport/stl/_uninitialize.h: Add a helper function + __uninitialize_init that result in a no-op if _TrivialInit returns + __true_type. + + * stlport/stl/_vector.h: Modification of vector constructor to + destect when it is called without an explicit default value so + that we can call __uninitialized_init. + + * test/unit/uninitialized_test.cpp: Add test to check correct + detection of useless initialization. + +2006-05-19 Francois Dumont + + * test/unit/uninitialized_test.cpp: Patch from Ulrich Eckhardt + to replace vector instance in uninitialized_copy_test by static + array so that we are always working on pointers iterator. + + * stlport/stl/_string_operators.h: Patch from Ulrich Eckhardt to + add missing != operators when using string template expression. + + * stlport/stl/ctype.h, config/_evc.h, _msvc.h, _windows.h, + features.h: Patch from Michael Fink for evc3/4 platform. + + * test/unit/mvctor_test.cpp: Add of a specific Borland test case + to report what seems to be a compiler bug but that is only + revealed when using STLport. + + * stlport/stl/_tree.h, _set.h, _map.h, debug/_tree.h, + pointer/_set.h: Generalized already existing extension of template + find method on associative containers to all look up methods: + count, erase, lower_bound, upper_bound, equal_range. + + * test/unit/set_test.cpp: Add test case for set template methods + extension. + + * stlport/stl/_tree.c, debug/_tree.h: Removed debug check from + non debug implementation, now debug check is injected in tree + implementation from the tree debug implementation thanks to + a wrapping of the predicate. + +2006-05-18 Francois Dumont + + * stlport/stl/c_locale.h: Fix declaration of _Locale_name_hint + struct so that compilers do not think that this struct is in + the STLport namespace because of friend declaration. + +2006-05-17 Francois Dumont + + * stlport/stl/_abbrevs.h: Update list of abbreviations. + + * stlport/stl/_hashtable.c: Removed _Node macro and fixed + macros defined when _STLP_NESTED_TYPE_PARAM_BUG is defined. + +2006-05-16 Francois Dumont + + * test/unit/type_traits_test.cpp: Add test case to check + _TrivialUCopy helper metaprogramming class behavior. + + * stlport/stl/_vector.h, _vector.c: Replaced _TrivialAss by + _TrivialCopy and _TrivialUCpy by _TrivialUCopy for coherency + with type_traits.h names. + + * test/unit/type_traits_test.cpp: Add small test for correct + impact of trivial_destructor meta info in vector implementation. + + * build/lib/configure.bat: Add comment to explain weird TARGETCPU + check. + +2006-05-15 Francois Dumont + + * stlport/stl/_hashtable.h, _list.h, _deque.h, _slist.h, + _string.h, _vector.h, _move_construct_fwk.h, _rope.h: + Fix impact of _STLP_NO_MOVE_SEMANTIC macro on library. Now, + if defined, no move will ever happen. + + * stlport/stl/_uninitialized.h: Simplified __uninitialized_copy_fill + prototype, only one type of iterator is allowed. It also fix + implementation as this one was not taking into account both + iterator value_type to consider if the operation was trivial + or not. + + * stlport/stl/_uninitialized.h: Major code review. Remove use of + _OKToMemcpy, remove dependency on std::copy of std::fill, all + implementation is now similar to the one of std::copy algorithms + except that uninitialized algo are using + __type_traits::has_trivial_copy_constructor meta information and + copy __type_traits::has_trivial_assign_operator. + + * test/unit/deque_test.cpp, vector_test.cpp: New test case for + over optimization problem. + + * test/unit/map_test.cpp, locale_test.cpp, list_test.cpp, slist_test.cpp, + unordered_test.cpp, fstream_test.cpp, stack_allocator.h: Fixed + implementation to build with _STLP_NO_MEMBER_TEMPLATES. + + * stlport/stl/debug/_vector.h, _list.h: Add non template assign + methods used when _STLP_NO_MEMBER_TEMPLATES is defined. + + * stlport/stl/_slist.c: Fixed sort _Slist_sort implementation, now + call _Slist_merge template function rather than slist::merge method + as this method do not take any predicate when _STLP_NO_MEMBER_TEMPLATES + is defined. + + * build/test/unit/Makefile.inc, test/unit/uninitialized_test.cpp: + New test for uninitialized_copy algo. + + * stlport/stl/type_traits.h: OKToMemCpy rename in _TrivialCopy for + coherency with _TrivialUCopy. Moreover, thanks to refactoring in + uninitialized_* algorithms, _TrivialUCopy now only takes into account + __type_traits::has_trivial_copy_constructor meta information and + not has_trivial_assign_operator. + + * stlport/stl/boost_type_traits.h: Fixed to reflect STLport + __type_traits modifications. + + * stlport/stl/_uninitialized.h: Major code review proposed by + Ulrich Eckhardt + + * stlport/stl/_algobase.h, _deque.h, _deque.c, _vector.h, _vector.c, + _rope.h, _rope.c, _string.h, _string.c: Impact of previous point. + +2006-05-05 Francois Dumont + + * test/unit/iter_test.cpp: Removed unreachable code. + + * Introduction of a new configuration macro _STLP_MSVC_LIB + + This macro is set to _MSC_VER value but can be overloaded to + an other value. First intension was to make STLport more flexible + for Intel C++ compiler. This compiler comes without any native + lib and you have to bind it to a MSVC install, Intel compiler + generate MSVC compatible code so that MSVC linker can correctly + generate final exe or dll. To mimic MSVC compiler ICL also defines + _MSC_VER. The problem is that definition of this macro is based + on a compiler option and do not necessarily reflect the MSVC lib + version ICL is binded to. Fortunately the compiler options + responsible of _MSC_VER definition (/Qvc6, /Qvc7...) is also + responsible of name mangling so asking for a MSVC compiler + compatibility different than the library ICL is binded to is + not easy. But _STLP_MSVC_LIB has been kept as it makes STLport + configuration more clean. Now MSVC compiler version is given + by _STLP_MSVC macro and library version by _STLP_MSVC_LIB. + All occurences of _MSC_VER in STLport code has been replaced + by those macros. + + * _STLP_USE_SECURIZED_BUF_FUNCTIONS replaced by the more + intuitive _STLP_USE_SAFE_STRING_FUNCTIONS. + + * stlport/stl/config/_msvc.h: Major refactoring to isolate + MSVC compiler config and MSVC native library config. + +2006-05-04 Francois Dumont + + * build/lib/configure.bat: And information to the --lib-motif + option as advised by Ulrich Eckhardt. Add option parameter and + relation with _STLP_LIB_NAME_MOTIF. + + * src/messsage_facets.h: Removed implementation of private copy + constructor and assignment operator. + + * src/c_locale_win32/c_locale_win32.c: Made + _Locale_extract_category_name locale function static. + + * src/vc_warning_disable.h renamed in warning_disable.h as it is + used by other compilers too (ICL) + + * build/lib/msvc.mak, evc.mak: Removed forced inclusion of + vc_warning_disable.h file. Now this file is included from + stlport_prefix.h. + + * build/test/unit/msvc.mak, evc.mak: Replace vc_warning_disable.h + reference by warning_disable.h. + + * src/stlport_prefix.h: Add inclusion of warning_disable.h. + +2006-05-01 Francois Dumont + + * test/unit/vector_test.cpp, deque_test.cpp, string_test.cpp: + Removed unreachable code, reported by ICL 9.0. + + * test/unit/mvctor_test.cpp: Removed variable declaration hiding + previous one + made local functions static. + + * stlport/stl/config/_msvc.h: Only use abbreviate symbols for + MSVC compiler and not for all compilers defining _MSC_VER. Also + removed some ICL specific configuration. + + * src/lock_free_slist.h: Removed 'no return statement' warning + for ICL too. + + * src/message_facets.h: Made _Message_impl copy constructor and + assignment operator private to avoid warning as _M_cat member + data has private copy constructor and assignment operator too. + + * stlport/stl/_cstdlib.h: Made additional definition of + div(long, long) based on native library (_MSC_VER) rather than on + compiler used (_STLP_MSVC). + + * stlport/stl/config/_intel.h: Fix Intel C++ 9.0 compiler + configuration with and without /Qvc6 option. + + * src/dll_main.cpp: Add std::unexpected implementation that ICL + need but that is not part of MSVC6 native lib library. + + * test/unit/test_main.cpp: Add std::unexpected implementation that + ICL need but that is not part of MSVC6 native lib library. + +2006-04-30 Francois Dumont + + * stlport/stl/_alloc.h: Moved __type_traits specialization for + std::allocator class before use in _STLP_alloc_proxy + instanciation. + + * test/unit/istmit_test.cpp: Fixed macro checks to correctly + report ignored test. + +2006-04-27 Francois Dumont + + * test/unit/full_streambuf.h, deque_test.cpp, vector_test.cpp: + Add STLPORT macro check when checking _STLP_USE_EXCEPTION macro. + + * test/unit/string_test.cpp: Fix some macro checks to correctly + report ignored tests. + + * test/unit/mvctor_test.cpp: Fix tests to build it with native + MSVC 2005 Standard library. Looks like this implementation do + not follow atmortized constant time vector::push_back complexity. + + * stlport/stl/config/_msvc.h: Clearly report status regarding build + of STLport using the MSVC /clr option. + + * stlport/stl/_threads.h: Remove MSVC .Net 2002 annoying warning. + +2006-04-26 Francois Dumont + + * src/ctype.cpp: Fix ctype::scan_is and scan_not method behavior as + required by C++ Standard 22.2.1.1.2. + + * test/unit/locale_test.cpp: Fix ctype facet test according + modifications above. + +2006-04-25 Francois Dumont + + * stlport/stl/_istream.c: Small refactoring to avoid a uninitialized + warning for __do_handle_exceptions local variable. + + * stlport/stl/_deque.h: Ditto with __cur_node variable in + _M_range_initialize method. + + * stlport/stl/_deque.c: Ditto with __cur in _M_fill_initialize. + + * stlport/stl/config/_auto_link.h: Removed auto link feature when + building a C translation unit thanks Michael Fink. + + * src/time_facets.cpp: Add missing calling convention on + __write_formatted_time internal function. + +2006-04-24 Francois Dumont + + * test/unit/cppunit/cppunit_mini.h: Limit scope of try/catch block to + the test case call so that CppUnit function methods are correctly + called. + + * test/unit/type_traits_test.cpp: Fix use of + CPPUNIT_IGNORE/CPPUNIT_STOP_IGNORE macros so that ignored tests are + correctly reported as ignored. + +2006-04-20 Francois Dumont + + * stlport/stl/config/_solaris.h: Replace C++ style comment + in C style. + + * stlport/stl/_cmath.h: Add macro definition for environment + having long double but no float neither long double math functions + This is a Solaris configuration. + + * src/acquire_release.h, c_locale.h, locale.cpp, + locale_catalog.cpp, locale_impl.cpp, locale_impl.h, + message_facets.h, facets_byname.cpp: Add a locale hint feature + to improve locale construction from name. This is used by + Win32 locale implementation that broadcast the locale lcid + thanks to this hint. With this modification, LocaleTest fixture + runs 5 times faster. + + * stlport/stl/_collate.h, _ctype.h, _monetary.h, _numpunct.h, + _time_facets.h: Add _Locale_extract_hint function as friend + to some locale facet in order to access locale implementation + specific structure and potentially extract the hint. + + * stlport/stl/_codecvt.h, _collate.h, _ctype.h, _messages_facets.h, + _monetary.h, _numpunct.h, _time_facets.h: Add _Locale_name_hint pointer + parameter to facet by name constructor. + + * build/Makefiles/nmake/lib/clean.mak, rules-so.mak, rules-install-so.mak: + Based on Dr Dobb's Richard Grimes article, change management of + manifest file for STLport shared library. According this article + .manifest file is not taken into account for a library, only .exe one is. + Solution is to integrate .manifest file into the .dll as an unmanaged + ressource with id 2. We now do so thanks to the mt manifest tool. + + * stlport/stl/_pair.h: Remove __move_traits partial specialization for + Borland free compiler, it was introducing weird compilation error. + + * stlport/stl/_move_construct_fwk.h: Add a helper struct for __move_traits + feature. + + * build/test/unit/msvc.mak: Prepare makefile to easily build unit tests + without STLport. + +2006-04-15 Francois Dumont + + * stlport/stl/config/host.h, compat.h, debug/_debug.c: Removed + _STLP_NO_DEBUG_EXCEPTIONS configuration macro that is similar + to the new _STLP_DEBUG_MODE_THROWS except that new thrown macro + is catchable (std::runtime_error exception) and contained message + is more explicit. + + * stlport/stl/debug/_tree.h: Add find template method STLport + extension to the debug version of binary tree thanks Mike Flamming. + +2006-04-11 Francois Dumont + + * src/complex_io_w.cpp: Removed, content moved to src/complex_io.cpp + to avoid build of an empty translation unit that can generate linker + warning (noticed with MSVC 2005 express) + + * build/lib/Makefile.inc: Updated before of above modification. + + * test/unit: Ignore many tests rather than hide it depending on + build configuration. + + * test/unit/cppunit/file_reporter.h: Restored output existing before + introduction of monitoring feature. + +2006-04-10 Francois Dumont + + * test/unit/cppunit/cppunit_timer.h, test_main.cpp, file_reporter.h: + Add -m option to activate monitoring of unit tests. This option add + timing for each test and a global timing information. Timer class has + been created for Win32 API. + + * stlport/stl/_bitset.h: Hide STLport bitset extensions _Find_first + and _Find_next. + + * test/unit/bitset_test.cpp: Adapt tests to previous modification. + + * stlport/stl/_string.h: Replace memory include with stl/_alloc.h + to limit header dependencies. Also add include of stl/_uninitialized.h. + + * test/unit/fstream_test.cpp: Add missing memory include. + + * test/unit/locale_test.cpp: Ditto. + + * stlport/stl/_queue.h, _string.h, _rope.h, debug/_tree.h: Replace + stl/_function.h include with the smaller _function_base.h include. + +2006-04-07 Francois Dumont + + * stlport/stl/_new.h: Fixed management of _STLP_NO_BAD_ALLOC + and _STLP_NEW_DONT_THROW_BAD_ALLOC macros. + + * stlport/stl/config/_dm.h: Change DMC configuration, use STLport + own namespace rather than std so that STLport can check config. + + * stlport/typeinfo.h: Fix DMC configuration now that it uses own + STLport namespace. + +2006-04-05 Francois Dumont + + * stlport/stl/_tree.h, _list.h: Fixed swap implementation to + correctly swap allocators instance. Moreover list swap implementation + was wrong since list splice has been modified to correctly handled + allocators with state. + + * test/unit/slist_test.cpp, list_test.cpp, set_test.cpp: Add tests for + above fix. + + * stlport/stl/_deque.h: Fix swap method as deque has 2 allocator + instances, this should perhaps be modified one day to only keep 1... + + * stlport/stl/_rope.h: Fix swap method and removed assertion for + equivalent allocator instances even if there are still other assertions + in the implementation. + + * stlport/stl/_function_base.h: Add swap method for less functor if + partial template workaround is activated. This is for surprising + compilers supporting partial template specialization but no template + function partial ordering. + + * stlport/stl/_algobase.h: Add Borland workaround for swap function + thanks Eric Sanford. + + * test/unit/type_traits_test.cpp: Borland workaround for is_convertible + function thanks Eric Sanford. + + * stlport/stl/config/_bc.h: Borland compilers do not support template + function partial ordering thanks Eric Sanford. + + * test/unit/stack_allocator.h: Add Borland workaround to correctly + call StackAllocator::swap method when swaping STL containers in + allocator_with_state tests. + + * test/unit/config_test.cpp: New test + ConfigTest::template_function_partial_ordering. + + * test/unit/slist_test.cpp, list_test.cpp, set_test.cpp: Add swap tests + with empty containers. + + * src/vc_warning_disable.h: Remove deprecated comments. + + * stlport/stl/_pair.h: Removed Borland checks thanks Eric Sanford. + + * Patch from Michael Fink to remove Windows CE support that is + no more supported by Microsoft. + + * stlport/stl/config/_native_headers.h: New, contains all macros + relative to native headers access that used to be in features.h. + + * stlport/stl/config/_evc.h, _como.h: Add include of _native_headers.h + as those compilers need to include native headers for correct + configuration. + + * stlport/stl/config/features.h: Use _native_headers.h. + + * test/unit/locale_test.cpp: Made LocaleTest::facet_id test STLport + specific rather than Borland specific. Moreover, without STLport, test + is ignored rather than hidden. + + * stlport/stl/_num_put.h, _num_put.c: Removed useless export of + num_put, num_put not required by + the Standard. + + * stlport/stl/_num_get.h, _num_get.c: Ditto for + num_get, num_get + + * stlport/stl/_moneytary.h, _moneytary.c: Ditto for + money_get, money_get, + money_put, money_put + + * stlport/stl/_time_facets.h, _time_facets.c: Ditto for + time_get, time_get, + time_put, time_put + + * src/locale_impl.cpp: Removed id initialization of useless facets + no more exported. + + * stlport/new, stl/_new.h: Moved all STLport code in _new.h and + modified new header so that it forwards include to native new + when include comes from inside STLport. + + * cppunit/file_reporter.h, cppunit_mini.h: Change support of + CPPUNIT_CHECK macro, only report error once for all failures + in a single test case. + +2006-03-28 Francois Dumont + + * stlport/stl/_prolog.h: Fix macro check before inclusion of + features.h. + + * stlport/stl/char_traits.h: Fixed include of cstddef, in STLport + code, Standard headers should never be included directly, their + stlport/stl/_xxx.h counterpart should be used. + + * stlport/stl/type_traits.h, type_manip.h: Patch from Eric Sanford + for Borland compiler to fix _OKToMemCpy feature. + + * stlport/stl/_alloc.h: Replace swap function for _STLP_alloc_proxy + by a member method, it is more portable. + + * stlport/stl/_bvector.h, _deque.h, _list.h, _slist.h, _string_base.h + _tree.h: Replaced called to std::swap for _STLP_alloc_proxy instances + by calls to member swap method. + + * test/unit/hash_test.cpp: Ignore test rather than hide it. + + * test/unit/map_test.cpp: Fixed StackAllocator instanciation. + + * test/unit/stack_allocator.h: Add std::swap overload for + StackAllocator>. + + * test/unit/string_test.cpp: Ignore tests rather than hide it. + + * test/unit/unordered_test.cpp: Ditto. + +2006-03-27 Francois Dumont + + * stlport/stl/_stdexcept_base.h: New internal header with + __Named_exception implementation, improve segregation between + and Standard headers. + + * test/unit/locale_test.cpp: Add missing header include. + + * stlport/stl/_function_base.h, _function.h: Move as many functor as + possible from _function_base.h to _function.h to improve + segregation between and Standard headers. + + * test/unit: Add many missing references to header. + + * test/unit: Made unit tests available for build without STLport, this + will be a good way to compare Standard library implementations. + + * stlport/stl/_string_base.h: Remove additional space for terminating + null character, it was actually already reserved in the return + expression. + + * stlport/stl/_string.h: Restored basic_string capacity implementation + that do not depend on use of the short string optimization or not. It + might be hiding a real issue somewhere else in code even if unit tests + are not showing any problem. + + * stlport/stl/_alloc.h: Add swap overload for _STLP_alloc_proxy class + in order to correctly call swap on the maybe rebound allocator as user + that implement an allocator with a state might have implement a + special swap function for it to correctly handle STL containers swap + operation. + +2006-03-24 Francois Dumont + + * build/lib/configure.bat: Removed script for defining INCLUDE + environment variable for Borland ressource compiler as it depends + on where STLport is install. + + * build/lib/bcc.mak: Add check for INCLUDE environment variable + definition. + + * test/unit/string_test.cpp: Change basic_string::reserve test to + check length_error exception rather than bad_alloc. + +2006-03-22 Petr Ovtchenkov + + * stlport/stl/_string.c: a bit code clean + + * stlport/stl/_string_base.h: max_size should keep space for + allocation of terminating null. + +2006-03-19 Francois Dumont + + * stlport/stl/_alloc.h, _function_base.h, type_manips.h, + type_traits.h, test/unit/type_traits_test.cpp: Patch for + Eric Sanford for __bool2type Borland use. + + * build/Makefiles/gmake/lib/clean.mak: Patch from Eric Sanford + to fix files generated by dbg-shared and stldbg-shared rules. + + * build/Makefiles/gmake/lib/bcc.mak: Patch from Eric Sanford to + increase Borland page size to 64. + +2006-03-16 Francois Dumont + + * stlport/stl/config/_evc.h, _msvc.h: Add some condition for + definition of _STLP_MSVC macro which should only be defined for + real Microsoft compilers and not for compiler emulating it. + + * src/allocators.cpp: Use _STLP_STATIC_MUTEX macro in place + of _STLP_mutex_base for mutex definition in per_thread_allocator + implementation. + + * stlport/stl/_pthread_alloc.h: Modified deallocate methods of + pthread_allocator and per_thread_allocator implementation to accept + null pointers. + +2006-03-15 Francois Dumont + + * stlport/stl/_string_base.h, _string.c: Force call to + _M_allocate_block even in short string optim mode in order + to detect lenght error. Based basic_string max size implementation + on allocator max_size. + +2006-03-15 Petr Ovtchenkov + + * stlport/stl/config/_system.h, _msvc.h, _evc.h: move _STLP_MSVC + definition in proper place. + +2006-03-14 Francois Dumont + + * src/allocators.cpp: Fixed thread safety issue in + per_thread_allocator implementation thanks a very old William + Power report. + + * test/unit/allocator_test.cpp: Attempt to write a test case for + previous bug but not yet complete as I need a better debugging + environment than gdb under cygwin... + + * stlport/stl/config/_system.h: Patch from Michael Fink to add + missing _STLP_MSVC define for evc++ compilers. + +2006-03-13 Francois Dumont + + * stlport/stl/_alloc.h, src/allocators.cpp: Hide declaration of + malloc based allocator handler in library. Also limit scope of + declspec to expose static members rather than the whole class. + + * stlport/stl/_cstdlib.h: For Borland compiler add include of + native process.h header, for reason see comment next to include + in file. + + * stlport/stl/_alloc.h: Add a new STLport extension to the + std::allocator class: allocate(size_type, size_type&). This new + overload of allocate returns in an output parameter, the real + size of the allocated buffer that can be larger than the requested + one. _STLP_alloc_proxy expose this new overload only for the + STLport allocator and not for user defined allocators. + + * stlport/stl/_vector.h, _vector.c, _string.h, _string.c: Use of the + allocate overload extension method to set end of storage reference + to the real memory block end rather than to the requested one. + + * stlport/stl/_alloc.c: Adapt __debug_alloc::allocate method in order + to return the real allocated memory block. Also add check on computed + __real_n to allocate as it might roll on size_t and hide a case that + should result in a bad_alloc exception. + + * stlport/stl/_threads.h, src/allocators.cpp: Add WINVER macro + check in addition to _WIN32_VERSION, according PSDK documentation + WINVER is more generaly used accross different Windows platforms. + + * test/unit/string_test.cpp: Add constructor test case to correctly + handle build of a string with string::max_size elements which should + result in a bad_alloc exception. Idem for reserve method. + + * stlport/stl/_alloc.h, src/allocators.cpp: Add check of malloc + result in __malloc_alloc implementation to throw an exception when + result is NULL. + + * src/locale_impl.cpp: Patch from Eric Sanford for Borland BDS 2006 + support. Mostly fix locale facet index issues. + +2006-02-28 Petr Ovtchenkov + + * stlport/stl/_string.h: capacity may return wrong value in case + of no _STLP_USE_SHORT_STRING_OPTIM in use; thanks Rusty Koonce + for report. + + * test/unit/string_test.cpp: test for capacity issue. + + * src/cxa.c: don't use cxa workaround for FreeBSD 6.0---it fine; + this is rollback of changes 2006-01-24 [bad compiler was in use]. + +2006-02-15 Petr Ovtchenkov + + * stlport/stl/_string.h: _STLP_FORCE_STRING_TERMINATION mode become + default and only mode due to performance issue. + + * stlport/stl/config/user_config.h: ditto. + + * stlport/stl/config/features.h: ditto. + +2006-02-14 Francois Dumont + + * stlport/stl/_hashtable.h, _hashtable.c: Add check in _STLP_DEBUG + that equivalent key have same hash code. Fix _M_rehash method + implementation that used to change elements order thanks Big Muscle + effort to report this issue. + + * build/lib/configure: Fix reference to STLport configuration file + in --no-cygwin option description. + +2006-02-13 Francois Dumont + + * stlport: Patch from Eric Sanford to remove many now useless + Borland workaround. + + * src/fstream.cpp: ditto + + * stlport/stl/_monetary.h, _cwchar.h, _algobase.h: ditto + +2006-02-10 Francois Dumont + + * stlport/stl/_iosfwd.h, _locale.h: Removed type attributes on type + declaration, only useful on type definition. + + * src/message_facets.h: Removed unused parameter in _Catalog_nl_catd_map + erase method to avoid warning. + + * src/num_put_float.cpp: Use more macro technique to avoid unused parameters + in *_cvt functions. + + * test/unit/cppunit/cppunit_mini.h: Comment unused parameter. + + * test/unit/cppunit/file_reporter.h: Add base class initialization + in FileReporter copy constructor definition. + +2006-02-10 Petr Ovtchenkov + + * src/num_put_float.cpp: remove usage of static buffers + [potential vulnerabilities]; directly use __iostring instead. + + * test/unit/floatio_test.cpp: test for fixed float output; + cases when fixed float fail on Linux and Solaris, related + with fcvt_r and fconvert calls respectivly commented. + + * build/Makefiles/gmake/gcc.mak: workaround for bug in make 3.79.1 + on Solaris [not pass -D_STLP_DEBUG to CPPFLAGS]. + + * stlport/stl/_string.h: rollback 2006-01-25. + +2006-02-08 Francois Dumont + + * build/Makefiles: Removed all references to BUILD=r in parameters + to ressource compiler in release as there is no more 'r' appended + to the library name in this mode. + + * src/stlport.rc: Fix support for Borland and add check for BUILD + definition before injecting it in original library file name. + + * doc/README.borland: Update doc to signal new prerequisite for + Borland ressource compiler. + + * test/unit/unordered_test.cpp: Add test for unordered_multiset + equal_range method. + + * test/unit/partial_test.cpp: Add test for strict weak ordering + predicate good behavior check. + +2006-02-07 Francois Dumont + + * src/allocators.cpp: New simplification for _Node_Alloc_Lock, + it do not have to be a template class anymore. + + * stlport/stl/debug/_debug.c: Implement + __stl_debug_engine<_Dummy>::_Message even when specifying + _STLP_DEBUG_MESSAGE in order to have explicit instanciation correctly + generated. + + * stlport/stl/_heap.c, _tree.c, _list.c, _slist.c: Add strict + weak ordering checks. + + * stlport/stl/_debug.h, _debug.c: Add new error type: bad equivalent + functor that has to be used in hash container implementation or in + algorithm like find. Check for this functor is: + if (pred(a, b)) assert(pred(b, a) + + * stlport/stl/_hashtable.c: Add equivalent functor checks. + + * stlport/stl/_debug.h, _debug.c: Check _STLP_DEBUG_MODE_THROW in + __debug_engine::_Message method. Now thrown exception will contain + description of the assertion rather than a generic message. + + * build/Makefiles/gmake/bcc.mak: Fix Borland ressource compiler name, + brcc32 not brc32. + + * stlport/stl/_range_errors.h, src/dll_main.cpp: Add + __stl_throw_runtime_error function used to throw exception in + _STLP_DEBUG_MODE_THROW. + +2006-02-06 Francois Dumont + + * build/Makefiles/nmake: Fixed regression generated by a side + effect of Uli patch below. + +2006-02-02 Francois Dumont + + * stlport/config/_stl_evc.h, stl/_config.h: Patch from Ulrich + Eckhardt to signal endianess detection problem and set EVC + endianess for MIPS SDK. + + * src/allocators.cpp: Clean up _Node_Alloc_Lock definition, only + specialization are now available for thread safe and not thread + safe builds. Make easier definition of internal static mutex. + + * stlport/float.h: Patch from Eric Sanford for Borland NaN management + + * stlport/cfloat: Include STLport float.h rather than native one in + order to use potential internal workaround. + + * stlport/stl/config/_ibm.h: Replace all C++ comment by C comments. + + * stlport/errno.h: For Borland, when building for a single threaded + contex, errno is not a macro and is defined in std namespace so using + have to get the symbol in this namespace. + +2006-01-31 Francois Dumont + + * src/allocators.cpp: Reinforce move of allocators implementation + + * stlport/stl/_alloc.h: Removed include of internal _thread.h no + more necessary now that allocator implementation is in allocators.cpp. + + * stlport/stl/_pthread_alloc.h: Removed pthread.h include. + + * stlport/stl/_rope.h: Adopt classic macro check before inclusion + of _threads.h. + + * build/Makefiles/gmake/gcc.mak: Add -fno-inline option for debug + builds. + + * stlport/stl/_threads.h: Remove lock free singly linked list, avoid + include of windows.h when using Win32 API lock free slist + implementation. + + * src/lock_free_slist.h: New place for the lock free singly linked + list implementation. + + * test/unit/mvctor_test.cpp, type_traits_test.cpp: Small workaround + for gcc 4.0.1 build, looks like there is a conflict between glibc++ + __true_type and STLport one. + +2006-01-30 Francois Dumont + + * Patch from Ulrich Eckhardt for EVC4 ICE + some documentation + updates and fixes. + +2006-01-29 Francois Dumont + + * stlport/stl/_hashtable.h, _limits.h: Add missing calling + convention to static methods thanks Petr Supina + +2006-01-28 Francois Dumont + + * stlport/stl/debug/_iterator.h: Fix Hp Acc configuration thanks + Boris Gubenko. + +2006-01-27 Francois Dumont + + * stlport/stl/_alloc.h, _old_alloc.h, _pthread_alloc.h, + test/unit/rope_test.cpp: Fixed reference to _STLP_NO_IOSTREAMS, + replaced by _STLP_USE_NO_IOSTREAMS. + + * stlport/stl/_alloc.h: Move _MAX_BYTES definition out of + _STLP_USE_NO_IOSTREAMS check scope as it is also used in deque + implementation. + + * stlport/stl/_algo.c, debug/_debug.h, _debug.c: Add check for + bad predicate in safe STL mode (_STLP_DEBUG). + + * test/unit/sort_test.cpp: Add test for correct invalid strict weak + ordering predicate detection. Active only when STL safe mode throws + exception rather than terminating application. + + * test/unit/sort_test.cpp: Add a check that stable_sort is really + stable. + +2006-01-26 Francois Dumont + + * stlport/stl/_alloc.h, _alloc.c, _pthread_alloc.h: Many code moved + to allocators.cpp. + + * stlport/stl/_pthread_alloc.c: Removed, content moved to + allocators.cpp. + + * src/allocators.cpp: New, contains STLport node and per thread + allocator implementation. + + * src/dll_main.cpp: Remove references to former __node_alloc + class. + + * build/lib/Makefile.inc: Add allocators.cpp translation unit. + + * stlport/stl/_alloc_old.h: Modified based on allocator classes new + interface. + + * stlport/stl/config/feature.h: Default allocator in _STLP_NO_IOSTREAMS + mode is now the new/delete allocator, user can still use malloc/free + one using config swtich in host.h. + + * stlport/stl/config/_gcc.h: Cygwin/MinGW can now use default node + allocator implementation without memory leak. + +2006-01-25 Francois Dumont + + * test/unit/stream_test.cpp: Add check for ptrdiff_t output + in streams operator when 64 bits portability issue detection + feature is activated with MSVC compilers. + +2006-01-25 Eric Sanford <...@comp...> + + * stlport/stl/_exception.h: Delete obsolete workaround for + legacy Borland compilers. + + * stlport/stl/_string.h: Use an other implementation for the + const_reference operator[](size_type _n) const + + * stlport/stl/config/_bc.h: Restore unexpected exception handler + (static and dynamic) and uncaught_exception handler (static only) + + * build/Makefiles/gmake/lib/bcc.mak: Typo fix in linker flags. + +2006-01-24 Petr Ovtchenkov + + * test/unit/bind_test.cpp: add test for member function + binding that show workaround for const function call. + + * src/cxa.c: __cxa_finalize and __cxa_atexit present in libc + in FreeBSD 5.3, but again absent in 6.0 + + * build/Makefiles/gmake/app/gcc.mak, + build/Makefiles/gmake/lib/gcc.mak: detect whether gcc + was builded with --disable-shared and use correct libgcc. + + * build/lib/configure: add --use-static-gcc option to show + that STLport should use static language support libraries from + gcc if it was build with --enable-shared. + +2006-01-23 Francois Dumont + + * build/Makefiles/gmake/app/clean.mak: Fix distclean rule for + windows thanks Eric Sanford. + + * stlport/stl/_cstddef.h, _cstdlib.h: When no new header support, + include STLport C header rather than native one to use errno + workaround. + + * stlport/stddef.h: DMC also define errno in native stddef.h file. + +2006-01-22 Francois Dumont + + * src/locale_impl.cpp, stlport/stl/_codecvt.h, _monetary.c, + _num_get.c, _num_put.c, _time_facets.c: Borland workaround for + locale facet id instanciation that were duplicated. Now static + instances are no more defined from .c files but only from the + .cpp and only for facets that are implemented by STLport. Users + implementing facet inheriting from the STLport one will have to + defined the static instance themself in their translation units. + + * stlport/stl/type_manips.h: Fixed _UnCVType wrong implementation + reported by Digital Mars compiler. + + * stlport/stl/boost_type_traits.h: Fixed _OKMemCpy implementation + remove_pointer call was wrong. + + * src/dll_main.cpp: Hide force_link definition to MSVC compilers, + was useless and producing a warning. + + * build/Makefiles/gmake/cygming/rules-so.mak: Workaround for DMC + linker weird behavior. Linker create the dll file even if link + fail which confuse make dependency feature. As lib file is not + generated, dll now depends on lib that depends on build files. + + * stlport/stl/config/_warning_off.h: Disabled this used in initialization + list warning, used in rope implementation. + + * build/lib/configure: Fix --with-boost interpretation. + + * build/Makefiles/gmake/dmc.mak: Use dm_link command for linker rather + than link that is rather the MSVC like wrapper. + + * build/Makefiles/gmake/cygming/targetsys.mak: Ditto for dm_lib rather + than lib command. + + * build/Makefiles/gmake/app/rules.mak: Use same linker command invocation + for DMC and Borland. + + * doc/README.borland: Documentation update about limitation on locale + facets id instanciation. + + * stlport/stdlib.h: DMC, like Borland and EVC, defines errno macro + in stdlib.h + + * stlport/stl/config/user_config.h, features.h: Inverse + _STLP_FORCE_STRING_TERMINATION macro switch in + _STLP_DONT_FORCE_STRING_TERMINATION. This is less dangerous for + existing code. + + * stlport/stl/_string.h: When _STLP_FORCE_STRING_TERMINATION + is defined operator[] implementation is simpler. + + * stlport/stl/debug/_string.h: Based implementation of [] + operator on the non STL safe internal instance, avoid duplication + of check for access to the element of index size(). + + * test/unit/fstream_test.cpp: Add custom facet id definition for + Borland. + + * test/unit/hash_test.cpp: Now Borland support correctly hash container + implementation. + + * test/unit/rope_test.cpp: Fixed test implementation to build in + _STLP_NO_IOSTREAMS mode. + +2006-01-18 Francois Dumont + + * stlport/stl/_ostream.h, _ostream.c: Use size_t rather than + unsigned int for MSVC compilers after VC6 in IO output operator + to avoid 64 bits warning when trying to display a size_t type. + + * test/unit/sstream_test.cpp: Add test that reveal the 64 bits + warning. + + * test/unit/string_test.cpp: Fixed unused variable warning. + +2006-01-17 Petr Ovtchenkov + + * src/c_locale_glibc/c_locale_glibc2.c: really implemented + getting default locale categories from environment; replace + a few strcpy by strncpy to protect from possible buffer overflow + attack. + + * stlport/new.h, stlport/stl/_typeinfo.h: few workarounds for ICC 9 + [suggested by Lim Hwan Cheol]. + +2006-01-14 Eric Sanford <...@comp...> + + * build/test/eh/bcc.mak: Copied from build/test/unit/bcc.mak. + + * stlport/stl/_rope.c: Restore Borland support for _Rope_rotate. + + * stlport/stl/_rope.h: Fix Borland 5.5.1 internal compiler errors + in _M_path_end and _M_tmp_buf structs. Restore Borland support for + _Rope_rotate. + + * test/eh/test_rope.cpp: Restore Borland exception test for rope. + + * test/unit/rope_test.cpp: Restore Borland unit test for rope. + +2006-01-13 Petr Ovtchenkov + + * stlport/stl/_string.h, stlport/stl/debug/_string.h: + const operator [n] should return CharT() in case of + n == size(), ISO/IEC 14882:2003(E), 21.3.4; thanks Russ Miller. + + * test/unit/string_test.cpp: test for fixed bug above. + + * build/lib/configure: change --use-boost= onto --with-boost= + +2006-01-13 Francois Dumont + + * test/unit/type_traits_test.cpp: Add boost specialization for + any_pod_type in order to reproduce STLport behavior when using + boost type traits. + + * src/dll_main.cpp: Remove now invalid template explicit + instanciation of _Bs_G that is no more a template. + + * stlport/stl/config/_detect_dll_or_lib.h: When no iostreams mode, + consider that we are in a static lib mode. + + * stlport/stl/_limits.c, _hashtable.c: Add _STLP_CALL specification + to _LimG and _Stl_prime methods implementation. + + * stlport/stl/_limits.c: Put _Stl_prime methods implementation in + a _STLP_EXPOSE_GLOBALS_IMPLEMENTATION macro check block. Those + methods are supposed to come from libs when using iostreams. + + * stlport/stl/_num_put.h, _num_get.h, _time_facets.h, _ios.h, + _ios_base.h: Cleanup Borland workaround now useless. + + * stlport/stl/boost_type_traits.h: Fixed _OKToMemCpy implementation + using boost type traits to be closer to the STLport behavior. + + * build/lib/configure.bat: Fixed reference to STLport user + configuration file. + + * build/lib/configure: Add --use-boost option to inject boost + path during build process. + +2006-01-12 Petr Ovtchenkov + + * stlport/stl/_rope.h, stlport/stl/_rope.c: pass CharConsumer + via reference, to take into account CharConsumer modifications. + This has relation to find(char) in rope. Thanks Cristian Vlasceanu. + + * test/unit/rope_test.cpp: test for fixed bug above. + +2006-01-11 Francois Dumont + + * src/bitset.cpp: Add stlport_prefix.h include. + + * stlport/stl/_bitset.h: Add an inline implementation for _S_count + and _S_first_one static methods for _STLP_NO_IOSTREAMS mode. Should + be slower than version coming with library but avoid link trouble. + +2006-01-11 Petr Ovtchenkov + + * stlport/stl/_bitset.h, stlport/stl/_bitset.c, src/bitset.cpp: + make helper structure _Bs_G non-template [it used only as instance + with unused bool argument only], and put static tables into library + to avoid possible static instances duplication. + + * build/lib/Makefile.inc: idem. + +2006-01-10 Francois Dumont + + * stlport/stl/type_traits.h, config/_msvc.h, _mwerks.h: Integrate + intrinsic type traits support for Visual 2005 and Metrowerk. Code + based on boost library information and not tested for Metrowerk. + + * test/unit/bind_test.cpp: Fix BindTest::bind2nd3 test case, had + never been used. + + * stlport/stl/boost_type_traits.h: Change boost type traits wrapping + implementation to use meta programming operation on types rather + than on numerical constant, MSVC6 prefer it. + + * build/test/unit/msvc.mak: Systematically add /Zm800 for MSVC + compilers, useful in a number of case and transparent in others. + + * test/unit/type_traits_test.cpp: Add is_POD test case. Add dummy + constructors, assignment operator and destructor to any_type struct + to make the tests pass even with compilers having intrinsic type + traits support. + +2006-01-09 Francois Dumont + + * stlport/stl/debug: Fix move constructor to keep the container + move constructor complete. When STLport user do no require no + extension or Standard debug safe mode, iterators are also move + with the container contents. + + * stlport/stl/_list.h, _slist.h, _tree.h: Made iterator struct + constructor from base class pointer explicit to forbid expression + like: list.begin() == 0. + + * stlport/stl/pointers/_slist.h, _list.h, _set.h: Fix implementation + that was using former implicit contructor from pointer to base class. + + * src/c_locale_win32/c_locale_win32.c: Fix implementation for + compilers coming with a native lib implementing secure C functions + like strncpy_s. + + * src/iostream.cpp: Hide I/O streams declaration when defining + them when compiler has no support for removing I/O streams + from static global variable initialization segment. Avoid the + stdio_istreambuf using directive when we do not use STLport + private namespace. + + * stlport/stl/_rope.h, _rope.c: Use internal, not _STLP_NO_EXTENSIONS + dependant functions for implementation. + + * stlport/rope, hash_map, hash_set: Add _STLP_NO_EXTENSIONS check + that generate a #error if defined as those headers are STLport + extensions. + + * stlport/_uninitialized.h: Add __uninitialized_copy_n no dependant + against _STLP_NO_EXTENSIONS for rope implementation. + + * test/unit: Made tests ok to build even when _STLP_NO_EXTENSIONS or + _STLP_NO_ANACHONISM or _STLP_NO_CUSTOM_IO is defined. + + * stlport/stl/_num_put.h, _num_get.h: Fix definition scope of + _STLP_MOVE_TO_STD_NAMESPACE that was wrong when _STLP_NO_CUSTOM_IO + is defined. + + * stlport/stl/boost_type_traits.h: Fixed _IsRef implementation based + on boost type traits feature. + + * build/nmake/extern.mak, lib/msvc.mak, test/unit/msvc.mak, + test/eh/msvc.mak: Moved injection of boost include path for all targets + in extern.mak. Also removed a useless double quote as make variable already + contains it. + + * stlport/stl/config/_bc.h, test/unit/floatio_test.cpp, cmath_test.cpp, + limit_test.cpp: Borland patch from Eric Sanford. + + * test/unit/string_test.cpp: Add template_wexpression test to check + wstring template expression. + +2006-01-05 Francois Dumont + + * stlport/stl/_stdexcept.h: Fix __Named_exception destructor + implementation when _STLP_NO_IOSTREAMS is defined or when + securized C function strcpy_s exists. + + * stlport/stl/pointers/_set.h: Fixed implementation as _Identity + is now in private namespace and const_reverse_* functions must + return const_reverse_* iterators and not simply reverse_*. + + * test/unit/bcompos_test.cpp, bind_test.cpp: Made the tests usable + when _STLP_NO_EXTENSIONS is defined. + + * build/lib/configure.bat: Fix name of msvc8 compiler. + + * test/unit/mfunptr_test.cpp: Ignore find test when no class + partial template specialization rather than commenting it. + + * test/unit/type_traits_test.cpp: Ditto for reference_type test. + + * build/Makefiles/nmake/top.mak: Fixed install-shared definition. + + * build/Makefiles/gmake/gcc.mak: Add _STLP_USE_STATIC_LIB when + building and using STLport static lib under MinGW/Cygwin. + +2006-01-04 Francois Dumont + + * src/acquire_release.h: New file, expose __acquire_* + functions used in different translation unit. + + * src/num_put.h: Removed, content moved to num_put.cpp that + was the only translation unit using exposed functions. + + * src/*: Build with Intel C++ 9 compiler reveal that many + static specification was missing. + + * src/ctype.cpp: Filter out _WCharIndexT specialization for + Intel compiler that consider wchar_t as unsigned, fixed a + warning. + + * _STLP_STATIC_ASSERT is now called without trailing ';' that + is already in the macro definition. + + * src/*: Removed reference to _SgI namespace replaced by the + STLport private namespace. + + * src/iostream.cpp: Add iostream include to expose cout, cin, cerr + definition to declaration. + +2006-01-03 Francois Dumont + + * stlport/stl/config/_gcc.h: Force use of new/delete based + allocator under Cygwin/MinGW, default node allocator has + problem because __node_allocator static datas are sometimes + duplicated in a dll context. + +2006-01-01 Francois Dumont + + * build/Makefiles/gmake/lib/gcc.mak, stlport/stl/config/_gcc.h: + Change way of building dll with Cygwin/MinGW. No more export of + all symbols, we use dllexport specification, makes import lib + really shorter and dll too. Moreover use of the + enable-auto-image-base linker option to make load of dll faster. + + * stlport/stl/_time_facets.c, _num_put.c, _num_get.c, _monetary.c, + debug/_debug.c: Adapt existing Cygwin/MinGW workaround for new + way of generating dlls. + +2005-12-31 Francois Dumont + + * doc: Add Borland doc and update cygwin, mingw and msvc. + + * build/lib/README.options: Removed, replaced by configrure + script. + + * build/test/eh/bcc.mak: Added to build EH tests for Borland. + +2005-12-29 Francois Dumont + + * src/c_locale_win32/c_locale_win32.c: Hide _Locale_mbtowc and + _Locale_wctomb when no wchar_t support is detected thanks Eric + Sanford. + + * src/c_locale_win32/c_locale_win32.c: Add mapping from Borland + facet macros to STLport associated string representation array index + thanks Eric Sanford. + + * stlport/stl/config/_evc.h: Patch from Michael Fink to generalized + use of OutputDebugString for Windows CE when we need to trace + information. + + * build/Makefiles/gmake/bcc.mak, lib/bcc.mak, app/bcc.mak: Fix + definition of START_OBJ thanks armpit33 + + * build/Makefiles/*: Generalize use of install-shared rather than + list of all shared rules, idem for install-static. + +2005-12-27 Francois Dumont + + * stlport/stl/_string_io.c: Generalized use of _STLP_STATIC_ASSERT + macro rather that hand writen static assertion. + + * stlport/stl/_fstream.c, _istream.c, src/fstream.cpp, strstream.cpp: + Add some cast to avoid Borland suspicious pointer arithmetic warnings + thanks Eric Sanford. + + * stlport/stl/_limits.c: Fix Borland definition of NaNs and infinity + for long double thanks Eric Sanford. + + * stlport/stl/config/_system.h, _gcc.h: Fix config for Windows, MinGW + and Cygwin platforms. + + * stlport/stl/config/_windows.h: Can now be included by a pure C + compiler. + + * stlport/stl/config/_warning_off.h: Removed suspicious pointer + arithmetic warning for Borland thanks Eric Sanford. + + * stlport/stl/_construct.h: Removed now useless Borland workaround. + + * src/stdio_streambuf.cpp: Ditto. + + * stlport/stl/_alloc.h: Now allocator is tagged as an STLport class + even without partial template specialization support. This is + necessary because type_traits is specialized for allocator, + allocator and allocator when partial template + specialization is not available. + + * test/unit/bitset_test.cpp: Add tests for the STLport + bitset::_Find_first extension. + +2005-12-27 Petr Ovtchenkov + + * src/initial_mak: obsolete makes removed (sync with STLPORT_5_0 + branch). + +2005-12-24 Petr Ovtchenkov + + * stlport/stl/config/_gcc.h: gcc, builded by Apple is differ + in behavior from original; in particular, in path to includes; + + * build/Makefiles/gmake/app/gcc.mak: fix gcc options on MacOS X; + STLport is free from libstdc++ on MacOS now; + + * build/Makefiles/gmake/gcc.mak: fix gcc options on MacOS X; gcc, + builded by Apple is differ in behavior from original; + detect this; + + * build/Makefiles/gmake/lib/gcc.mak: fix gcc on MacOS X; + differentiate gcc from Apple and original; + STLport is free from libstdc++ on MacOS X now; + + * build/Makefiles/gmake/darwin/rules-so.mak: use + gcc instead of c++ for linkage, if only C sources present. + + * build/lib/gcc.mak, build/test/unit/gcc.mak: remove duplication + of stlport includes. + +2005-12-22 Petr Ovtchenkov + + * stlport/stl/config/_windows.h: all system specific configuration + in one place [moved from stlport/stl/_windows.h] + + * stlport/stl/_windows.h: deleted; all system specific configuration + in one place [moved to stlport/stl/config/_windows.h] + + * stlport/stl/debug/_debug.c, stlport/stl/_threads.h: + _windows.h included via _prolog.h [i.e. via stl/config/_system.h], + see changes above. + + * stlport/stl/config/_sunprocc.h: remove include of _solaris.h---it + already included from _system.h + + * stlport/stl/config/_kai.h: remove include of os configuration files, + it should be included from _system.h + + * stlport/stl/config/_intel.h: fix path after config headers + reorganization. + + * stlport/stl/config/_evc.h: idem + + * stlport/stl/_exception.h: idem + + * stlport/stl/config/_prolog.h: idem + + * test/unit/fstream_header_test.cpp: idem + + * test/unit/iomanip_header_test.cpp: idem + + * test/unit/ios_header_test.cpp: idem + + * test/unit/iostream_header_test.cpp: idem + + * test/unit/istream_header_test.cpp: ditto + + * test/unit/locale_header_test.cpp: idem + + * test/unit/ostream_header_test.cpp: idem + + * test/unit/sstream_header_test.cpp: idem + + * test/unit/strstream_header_test.cpp: idem + +2005-12-21 Francois Dumont + + * stlport/stl/debug/_debug.h, _debug.c, _string_sum_methods.h: + Removed some unused parameters reported by Borland compiler. + + * stlport/stl/config/_warnings_off.h: Disable unused parameters + warning for Borland compiler. + + * build/Makefiles/gmake/targetdirs.mak: Change config in order to + have each generated application in a different bin folder. + + * stlport/stl/_threads.h: Used _STLP_STATIC_ASSERT macro for a + static assertion. + +2005-12-19 Petr Ovtchenkov + + * build/Makefiles/gmake/lib/gcc.mak: move LDSEARCH flags after + possible -nostdlib + + * build/lib/gcc.mak: don't add include path, it already included. + + * src/c_locale.h: include stlport_prefix.h to add STLport's + definitions that used below. + + * stlport/stl_user_config.h, stlport/stl/_config.h: moved + to stlport/stl/config catalog and renamed. + + * stlport/stl/_config_compat.h, stlport/stl/_site_config.h: ditto. + + * stlport/config: headers moved to stlport/stl/config catalog, + renamed and reorganized. + + * stlport/stl/_prolog.h, stlport/stl/_epilog.h, src/stlport_prefix.h: + reflect changes in configuration files. + +2005-12-17 Francois Dumont + + * stlport/stl/_config.h: Removed ';' in _STLP_STATIC_ASSERT + definition. + + * stlport/stl/_cwctype.h: Fix native namespace of wide char functions + for MinGW runtime <= 3.0. Also fix a typo for FreeBDS. + + * src/stdio_streambuf.cpp: Add missing 'defined' when checking + __OS400__ macro existance. + + * test/unit/resolve_name.cpp, set_test.cpp: Removed useless ';' + reported by remarks from Intel C++ compiler. + +2005-12-16 Francois Dumont + + * stlport/stl/_rope.h: Moved overload of __identity_element for + _Rope_Concat_fn in STLport private namespace where orginal function + declaration is. Also moved _Rope_Concat_fn at the same time, much more + many elements of _rope.h should be moved to this namespace... + + * stlport/stl/_monetary.c: Change implementation of __money_do_put for + Borland compiler, looks like this compiler do not like ternary operator. + + * src/c_locale_win32/c_locale_win32.c: Replace check of category in + __Extract_locale_name from > LC_ALL by != LC_ALL, there is no reason + for LC_ALL to be upper or lower to all other categories. + + * build/Makefiles/gmake/cygming/rules-so.mak: Segregate different + compilers linker calls and add reference to START_OBJ in Borland + linker invocation. + + * build/Makefiles/gmake/lib/rules-a.mak, cygming/targetsys.mak: Borland + archiver add option is now '+', before being invocated archive is always + deleted to avoid warnings because the Borland archiver do not have a + real add or replace module option. + + * stlport/stl/type_traits.h: Fix for compiler simulating partial + template specialization (VC6) + + * test/eh/test_rope.cpp: Removed rope test for Borland. + + * test/unit/exception_test.cpp: Commented tests are now ignored. + + * test/unit/locale_test.cpp, string_test.cpp: No more ignored test + for Borland. + +2005-12-14 Petr Ovtchenkov + + * build/Makefiles/gmake/sysid.mak: parse two-token target + system identification string along with three-token one + [useful when vendor is omitted]; thanks Jonathan Sprinkle. + + * stlport/cwctype, stlport/stl/_cwctype.h: wctype_t and + others are in global namespace on FreeBSD. + + * build/Makefiles/gmake/app/gcc.mak, lib/gcc.mak: use build + with -nostdlib on Solaris. + + * src/cxa.c: fix for Solaris + + * stlport/config/stl_solaris.h, stlport/stl/_cmath.h: + hmm, strange... sometimes MATH_L and MATH_F present on Solaris, + sometimes not... + +2005-12-14 Francois Dumont + + * test/unit/cppunit/cppunit_mini.h, file_reporter.h: Add ignore + test feature, now tests should be ignored rather than commented. + 2 new macros for that CPPUNIT_IGNORE to add in tests declaration, + all test following this macro won't be run; CPPUNIT_STOP_IGNORE + optional macro to stop ignoring tests. + + * test/unit/fstream_test.cpp: Ignore custom_facet test when not + supported rather than comment it. + + * test/unit/hash_test.cpp: Ignore hmap1 test for Borland and Digital + Mars compilers, looks like rope class is too complicated for those + compilers. + + * test/unit/locale_test.cpp: Ignore locale_by_name test for compiler + without exceptions support. Ignore money facet tests for Borland. + + * test/unit/mvctor_test.cpp, rope_test.cpp: Some tests ignored + depending on various configuration settings. + + * test/unit/type_traits.cpp: Add test for _IsSTLportClass metaprogramming + tool. Ignored for Borland. + + * test/unit/unordered_test.cpp: Fix test for Digital Mars, unordered + containers value_type are not necessarily with an immutable key, it is + more portable to use value type rather than redefining it in the test. + + * test/unit/string_test.cpp: Removed Windows CE macro check replaced + by WaitForMultipleObjects returned code check, more portable and + maintenable. Ignore a test for Digital Mars compiler. + + * stlport/stl/type_manips.h, type_traits.h: Simplified metaprograming + tools implementation; now avoid compilation constant replaced by + type, Borland compiler has problem with constants. + + * stlport/config/stl_bc.h: Made supported compiler check more accurate + free compiler is 5.5.1 so it is the oldest supported version. Borland + compiler do not support IEC559 specifications. + + * build/Makefiles/gmake/bcc.mak: Put startup .obj to link with in + START_OBJ rather than LDLIBS, thanks Eric Sanford. + + * src/c_locale_win32/c_locale_win32.c: Temporarily removed category + check in __Extract_locale_name function for Borland, looks like LC_ALL + or LC_MAX has not the right value. + +2005-12-13 Francois Dumont + + * src/cxa.c: Add include of stlport_prefix.h first, this file + should be always included first in STLport translation units, + it prepares some compilers config and define important for Wins + __BUILDING_STLPORT macro. + +2005-12-13 Petr Ovtchenkov + + * build/Makefiles/gmake/targetdirs.mak: built-in + test in /bin/sh on Solaris has no -e, use external instead. + +2005-12-11 Francois Dumont + + * build/Makefiles/gmake/bcc.mak : Add -w-eff to disable 'useless' + code warning, we had to chose between this warning and the 'used + parameter' one. + + * build/Makefiles/gmake/targetdirs.mak: Removed comment about folder + creation action under windows platform. The action is identical to + the one used in the nmake build system and no one complains about it + so current situation is not so bad. Only users of Windows before Windows + 98 should eperiment troubles, this is a known limitation. + + * build/Makefiles/gmake/dmc.mak, cygming/rules-so.mak: Change config, + now we directly invoke the linker, we do not use a compiler call for it. + + * build/Makefiles/gmake/app/bcc.mak: Fix linker option in order to generate + a windows executable and not a dll, thanks Eric Sanford. + + * build/Makefiles/gmake/app/rules-install.mak: Add install dir dependency + rather than doing a folder existence check in rules actions. + + * build/Makefiles/gmake/app/rules.mak: Restore slash rotation for Borland + linker invocation and fix static rules dependencies to guaranty folder + creations. + + * build/Makefiles/gmake/lib/bcc.mak: Add missing archiver page size parameters. + + * build/test/unit/bcc.mak: Add _STLP_DEBUG_UNINITIALIZED for static + debug rules. + + * build/Makefiles/gmake/lib/rules-a.mak: Segregate each archiver invocation. + +2005-12-09 Francois Dumont + + * build/lib/configure.bat: Add Borland compiler to compilers + able to mix a dll build with a static native runtime. + + * build/Makefiles/gmake/bcc.mak, dmc.mak: Complete libs to link + depending on STLport configuration. + + * build/Makefiles/gmake/targetdirs.mak: roll back modif from Petr + 2005-12-08 + + * build/Makefiles/gmake/targets.mak: ditto + + * build/Makefiles/gmake/cygming/lib.mak: Fix for static libs build + with compiler different than gcc. + + * build/Makefiles/gmake/cygming/targetsys.mak: Add missing info for + static libs build with Borland and Digital Mars compilers. + + * build/Makefiles/gmake/lib/rules-a.mak: Fix static builds commands + to use info of above point. + + * build/Makefiles/gmake/lib/rules-install-a.mak: Add install rule + for windows and missing catalog in dependency tree. + + * build/Makefiles/gmake/windows/rules-install-so.mak: Add missing + catalog dependency. + +2005-12-09 Petr Ovtchenkov + + * build/lib/Makefile.inc: add cxa.c into compilation; this + is useful for FreeBSD 4.11 C++ ABI workaround. + + * src/cxa.c: use _cxa_atexit and related functions on + FreeBSD 4.11 [workaround for missed C++ ABI functions]. + +2005-12-08 Francois Dumont + + * stlport/stl/_auto_ptr.h: Add missing Standard throw() specification + on all auto_ptr members. + + * stlport/config/stl_mycomp.h: Removed recently introduce macro + _STLP_DFLT_PARAM_INSTANCIATION_BUG, already existing _STLP_DONT_SUP_DFLT_PARAM + is enough for the moment. + + * stlport/stl/_stream_iterator.h: Small implementation change to make + Digital Mars compiler happy. + + * stlport/stl/_unordered_map.h: Digital Mars compiler do not like + immutable keys in associative containers. + +2005-12-08 Petr Ovtchenkov + + * stlport/ctype.h: forward-declaration for _exception struct + for WinCE/eVC3; prevents warning message + ../include/stdlib.h(817) : warning C4115: + '_exception' : named type definition in parentheses + [Michael Fink's suggestion] + + * stlport/float.h, stlport/limits.h, stlport/setjmp.h: idem. + + * stlport/stdarg.h, stlport/string.h, stlport/stdio.h: idem. + + * build/Makefiles/gmake/gcc.mak: check configuration macro + WITHOUT_STLPORT [useful for tests]; force usage of stlport + headers first otherwise. + + * build/Makefiles/gmake/targetdirs.mak: fix catalogs creation + procedure [loop through catalogs required]; comment problematic + code when we have no good tools. + + * build/Makefiles/gmake/lib/gcc.mak: fix typo [FreeBSD]; fix + set of libraries when link for FreeBSD; fix typo in macro name + [FreeBSD again]. + + * build/Makefiles/gmake/app/gcc.mak: fix set of libraries when + link for FreeBSD; insert stlport lib in STDLIB set [when STLPORT + in force], to avoid set one in application's makefile. + + * build/test/unit/gcc.mak: explicit refrence to libstlport in + this makefile not required more [see message above]. + + * build/Makefiles/gmake/lib/gcc.mak: remove names inherited from + Complement project. + + * build/Makefiles/gmake/*/rules-install-so.mak: installation + catalog was missed in dependency tree; ident string removed + to simplify merge/diff + + * Build: building library and unit tests with cross [gcc 3.4.5] + on Linux for FreeBSD 5.3 (except cwctype_test). + + * build/Makefiles/gmake/targets.mak: rotate slashes for BCC. + + * build/Makefiles/gmake/app/macro.mak: remove name contruction + for program; rotate slashes for wins. + + * build/Makefiles/gmake/app/rules-install.mak: remove name + contruction for program. + + * build/Makefiles/gmake/app/rules.mak: remove name contruction + for program; objects for static and for dynamic are the same. + +2005-12-04 Francois Dumont + + * src/num_put_float.cpp: Filter inclusion of stdint.h, required for + Digital Mars compiler, forbidden for Sun platform. + + * stlport/stl/_cwctype.h: wide types and function are in global + namespace. + + * build/test/unit/gcc.mak: Modify cygwin/mingw config now that + default settings for those platform is shared library. + + * build/Makefiles/gmake: Add support of static targets, used + especially for Borland C++ Compiler and Digital Mars Compiler. + + * build/Makefiles/gmake/app/gcc.mak: Fix typo in FreeBSD + configuration. + +2005-12-02 Francois Dumont + + * stlport/config/stl_msvc.h: Fixed configuration detection when building + STLport dll based on a static native runtime. + + * stlport/stl/_locale.h: Fix warning convertion from size_t to + __stl_atomic_t that can be of lower size. + + * stlport/config/stl_gcc.h, doc/README.mingw, README.cygwin: Made dll + default settings under cygwin/mingw. + +2005-12-01 Francois Dumont + + * stlport/stl/_mbstate_t.h: Add workaround for alpha bad WCHAR_MIN and + WCHAR_MAX definition. + + * stlport/config/stl_gcc.h: Configure STLport for alpha platform as not + supporting iec559 specification as quiet nan is not correct. If someone + find the right value then this config will have to be rollbacked. + + * build/Makefiles/gmake/gcc.mak: Restored Sun OS support that use the + -pthreads option and not -pthread + + * build/Makefiles/nmake/lib/macro.mak: Fixed library name generation + when using cross runtime version thanks Alexey Ivanov report. + +2005-11-29 Francois Dumont + + * stlport/stl_user_config.h: Add _STLP_LIB_NAME_MOTIF macro to give + users a point of customization of the automatic linking feature. + + * build/Makefiles/nmake/lib/macro.mak, gmake/cygming/lib.mak: Use + STLP_BUILD_LIB_MOTIF in library name generation algorithm. Also take + into account cross builds in library name generation. + + * build/lib/configure.bat: Add --lib-motif option to give users a + way to customize the generated library names. + + * test/eh: Generalized use of msvc.mak rather than all the nmake-vc??.mak + files. Idem for evc.mak instead of nmake-evc?.mak and icl.mak instead of + nmake-icl.mak. + + * stlport/stl/_exception.h: Change _msvc_warnings_off.h include in + _warnings_off.h as this file now also turn off Borland warnings. + + * stlport/config/_detect_dll_or_lib.h: Mutualization of code used to + detect current STLport type of build or usage (dll or static lib). + + * stlport/config/stl_msvc.h, stl_bc.h, stl_dmc.h: Integration of + _detect_dll_or_lib.h + + * stlport/config/_auto_link.h: Change auto link algo when we detect + cross STLport usage that is to say use of STLport as a dll link with + static native runtime or opposite. + +2005-11-29 Petr Ovtchenkov + + * src/cxa.c: mutex should be recursive-safe, due to __cxa_finalize + may be called recursive. + +2005-11-28 Francois Dumont + + * stlport/stl/_threads.h: Simplified expression used to instanciate + _Atomic_swap_struct, gcc 2.95 had trouble with the one line expression. + + * src/dll_main.cpp: Fix instanciation of _Swap_lock_struct that has been + changed and renamed in _Atomic_swap_struct. + + * test/unit/map_test.cpp, set_test.cpp: Simplified call to map constructor + taking a functor and allocator instance, split it in a creation of a les + instance then passed to the constructor; gcc 2.95 had trouble with previous + version. + + * stlport/stl/_cmath.h, _cstdlib.h: Now those files includes each other to + make sure that all abs overloads are defined when it is imported in STLport + namespace. gcc 2.95 is very strict on this point and only consider the abs + overloads existing at the first import calls, all overloads added after that + are discarded silently. + + * stlport/stl/_cmath.h: Removed unjustified abs function overloads done + directly in STLport namespace for gcc 2.95 and before. Those overloads + clashed on a Linux with gcc 2.95 from the sourceforge compiler farm. + + * build/Makefiles/gmake/gcc.mak: Generalized definition of _REENTRANT under + Linux to make detection of a multithreaded build from STLport code easier. + Problem meet on an alpha linux platform from the sourceforge compiler farm. + + * stlport/stl/_locale.h: Removed _M_delete locale::facet member variable, + useless if facet instance reference counter is right. + + * src/locale_impl.cpp, message.cpp: Change classic facets initialization code + to simply set initial counter to 1 rather than incrementing it after construction. + + * test/unit/evc.mak fix path to config file in existance check. + + * stlport/stl/_move_construct_fwk.h, type_manips.h: Add workaround to use + move constructor with Borland compiler. + +2005-11-28 Petr Ovtchenkov + + * build/Makefiles/gmake/targetdirs.mak: change names of .o output dirs + to make bcc happy (bug with passing name that contain '-' from + compiler to linker). Replacement: 'shared' -> 'so', 'static' -> 'ar', + '-' -> '_' (i.e. obj/gcc/shared-stlg -> obj/gcc/so_stlg, a bit shorter) + [Suggested by Francois Dumont]. + +2005-11-27 Petr Ovtchenkov + + * build/Makefiles/gmake/targets.mak, app/rules.mak, linux/rules-so.mak: + use gcc instead of c++ as linker if there are no C++ objects. + + * src/cxa.c, build/misc/cxa_atexit/Makefile.inc, build/misc/cxa_atexit/gcc.mak: + workaround for bugged __cxa_finalize; use builded libcxa.so in LD_PRELOAD or + /etc/ld.so.preload in Linux system with bugged glibc. See also + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24189 + +2005-11-27 Francois Dumont + + * stlport/stl/type_manips.h: Add import of __true_type and + __false_type in STLport private namespace as the using namespace + directive do not seems to be enough for latest gcc version. + + * src/time_facets.cpp: Fix buffer size decrementation in __write_formatted_time + function thanks Petr Ovtchenkov + +2005-11-26 Francois Dumont + + * stlport/stl/_complex.h: Move implementation of generic abs, arg and polar + after definition of double overload used in implementation. Thanks Kees de + Bruin + + * stlport/stl/_threads.h, _alloc.h, _alloc.c: Fix lock free node allocator + implementation thanks Weis. + + * stlport/stl/wrappers: Removed, no more maintained and complicated to fix + with the debug and pointer specialization implementations. + + * test/unit/stack_allocator.h: Creation of an allocator using a stack buffer. + This allocator specificity is to not be stateless and not default constructible. + + * test/unit/list_test.cpp, stlport/stl/_list.h, _list.c: Add of a test with the + StackAllocator. Fix list implementation to correctly handle allocator state + in the methods moving elements from a list instance to an other. + + * stlport/stl/_carray.h: Creation of a new internal struct _CArray that mimic a C + array with the additionnal feature of being able to be instanciated with a type + without default constructor. + + * stlport/stl/debug/_list.h: Adapt iterator invalidation according allocators + compare result. + + * test/unit/slist_test.cpp, stlport/stl/_slist.h, _slist.c: idem list. + + * stlport/stl/_slist.h: Modification of the splice_after methods signature. Users + now have to pass the source slist instance, this is mandatory in order to compare + the 2 slists allocator instance before moving an element from a slist instance to + an other. + + * stlport/stl/_string_base.h: Fix _M_swap implementation for basic_string instanciation + with allocator having a state. + + * stlport/stl/_list.c, _slist.c: sort methods now throw an overflow exception when lists + are too long to be sorted with the current algorithm. This is preferable to a buffer + overrun. + + * stlport/stl/_alogobase.c: Small equal_range optimization, upper_bound is not called + anymore when lower_bound returned value is already not equivalent to the search value. + + * build/Makefiles/gmake: Add build system for Digital Mars and Borland C++ compilers + + * build/lib/configure.bat: Add following options + --use-boost + --not-thread-safe + --no-rtti + see script for explanation. --mingw removed, detected with --compiler option, if + gcc, dmc or bcc then we are using MinGW tools. + + * build/lib/configure: Add --not-thread-safe option + + * build/Makefiles: Add build options to generate not thread safe libs and no rtti libs, + all compilers option has not been updated. + + * stlport/c*: Modification of C++ headers wrapping C ones. All code moved to internal + headers in stlport/stl folder. Internal headers are only included if include comes from + user code otherwise only native header is included. Limit dependency between STLport + headers relations and native library once. Reported by problem building with Borland + compiler. + + * test/unit/cppunit/cppunit_mini.h: Replace cstring include with string.h to avoid + references to std namespace in headers, should be more portable. Add typedef Base + definition in CPPUNIT_TEST_SUITE macro, used in calls to base class methods, help + Borland. + + * Generalize use of secure string functions (strcpy_s for instance) for MSVC compilers + supporting it and tagging former versions like deprecated. The pragma warning that used + to disable this warning has been removed. + + * stlport/BC50: Removed, no necassry anymore for supported Borland compiler versions. + + * stlport/stl/debug: Implementation modification, now debug wrapper agregate a non debug + instance rather than inheriting from it. Makes debug implementation clearer as we are now + forced to implement the complete containers interfaces. + + * stlport/stl/pointers: Fix implementation in order to support Standard compilers + not accepting cast from function pointer to void*. + + * *: Reinforce use of STLport private namespace (stlp_priv or stlport::priv) for all + internals algorithms. + +2005-11-21 Francois Dumont + + * Fix classic locale facet initial reference counter thanks + Cabal + +2005-11-20 Petr Ovtchenkov + + * src/num_put.h: check that incoming string has enough + digits for fractional part processing. This check includes + check for empty incoming string. (Thanks Leonardo [leoapsilva] + for the bug report). + + * stlport/stl/_monetary.c: fix processing the case when + number of digits in value less then number of digits in fraction. + + * src/facets_byname.cpp: international currency symbol should + be the first (not depends upon where currency symbol situated in + the national format). + + * test/unit/locale_test.cpp: tests for reproducing this problems. + +2005-11-20 Gail Baker + + * build/Makefiles/gmake/CC.mak: Updated compiler option + to compile larger inline functions inline. + + * build/Makefiles/gmake/lib/CC.mak: Changed how the header + file linking is done to only do it once instead of with + every compile. + + * build/lib/README: include instructions for SunPro compiler. + + * build/test/unit/CC.mak: allow the STLP_DEBUG version to compile. + +2005-11-19 Petr Ovtchenkov + + * stlport/stdlib.h: replace C++ comments by C, to satisfy -ansi + option of compiler. + +2005-11-18 Francois Dumont + + * build/Makefiles/nmake/lib/rules-install-so.mak, + app/rules-install-so.mak: Add copy of manifest file when exist + rather than when compiler is Visual Studio 2005. + + * src/stdio_streambuf.cpp: Removed warning for EVC 3 and 4 thanks + Michael Fink patch. + + * stlport/stl/math.h, stdlib.h: Fix EVC3 warning thanks Michael Fink + patch. + + * doc/README.evc3: doc update from Michael Fink. + + * stlport/*, stlport/*, tests/*: Clean up of trailing blank charaters + in all source files. + +2005-11-17 Gail Baker + + * build/Makefiles/gmake/CC.mak, depend.mak, app/CC.mak, lib/CC.mak: + support of SunPro 5.7 compiler. + + * build/lib/CC.mak: ditto + + * stlport/stl/_rope.c: Removed extra semi-colons. + + * stlport/stl/_rope.h: Sunpro compiler had a problem with + the __ROPE_DEPTH_SIZE macro doing an addition. Changed to + a fixed value instead. + + * stlport/cstdlib: Updated to allow the compiler to find abs and div + + * stlport/config/stl_sunpro.h: Disabled _STLP_LINK_TIME_INSTANTIATION + since this nolonger works with current files. The issue here is that + a number of defines that are required in the C versions of the files + use defines that are undefed at the end of the include. So, when + the compiler finally compiles the C version at link time the defines + are lost and the files don't compile. Also added a minor change + to allow files that are compiled with cc to include stl_sunpro.h + without bailing out. + + * stlport/stl/_bvector.h: Added stl/_range_errors.h required by + an exception that can be called. + + * stlport/stl/_cmath.h: Changed to pull all math functions from std + namespace for SunPro compiles only. + + * test/unit/fstream_test.cpp: Added SunPro compile to the list + of compilers that don't use the DO_CUSTOM_FACET_TEST. + + * test/unit/string_test.cpp: Added Sun UI Threads to the list + of supported thread types in the test. + + * test/unit/valarray_test.cpp: The compiler was having trouble + finding abs(). Added a "using std::abs" for the SunPro compiler + which solved the problem. + + * test/unit/cppunit/cppunit_mini.h: Added additional using statements + for the str* commands. + + * test/unit/cppunit/test_main.cpp: Added "using namespace std;" + for the SunPro compiler. + + * build/test/unit/CC.mak: support of SunPro 5.7 compiler + +2005-11-17 Francois Dumont + + * stlport/stl/_messages_facets.h, src/messages.cpp: Move message facet + constructor private to guaranty that it is only called from the _Locale_impl + class for classic locale facets creation. Change constructor implementation + as now passed _Message instance is dynamically instanciated so needs to be + destroy on facet destruction; moreover the facet is also dynamically allocated + and has to be destroyed when reference counter reach 0. + + * src/locale_impl.cpp: Removed call to now useless free_classic_locale function. + Change make_classic_locale implementation, now classic locale facets are + allocated on the heap and have to be destroyed like any ordinary facets + when reference counter reach 0. + +2005-11-15 Petr Ovtchenkov + + * stlport/stl/_tree.h: check iterator returned from lower_bound + in equal_range_unique for end, to avoid increment [useful when + key not available]. + + * test/unit/map_test.cpp: test for problem above. + +2005-11-09 Francois Dumont + + * build/test/eh/gcc.mak: Fix build system for Cygwin/MinGW systems that + was broken since library naming convention modification. + +2005-11-07 Michael Fink + + * build/lib/configure.bat: Fixed configuring for Visual Studio .NET 2003. + Fixed jump target names for Win9x OSes: they must be 8 characters or + shorter. + +2005-11-07 Michael Fink + + * build/Makefiles/nmake/evc3.mak, build/Makefiles/nmake/evc4.mak, + build/lib/configure.bat, stlport/config/stl_evc.h: Added check if + using x86 emulator configuration; using of proper include paths in + case. + + * doc/README.evc4: Documentation update + +2005-11-01 Petr Ovtchenkov + + * Repository: STLport 5.0, tag STLPORT_5_0_RELEASE + + * Repository: merge HEAD and STLPORT_5_0 branch. + + * build/Makefiles/gmake/app/rules-install.mak: install-shared rule + added (patch by Michael Fink). + + * build/Makefiles/gmake/lib/rules-install-a.mak: install-static rule + added (patch by Michael Fink). + +2005-10-12 Francois Dumont + + * stlport/stl/_threads.h, _threads.c: Fix regression for some platforms + introduce by modification of _Atomic_swap_ptr implementation thanks + Albrecht Fritzche. + +2005-10-09 Petr Ovtchenkov + + * repository: RC6, tag STLPORT_5_0_RC6 + +2005-10-09 Francois Dumont + + * stlport/config/stl_gcc.h: DEC alpha has not *l math functions + +2005-10-08 Francois Dumont + + * stlport/stl/_config.h: Add endianess specification for DEC alpha thanks + sourceforge compiler farm. + + * stlport/config/stl_intel.h: Remove reference to _STLP_GLOBAL_NEW_HANDLER + in this file as this macro depends on native Standard library which is + the back end MSVC compiler one so macro set in stl_msvc.h. + +2005-10-07 Francois Dumont + + * build/Makefiles/gmake/darwin/sys.mak, freebsd/sys.mak: Fix EXT_TEST + definition to test rather than /usr/bin/test thanks sourceforge + compiler farm. + +2005-10-05 Francois Dumont + + * build/Makefiles/nmake/vc-common.mak: Remove /Fd option for the icl + compiler that do not know it. + +2005-10-04 Francois Dumont + + * stlport/stl/debug/_list.h: Fix resize method implementation in safe + STL mode thanks Ethan Fenn report. + + * test/unit/list_test.cpp: Add test case for list::resize method. + + * build/Makefiles/nmake/lib/rules-install-a.mak, app/rules-install-a.mak: + Install .pdb files only if exist, Intel C++ compiler do not generate them + when building static libraries. Thanks Albrecht Fritzsche + + * stlport/stl/_ostream.h, _ostream.c: Move _M_init function implementation + from .c to .h as .c is not included when _STLP_NO_CUSTOM_IO is defined + but _M_init might not be exported if compiler fully inline it. + +2005-10-03 Francois Dumont + + * stlport/stl/_tree.h: Fix _S_value method definition that returns + a value_type& rather than the reference typedef as reference might be, + depending on the traits used to instanciate _Rb_tree, equivalent to + a const_reference. + +2005-09-30 Francois Dumont + + * INSTALL, README, doc/FAQ, doc/README.msvc: Documentation updates. + + * doc/stlport_namespaces.txt: Small doc about STLport namespaces and how + STLport replace native Standard library. + +2005-09-26 Francois Dumont + + * build/*: Finished _STLP_LEAKS_PEDANTIC clean up from all make files. + +2005-09-25 Francois Dumont + + * build/test/unit/gcc.mak: Remove _STLP_LEAKS_PEDANTIC option when building + unit tests as this option is not defined when building the libs. + +2005-09-22 Petr Ovtchenkov + + * build/Makefiles/gmake/sysid.mak: add underscore in architecture recognition, + to parse targets like x86_64-unknown-linux-gnu. + +2005-09-21 Francois Dumont + + * src/locale.cpp, facets_byname.cpp: Use of _STLP_ATOMIC_INCREMENT rather than + a lock on a mutex when the macro is available. + +2005-09-21 Petr Ovtchenkov + + * src/locale_impl.cpp: some internal functions used before declared. + Thanks Thomas Kho for report. + +2005-09-20 Francois Dumont + + * stlport/stl/_string.h, _string_workaround.h: code refactoring, substr method + now use string constructor taking same parameters rather than the range + constructor, thanks Felix Wyss report. Also add missing allocator parameter + for non stateless allocators. + + * build/Makefiles/gmake: Restore resource build for Cygwin and MinGW, add + it for Windows. + + * build/lib/configure.bat: Add --extra-cxxflag to inject additional compilation + option in the nmake build system. + +2005-09-20 Petr Ovtchenkov + + * test/unit/ptrspec_test.cpp: gcc 2.95 fail to roll out template instantiation + for pointers to member function, skip this test for gcc 2.95. + + * build/Makefiles/gmake/gcc.mak: gcc 2.95 has no -fuse-cxa-atexit option. + + * build/lib/gcc.mak: don't use LEAK_PEDANTIC with gcc 2.95 [but this not help, + segfault at program termination still happens]. + + * stlport/config/stl_gcc.h: gcc 2.95 has problem with llabs, so force to use + _STLP_NO_VENDOR_STDLIB_L; 2.95 fails to initialize builtin types. + + * stlport/stl/_cmath.h: workaround for gcc 2.95---it has problem with 'using' + directive [problem with 'abs' with float types as argument]. + + * stlport/stl/type_traits.h: workaround for gcc 2.95 [parentheses around + template argument]. Thanks Thomas Kho. + + * test/unit/fstream_test.cpp: custom facet test compilation fail for gcc 2.95 + + * build/Makefiles/gmake/icc.mak, build/test/unit/icc.mak: support icc 9.0, + thanks John Fisher-Ogden and Thomas Kho. + + * src/c_locale_glibc/c_locale_glibc2.c: use newlocale/freelocale for + glibc 2.3.x, and __newlocale/__freelocale for glibc 2.2.x. Thanks Gail Baker. + +2005-09-19 Francois Dumont + + * build/Makefiles/nmake/clean.mak, lib/clean.mak, app/clean.mak: Add check + for file or folder existance before calling del or rd to avoid error + messages that give a bad feed back to STLport users. + + * build/Makefiles/gmake: Add support to use the GNU make tool in a Windows + cmd console. For the moment it is used to build STLport using a simple + MinGW distrib. + + * stlport/stl/type_traits.h: Simplified code removing the _IsConvertibleIfNot + that has never proved of being useful, it only introduces problem with some + limited compilers. + + * stlport/stl/_string_workaround.h, _string.h, debug/_string.h: Fix string + range constructor bug in the VC6 specific workaround implementation that was + resulting in a memory leak. Thanks Felix Wyss report. + +2005-09-18 Petr Ovtchenkov + + * stlport/stl/_hash_fun.h: add hash function for void *. + + * src/facets_byname.cpp, src/message_facets.h: introduce map between + nl_catd type [that is void * on Linux] and messages_base::catalog + [that is int by Standard]; this should remove problems on platforms + where sizeof(int) < sizeof(void *). + +2005-09-16 Francois Dumont + + * stlport/cwchar: Add MinGW 3.8 runtime wide-char to multi-byte functions + import within STLport namespace thanks Rene Riviera. + +2005-09-14 Francois Dumont + + * stlport/config/stl_gcc.h: Mingw support string wide functions thanks + Rene Riviera report. + +2005-09-13 Petr Ovtchenkov + + * stlport/stl/_thread.h: fix return type specification + [volatile void * -> void *]. + +2005-09-12 Francois Dumont + + * stlport/stl/_thread.h: Fix _Atomic_swap_ptr implementation in single + threaded mode and when there is no pointer atomic swap operation. + + * stlport/stl/_site_config.h: Add _STLP_NO_CYGWIN macro to signal use + of the -mno-cygwin cygwin option. + + * build/lib/configure: Remove automatic generation of stlport/script_config.h. + +2005-09-11 Petr Ovtchenkov + + * build/Makefiles/gmake/sysid.mak: provide identification hosted platform. + + * build/Makefiles/gmake/targetdirs.mak: CygWin/MinGW has no /usr/bin/test, + but built-in test support -e; see record 2005-09-04. + + * build/Makefiles/top.mak: separate hosted platform and target platform + file extentions, tools, utilites. + + * build/Makefiles/gmake/?/sys.mak, build/Makefiles/gmake/?/targetsys.mak: + ditto. + +2005-09-09 Francois Dumont + + * src/c_locale_win32.c: Fix _Locale_wchar_[tolower,toupper] implementation + which was wrong when wint_t was not the same typedef as wchar_t. + + * build/lib/configure: Removed obsolete configure options --with-msvc and + --with-mssdk. And --no-cygwin option to make build of STLport using -mno-cygwin + option easier. + + * stlport/script_config.h: New header used to put additionnal macros defined + by the configure script. + + * stlport/stl/_config.h: Add script_config.h include. + + * stlport/config/stl_gcc.h: Use of the new _STLP_NO_CYGWIN macro to set + the right _STLP_NATIVE_INCLUDE_PATH macro value. + + * build/Makefiles/gmake/gcc.mak: Change CC and CXX assignment from := to + ?= to take into account an already existing definition. + +2005-09-07 Francois Dumont + + * build/Makefiles/gmake: Adopt a more traditionnal unixes naming + convention for cygwin and mingw. + + * build/Makefiles/nmake: Attempt to make STLport library names more + coherent between unixes and windows systems. Now windows use the 5.0 + extension like under unixes even if under unixes the file extension + is before the 5.0 and under windows it will be after. The other + difference is that the debug suffix is 'g' when using gcc and 'd' for + the other compilers. This modification comes from a work to improve + STLport integration within boost build system, bjam. + + * stlport/config/stl_msvc.h: Modify MSVC auto link feature to reflect + above modifications. + +2005-09-06 Francois Dumont + + * stlport/config/stl_gcc.h: Fix cygwin config that do have native + mbstate_t definition. + +2005-09-05 Petr Ovtchenkov + + * repository: RC5, tag STLPORT_5_0_RC5 + +2005-09-04 Petr Ovtchenkov + + * build/Makefiles/gmake/targetdirs.mak: in sh's built-in 'test' no -e + option on Solaris, use external 'test' instead. + + * build/test/unit/gcc.mak: Fix LDSEARCH recursive problem; fix + options for ld search path for some platforms. + + * stlport/cstdlib, stlport/stl/_cmath.h: fix usage of native + ?f and ?l math functions on Solaris; hypot for long double should't + loose precision, if no native C function present. + +2005-09-02 Francois Dumont + + * stlport/config/stl_msvc.h, stl/_move_construct_fwk.h: Add the + _STLP_NO_MOVE_SEMANTIC configuration macro to remove move semantic + support for MSVC .Net 2002 that seems to be unable to support it. + Maybe we should rather remove this compiler version support... + + * test/unit/mvctor_test.cpp: Add _STLP_NO_MOVE_SEMANTIC check. + +2005-08-31 Francois Dumont + + * build/Makefiles/nmake: Enhance nmake build system to correctly take + into account the .manifest files generated by VS 2005 Beta. + +2005-08-29 Petr Ovtchenkov + + * CVS repository: CVS repository master copied from cvs.stlport.com to SourceForge. + All history preserved! + +2005-08-27 Francois Dumont + + * stlport/stl/_hashtable.h: Fix move feature integration for the hash_multimap + container. + + * stlport/stl/_deque.h: Fix _Deque_base move constructor implementation. + + * test/unit/mvctor_test.cpp: Change move constructor tests to use dynamically + allocated string rather than static ones. + + * build/test/unit/nmake-vc6.mak: Increase compiler maximum heap size to allow + compilation with stldbg rules. + + * build/test/unit/nmake-evc4.mak: Fix macro typo OPT_STLDBG_STATIC -> + OPT_STATIC_STLDBG + + * build/Makefiles/gmake/gcc.mak: Filter out the newly added -fuse-cxa-atexit + compilation option for Cygwin and Mingw, the granted libc is not compatible + with it. + +2005-08-26 Petr Ovtchenkov + + * stlport/config/stl_solaris.h: C++ comments replaced by C ones, + this file may be included by C sources. Thanks Matti Rintala. + +2005-08-25 Francois Dumont + + * stlport/stl/_config.h, _epilog.h: Move of stlport namespace alias + definition from _epilog.h to _config.h to avoid redefinition as _epilog.h + is reentrant. This is a workaround for a HPUX aCC compiler bug reported + by Baker. + +2005-08-25 Petr Ovtchenkov + + * build/Makefiles/gmake/gcc.mak: usage of -fuse-cxa-atexit strongly + required for correct order of static objects dtors calls. This is + used in deinitialization of locale-related objects. Thanks Matti Rintala. + + * stlport/stl/_config.h: use different namespaces for mulithreaded + and non-multithreaded builds to avoid usage of non-multithreaded + application with multithreaded libstlport and vice versa; + [combination non-mt & mt lead to crash due to different instances + and sizes of allocators for non-mt and mt cases]. + +2005-08-23 Francois Dumont + + * stlport/stl/_config_compat.h: Add check of _STLP_NO_OWN_IOSTREAMS + macro to make remove of its support more explicit thanks to a #error + directive. + + * stlport/stl/_tree.h, _hashtable.h: Now reference and pointer types + are taken from the _Traits template parameter used to instanciate + the class. Doing so now set::reference and hash_set::reference are + const_reference which is coherent with respective iterators that are + immutable. Moreover it fixes a VC6 bug in reverse_iterator implementation + that was trying to transform a const reference to a simple reference + thanks Russell Miller report. + + * test/unit/set_test.cpp: New test case for set reverse_iterator. + +2005-08-23 Petr Ovtchenkov + + * stlport/config/stl_gcc.h: seems HP-UX has no *f variants of math + functions [ceilf, fabsf, etc.] + +2005-08-21 Francois Dumont + + * stlport/stl/_string.h, _rope.h: Removed __move_traits specialization + for string wstring crope and wrope. There is no reason to believe that + its move construtor will be complete as an STLport user has the right + to specialized the std::allocator<> with char or wchar_t. + + * stlport/stl/_function_base.h, _alloc.h: Generalized use of the + __stlport_class struct rather than introducing a new helper type + (__stlport_less or __stlport_alloc) when we need to recognize STLport + implementation from a user one. + +2005-08-20 Francois Dumont + + * stlport/stl/_list.h, _slist.h: Fix move constructor implementation + thanks Henrik Goldman (www.x-formation.com) report. + + * stlport/stl/_alloc.h: Fix type_traits specialization for allocator + type. Now specialization is only apply for the default STLport allocator + implementation and not for potential user specialization. + + * stlport/stl/_deque.h, _hashtable.h, _string.h, _tree.h, _vector.h: + Simplification of the move framework application especially in the + definition of the containers __move_traits specialization. Many + _AsMoveSource call replaced by explicit call to the move constructor + when we are sure that there is one. + + * test/unit/mvctor_test.cpp: Add many tests to check move contructor + implementations. + + * stlport/stl/_function_base.h: Add type_traits specialization for the + less functor to help the move framework when dealing with associative + containers. + + * test/unit/mvctor_test.cpp: Add a new test case checking correct move + semantic support for all STL containers. + + * stlport/stl/_rope.h: Add move semantic support to the rope class. + +2005-08-19 Petr Ovtchenkov + + * build/Makefiles/gmake/gcc.mak: fix extraction of gcc version. + Thanks Thomas Kho. + +2005-08-18 Francois Dumont + + * stlport/stl/_deque.c: Fix _M_erase range for movable types method + implementation, same bug as below in vector. + + * test/unit/mvctor.cpp: Improve test case on vector to reveal bug + below and add same tests for deque which is the other container that + use the move contructor feature. + +2005-08-18 Petr Ovtchenkov + + * INSTALL: add some words about multithread options and libraries. + + * stlport/stl/_fstream.c: some code clean to reduce bogus compiler + warnings with -Wall. + + * stlport/config/stl_gcc.h: seems HP-UX has no llabs and lldiv. + +2005-08-17 Francois Dumont + + * stlport/stl/_vector.h: Fix _M_erase range for movable types + implementation thanks Sergej Zagursky. + + * build/Makefiles/nmake/vc8.mak: removed /RTC1 compiler option, the platform + SDK compiler do not support it. STLport users will just have to activate it + by themself if they want to. + + * stlport/stl/_complex.h: Fix some floating point literals thanks + Ulrich Eckhardt report. + + * stlport/stl/_time_facets.c: Complete integration of the '#' MS extension + in the date/time format string, reported thanks to the recent locale time_get + new test case. + +2005-08-14 Francois Dumont + + * stlport/config/stl_msvc.h: Fix platform SDK compiler config, even latest + version that announce to be similar to .Net 2005 beta do not throw bad_alloc + from the new operator. + + * stlport/cstdio, cstdlib: Replaced some _WIN64 checks by a + _STLP_USING_PLATFORM_SDK_COMPILER check. + + * test/unit/cmath_test.cpp: Complete test filtering for Microsoft platform SDK + compiler. + +2005-08-14 Petr Ovtchenkov + + * test/unit/locale_test.cpp: tests for time_get facet. + + * stlport/stl/_time_facets.c: fix processing of %p format + [12:00 PM ~ 12:00, 12:00 AM ~ 00:00]. + + * src/time_facets.cpp: substitute expanded equivalent format strings + instead of %T, %R, %r. + + * stlport/pthread.h: Fix C++ comment in a potentially C header. Thanks Ali + +2005-08-11 Francois Dumont + + * stlport/stl_user_config.h: Add _STLP_USING_PLATFORM_SDK_COMPILER so that + STLport user can signal they are using platform SDK compiler. + + * stlport/config/stl_msvc.h: Add use of _STLP_USING_PLATFORM_SDK_COMPILER. + + * test/unit/cmath_test.cpp, valarray_test.cpp: Removed tanh calls when using + AMD 64 platform SDK compiler, looks like they miss something... + +2005-08-09 Francois Dumont + + * src/fstream.cpp: Final fix of basic_filebuf::open method. Now when open + from a Win32 handle the file will be considered as in binary access with no + append action. + +2005-08-08 Francois Dumont + + * src/fstream.cpp: Fix annoying 64 warning and basic_filebuf::open method + from a low level file descriptor or from an HANDLE (not yet complete). + Thanks Yves Maliet report. + +2005-08-07 Francois Dumont + + * test/unit/inner_product.cpp: Fix 64 bits portability warning. + + * test/unit/cmath_test.cpp: Removed modf tests for Windows 64 platform + as the SDK is missing the underlying modff implementation. + + * stlport/cstdlib: Add a div function definition which is missing in the + Windows 64 SDK. + + * stlport/cstdio: Add vsnprintf definition which is missing in Windows + 64 SDK. + + * stlport/exception: Add flexibility for definition of vendor terminate + and uncaught_exception function namespace. Can now be defined independantly + of the unexpected_exception namespace. + + * src/dll_main.cpp: Removed explicit turn off of optimization for Microsoft + compilers after .Net 2003. There were no comment to explain why optimizations + were turned off so I guess it was a compiler bug. .Net 2003 being a major + new version I hope this bug has vanish with this version. + + * src/fstream.cpp: Removed static assertion for windows file handle to be 32 + bits. Under Windows 64, even if the API is still 32 bits handles are still + defined as void*. We will see when code will run under a real Windows 64 platform + if it is a problem. + + * stlport/config/stl_msvc.h: Add configuration for Windows 64 Platform SDK. + Expecially add automatic link to bufferoverflowU.lib to avoid modification + of STLport build system and STLport users projects. + +2005-08-06 Petr Ovtchenkov + + * src/c_locale_glibc/c_locale_glibc2.c: add explicit type conversion + to avoid warnings on 64-bits platforms; thanks Thomas Kho and + Karol Szkudlarek for report. + +2005-08-05 Francois Dumont + + * stlport/stl/_valarray.h: Add missing _debug.h header inclusion for + _STLP_ASSERT macro definition. + + * stlport/stl/debug/_hashtable.h: Fix typo in hashtable move constructor. + Thanks arabesc report. + +2005-08-05 Petr Ovtchenkov + + * doc/FAQ: some words about cross-compilation. + +2005-08-04 Francois Dumont + + * stlport/stl/_hashtable.c: Fix erase(range) implementation thanks + arabesc. + + * test/unit/hash_test.cpp: Add new test for previous fix. + +2005-08-04 Petr Ovtchenkov + + * stlport/csetjmp: sometimes, if native setjmp.h was included first, + the setjmp functions situated in global namespace, not in vendor's + std. This may confuse following csetjmp. + + * test/unit/setjmp_header_test2.cpp: test for this. + + * build/test/unit/Makefile.inc: ditto. + +2005-08-03 Francois Dumont + + * INSTALL document updated to signal no longer support of the + 'wrapper' mode. + +2005-08-02 Petr Ovtchenkov + + * stlport/stl_user_config.h, stlport/stl/_site_config.h: + fix some obsolete comments. + +2005-07-31 Petr Ovtchenkov + + * test/unit/math_aux.h, cmath_test.cpp: are_equals moved into + math_aux.h to reuse in other tests. + + * test/unit/sstream_test.cpp: check input to float, inspired by + Jeff Williams. + +2005-07-27 Francois Dumont + + * stlport/iomanip, stl/_algo.h: Removed some persistent occurences + of __in and __out keywords reserved by Microsoft. + + * stlport/stl/_pthread_alloc.c: Fix annoying warning reported by gcc. + + * stlport/config/stl_msvc.h: Fix _STLP_VENDOR_UNEXPECTED_STD macro + definition to empty rather than '1'. Could have produce a compilation + error with compilers like Intel C++ used with the VC6 native Standard + library. + + * stlport/queue, stl/_ctraits_fns.h, _hashtable.h, _numeric.h, _string.h + _tree.h: Fix macro guards used to avoid inclusion of _function.h or + _function_base.h or functional thanks Dinesh Monga report. + +2005-07-26 Petr Ovtchenkov + + * doc/FAQ: description of pseudo-leaks, thanks Michael Fink. + + * STLport (repository): STLport 5.0 RC4 + +2005-07-25 Francois Dumont + + * stlport/config/stl_evc.h: Move _DEBUG definition fix up before + stl_msvc.h inclusion to have correct library link automatically. + Thanks Michael Fink. + +2005-07-24 Francois Dumont + + * stlport/stl/_string.c, _rope.c: Add instanciation of npos for all + compilers thanks Simon. + + * test/unit/string_test.cpp: Add creation of a reference to string::npos + to force compiler to generate memory for it. Used to reveal a link error. + + * test/unit/cppunit/cppunit_mini.h: Removed redondant semi column in + CPPUNIT_TEST_SUITE_REGISTRATION macro definition. + + * stlport/config/stl_msvc.h, stl_intel.h: Concidering that compilers + emulating MSVC compilers use the same native Standard Library headers + macros _STLP_NEW_PLATFORM_SDK and _STLP_NO_VENDOR_STDLIB_L has been moved + outside the _STLP_MSVC scope. _STLP_GLOBAL_NEW_HANDLER is now defined + only for Intel compiler versions before 9.0. + + * stlport/cstdlib, stl/_cmath.h: Because of the previous remark about + emulators of MSVC using MSVC headers, macro checks for global definition + of C math functions has been changed from _STLP_MSVC to _MSC_VER. + +2005-07-23 Michael Fink + + * test/unit/locale_test.cpp: Added creating locale pointer in + test_supported_locale() when no exception handling is available. + + * src/stlport.rc: Added version info defines when not available through + windows.h. Happens on evc3 MIPS and evc3 SH3. + +2005-07-23 Francois Dumont + + * stlport/stl/_string_sum.h: Fix missing return statement in a compare + method. + +2005-07-22 Francois Dumont + + * stlport/stl/_algo.c: Fix search_n implementation for random access + iterator thanks Jim Xochellis + + * test/unit/algo_test.cpp: Add test case for the previous bug thanks + Michael Fink. + + * src/num_get_float.cpp: Fix gcc Mingwin and Cygwin special version with + building with -O2 option. + + * build/Makefiles/gmake/gcc.mak: Add -D_REENTRANT definition for cygwin and + -mthreads for mingwin platform to make STLport thread safe like under the + other supported platforms. + +2005-06-30 Petr Ovtchenkov + + * stlport/wchar.h, src/c_locale.c, stlport/stl/_threads.h: fix Netware + wcs... functions. + +2005-06-30 Francois Dumont + + * stlport/stl/_rope.h, _rope.c: Duplicate basic_string::npos definition code + in rope implementation to use a "Standard" static const npos definition when + possible depending on the compiler features. Thanks caldwed report. + +2005-06-30 Michael Fink + + * stlport/cstdlib, stdlib.h: Fixed issue with including stdlib.h after + setjmp.h; fix from 2005-06-23 wasn't solving the problem. + +2005-06-28 Francois Dumont + + * stlport/stl/_hash_func.h: For MSVC .Net compiler we grant the hash + specialization rather than the hash one to avoid 64 bits + warnings when instanciating a hashed container with the size_t key. + + * stlport/stl/_istream_iterator.h: Modify istream_iterator implementation + to avoid the default read from the istream even if the istream_iterator + instance is not used. + + * test/unit/istmit_test.cpp: Add many tests for the copy_n/istream_iterator + combination. Those tests are no active for the moment as they are failing, + will be fixed after 5.0 release. + + * build/test/unit/nmake-vc-common.mak: Tests are no more built with the + _STLP_NO_CUSTOM_IO option, see reason below. + + * test/unit/fstream_test.cpp: Add custom_facet test to check that STLport + support instanciation of basic_fstream with something else that the std::char_traits + For the moment the test fail when we try to use the stream for I/O operations + should be fixed after 5.0 release. + +2005-06-27 Francois Dumont + + * src/locale_impl.cpp: Fix locale implementation to avoid to call facet + destructor when user explicitely required not to do so. + + * stlport/stl/_fstream.c: Fix _M_setup_codecvt method implementation to avoid + a bad_cast exception on basic_filebuf construction. At this point the locale + used to instanciate it is the classic locale that might not have the necessary + codecvt facet. The user is then force to call imbue after basic_filebuf + construction otherwise I/O operations will fail. When imbue is invoked, if + the locale still do not have the necesary facet, the stream is put in the fail + state. Thanks Alexander Pototskiy + +2005-06-26 Francois Dumont + + * stlport/stl/_config_compat.h: Add _STLP_OWN_IOSTREAMS macro for backward + compatibility with library checking it. + +2005-06-23 Francois Dumont + + * src/complex.cpp, complex_trig.cpp, complex_exp.cpp: Removed code + duplication between float, double and long double version thanks to + some template functions. Thanks an Ulrich Eckhardt idear. + + * stlport/cstdlib, stl/stdlib.h: Michael Fink patch to avoid setjmp.h + inclusion problem as stdlib.h contains a setjmp macro definition. + + * test/eh/main.cpp: Redirection of std::cout and std::cerr for WinCE + thanks Michael Fink + + * stlport/config/stl_evc.h: Restore long double support for WinCE, there + is just no *l math functions. Only define _STLP_NATIVE_INCLUDE_PATH + if not already defined, giving the user a chance to override the defaults + for yet unknown SDKs. Thanks Michael Fink and Ulrich Eckhardt. + + * build/Makefiles/nmake/evc3.mak, evc4.mak: removed unneeded set of CC + for SHx; already done by setup batch. Thanks Michael Fink. + +2005-06-21 Francois Dumont + + * stlport/stl/_ios.h, _ios_base.h, _num_get.c, _num_put.c, _complex.c, + _istream.c, _time_facets.c: Fix cast expression for the cached facets, + C casts replaced by static_cast and const added when missing. + Thanks Oliver Stoeneberg report. + + * test/unit/unary.h: Replaced old STLport with new style ones. Get sqrt + function in global namespace rather than forcing use of the one in std + namespace, avoids ambiguity with VC6. + + * test/unit/resolve_name.cpp: Add _STLP_DO_IMPORT_CSTD_FUNCTIONS definition + at the top of it to force import of C symbols in std even for limited + compilers like VC6. + + * stlport/stl/_valarray.h: Add global namespace scope to C function calls + to avoid VC6 ambiguity problem. + +2005-06-20 Francois Dumont + + * stlport/config/stl_gcc.h: Fix gcc 3.4.4 detection under cygwin thanks + Ulrich Eckhardt report. + + * stlport/stl/c_locale.h: Fix _Locale_mask_t definition for Mingwin. + + * src/c_locale_win32/c_locale_win32.c: Add static assertion to check + _Locale_mask_t size. + + * src/complex_exp.cpp: Replaced complex log10 function static variables + with global constant, avoid multithreaded init problem. Thanks Ulrich + Eckhardt report. + +2005-06-17 Francois Dumont + + * stlport/stl/_alloc.h: Add initialization of the memory buffer in + allocator::allocate function and reset in allocator::deallocate to + the _STLP_SHRED_BYTE motif when _STLP_DEBUG_UNINITIALIZED is defined + to help track missing initialization issue. + + * src/dll_main.cpp: Removed now useless _Node_alloc_helper class. + + * stlport/stl/_alloc.c: Add complete cleanup of the __node_alloc static + datas in the _S_chunk_dealloc method, this is important if the clean up + occur before STLport shared lib is unloaded. + + * stlport/stl/_alloc.c: Add a static instance of __node_alloc_cleaner in the + _S_alloc_call method and change init number of allocation to 1 to force + release of memory pool only on shared library unload. + +2005-06-11 Francois Dumont + + * stlport/cstdlib, stl/_cmath.h: Add _STLP_NO_CSTD_FUNCTION_IMPORTS macro + check before import of global C functions in STLport namespace. Required + for VC6 compiler to avoid ambiguity issue. + + * src/complex.cpp, complex_epx.cpp, complex_trig.cpp: Scope math function + call with the global namespace to avoid VC6 ambiguity issue. It is safe + for the other compilers as STLport do define those function in global + namespace. + +2005-06-10 Francois Dumont + + * stlport/stl/c_locale.h: Fix Cygwin configuration, separate alpha mask + from lower and upper one to avoid all lower character to also be upper + and opposite. + + * src/ctype.cpp: Add static assertion to detect platform where + alpha = lower | upper which is wrong for STLport use. + +2005-06-10 Francois Dumont + + * stlport/stl/_hashtable.c: Fix max_load_factor management, Standard says + that load_factor <= max_load_factor and not <; the function detecting need + for rehash used to launch one even if the number of bucket do not change which + was counter performant. Fix the _M_insert_noresize method that was breaking + element order inserting elements in the middle of 2 equal elements. + Thanks Dieter Freismuth report. + + * stlport/config/stl_gcc.h: Fix relative include path for latest gcc cygwin + package. + +2005-06-10 Petr Ovtchenkov + + * build/Makefiles/gmake/mwccnlm.mak: fix compiler version collection. + + * build/Makefiles/gmake/netware/extern.mak: fix useful paths. + + * src/c_locale.c: put here wrappers for some wfuncs, due to bogus + system libs in Netware. + + * stlport/cwchar: use STLport's wchar.h to take wchar_t/wint_t for + Netware. + + * stlport/wchar.h: use correct C declaration of some wfuncs, thanks + again to ugly Netware libs. + + * stlport/ciso646, stlport/iso646.h, stlport/wctype.h: headers absent + for Novell Netware. + + * stlport/cwctype: Metrowerks define __MSL__, but we don't use MSL libs + if we have STLport for Netware. + + * stlport/cstdlib: div function from Novell Netware clib and libc lead to + system crash. + +2005-06-08 Francois Dumont + + * build/test/unit: Removed references to the now useless CPPUNIT_MINI + macro. + + * test/unit/type_traits_test.cpp: Add new test case for trivial destructor + detection. + + * stlport/stl/_fstream.h: Add missing basic_fstream construction from a + Win32 file handle, was already done for basic_ifstream and basic_ofstream, + thanks Alex Cosealin report. + +2005-06-07 Francois Dumont + + * build/test/unit/Makefile.inc: Fix syntax error at last line. + +2005-06-06 Petr Ovtchenkov + + * build/lib/configure: add config options for Metrowerks compiler for + Novell NetWare platform [references to root of MW headers/libs and to Novell's + SDK headers/libs]. + + * build/Makefiles/gmake/mwccnlm.mak: fixes for Metrowerk/NetWare. + + * build/Makefiles/gmake/app/mwccnlm.mak: idem. + + * build/Makefiles/gmake/netware/extern.mak: idem. + + * build/lib/mwccnlm.mak: idem. + + * build/test/unit/mwccnlm.mak: idem. + +2005-06-03 Francois Dumont + + * test/unit/locale_test.cpp: Remove the very platform dependent LColl + class that was listing supported locales. STLport already do so and + report it using a runtime_error exception when not supported. When + compiler do not support exception only the C locale is checked. + + * build/Makefiles/nmake: Patches from Michael Fink to + - check platform before linking to crtrtti.lib + - check right configuration when using a nmake-evc?.mak file + - update STATUS file. + +2005-06-02 Francois Dumont + + * src/c_locale_win32/c_locale_win32.c: Add workaround for a Windows PSDK bug + concerning currency international symbol, the separation character is missing. + + * src/locale_impl.h, locale_impl.cpp: Fix implementation to make classic locale + implementation a normal instance that is released when the counter reach 0, the + only difference is that no delete is performed on this instance. Idem for classic + locale implementation facets. + + * stlport/cwctype: And _GLIBCPP_USE_WCHAR_T check when using GLibC as in this + case wide char functions are not imported in std and must be imported from the + global namespace. + +2005-06-01 Francois Dumont + + * src/locale_impl.h, locale_impl.cpp: Change classic locale initialization + implementation for limited compiler like MSVC6. + +2005-06-01 Petr Ovtchenkov + + * stlport/stl/c_locale.h: check gcc on MacOS X. Patch by Zdenek Nemec + + * build/Makefiles/nmake/evc3.mak, evc4.mak, targets.mak: + support SH3/SH4 platform. Patch by Michael Fink. + + * build/Makefiles/nmake/app/evc3.mak, evc4.mak: ditto. + + * build/Makefiles/nmake/lib/evc3.mak, evc4.mak: ditto. + + * build/lib/configure.bat, src/stlport.rc: ditto. + +2005-05-30 Francois Dumont + + * src/locale_impl.h, locale_impl.cpp, stlport/stl/_locale.h: An other pass + throught the classic locale initialization. Now all needed static variables + are in _Locale_impl::make_classic_locale method. Removed useless _Stl_aligned_buffer + union use in this locale initialization. Removed now useless _Locale_impl::free_classic_locale + method. + +2005-05-30 Petr Ovtchenkov + + * stlport/stl/_windows.h: worry about Windows CE when check Interlocked + API for MIPS. Patch by Michael Fink. + + * build/lib/configure.bat: remove the -p option by autodetecting platform. + Patch by Michael Fink. + + * build/Makefiles/nmake/evc3.mak, evc4.mak: corrects the evc4 makefiles + to always use the /GF switch [string pooling]. Patch by Michael Fink. + + * doc/README.evc3, doc/README.evc4: reflect changes above. + Patch by Michael Fink. + + * stlport/errno.h, stlport/time.h: when building for evc, including + errno.h and time.h often outputs the message in the #pragma statement + that including this file won't include the native one, since there is no + native include file. Now the text is only output when not building the library + and when the file is included directly, not via another STLport header file. + [Patch by Michael Fink.] + +2005-05-29 Francois Dumont + + * test/unit/locale_test.cpp: Add opendir returned value when listing + installed locale under linux. + + * build/Makefiles/gmake: Patch from Zdenek Nemec for Mac OS X support. + +2005-05-27 Francois Dumont + + * src/locale_impl.cpp: Add an initialization segment specification to make + global static variable ios_base::Init instance initialization prioritized + compare to STLport static global variable. iostreams like cout can be used + in global static variable initialization. + +2005-05-26 Francois Dumont + + * build/Makefiles/nmake/evc4.mak: Patch from Ulrich Eckhardt to use CC + environment variable defined by WCE*.bat script rather than redefining + it. + + * src/locale.cpp, locale_impl.cpp, locale_catalog.cpp: New pass to move + static global variable in function to make initialization order clear. + +2005-05-25 Francois Dumont + + * stlport/ciso646: Creation of this missing C++ standard header STLport + wrapper. + + * stlport/stl/_istream.h, _num_get.c, _algo.c, _monetary.c, _time_facets.h, + _time_facets.c: Replaced occurences of __in and __out reserved by Microsoft. + +2005-05-24 Francois Dumont + + * stlport/headers: Patch from Michael Fink to avoid inclusion of headers + not available under evc3. + + * test/unit/*_header_test.cpp: Fix tests for no iostreams mode. + + * src/locale_impl.cpp, locale_impl.cpp: Modify implementation to force + correct initialization order of static instances. + + * stlport/strstream: Add _ioserr.h file to avoid inclusion in no iostreams + mode. + +2005-05-23 Petr Ovtchenkov + + * stlport/stl/_config.h: detect endianness for Intel's 64bit Pentium and + Itanium processors. Thanks Albrecht Fritzsche for contribution. + +2005-05-20 Francois Dumont + + * build/test/eh: Patch from Michael Fink to add EVC4 support for this test + suite. + + * src/fstream.cpp: Use of Wlodek Szafran implementation for the _Filebuf_base::_M_read + method which is more performant than the previous one. + + * test/unit/fstream_test.cpp: Add of a test for the special Win32 file format. + + * test/unit: Add of many test to check Standard C/C++ headers independancy + and correct C header implementation. + +2005-05-18 Francois Dumont + + * src/fstream.cpp: Fix buffer overflow in _Filebuf_base::_M_read method + for the Win32 platform implementation thanks Wlodek Szafran report. + + * src/c_locale_dummy/c_locale_dummy.c: Patch from Michael Fink for wrong C + prototype. + +2005-05-17 Petr Ovtchenkov + + * test/unit/locale_test.cpp: some fixes in moneypunct test, related + to international currency format; some problems still remains, due to + unclear specifications---if international currency 3-chars abbreviation + used in suffix form, additional space will be appended + ['1 234.56 RUR ']. This is due to intl_fmp.curr_symbol() == "RUR ", + and the last is conform to OpenGroup spec. + +2005-05-16 Petr Ovtchenkov + + * src/c_locale_stub.cpp: "stub" implemntation moved into + c_locale_dummy/c_locale_dummy.c, this file removed + + * src/c_locale.c: include c_locale_dummy/c_locale_dummy.c, in case of + no real locale implementation. + + * src/c_locale_dummy/c_locale_dummy.c: This is a "stub" implementation + of the "c_locale.h" interface, intended for operating systems where + we have not yet written a real implementation. A C++ library using + this stub implementation is still standard-conforming, since + the C++ standard does not require that any locales other + than "C" be supported. + + * build/lib/Makefile.inc: src/c_locale_stub.cpp removed. + + * src/facets_by_name.cpp: add comments in the _Init_monetary_formats. + + * src/c_locale_glibc/c_locale_glibc2.c: annotate some monetary-related + functions. + +2005-05-14 Petr Ovtchenkov + + * build/Makefiles/gmake/aCC.mak: HP's aCC compiler and HP-UX os support. + This isn't really checked and should be fixed on real system. + + * build/Makefiles/gmake/app/aCC.mak, gmake/lib/aCC.mak: ditto. + + * build/Makefiles/gmake/hp-ux/extern.mak, lib.mak: ditto. + + * build/Makefiles/gmake/hp-ux/rules-install-so.mak, rules-so.mak: ditto. + + * build/Makefiles/gmake/hp-ux/gmake/hp-ux/sys.mak: ditto. + + * build/lib/aCC.mak: ditto. + + * build/test/unit/aCC.mak: ditto. + + * build/test/unit/gcc.mak: remove dbg-shared tag from default build; + if you need unit tests with debug info and without _STLP_DEBUG, make this + tag explicitly. + +2005-05-14 Francois Dumont + + * stlport/stl/_config.h, _config_compat_post.h, _cwchar.h, _epilog.h: + Patch from Albrecht Fritzsche to remove C++ comment from files accessible + by a pure C compiler. + + * stlport/stl/c_locale.h: idem. + + * src/c_locale.h, c_locale_glibc/c_locale_glibc2.h: idem. + + * src/gcc_localeinfo.h, c_locale_win32/c_locale_win32.c: idem. + + * build/Makefiles/gmake/gcc.mak: Add the -ansi option to the C compiler + command to know if any regression occur concerning use of C++ comment + in C files. + +2005-05-13 Francois Dumont + + * src/c_locale_win32/c_locale_win32.c: Improve the locale name recognition + system to be more unix compliant. Now you can pass locale name like + lang_country[.codepage] with lang being one of the ISO 639 values and + country one of the ISO 3166 ones. + + * test/unit/locale_test.cpp: Add a test case for the ctype facet. + + * test/unit/locale_test.cpp: Now list all the installed locales under + Win32 to test more locale than the simple french one. + + * stlport/config/stl_msvc.h: Removed _WINDLL macro check when trying + to guess what type of library (dynamic/static) the STLport user want + to link with. _WINDLL is defined when generating a dll but it do not + imply anything on the user wish. + + * src/ctype.cpp: Improve the ctype::scan_is method, you can now scan + for a character conforming to several ctype_base::mask and not only to one. + + * src/ctype.cpp: Idem previous for ctype::scan_not which returns the first + character that do not conform to any of the passed mask. + + * test/eh: Restore exception handling test suite. Removed some equality + tests that is no more valid for hash containers, this kind of test + is better in the unit tests. Add makefiles for MSVC compilers. + + * stlport/stl/_tree.c: Fix _M_insert method that was leaking in case of + exception thrown by the comparison operator, reported by eh tests. + +2005-05-09 Francois Dumont + + * stlport/stl/_ctype.h, src/ctype.cpp: Reenforce data encapsulation of the + ctype template specialization class. class static arrays + _S_upper, _S_lower, _S_classic_table removed from the definition and hiden + in the .cpp file. + + * src/dll_main.cpp: Change _STLP_UNIX macro check in _STLP_PTHREADS check + as per thread allocator is only supported if the Posix pthread API is used, + thanks a Albrecht Fritzsche remarked. + +2005-05-07 Francois Dumont + + * stlport/config/stl_gcc.h: Patch from John Smith for Mac OS X support. + + * test/unit/locale_test.cpp: Idem previous. + + * build/Makefiles/gmake/cygming/lib.mak, sys.mak: Import lib extension + change from .lib to .dll.a for Mingw like under Cygwin. ld linker + looks for .dll.a before .lib, avoid conflict with Cygwin lib. + +2005-05-07 Petr Ovtchenkov + + * stlport/errno.h: use C++ 'using' construction only for C++. Thanks Gary. + + * build/Makefiles/gmake/lib/gcc.mak: option for libname for Darwin. + + * build/Makefiles/gmake/app/mwccnlm.mak: build for Novell NetWare 5 + with MetroWerks 7 and 8 compilers. + + * build/Makefiles/gmake/lib/mwccnlm.mak: ditto + + * build/lib/mwccnlm.mak: ditto + + * build/Makefiles/gmake/mwccnlm.mak: ditto + + * build/Makefiles/gmake/netware/extern.mak: ditto + + * build/Makefiles/gmake/netware/lib.mak, sys.mak: ditto + + * src/_stdio_file.h, num_get_float.cpp, num_put_float.cpp: ditto + + * stlport/cstdio, cwchar, cwctype, stdio.h, wchar.h: ditto + + * stlport/config/stl_mwerks.h: ditto + + * stlport/stl/_config.h, _fstream.h, _hashtable.c, _sstream.c: ditto + + * stlport/stl/_threads.h, c_locale.h, char_traits.h: ditto + + * build/Makefiles/gmake/sysid.mak: treat mwccnlm as cross-compiler, + set correct TARGET_OS and OS-related macros. + + * stlport/stl/_valarray.h: remove exhaustive this->. + +2005-05-04 Francois Dumont + + * stlport/config/stl_msvc.h: Change configuration for MSVC .Net 2003 and + 2005 that seems to have a bug in the namespace management. + + * stlport/stdlib.h: Add errno.h inclusion from this file for gcc mingw + as this compiler version do define errno macro in stdlib.h as MSVC do. + +2005-05-03 Francois Dumont + + * stlport/stl_user_config.h, stl/_site_config.h, config/stl_gcc.h, _prolog.h, + _epilog.h: Use strict Ansi C comments (/**/) for headers accessible thought + the STLport C headers. + + * stlport/C headers: Cleaned from C++ style comments. + +2005-05-02 Francois Dumont + + * build/Makefiles/nmake/vc-common.mak: Restore of LDFLAGS_A_REL introduce + the 2004-10-30 and lost the 2005-04-16, it avoids warning due to use + of the whole program optimization with VC.Net 2003 and 2005. + + * stlport/stl/_string_io.c: Modification of the basic_string i/o operators + in the way it deals with the size_type and streamsize difference; it is + equivalent with the former one but do not generate warning with gcc + (mingwin). + + * stlport/stddef.h, stdlib.h, errno.h: Fix issue under MSVC compilers where + native stdlib.h and stddef.h are defining errno macro without including + errno.h forbiding STLport to do so. Now errno.h will report this problem with + an explicit #error. + + * test/unit/test_errno.cpp: Improvement of the test to reveal the previous + issue. + +2005-05-02 Petr Ovtchenkov + + * makesystem (repository): restore experimental support of MetroWerks + compiler for NetWare, with help of GNU make and Cygwin environment. + +2005-04-29 Francois Dumont + + * stlport/stl/_time_facets.c: gcc warnings reveal that we were missing some + ctype::widen method call to compare things like month or day names. + Also simplified implementation of the __match and __get_formatted_time that + do not really need all the template parameters passed to it. + + * stlport/stl/_num_put.c: Add a cast to make call to the function min more + clear, it will perhaps help EVC++ builds correctly. + + * src/strstream.cpp, stlport/stl/_sstream.c: Removed static assertion + replaced by modified implementation that takes into account the difference + between size_t and streamsize. + +2005-04-28 Francois Dumont + + * test/unit/limits_test.cpp: Improve integral types limit test for type + of unknown sign. In this case we check the min value of this integral type, + if 0 the type is unsigned. Moreover we check, except for the bool type, + the sign of -1 cast to the integral type, bool is a special type that + generate warning when built from -1 (MSVC). + + * src/ctype.cpp: Creation of a small helper structure to check the validity + of a wchar_t value used as an index. This helper struct takes into account + the compiler representation of the wchar_t type, is it a sign type or not. + This helper avoids warning when wchar_t is unsigned. + + * src/num_get.cpp: Removed unused _Initialize_get_digit function and + associated narrow_digits and narrow_xdigits arrays. + +2005-04-28 Petr Ovtchenkov + + * stlport/stl/_sstream.h, _num_put.c: __in replaced by __imode, __out + by __omode or __oi due to MS privatize __in and __out. Thanks Michael Fink. + +2005-04-27 Francois Dumont + + * src/fstream.cpp: Fix Win32-64 file stream implementation. _M_read and + _M_write can now correctly handle respectively read and write of really + big buffers ( > 2Go) + + * using/iosfwd.h, stlport/strstream.h, stl/_rope.h, _rope.c, _complex.h: Removed + references to the _STLP_USE_NEW_IOSTREAMS macro, STLport only support "new" + iostreams. + + * test/unit/max_test.cpp, min_test.cpp: Add tests to check that min and + max are not defined as macros. + + * test/fstream_test.cpp: Add check in creation of test_file.txt + as following tests depends on its content. + + * src/strstream.cpp, stdio_streambuf.cpp: Fix potential issue because of + the difference between streamsize and size_t of ptrdiff_t. + Add static assertion to clearly specify how streamsize must be to have + a correct behavior. + + * stlport/stl/_num_put.c, _num_get.c, _fstream.c, _moneraty.c: ditto. + + * src/ctype.cpp: Restore check on wchar_t positivity as according + 2005-02-22 Petr Ovtchenkov reports wchar_t can be signed. + +2005-04-26 Francois Dumont + + * src/num_get_float.cpp: Fix mingwin support for 64bits integer type + thanks Wlodek Szafran + +2005-04-25 Francois Dumont + + * stlport/stl/_time_facets.c: Fix __pos type in __match function and removed + unused __max_pos definition and initialisation. + + * src/c_locale_win32/c_locale_win32.c: Add some cast to remove warnings. + + * stlport/stl/_moneraty.c: Fix __witdh definition to use streamsize rather + than size_t to avoid warnings. + +2005-04-25 Petr Ovtchenkov + + * build/test/gcc.mak: workaround for [bug?] gmake, that sometimes lose + increment of target-specific macro and, may be, under condition. + Thanks Jeff Williams. + + * build/Makefiles/gmake/icc.mak: add icc 8.1 compiler-specific libs + + * build/Makefiles/gmake/icc.mak: detect icc version; add includes + from compiler to include path + + * test/unit/cppunit/test_main.cpp, cppunit_mini.h: add option -x, run all + except specified CLASS::TEST. + +2005-04-23 Francois Dumont + + * stlport/stl/_ioerr.h: #error message modification thanks Michael Fink. + +2005-04-22 Francois Dumont + + * stlport/stl/_istream.c: Fix _M_read_buffered function implementation, + there used to be a wrong implicit conversion from streamsize to ptrdiff_t, + which fail when sizeof(streamsize) > sizeof(ptrdiff_t). + See 2005-04-21 Petr report. + + * test/unit/: Replaced all _STLP_NO_IOSTREAMS occurences with the STLport + internal equivalent _STLP_USE_NO_IOSTREAMS. The first one is defined + by the client while the second depends on the first and on the compiler + abilities, makes the unit tests more portable. + + * stlport/stl/_cmath.h: Fix for Intel C++ compiler that also have all + C math functions in global namespace. + +2005-04-21 Francois Dumont + + * stlport/stl/_hashtable.h: Extend the hashtable template methods extension + to the method computing the bucket from the key thanks Dominik Siatkowski. + + * stlport/stl/_threads.h: Disable 64 bits portability warning for + MSVC compilers. MSVC do not see that the called function comes from + a macro that is different under Win32 and Win64. + +2005-04-21 Petr Ovtchenkov + + * test/unit/sstream_test.cpp, fstream_test.cpp: integral type for + ptrdiff_t shorter than for streamsize; this cause problem on + Win32 platform, that support files larger than 4GB. + Thanks Timothy Tenebekov for report. + +2005-04-20 Francois Dumont + + * stlport/stl/debug/_debug.c: Small Borland compiler fix to avoid call to + vsnprintf before version 0x550 thanks esanfo. + + * src/dll_main.cpp: Fix bug reported by Intel C++ (icl) compiler. + +2005-04-20 Petr Ovtchenkov + + * src/num_get_float.c: use uint64_t for 64-bit, but unsigned long long + for constants. This fix problem on linux x86_64 [amd64]. + +2005-04-16 Francois Dumont + + * test/unit/cppunit/test_main.cpp: Patch from Michael Fink to improve + the macro filter for including windows.h (UNDER_CE rather than WIN32). + + * build/test/unit/STATUS: Update from Michael Fink and myself. + + * build/Makefiles/nmake: Apply Michael Fink patch to generate .pdb file + even in release mode and to install them in bin and lib folders next to + the .dll and .lib files. + + * stlport/stl/_algobase.c: Add missing const in return type of the const + version of find specialized for const char*. + +2005-04-16 Petr Ovtchenkov + + * stlport/stl/_algobase.c: memchr return NULL if value not found, + while find() [specialization for char *] should return last + [see record 2005-02-27 below]. Thanks Joshua Berne for report. + + * test/unit/find_test.cpp: if char not found, char specialization of + find() should return last, not NULL. + +2005-04-14 Petr Ovtchenkov + + * stlport/stl/_list.h, _slist.h: add this-> resolution to get_allocator + [required in the member templates to resolve possible ambiguity] + +2005-04-13 Francois Dumont + + * stlport/stl/_list.h, _slist.h: Add missing get_allocator() call when + building temporary list or slist instances in insert methods. + +2005-04-12 Petr Ovtchenkov + + * stlport/errno.h: solution 2005-04-12 not useful. Simplified schema, + semantically equivalent to Francois', but without extra function definition + [see records 2005-03-31 and 2005-04-01] + +2005-04-12 Petr Ovtchenkov + + * stlport/errno.h: check if we undefine previously defined errno + +2005-04-11 Petr Ovtchenkov + + * stlport/errno.h: save original errno definition + +2005-04-10 Petr Ovtchenkov + + * STLport (repository): STLport 5.0 RC3 + +2005-04-08 Francois Dumont + + * test/unit/locale_test.cpp: Add __FreeBSD__ macro check for the workaround + announced as Free BSD specific by the comment next to it. + + * stlport/stl/_config.h: Add undef of _STLP_USE_DYNAMIC_LIB when in + NO_IOSTREAMS mode, this macro was generating buggy code in this case + for some commpilers (gcc mingwin). + +2005-04-07 Francois Dumont + + * build/lib/nmake-vc-common.mak: Removed useless add of STLport/lib to + library paths when building STLport lib. + + * build/Makefiles/nmake/*: Removed useless specification of the MSVC default + install directory, all the job is done by the vcvcars32.bat script that sets + the LIB env variable to the real MSVC install directory. + + * test/unit/unordered_test.cpp, locale_test.cpp: Removed gcc mingw warnings. + + * build/Makefiles/nmake/icl.mak, app/icl.mak, lib/icl.mak: Removed the + whole program optimization option, looks like it is confusing icl. + + * stlport/stl/debug/*.h: Removed useless _Get_base non-const overload. + In addition to being useless Intel compiler emit compilation error about it. + +2005-04-06 Petr Ovtchenkov + + * test/unit/cppunit/test_main.cpp: windows.h required here + [see 2005-04-04; patch by Michael Fink]. + + * stlport/stl/_istream.h: __is replaced by __istr, due + to MS privatize __is. + + * stlport/stl/_num_get.h: __in replaced by __ii, due to MS + privatize __in too. + + * stlport/stl/_config.h: Visual C++ 8 uses _M_AMD64 to identify + EM64T and AMD64 platforms [thanks Mike Roberts]. + +2005-04-05 Francois Dumont + + * stlport/config/stl_evc.h: apply patch from Michael Fink to add support for + various EVC SDK. + + * stlport/stl/_cmath.h: An other adaptation to the Intel C++ compiler. + + * build/lib/nmake-vc-common.mak, test/unit/nmake-vc-common.mak: Removed check + of STLP_BUILD_FORCE_[STATIC,DYNAMIC]_RUNTIME environment variables, + moved in a common build system file. + + * build/Makefiles/nmake/vc-common.mak: Add checks of + STLP_BUILD_FORCE_[STATIC,DYNAMIC]_RUNTIME variables. + + * build/lib/configure.bat: Add a clean option to remove the hidden + Makefiles/config.mak file. + + * stlport/stdexcept: Disable 'non dll-interface class used as base' warning + when building STLport dll linked with the static runtime. + +2005-04-04 Francois Dumont + + * test/unit/mfunptr_test.cpp: Add necessary macro checks for a test + that require partial template specialization compiler support. + +2005-04-04 Petr Ovtchenkov + + * errno.h, time.h, test_errno.cpp: evc3 and evc4 has no errno.h + and time.h headers [patch by Michael Fink]. + + * stl_evc.h, _windows.h, test_main.cpp: workaround to not include + in STLport headers (it is still needed for building + the lib and the unit tests, but that should be no problem). + Occurences of GetCurrentProcess() used in _STLP_ABORT were replaced + with the result of the inline function, which returns a pseudo- + HANDLE value. [patch by Michael Fink] + + * cwchar, wchar.h, stl/_cwchar.h: fix access to mbstate and wint_t + for FreeBSD. + + * build/Makefiles/gmake/sysid.mak, app/gcc.mak, lib/gcc.mak: + FreeBSD before 5.3 require linkage with libc_r, while 5.3 and + later use libpthread. + + * test/unit/locale_test.cpp: add std:: namespace qualifier for + gcc 3.3.2 and/or FreeBSD. + + * libstlport, test/unit: library build and most tests pass for + FreeBSD 5.3 and FreeBSD 4.10. + +2005-04-02 Francois Dumont + + * stlport/cstdlib: Fix missing div taking long definition for VC71. + +2005-04-01 Francois Dumont + + * stlport/errno.h: Add comments to explain the file code. + + * stlport/stl/_string_io.h: Yet an other fix to the i/o basic_string + operators that was not right under cygwin/mingwin. + + * build/Makefiles/gmake/gcc.mak: Merge the 2 distinct cygmin blocks + in one and add -Wall and -Wsign-promo warnings. + +2005-04-01 Petr Ovtchenkov + + * test/unit/test_errno.cpp: fix test, errno may be non-zero without + any error, but it reflect error code after some function fail. + This not the same. + + * test/unit/mfunptr_test.cpp: add step-by-step test how compiler + recognize bind of member function for find_if. Not all compilers may + understand this. Thanks Markus for test idea. + +2005-03-31 Francois Dumont + + * stlport/errno.h: Fixed for MSVC compilers, should still be fine for + others. + + * test/unit/test_errno.cpp: Modified to be a real unit test. Also test + errno assignment. + +2005-03-30 Francois Dumont + + * stlport/stl/_fstream.c: Try to fix ambiguous type deduction in a max + call under WinCE. + + * stlport/stl/_cmath.h: Fix missing non Standard hypot function under + WinCE thanks Michael Fink. + + * stlport/stl/_cmath.h: Attempt to fix the WinCE math function support + where neither *f nor *l functions are present even if the compiler + support the long double type. + +2005-03-30 Petr Ovtchenkov + + * stlport/assert.h, float.h, iso646.h, limits.h, errno.h: + added in accordance with Standard D.5 [compatibility with standard + C library] to prevent wrong std interpretation in ill-formed native + headers [definition of namespace std in C headers]. + + * test/unit/test_errno.cpp: check correct processing of errno.h + header. + + * build/test/eh: build eh tests again. + + * test/eh/LeakCheck.h, TestClass.cpp, TestClass.h: fix and clear. + + * test/eh/test_hash_map.cpp, test_hash_set.cpp: hash_set/hash_map + has no == operator [no container equality]; this fix is quick-and-dirty + +2005-03-29 Petr Ovtchenkov + + * build/Makefiles/gmake/app/rules.mak, freebsd/rules-so.mak, + linux/rules-so.mak, openbsd/rules-so.mak, sunos/rules-so.mak: + fix link sequence---the end objects should be really last, i.e. after libs. + This affected by linkage without libstdc++. + + * stlport/stl/_cwchar.h, stlport/wchar.h: workarounds for FreeBSD. + + * due to change in link sequence most tests [including exceptions] pass + for uClibc. + + * stlport/mmemory.h: garbage, removed. + + * stlport/export: ditto. + +2005-03-28 Francois Dumont + + * stlport/stl/_istream.h, _ostream.h: Fix assignment operators prototypes + for the sentry struct. Thanks -Weffc++ feature of gcc. + + * build/Makefiles/gmake/cygmin/rules-install-so.mak: Add missing folder + creation in the install process thanks Charlemagne report. + + * build/Makefiles/nmake/icl.mak: Fix Intel compiler build system under + Windows. + +2005-03-28 Petr Ovtchenkov + + * src/num_put_float.cpp: in FreeBSD no *cvt* functions now, use sprintf; + + * stlport/config/stl_gcc.h: in FreeBSD no math *l functions and llabs. + + * test/unit/string_test.cpp: more test with assignment. + +2005-03-25 Petr Ovtchenkov + + * stlport/stddef.h: fix typo in header id---this mistake prevent + inclusion _epilog.h. + + * test/unit/epilog_test.cpp: regression test for bug above. + + * stlport/cstdio: fix header id to avoid possible errors. + +2005-03-24 Petr Ovtchenkov + + * build/Makefiles/gmake/lib/gcc.mak, build/Makefiles/gmake/app/gcc.mak: + code reorganization to simplify platform configuration with or without + -nostdlib [avoid link with libstdc++ or libestdc++]; now link without + libstdc++/libestdc++ supported on Linux and OpenBSD. + + * build/Makefiles/gmake/openbsd/rules-so.mak: idem. + + * build/Makefiles/gmake/freebsd/rules-so.mak: idem. + + * src/num_put_float.cpp: clean float convertions for OpenBSD and FreeBSD; + OpenBSD and FreeBSD use STLport code instead of sprintf now. + + * stlport/stl/_cwchar.h: allow masquarade to use mbstate_t from native + cwchar header on OpenBSD. + + * stlport/config/slt_gcc.h: llabs and *l math functions absent in OpenBSD; + define __unix, that missed in OpenBSD. + +2005-03-23 Petr Ovtchenkov + + * build/Makefiles/gmake/app/gcc.mak, build/Makefiles/gmake/lib/gcc.mak: + incorporate gcc language support library into libstlport.so + [add ~100k to library], but libsupc++ don't required more in link stage + for applications and libraries that use stlport, as in case with + libstdc++. + +2005-03-22 Francois Dumont + + * stlport/stl/_string_io.c: Fix basic_string stream output operator + implementation for cygwin. + + * stlport/stl/_cmath.h: Add fixes for cygwin support that handle long double + but do not have *l maths function per default. + + * src/complex_exp.cpp: Fix call to logl, replaced by call to log. + + * src/complex_trig.cpp: Fix mingw support by checking M_LN2l existence + before using it. + + * test/unit/copy_test.cpp: Change test cases to avoid use of iostreams. + + * test/unit/string_test.cpp: Add a small check to test use of istream width + in the input operator. + + * stlport/cstdlib, stlport/config/stl_msvc.h, stl_gcc.h: Creation of the + _STLP_NO_VENDOR_STDLIB_L macro to report support of the llabs and lldiv + function. + +2005-03-21 Petr Ovtchenkov + + * stlport/stl/_cmath.h: removed logf, expf, sinf, cosf; option + -fno-builtin passed to gcc compiler solve the problem with uClibc; + this imply same option in building uClibc, as it is in normal uClibc build. + This is partial rollback of changes 2005-03-16. + + * build/lib/configure, build/Makefiles/gmake/gcc.mak: add ability to pass + extra flags to C++ compiler + +2005-03-18 Francois Dumont + + * test/unit: Modified some test in order to check the _STLP_NO_IOSTREAMS + mode. This new mode of tests reveals the following bugs: + + * stlport/stl/_rope.c: Add check of _STLP_USE_NO_IOSTREAMS macro before + include of iostream header. + + * src/dll_main.cpp, stlport/stl/_string_fwd.h: Removed implementation + of __get_c_string, moved to _string.h header, once string has been defined, + as an inline function. + +2005-03-18 Petr Ovtchenkov + + * src/complex_trig.cpp: avoid call log functions during static + initialization, if possible. + +2005-03-17 Francois Dumont + + * stlport/stl/_string_io.h: Fix implementation that used to think that + size_t and streamsize was simply aliases. Thanks Jay Amin report. + + * stlport/config/_prolog.h: Add comment about the reason of alignment + specification when using MSVC compilers. Fix alignment for Win64 platform. + + * stlport/stl/_alloc.h: Fix _ALIGN enum definition for _Win64 platform. + + * src/string_w.cpp: Fix wrong class export under debug mode thanks + Charlemagne report. + + * build/Makefiles/nmake: Preparation of the build system for icl (Intel cl + compiler (mimic cl compiler from Microsoft). + +2005-03-16 Petr Ovtchenkov + + * stlport/stl/_cmath.h: added logf, expf, sinf, cosf---this fix + uClibc 0.9.27/gcc problem. Fix one macro for declaration math + functions in case of absent *f functions. + +2005-03-16 Francois Dumont + + * stlport/config/*: Clean native header include path macro definition. + Removed many useless definition simply recreating the default behavior. + Removed the unreferenced _STLP_NATIVE_OLD_STREAMS_INCLUDE_PATH macro. + + * stlport/stl/_site_config.h: Update relative path headers macros + documentation to reflect more accurately default behavior and add + the unreference _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH macro. + +2005-03-15 Francois Dumont + + * stlport/stl/_fstream.h: Fix _Noconv_input helper class default implementation. + Returns traits::eof() rather than 0. + +2005-03-15 Petr Ovtchenkov + + * src/complex.cpp, complex_exp.cpp, complex_io.cpp, complex_trig.cpp: + use achievements in _cmath.h---use overloaded funcs; mascarade from + complex_impl.h not required more. + + * src/complex_impl.h: deleted. + + * test/unit/cmath_test.cpp: check nested sqrt(sqrt)---possible problem with macro + +2005-03-14 Francois Dumont + + * stlport/config/stl_msvc.h: _STLP_SAME_FUNCTION_NAME_RESOLUTION_BUG notion + removed, impossible to reproduce, maybe fixed by the #pragma intrinsic/function + directives. + + * stlport/stl/_cmath.h, cstdlib: Fix .Net 2003 and .Net 2005 beta support. + + * stlport/stl/_cmath.h: Removed _STLP_SAME_FUNCTION_NAME_RESOLUTION_BUG notion, + no more _STLP_DO_* macros. + + * test/unit/valarray_test.cpp: New tests to check right compilation of + transcendentals valarray functions. + + * stlport/stl/_valarray.h: Replaced all the _STLP_DO_* macros by real + function calls. + + * src/fstream.cpp: Add INVALID_SET_FILE_POINTER definition when missing for + Win32 IO implementation thanks Michael Fink report. Add compilation check + of right STLport file descriptor definition. + +2005-03-12 Francois Dumont + + * stlport/stl/_tree.h: Fix equal_range_unique bug thanks Gunter. + + * test/unit/map_test.cpp: Add of the test to reproduce the bug + above. + +2005-03-11 Petr Ovtchenkov + + * build/test/unit/gcc.mak: don't write runtime path to libstlport + in case of crosscompilation. + + * stlport/stl/_cmath.h: exclude *f and *l variants of math functions + if ones absent in system; add missed hypot function; few workarounds + for uClibc and for VC. + + * src/complex.cpp, complex_exp.cpp, complex_trig.cpp: workaround + for systems without *f and *l variants of math functions. + + * test/unit/resolve_name.cpp: exclude test line that confuse VC. + + * stlport/cstdlib: div isn't intrinsic for VC. + + * stlport/config/stl_gcc.h: don't use *f and *l math functions in + case of uClibc. + +2005-03-09 Petr Ovtchenkov + + * doc/FAQ: FAQ was established. + +2005-03-07 Francois Dumont + + * stlport/stl/_bitset.h, _bitset.c: Avoid include of istream when + NO_IOSTREAMS mode thanks Bruno report. + + * stlport/stl/char_traits.h: Modification of the streamoff and streamsize + definition to take into account the 64 bits file access support. + + * test/unit/fstream.cpp: New test for big files ( > 2Go) unactivated by + default. + +2005-03-06 Petr Ovtchenkov + + * stlport/cstdlib, stlport/cmath, stlport/stl/_cmath.h: define + overloaded functions in the scope of global namespace and then import + all in stlp_std with 'using' directive. This is better than + solution from 2005-03-04 below. + + * stlport/cmath: include cstdlib, due to declarations of abs + with integer types required in overload and when 'using'. + + * src/complex.cpp, src/complex_exp.cpp, src/complex_trig.cpp: replace + macros that possibly will be removed. + +2005-03-05 Francois Dumont + + * stlport/stl/_construct.h: Simplification of the _Copy_Construct + function, now only takes a single template parameter and only call + the strict copy constructor. Creation of the _Param_Construct function + that replace the former _Copy_Construct implementation. + + * cstdlib: Fix abs definition for MSVC compilers. + + * test/unit: Fixing 64 bits warnings in many tests. + + * src/c_locale_win32/c_locale_win32.c: Fixing 64 bits warnings. + + * src/fstream.cpp: Creation of the INVALID_STLP_FD constant to represent + a portable invalid file descriptor. + + * stlport/stl/_streambuf.c: Explicit instanciation of basic_streambuf + for wchar_t removed, already exists in _streambuf.h thanks + Charlemagne report. + + * stlport/stl/char_traits.h: Setup modification, Windows platform now + use ptrdiff_t to define streamoff, make the code more portable. + +2005-03-04 Petr Ovtchenkov + + * stlport/stl/_cmath.h: removed recursive include of cmath header + + * src/complex_impl.h: include cmath instead of stl/_cmath.h + + * stlport/stl/_complex.h: idem. + + * stlport/stl/_valarray.h: idem. + + * test/unit/unary.h: workaround for namespace resolution. + + * test/unit/resolve_name.cpp: test to show problem with namespace resolution. + + * stlport/cmath, stlport/stl/_cmath.h: standard require overloaded math + functions for double and float arguments. Import with 'using' directive + can't provide such overload. Removed import with 'using', used direct + inline wrappers in namespace stlp_std instead. Cleaning code. + + * stlport/cstdlib: complement to cmath---the same as above for abs. + + * stlport/stl/_config.h: uClibc declare pthread_spin... but ones absent + in the library indeed. + +2005-03-02 Petr Ovtchenkov + + * build/Makefiles/top.mak: move .PHONY target to the bottom, it work here + as expected + + * build/Makefiles/gmake/depend.mak, targetdirs.mak: reduce amount of dummy + targets; fix creation of directories for install. + + * build/Makefiles/gmake/linux/rules-install-so.mak: ditto. + + * stlport/stl/_config.h, stlport/config/stl_gcc.h: support of gcc/linux/uClibc + + * src/_stdio_file.h, num_put_float.cpp, stdio_streambuf.cpp: uClibc support + + * stlport/cwchar: ditto. + +2005-03-01 Francois Dumont + + * stlport/stl/_threads.h, _windows.h, _rope.c: Fix of a 64 bits portage issue + in the rope implementation under Win64 thanks Patrick Bergeron report. + +2005-02-28 Francois Dumont + + * stlport/stl/_hashtable.c: hashtable::erase fix thanks Patrick Bergeron. + +2005-02-27 Francois Dumont + + * stlport/stl/_algobase.h, _algobase.c: Fix find algo overload for + char* and const char*. Now the overload is on the __find underlying + function. + + * test/unit/alg_test.cpp: Add a test case for the search_n algo. + + * stlport/stl/_algo.c: Integration of the search_n algo implementation + for the random access iterator from Jim Xochellis. + +2005-02-25 Francois Dumont + + * stlport/stl/_slist.h: Fix _M_splice_after method. + + * stlport/stl/debug/_slist.h: Add of many missing checks for the special + slist before_begin iterator which returns true to the _Dereferenceable + function call but is not dereferenceable in reality. Passing this + iterator to method like erase or insert was invalid but was not detected + by the _Dereferenceable function. + + * test/unit/slist_test.cpp: Add checks for insert, insert_after, splice + splice_after methods. + + * Patch from Ulrich Eckhardt: + - Fix macro _MSC_VER macro checks, VC6 should be found using _MSC_VER < 1300 + check rather than _MSC_VER == 1200 to take into account compilers like + EVC4 that is a VC6 based compiler with _MSC_VER == 1202. + +2005-02-25 Petr Ovtchenkov + + * stlport/stl/_algobase.h: wrong parameters order in call to memchr, + thanks Patrick Bergeron. + +2005-02-24 Francois Dumont + + * stlport/stl/char_traits.h: Patch from Ulrich Eckhardt fixing a wrong + _STLP_CALL specification on member operators and some cosmetic changes. + +2005-02-22 Petr Ovtchenkov + + * test/unit/limits_test.cpp: wchar_t is treated as signed, except when it + equiv to unsigned short on Wins systems. + + * Repository: STLport 5.0 RC2 + +2005-02-20 Francois Dumont + + * Add many private definition of copy constructor and assignment operators + to avoid very anoying warnings under some compilers (MSVC 7.0 7.1). + + * build/Makefiles/gmake/cygmin/sys.mak, test/unit/string_test.cpp: + Mingw fixes thanks Shura Zam. + +2005-02-19 Francois Dumont + + * stlport/stdexcept: Removal of a MSVC 7.0 and 7.1 workaround. Those compilers + have a bug resulting in the generation of very long compiler message as + soon as a simple compiler warning or error occur. Those messages are + template instanciation context of previous disabled warning. Warning message + are correctly disable but template instanciation context is kept until + an enable warning or an error happen. There is nothing to do against that + at STLport level except fixing or disabling warnings for unit tests build. + + * build/Makefiles/nmake/vc70.mak: Add missing file. + +2005-02-18 Francois Dumont + + * stlport/stl/_hashtable.h, _unordered_set.h, _unordered_map.h: Code review + based on the 12 April 2004 Technical Report document. Add missing hash policy + and bucket_size methods. Fix of the rehash method behavior. erase method + bug fix. + +2005-02-14 Francois Dumont + + * stlport/string, /stl/_string.h: Modification of the include schema. + _string_io.h no more included from _string.h to avoid circular headers + dependencies as basic_string class is used in iostream implementation. + This headers is now included from the Standard string header. Useless + cctype include removed from _string.h. _string_hash.h also moved from + _string.h to string for consistency. + + * stlport/stl/_complex.c: Add of the _string_io.h header include that + was missing after string include schema modification. + + * stlport/stl/_string_base.h, _string.h: basic_string move traits STLport + struct definition do not depends anymore on the _String_base struct to + make definition more clear. + +2005-02-08 Francois Dumont + + * stlport/stl/_config.h: Fix endianness for AMD 64 thanks Karol + Szkudlarek. + +2005-02-07 Boris Fomitchev + + * stlport/stl/_config_compat_post.h, stlport/stl/_relops_hash_cont.h + stlport/stl/_list.h, stlport/stl/_slist.h, stlport/stl/_map.h, + stlport/stl/_set.h: 4.6 compatibility fix + +2005-02-04 Francois Dumont + + * stlport/stl/_alloc.c: Fix of the _S_refill method in the lock free + implementation thanks Felix Wyss. + + * stlport/stl/_hashtable.h: _M_get_elem_ite set as static when possible + to fix a MSVC6 problem thanks Michael Fink report. + + * stlport/new, config/stl_evc.h: EVC patch for MFC support from Michael Fink. + + * build/Makefiles/nmake/evc3.mak, evc4.mak: Warning level raised to 4 + by Michael Fink. + + * doc/README.evc3, README.evc4 doc update from Michael Fink. + + * src/vc_warning_disable.h: Add warning 4201 and 4214 disabling for EVC. + +2005-01-31 Francois Dumont + + * Mac OS X portage thanks Zdenek Nemec. + + * stlport/stl/_hashtable.c: Fix of the _M_copy_from method thanks Jay. + + * stlport/stl/_vector.c: Fix of the _M_insert_fill_aux method thanks + Mike Roberts report. + + * test/unit/unordered_test.cpp: Add of a test for the hashtable fix above. + + * src/vc_warning_disable.h: Add of the missing 4503 warning disable for MSVC6. + + * test/unit/nmake-vc-common.mak: Add of the _STLP_DEBUG_UNINITIALIZED macro + definition for the debug and stldebug rules. + +2005-01-28 Francois Dumont + + * Application of a patch from Michael Fink for EVC MIPS. + +2005-01-27 Francois Dumont + + * stlport/deque, list, map, set, slist, stack, valarray: _STLP_WHOLE_VENDOR_STD + replaced by the official _STLP_IMPORT_VENDOR_STD macro. + + * stlport/stl/_algobase.h: Add find algo overload for char* and const char* + forwarding the call to the memchr C function thanks Jim Xochellis report. + + * test/unit/find_test.cpp: Add check for the new find overload. + + * test/unit/cmath_test.cpp: Fix of the atan and atan2 tests to avoid precision + problems. + + * test/unit/ptrspec_test.cpp: Add check for containers of function pointers and + member function pointers. + + * test/unit/set_test.cpp: Add check for equal_range method when the search value + is not in the set. + + * stlport/stl/_tree.h: Fix equal_range implementation thanks Grisha Spivak report. + + * stlport/stl/_vector.h, _vector.c: Fix of the movable types implementation thanks + Mike Roberts report. + + * test/unit/mvctor_test.cpp: Add of a test case for vector class. + +2005-01-25 Francois Dumont + + * stlport/stl_user_config.h: Pointer specialization feature is now off + by default as it do not handle pointer to function and pointer to member + methods correctly yet. Feature documentation has been updated to report + this limitation. + + * src/ctype.h: removal of the '>= 0' check for wchar_t variables reported + as a always true condition by gcc. + + * stlport/stl/_hashtable.c: Removal of an unused variable in hashtable::resize + method thanks Jeff Grills report. + + * stlport/stl/_algo.c: Fix of the search_n algo thanks Jim Xochellis report. + +2005-01-24 Francois Dumont + + * Some more warning fixes. Mostly add of missing char_traits::to_char_type calls. + +2005-01-22 Francois Dumont + + * stlport/stl/_string_workaround.h, debug/_string_workaround.h: Fix of the + call broadcast to the base class. Non debug workaround always call non debug + base class methods, debug workaround always calls debug base class methods. + + * Many fixes to avoid warnings using MSVC in level 4 warnings: + - while (true) replaced by for(;;) which do not produce the conditional + expression is constant warning + - removal of unused parameters + - modification of some template function signature to keep the character type + information and avoid the wchar_t to char type warning which was surely an + important warning for the wide streams support. + + * stlport/stl/_monetary.c: removal of the call to the ctype::widen method + on the result of the moneypunct<_CharT, false>::decimal_point call as this + method is already supposed to return a wide character. + +2005-01-19 Francois Dumont + + * src/msvc_warning_disablers.h: unused file, removed. + + * test/unit/logic_test.cpp: Fix of the tests to avoid warning regarding int + to bool cast. + + * stlport/stl/pointers/_deque.h, _list.h: Fix of the exported class under MSVC + compiler thanks Timothy Tenebekov report. + + * build/test/unit/nmake-vc-common.mak, nmake-vc6.mak, nmake-vc70.mak: Modification + of the make files to avoid useless inclusion of vc_warning_disable.h file for + MSVC.Net 2003 and MSVC 8 compilers. + + * src/locale_impl.h: Export of the locale facets container for MSVC compilers. + + * src/vc_warning_disable.h: Modification to limit the number of disables depending + on the compiler. + +2005-01-18 Francois Dumont + + * stlport/stl/_algo.c: Modification of the stable_partition implementation + to limit the size of the allocated temporary buffer of the begin and end + of the range are already at the right place thanks a Stephen Howe idear. + + * build/test/unit/nmake-vc-common.mak, nmake-evc-common.mak: Removal of the + _STLP_USE_AUTO_LINK macro which is now the default. + +2005-01-14 Francois Dumont + + * stlport/stl/_windows.h, char_traits.h, src/c_locale_win32/c_locale_win32.c: + Patch from Patrick Bergeron to support 64 bits compilation under Windows using + VC8. + + * stlport/stl/boost_type_traits.h: boost support check and fixing. + +2005-01-13 Francois Dumont + + * stlport/stl/_algobase.h: Improvment of the iter_swap algo to use the swap + method when possible thanks David Abrahams and Aleksey Gurtovoy great book + introduction. + + * stlport/stl/_alloc.h: Deactivation of the lock free allocator implementation + not mature enough to be release yet. + + * stlport/stl/_uninitialized.h: Fix of non Standard algo signature: + - uninitialized_fill_n + + * stlport/stl/_iterator_base.h: Fix of non Standard algo signature: + - distance + + * stlport/stl/_algobase.h: Fix of non Standard algo signature: + - fill_n + + * stlport/stl/_algo.h: Fix of non Standard algo signature: + - rotate + - generate_n + + * stlport/stl/_string.h, debug/_string.h: Fix of the non Standard basic_string + default constructor. + + * stlport/stl/_algobase.h, _function.h, _iterator_base.h, _move_construct_fwk.h, + _ptr_specialize.h, char_traits.h, debug/_debug.h: Fix of the macro name check + before including type_traits.h. + +2005-01-08 Francois Dumont + + * stlport/stl/_codecvt.h: Add of a missing export declaration for the wchar_t + specialization of the codecvt_byname class. + + * src/stlport.rc: improvement of the information included in the ressource file. + Especially add of the compiler options. + + * stlport/stl/_stlport_version.h: Creation of a special file containing all the + version informations; very useful to avoid problem with the ressource compiler. + + * stlport/stl/_config.h: Removal of the unused _STLP_USING_VENDOR_STD macro. + Inclusion of the _stlport_version.h file. Update of the comment explaining why + _STLP_USE_DECLSPEC is undefined when user do not use iostreams. + + * build/Makefiles/nmake/vc-common.mak, evc-common.mak, gmake/gcc.mak: Improvement + of the ressource compiler options. + +2005-01-06 Francois Dumont + + * stlport/config/stl_msvc.h: Move the _STLP_DONT_RETURN_VOID configuration + macro to the specific MSVC6 compiler as it is the only one that has ever + reveal this bug. + +2005-01-05 Francois Dumont + + * stlport/stl/_string_sum_methods.h: Fixes reported by gcc. + +2005-01-04 Francois Dumont + + * doc/README.evc3: patched by Michael Fink + + * build/lib/configure.bat: warning fix thanks Michael Fink. + + * build/test/unit/nmake-src-prefix.mak: fixed thanks Michael Fink. + +2005-01-02 Francois Dumont + + * stlport/stl/_string_sum.h, _string_operators.h: Fix of an assignment bug + in the append method taking a C string wrapper. Modification of the __bstr_sum + get_allocator method to avoid a useless allocation. + + * build/lib/nmake-src-prefix.mak: Add of missing rules for .c and .rc file type. + +2004-12-29 Francois Dumont + + * stlport/stl/_hashtable.c: Fix missing allocator argument in new slist + construction and bad number of buckets thanks See Wong report. + + * test/unit/unordered_test.cpp: Add of a test to report the previous + problem. + + * build/Makefiles/nmake/vc-common.mak, evc-common.mak: Generalization of the + /DMACRO compiler command rather than /D "MACRO". + + * test/unit/string_test.cpp: Creation of a new test case for string template + expression. + + * stlport/stl/_string_sum.h, _string_sum_methods.h: Fixing of many bugs in the + string template expressions implementation. + + * stlport/stl/_tree.c: Add of a comment in the _M_increment method explaining + a surprising checks thanks Ulrich Eckhardt. + +2004-12-24 Petr Ovtchenkov + + * build/Makefiles: makesystem moved here from src/Makefiles + + * build/lib: makefiles moved here from src catalog. + + * build/test/unit: makefiles moved here from test/unit catalog. + + * INSTALL: updated. + + * README: updated. + +2004-12-23 Francois Dumont + + * stlport/stl/_vector.h, _vector.c: Fix of the code for movable types + in call to push_back or insert of a value in case of auto referencing + thanks Benjamin Redelings. + + * stlport/stl/_hashtable.c: Fix of the _M_copy method thanks Timothy + Tenebekov. + +2004-12-22 Francois Dumont + + * stlport/stl/debug/_string.h: Fix of missing scopes thanks arabesc and + Benjamin Redelings + + *stlport/config/stl_gcc.h: include schema fix for gcc >= 4.0.0 thanks + Oliver Stoeneberg + +2004-12-21 Francois Dumont + + * stlport/stl/_hashtable.c: Fix copy method thanks KL report. + + * stlport/stl/_vector.h, _deque.h: Fix implementation for vector of + movable objects when calling erase of a null range thanks to arabesc report. + + * stlport/stl/_string.h, _string_workaround.h, debug/_string.h, + debug/_string_workaround.h: Implementation of the MSVC6 template method bug + workaround exclusively for MSVC6 and not anymore for all compilers. + +2004-12-21 Petr Ovtchenkov + + * src: untested (lost support) .mak and installation files moved into + initial_mak catalog. + + * explore, src: explore catalog moved into src catalog. Makefiles from + explore catalog become main makesystem of STLport. + +2004-12-20 Francois Dumont + + * stlport/stl/_hashtable.h: Fix of the const begin and end methods of the + new implementation thanks Timothy Tenebekov report. + +2004-12-17 Francois Dumont + + * stlport/cmath, cstdlib, stl/_cmath.h, config/stl_msvc.h: Configuration + fixes for .Net 2002. + +2004-12-17 Boris Fomitchev + + * char_traits.h: fixed _STLP_NO_WCHAR_T case + + * src/common_macros.mak: deleted locale.cpp + +2004-12-17 Francois Dumont + + * src/explore/Makefiles/nmake/app/rules-install-a.mak, rules-install-so.mak + lib/rules-install-so.mak: Creation of the install-shared and install-static + from Michael Fink. + +2004-12-16 Francois Dumont + + * stlport/stl/debug/_debug.h, _debug.c: Creation of functions to change iterators + list owner. + + * stlport/stl/debug/_list.h, _slist.h: Modification of the iterator owners in the + splice, splice_after and merge method which do not invalidate iterators but only + move them from a [s]list to an other. + + * stlport/stl/_relops_hash_cont.h: removal of the == operator on hashed containers + This operator is just impossible, or at least very complicated, to implement + for this container which do not require any ordering operation on the type used + to instanciate the container. + + * test/unit/hash_test.cpp: Addition of a commented test showing why the == operator + is invalid on hashed constainers. + + * stlport/stl/_hashtable.h: Modification of the hashtable implementation based + on a slist and a vector. Compared to the previous one the advantages are: + - lighter hashtable::iterator + - iterator increment operation do no require call to the hash function. + - no more special implementation for the debug mode, once validated debug/_hashtable.h + will be removed. + The drawback is a small overhead on the insert/erase methods. + + * stlport/unordered_set, unordered_map: Introduction of the almost Standard hash containers. + The major difference with hash_set or hash_map containers from SGI is the load factor + that gives the user the ability to change the container ratio of the number of elements per + bucket. + +2004-12-13 Francois Dumont + + * stlport/stdio.h: patch from Michael Fink to avoid warning on the EVC platform. + + * doc/evc_workaround.txt: Documentation file from Ulrich Eckhardt about the EVC + workaround to avoid annoying warnings. + + * stlport/typeinfo: Patch from Ulrich Eckhardt to fix missing type_info struct + under MSVC6 and EVC and also identation. + +2004-12-10 Francois Dumont + + * stlport/stl/_collate.h, _locale.h: fix of the __locale_do_operator_call internal + function to make traits and allocator also template parameters. + + * stlport/stl/_locale.h, _collate.h, stlport/config/stl_msvc.h, src/locale.cpp, + src/locale_impl.h: restoration of the MSVC6 workaround for the locale class to + correctly handle the member template methods. + +2004-12-09 Francois Dumont + + * stlport/stl/_messages_facets.h: fixed messages_base::catalog from long typedef + to int thanks Ulrich Eckhardt report. + + * stlport/stl_user_config.h, config/stl_msvc.h: addition of the _STLP_VERBOSE_AUTO_LINK + config macro to make the automatic linking feature more verbose thanks Ulrich Eckhardt + patch. + + * stlport/exception: Add check of the _STLP_HAS_SPECIFIC_PROLOG_EPILOG macro before + including _msvc_warning_off.h to avoid bad resulting warning status when the _epilog.h + header is not included thanks Gail (baker88) report. + + * stlport/cassert, cerrno, csignal, ctype.h, cwctype, stdarg.h, stdlib.h, string.h, + config/stl_evc.h: Patch from Michael Fink to fix compilation problem using ressource + compiler for evc3 and evc4 and problems with cerrno and cassert inclusions reported + by Ulrich Eckhardt. + +2004-12-01 Petr Ovtchenkov + + * stlport/stdexcept: removes some warnings regarding the exception class being derived + from a non-dll interface class on evc4. Michael Fink contribution. + + * stlport/stl/_cmath.h: push/pop warning level for VCs. Michael Fink contribution. + + * src/_stdio_file.h: Evc4 uses an ugly hack to implement file IO using a FILECE structure + representing the internal FILE structure. For evc3 Michael Fink implemented a much simpler + way that also works for evc4. + + * stlport/config/stl_evc.h, stl_msvc.h, stlcomp.h: separate config stuff for stl_evc.h + and stl_msvc.h. Now all Windows CE specific defines are in stl_evc.h only. + Michael Fink contribution. + + * stlport/stl/_codecvt.h, _ctype.h, _messages_facets.h, _monetary.h: add friend class + _Locale_impl. + + * stlport/stl/_num_get.h, _num_put.h, _numpunct.h, _time_facets.h: ditto. + +2004-11-30 Petr Ovtchenkov + + * src/explore/configure.bat: added quotes. Thanks Ulrich Eckhardt and Michael Fink. + + * stlport/stl/_locale.h, src/locale_impl.h, src/locale_impl.cpp: added _STLP_DECLSPEC + and _STLP_CALL for some functions. Thanks Ulrich Eckhardt. + + * stlport/stl/_collate.h, _numpunct.h, _monetary.h, _codecvt.h, _time_facets.h: + _Locale_imp made friend without relation to _STLP_LEAKS_PEDANTIC. Thanks Ulrich Eckhardt. + + * stlport/stl/_locale.h: remove body of protected constructor to avoid warnings. + Thanks Kidman and Ulrich Eckhardt. + + * src/locale_impl.cpp: use simple resize of facets_vec; reserve space for facets_vec to be + sure that allocation don't throw exception during vector resize in insert_*_facets functions. + Thanks Ulrich Eckhardt. + +2004-11-29 Petr Ovtchenkov + + * stlport/stl/_cmath.h: patch from Michael Fink applied. + + * stlport/stl/_locale.h: remove enclose class spec to avoid VC confuse. + Thanks Ulrich Eckhardt. + + * src/locale_impl.cpp, src/locale_impl.h: remove bogus _STLP_CALL decls. + Thanks Ulrich Eckhardt. + +2004-11-27 Petr Ovtchenkov + + * stlport/stl/_threads.h: direct access to _M_ref_count isn't MT-safe; + counter value returned by _M_incr and _M_decr methods only. + + * stlport/stl/_rope.h, stlport/stl/_rope.c: adaptation to changes above; + removed __GC macro dependent code, that was never defined in present + sources. + + * src/locale.cpp, locale_impl.cpp, locale_impl.h: general revision of locale + implementation; code clean, corrected, concepts fixed, errors fixed, + new bugs added. + + * src/ctype.cpp, facets_byname.cpp, locale_catalog.cpp, messages.cpp, monetary.cpp: + ditto. + + * stlport/stl/_codecvt.h, _collate.h, _ctype.h, _locale.h, _messages_facets.h: + ditto. + + * _monetary.h, _num_get.h, _num_put.h, _numpunct.h, _time_facets.h: ditto. + + * src/locale_nonclassic.h: removed due to code revision. + + * src/explore/Makefile.inc: locale.cpp is directly included into locale_impl.cpp. + + * src/explore/gcc.mak, test/unit/gcc.mak: use _STLP_LEAKS_PEDANTIC before release + by default. + +2004-11-24 Francois Dumont + + * stlport/stl/_cmath.h: Fix of the abs definition for the EVC platform + thanks Michael Fink. + + * stlport/stl/_cmath.h: Fix of the Internal Compiler Error from MSVC6 + when defining math functions in the STLport namespace thanks Ulrich + Eckhardt and I. + + * stlport/stl/debug: Creation of a debug iterator traits used to make + an additional test when checking iterator deferencing status, on slist + before_begin iterators are not dereferenceable but were not detected + as so. + + * stlport/math.h, stdexcept: patches from Michael Fink to avoid warning + on the EVC platform. + +2004-11-22 Francois Dumont + + * src/explore/Makefiles/nmake/evc3.mak, evc4.mak: removal of the useless + /DPLATFORM macro definition thanks Ulrich Eckhardt report and Michael Fink + patch. + + * stlport/cstdlib: extension of the div overload for long input up to MSVC7.1 + thanks Michael Fink report. + + * test/unit/string_test.cpp: patch from Michael Fink for EVC which has limited + support of the WaitForMultipleObjects API function. + + * stlport/cstdlib, cwchar, using/cstring: patch from Michael Fink to remove + imports of missing native C functions. + +2004-11-16 Francois Dumont + + * src/explore/configure.bat: Add of the --rtl-static and --rtl-dynamic + configuration options to force use of static or dynamic C runtime thanks + Michael Fink. + + * stlport/config/stl_msvc.h: undef of the _STLP_USING_CROSS_NATIVE_RUNTIME_LIB + for the evc platform that only have the static C runtime version thanks + Michael Fink. + + * stlport/config/stl_bc.h, stl_dmc.h, stl_solaris.h: Removal of all references + to the deprecated _STLP_NO_OWN_IOSTREAMS and _STLP_NO_NEW_IOSTREAMS macros. + + * stlport/cmath, stl/_cmath.h: Modification of the import of the pow function + for MSVC6 that has a bugged overload thanks Michael Fink report. + +2004-11-09 Francois Dumont + + * test/unit/config_test.cpp: Creation of a test case to check correct + platform/compiler configuration. + + * stlport/config/stl_msvc.h: Definition of the _STLP_HAS_NATIVE_FLOAT_ABS + now start with MSVC6. + + * stlport/cstdlib, stl/_cmath.h: Addition of some missing math function + overloads for MSVC6. + +2004-11-05 Francois Dumont + + * stlport/config/stl_msvc.h: Definition of the _STLP_HAS_NATIVE_FLOAT_ABS + starting with MSVC .Net 2002 thanks Kevin Bluck report. + + * test/unit/cmath_test.cpp: Creation of a test case to check correct import + and extensions of C functions. + +2004-11-04 Petr Ovtchenkov + + * src/explore/Makefiles: added templates CC.mak for SunPro's CC compilers; + ones should be checked and fixed with real compiler. + +2004-11-04 Francois Dumont + + * stlport/stl/_function.h, _queue.h, _stack.h, _map.h, _iterator.h: + restoration of the Standard names of the protected datas. + + * stlport/stl/_alloc.h, _alloc.c: implementation of a lock free version + of the default STLport node_allocator. Supported by the Win32 platform + for the moment. + + * src/ios.cpp, locale.cpp, locale_impl.cpp: use of atomic operations + under Win32 platform rather than using synchronisation primitives. + + * stlport/stl/_tree.h, _map.h, _set.h: creation of the erase_unique and + equal_range_unique methods to use the unicity information of the map and + set containers in binary tree searches. + + * stlport/stl/_string.h: Add _STLP_USE_NO_IOSTREAMS check beforing deciding + not to include _string.c thanks KL + +2004-11-02 Francois Dumont + + * stlport/stl/pointers/_deque.h: Fix for the problem of the deque + instanciation thanks Alex Cosealin report + + * test/unit/ptrspec_test.cpp: Add of a test for the previous problem. + +2004-10-31 Francois Dumont + + * stlport/stl/_rope.h: Fix of the apply_to_pieces qualification thanks Leeya. + + * test/unit/rope_test.cpp: New test case for the previous fix. + +2004-10-30 Francois Dumont + + * src/explore/Makefiles/nmake/vc-common.mak: introductions of the LDFLAGS_A_REL + macro to fix config problem under VC71 and VC8 beta. + +2004-10-29 Petr Ovtchenkov + + * src/explore/Makefiles/gmake/app/gcc.mak: use -fPIC for gcc 2.95.x when build + application---this is a workaround for bug with running code in static constructors. + + * stlport/config/stl_gcc.h, stlport/stl/_config.h: force usage of mutex instead + of spinlock for gcc 2.95.x, due to problems with initialization of statics. + Initialization of mutex has variant with structure filling, while for spinlock + initialization function call required. + + * test/unit/locale_test.cpp: avoid static object for gcc 2.95.x, due to problems + with initialization of statics. + +2004-10-27 Francois Dumont + + * stlport/stl/_config.h, _fstream.h, _ios.h, _istream.h, _monetary.h, _num_get.h, + _num_put.h, _ostream.h, _sstream.h, _streambuf.h, _string.h, _time_facets.h: + Restoration of the _STLP_NO_CUSTOM_IO feature removed after cleanup reported + in 2004-09-28 post from Petr. + + * stlport/stl/stl_user_config.h, _config.h, stl_msvc.h: reactivation of the + auto link feature for MSVC but only if activated by the client. Moreover the + new implementation of this feature is more maintenable, stl_msvc.h won't have + to be edited at each STLport release. + + * test/unit/nmake-vc-common.mak, nmake-evc-common.mak: Adoption of the auto link + process. + +2004-10-25 Francois Dumont + + * stlport/stl/_config.h: Introduction of the _STLP_DONT_USE_EXCEPTIONS which + means that the client do not want to use the C++ exception feature. It is + different from the _STLP_NO_EXCEPTIONS which means that the compiler do not + support exceptions at all. The distinction is important for some macros definition. + + * test/unit: Modification of the _STLP_NO_EXCEPTIONS test to the more general + _STLP_USE_EXCEPTION macro. + + * stlport/stl/_ios_base.h, src/ios.cpp: rollback of the modifications of the + 2004-10-24. + + * stlport/config/stl_msvc.h, stl_gcc.h: Those 2 compilers have a exception + support switch, when exceptions are unactivated they now define + _STLP_DONT_USE_EXCEPTIONS rather than _STLP_NO_EXCEPTIONS. + +2004-10-25 Petr Ovtchenkov + + * stlport/stl/_sstream.c: cur direction missed in seekoff. Thanks David Obermann. + + * sstream_test.cpp: test for problem above. + +2004-10-24 Francois Dumont + + * stlport/stl/_ios_base.h, src/ios.cpp: definition of the ios_base::failure + nested class only when exception support is activated. + + * stlport/stl/_deque.h, _deque.c: Modification of the deque implementation + to use the internal move framework. + + * test/unit/mvctor_test.cpp: New test case for the use of the move + framework within the deque container. + +2004-10-21 Francois Dumont + + * stlport/stl/_iostring_stream.h: Simplification of the __stl_alloc_rebind + overload to make it less ambiguous for the compilers using it. + +2004-10-18 Francois Dumont + + * stlport/stl/_vector.h, _vector.c: Add of checks to know if a reference + is in *this before making a systematical copy of it. + +2004-10-18 Petr Ovtchenkov + + * stlport/stl/type_manips.h: replace template <> by macro. + + * stlport/stl/debug/_debug.h, _debug.c: __check_if_not_owner should return true + in case of incompatible types and do check different from __check_if_owner; + added message for check __check_if_not_owner. + + * test/unit/mvctor_test.cpp, test/unit/ptrspec_test.cpp: fix tests to satisfy + changes related to 23.1.1 Table 67 in stlport/stl/debug/_vector.h, _deque.h---see + record 2004-10-14 below. + +2004-10-14 Francois Dumont + + * stlport/stl/debug/_iterator.h: Move of some _DBG_iter_base and _DBG_iter + methods implementation outside struct definition to fix call on incomplete + type compile error generated by the call to the _Incrementable or _Dereferenceable + functions passing *this as input parameter thanks Alexey Sarytchev + + * test/unit/sstream_test.cpp, fstream_test.cpp: Fix of the tests on streambuf + throwing exception for platform with no exception support. + + * stl/_string.h: Add of the missing compare methods on the basic_string + implementation used by compilers supporting template methods thanks Patrick + Bennett report. + + * stlport/stl/debug/_vector.h, _deque.h: Add check on the insert range method, + the inserted can not be pointing to the this instance where the insertion occur. + +2004-10-13 Petr Ovtchenkov + + * src/explore/Makefiles/gmake: a bit correction of compiled and installed names + of executables on *nix systems, see record 2004-09-29 by Francois. + +2004-10-12 Francois Dumont + + * stlport/stl/_config.h: typo fix thanks KL + + * stlport/stl/_move_construct_fwk.h, _set.h, _map.h, _hash_set.h, _hash_map.h: + Extra semicolons removal thanks Wlodek Szafran reports. + +2004-10-11 Petr Ovtchenkov + + * stlport/stl/_rope.h: add typename. + +2004-10-08 Francois Dumont + + * stlport/stl/_deque.h, _hashtable.h, _tree.h, _bvector.h: Specialization of the + __type_traits struct for the iterator types. + + * stlport/stl/_uninitialized.h, _vector.h: Relax of the rules to perform some + optimizations, no more POD check, rather use of the trivial copy constructor, + trivial assignment operator informations. + + * stlport/stl/_config.h, _epilog.h: Adoption of stlport as the official STLport + namespace when users cannot use the std namespace. + +2004-10-07 Francois Dumont + + * stlport/stl/_list.h: Specialization of the __type_traits struct for list iterators. + Move of the == and != operators from the base iterator class to the iterator class + to make iterator of different list instanciation not comparable anymore. + + * stlport/stl/_slist.h: ditto. + +2004-10-06 Francois Dumont + + * stlport/stl/_rope.h, _rope.c: Code review, use of general STLport tools rather + than specific rope ones. Use of compile time checks rather than runtime. + + * stlport/stl/_bvector.h: fix to make the vector specialization movable + thanks a Kelly Thompson report. + +2004-10-05 Francois Dumont + + * src/explore/Makefiles/nmake: Application of a patch from Michael Fink to simplify + the evc make system. + + * doc/README.evc4: New version from Zdenek Nemec. + +2004-10-04 Francois Dumont + + * test/unit/type_traits_test.cpp: A new test case to check behavior of + the numerous helper functions from type_traits.h and type_manips.h. + + * stlport/stl/type_traits.h: Fix of some bugs and addition of the __type_traits + specializations of const, volatile and const volatile native types. + + * stlport/stl/type_manips.h: Modification of the __bool2type default value + so that it consider any value as true and only the 0 value false. + + * stlport/config/stl_msvc.h, stlport/stl/_config.h: Modification of the STLport + std equivalent namespace to be sure that the user rebuild correctly the STLport + library when he forces the use of the dynamic or static library. + + * src/explore/Makefiles/nmake/lib/vc-common.mak, app/vc-common.mak: Creation + of the STLP_BUILD_FORCE_STATIC_RUNTIME that forces use of the static version + of the native runtime. + + * test/unit: fix of some tests that failed to compile using the + _STLP_NO_ANACHRONISMS macro. + +2004-09-30 Petr Ovtchenkov + + * test/regression: catalog removed---it obsolete and unsupported; use + test/unit tests instead; all tests from test/regression was moved in test/unit, + sometimes in redesigned form. + +2004-09-29 Francois Dumont + + * stlport/stl/_string_io.c: Removal of the native library specific calls of + use_facet, only the STLport standard one is used. + + * stlport/stl/_alloc.h, _alloc.c, src/dll_main.cpp: Implementation of a clean + process for the node_alloc allocator. This clean is active only when + _STLP_LEAKS_PEDANTIC is defined and you are using STLport as a dynamic + library under Win32. + + * src/explore: Updates of several makefiles to conform to the new library + and binary naming convention. + + * src/c_locale_win32/c_locale_win32.c: fix of the message facet name management + that was generating a memory leak. + +2004-09-29 Petr Ovtchenkov + + * stlport/stl/char_traits.h: WinCE seems don't declare off_t; thanks Michael Fink. + +2004-09-28 Petr Ovtchenkov + + * Repository: iostreams and string wrapper mode removed, due to ones has + a lot of restrictions in usage and frequently lead to hard recognized problems. + Tonns of *_STREAMS macro replaced by _STLP_USE_NO_IOSTREAMS or _STLP_NO_IOSTREAMS + as configuration macro; *NATIVE_STRING macro removed by the same reasons. + +2004-09-27 Petr Ovtchenkov + + * test/unit/gcc.mak: fix stlport library name for STLP_DEBUG mode for Solaris, + thanks for separate namespaces in normal and STLP_DEBUG mode, see record + 2004-09-10 below. + +2004-09-24 Francois Dumont + + * stlport/config/stl_gcc.h: Fix of the relative include path used to access the + native gcc headers. Before version 3.4.0 the 0 patch level was not part of the + include path. + + * stlport/stl/type_traits.h, _vector.h, _algobase.h, _construct.h: Removal + of the __action_on_move type traits replaced by a generalization of the + already existing __move_traits. + + * test/unit/mvctor_test.cpp: New test case for the __move_traits feature. + +2004-09-24 Petr Ovtchenkov + + * src/explore/Makefiles/gmake/sunos: 'explore' makesystem adopted to work + under Solaris with GNU make. + + * test/unit/gcc.mak: ditto. + + * src/explore/Makefiles/gmake/app/gcc.mak: ditto. + + * src/explore/Makefiles/gmake/lib/gcc.mak: ditto. + + * stlport/cmath: fix some math calls for Solaris. + + * test/unit/list_test.cpp: add illustration for list iterator/reverse_iterator questions. + + * src/explore/Makefiles/gmake/unix/lib.mak: moved from linux/lib.mak, as + common rules for all *nixes. + + * src/explore/Makefiles/gmake/linux/lib.mak: use common for all *nixes rules + in unix/lib.mak. + + * src/explore/Makefiles/gmake/freebsd/lib.mak: ditto. + + * src/explore/Makefiles/gmake/openbsd/lib.mak: ditto. + + * src/explore/Makefiles/gmake/sunos/lib.mak: ditto. + + * src/explore/Makefiles/gmake/unix/lib.mak, test/unit/gcc.mak: changed library name; + libraries now named as libstlport, libstlportg, libstlportstlg for optimized, with + debug symbols, and with debug symbols and _STLP_DEBUG mode libraries respectivly. + +2004-09-21 Francois Dumont + + * stlport/stl/debug: Modification of the __check_range class in the more general + __check_construct. Now it also checks for null pointers in the string interface. + + * src/explore: Adoption of the new library naming convention for all Microsoft + compilers thanks Michael Fink + +2004-09-20 Francois Dumont + + * src/explore/Makefiles/gmake/cygwin, mingw: Build configuration files merges + within a single build system: cygming. Future portage of STLport for compilers + using the GNU tools will be available from both systems. Removal of the vc6 build + under cygwin, for mono-platform compilers we support only one build system. + + * stlport/stl/_vector.h: Modification of the destructor implementation to destroyed + object instances in a reverse order taking advantage of the way elements are + normaly added to this container. + +2004-09-16 Francois Dumont + + * test/unit/cppunit/cppunit_mini.h, cppunit_proxy.h: Adaptation of the CPPUNIT + framework to take care of the exception as failures thanks Zdenek Nemec + + * stlport/config/stl_msvc.h, stl_bc.h, stl_mwerks.h, stlport/stl_user_config.h: + Removal of the non intuitive and difficult to maintain automatic linking feature. + + * Fixing of the locale implementation mecanism. Classic locale implementation is + also managed by a reference counter to be sure when it is possible to release + the associated ressources. Fix of a missing locale impl ref counter decrement + in the template locale constructor taking a facet, it was a possible source of + memory leak . Addition of a static object within locale_impl.cpp in + _STLP_LEAKS_PEDANTIC mode to decrement the global locale impl ref counter when + STLport library is unloaded. Addition of all the missing classic locale facets + destructor in free_classic_locale. + + * src/locale_catalog.cpp: The locale by name constructor checks the "C" name + to simply copy (increment the ref counter) the classic locale implementation + rather than instanciating a new one. + +2004-09-15 Francois Dumont + + * stlport/stl/_list.c: Modification of the _S_sort implementation, the __carry + list instance is created using the __that allocator instance copy to be more + allocator friendly. + +2004-09-11 Francois Dumont + + * stlport/config/stl_intel.h: Configuration update for Win32 Intel 8.0 + compiler thanks Charlemagne. + +2004-09-10 Francois Dumont + + * stlport/stl/_config.h: The new official namespace is now stlp_std. _STL is + just an alias. STLPORT macro still contains the STLport std namespace equivalent. + Moreover in _STLP_DEBUG mode, which is not binary compatible with the release + or debug mode, the namespace is stlpd_std to generate link error rather + than runtime crash. + +2004-09-09 Francois Dumont + + * stlport/stl/_config.h: _STLP_DONT_USE_NESTED_TCLASS_THROUGHT_TPARAM + renamed to the more intuitive _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE. + + * stlport/stl/_config.h: Introduction of a new namespace stlp_private + defined in the global namespace. Everything that is STLport implementation + details should be in this namespace to avoid polution of the std namespace. + + * stlport/stl/_iterator_base.h: Modification of the macro used to create + iterator traits for all tree and hashtable based containers to move it in + the stlp_private namespace rather than defining it as nested struct, limits + the symbol size. + +2004-09-08 Francois Dumont + + * test/unit/fstream_test.cpp: restauration of the test added by Petr + the 2004-09-03, it is finaly a different test from the one in sstream_test.cpp. + Some more checks have also been integrated. + + * stlport/stl/_ostream.c: New fix of the _M_unbuffured_copy method that was + still bugged in case of a throwing output streambuf, detected thanks to the + test case. + +2004-09-07 Francois Dumont + + * stlport/config/stl_msvc.h: Add defines of the _STLP_USE_STATIC_LIB + or _STLP_USE_DYNAMIC_LIB depending on the current kind of build. + + * stlport/stl/_streambuf.h, _streambug.c: Fix an unresolved symbol + problem for MSVC6 (and before?) when STLport is used as a static library. + +2004-09-06 Francois Dumont + + * test/unit/nmake-evc-common.mak: Use of the dynamic runtime for the + *-shared rules rather than the previous static thanks Michael Fink. + + * test/unit/nmake-evc*.mak: end of build code factorisation, use of + nmake-evc-common.mak within all makefiles thanks Michael Fink. + + * test/unit/locale_test.cpp: Application of a patch from Michael Fink + to check the "C" locale on all platforms. Fix of the money_get_put test + case for the "C" locale. + + * test/unit/allocator_test.cpp: new test case for std::allocator checks. + +2004-09-05 Francois Dumont + + * stlport/stl/_string_hash.h: Performance improvement, multiplication + replaced by shift operations thanks Greg S. + + * stlport/config/stl_wince_4.h: removed, never used, stl_evc.h has been + prefered. + + * test/unit/string_test.cpp: addition of a new test short_string_optim_bug + to check for a compiler bugs making the short string optim invalid thanks + Michael Fink. + + * stlport/config/stl_evc.h: Deactivation of the short string optimization + because of a compiler bug thanks Michael Fink. + + * src/explore: factorisation of the evc build makefiles thanks Michael Fink. + + * src/explore/Makefiles/nmake/lib/clean.mak, macro.mak: Addition of some + file clean up for the clobber rule thanks Michael Fink. + +2004-09-03 Francois Dumont + + * test/unit/fstream_test.cpp, sstream_test.cpp: Move of the test for the + infinite loop from FstreamTest test case to SstreamTest, addition of some + checks. + + * test/unit/full_streambuf.h: streambuf implementation simulating full + output. + + * stlport/exception: restauration of some modification removed after the + rollback of the 2004-09-01. + + * stlport/config/stl_gcc.h: homogeneification of the coding standard used + within STLport, 2 spaces indentations even for preprocessor directives. + Doing so, discovered a weird configuration for Mac OS platform (__APPLE__) + concerning the _STLP_NATIVE_INCLUDE_PATH macro definition, fixed. + + * stlport/stl/config/stl_*.mak: removal of all references to the + _STLP_REDEFINED_STD macro as it is now the default and only way STLport + use to replace native Standard library. + + * test/unit/nmake-vc-common.mak: add inclusion of the vc_warning_disable.h + file to avoid warnings during build process thanks Michael Fink. + +2004-09-03 Petr Ovtchenkov + + * stlport/stl/_ostream.c: removed infinite loop in case when outgoing stream + can't accept more chars. Thanks Daniel White, Ulrich Eckhardt, Francois Dumont. + + * test/unit/fstream_test.cpp: test for problem above. Thanks Ulrich Eckhardt. + +2004-09-02 Francois Dumont + + * stlport/exception, stlport/stl/_site_config.h, test/unit/exception_test.cpp: + Creation of the _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT macro to signal support of + the unexpected exception mecanism. Related type/function are only brought to the + STLport namespace if correctly supported, exception_test.cpp check that. + + * New modification of the _Rb_tree and _Hashtable associated iterator structs. + Removal of the container_type pass through the iterator traits; iterator traits + is the type that will make each derived container iterator type real different + type making them uncomparable. + + * stlport/ctype.h: rollback of the above rollback ;-) only of course for the + Win CE code fix that was part of the previous commitment. + +2004-09-01 Petr Ovtchenkov + + * Rollback include schema: code is broken. + +2004-08-31 Francois Dumont + + * _STLP_INCOMPLETE_EXCEPTION_HEADER replace by the more intuitive + _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT macro. + + * Modification of the include schema of all public headers in stlport folder + that need to be reentrant. Now those files are fully guarded and the specific + STLport code is only included once at the end of the inclusion, the reentrancy + only concern inclusion of the native headers. + +2004-08-30 Francois Dumont + + * stlport/stl/_deque.c: Fix of a pseudo 'uninitialized variable used' thanks + Oliver Stoeneberg. + +2004-08-27 Francois Dumont + + * .Net 2002 (VC70) portage. + +2004-08-27 Petr Ovtchenkov + + * src/explore/Makefiles/gmake/gcc.mak, app/gcc.mak, lib/gcc.mak: buggy C++ + language support in libsupc++ in gcc before 3.3 not allow to use it; + link with libstdc++ instead. + + * stlport/config/stl_icc.h: fix features for icc 7.1; fix features for Linux + platforms. + +2004-08-24 Francois Dumont + + * stlport/config/stl_gcc.h, stl_msvc.h: fixing of configuration concerning + uncaught_exception and exception handling in general thanks John Roberts. + + * stlport/stl/_tree.h, _tree.c: Modification of the _Rb_tree_iterator struct + to be able to distiguish iterator types from different tree based containers + Removal of the == and != member operators of the _Rb_tree_base_iterator struct + replaced by global operators taking _Rb_tree_iterator as parameters and checking + that the iterators are of the same container type thanks Haroon Nassiry report. + + * stlport/stl/_map.h, _set.h: Modification of the iterator traits used to + instanciate the _Rb_tree class. + + * stlport/stl/_hashtable.h, _hashtable.c, _hash_set.h, _hash_map.h: Similar + modifications to the previous one in order to make for instance the iterator + from hash_map and hash_multimap not comparable anymore. + + * stlport/config/stl_wince.h, stlport/ctype.h: Move of the isspace C function + Windows CE specific code from the config file to the ctype.h file. This fix + will also apply to Embedded C++ .Net thanks Dirk report. + +2004-08-23 Petr Ovtchenkov + + * test/unit/cppunit/cppunit_proxy.h, test/init/gcc.mak: CPPUNIT_MINI removed. + + * src/num_get_float.cpp: suggestion to fix problem with float input for gcc 3.4.x + with optimization flag. + + * test/unit/floatio_test.cpp: test for infinity and near + + * src/explore/Makefiles/gmake/gcc.mak, app/gcc.mak, lib/gcc.mak: fix detection of + gcc version; gcc before 3.x had libgcc.a that contains some language support, + so link with it in case when we avoid link with libstd++. This has relation only + for linux systems. + +2004-08-19 Petr Ovtchenkov + + * src/explore/configure.bat: setting up compiling STLport under Windows. + Contribution by Michael Fink. + +2004-08-13 Francois Dumont + + * test/unit/gcc.mak: Addition of the _STLP_NO_CUSTOM_IO define to make test + build faster. + + * stlport/stl/_limits.h, _limits.c: Modification of the _LimG class definition. + Removal of the static variables, replaced by static method having the same role + but more portable. Fix link problem with MSVC compilers family when using STLport + static library. + + * stlport/stl/_bitset.h, _bitset.c: Ditto for the _Bs_G class. + + * stlport/stl/_hashtable.h, _hashtable.c: Ditto for the _Stl_prime class. + + * src/dll_main.cpp: thanks to the previous modification, removal of the + concerned code within force_link. + +2004-08-13 Petr Ovtchenkov + + * test/unit/cppunit/cppunit_mini.h, file_reporter.h, test_main.cpp: + add function to print mess; remove def of CPPUNIT_MINI, not required; add const + qualifiers. + + * test/unit/locale_test.cpp: print checked locale name; restore table with format + symbols--partially rollback changes 2004-07-29; add test for possible locale + init/deinit problem---I don't see problem. Test inspired by Alex Kosilin. + +2004-08-11 Francois Dumont + + * src/explore/Makefiles/nmake: extension of the new build system for VC.Net + 2005 (VC8). + + * src/explore/Makefiles/nmake/app: restauration of the default behavior shared + rules generates executable using the STLport dynamic library and static rules + use the static libraries. + + * stlport/stl/_string.h: Add check of _STLP_NO_IOSTREAMS to force inclusion of + _string.c in this case. + + * stlport/stl/_string.c: removal of the _STLP_LINK_TIME_INSTANTIATION macro check + before inclusion as the check is already done to include _string.c from _string.h. + + * stlport/stl/_istream.h _istream.c: removal of the _M_put_num function definition + from the .h and removal of all the inline implementation of the >> operators. + _M_put_num is now hidden in the .c to avoid to have to deal with export of this + symbol. Fix errors while using the _STLP_NO_CUSTOM_IO macro. + + * stlport/stl/_ostream.h _ostream.c, src/ostream.cpp: ditto but for the _M_get_num + function. + + * stlport/stl/_istream.h _istream.c: _M_init_skip and _M_init_noskip are now inline + functions defined within the .h to fix link errors when using the _STLP_NO_CUSTOM_IO + macro. + +2004-08-10 Francois Dumont + + * stlport/stl/_string.h: add check of the _STLP_EXPOSE_STREAM_IMPLEMENTATION + macro to include the _string.c file. Improve compile time when _STLP_NO_CUSTOM_IO + is defined. + + * stlport/stl/_string.h, stlport/stl/debug/_string.h, _string_mem_t.h: restoration + of the template method specialization for backward compatibility between compilers + implementating template method and the most recent one. It is considered as an + STLport extension. + +2004-08-09 Petr Ovtchenkov + + * test/compiler: tests to check whether compiler understand or not some + language construction. It is NOT tests for language support libraries, + only tests for compiler. The main purposes of this tests is to help + for developers to find correct workarounds, if compiler don't understand + some language constructions. + +2004-08-09 Francois Dumont + + * stlport/stl/_limits.h, stlport/config/stl_mycomp.h: introduction of a new macro + configuration to signal no support of the IEC 559 specification for floating point + numbers. + + * stlport/config/stl_msvc.h: fix of the config to signal no IEC 559 support before + Visual C++ .Net even if the infinity value is fine. + + * test/unit/limits_test.cpp: New test case to check the right numeric_limits class + configuration. Do not check the signaling_NaN yet... + + * stlport/config/stl_msvc.h: Visual .Net Beta 2005 portage. + + * stlport/stl/_ios.h: Move of the basic_ios::narrow and widen member method + specialization before the explicit instanciation of the basic_ios class for + the char type. + + * stlport/stl/_construct.h, _num_put.c: fix of some unused parameter warning + thanks Oliver Stoeneberg report. + +2004-08-05 Francois Dumont + + * Fixes of the internal move framework for compilers not supporting partial + template specialization. The problem was detected thanks to the boost regression + test suite. + +2004-08-04 Francois Dumont + + * stlport/stl/debug/_list.h, _slist.h: small review of the stlport debug code. + Removal of any Standard reference in the slist class debug implementation. Removal + of some unjustified iterator invalidation. + + * stlport/stl/_locale.h, _collate.h, src/locale.cpp, locale_catalog.cpp, locale_impl.cpp: + Split of the locale class implementation into _LocaleBase base class with no member + template methods which is exported and the locale class which is not exported. This + is a workaround for the MSVC6 compiler. + +2004-08-03 Francois Dumont + + * stlport/stl/_iterator.h: Fix of the back_insert_iterator, front_insert_iterator + and insert_iterator to make them assignable like specify in the Standard requirements + of the output iterators. + + * test/unit/insert_test.cpp, finsert_test.cpp, binsert_test.cpp: Addition of tests for + the assignment operators on the output iterators. + +2004-08-02 Francois Dumont + + * stlport/stl/_string.h, _string.c, debug/_string.h: split of the basic_string + implementation into a class with no member templates and one with the member + templates. Only the one with no member templates is exported. This is a MSVC6 + bug workaround as this compiler try to look for the class method symbols within + the dynamic library even if this symbol is the one of template method which is + not exported. That also make the basic_string implementation more clean so it + has been adopted for all compilers. + +2004-07-29 Francois Dumont + + * test/unit/locale_test.cpp: Fix bad macro _STLP_NO_EXCEPTIONS spelling + and add of a check for real locale implementation. Patch done by + Michael Fink. + + * stlport/stl/debug/_debug.h, _debug.c, _iterator.h: Modification of the + __check_same_owner_or_null function name to the more intuitive + __check_same_or_null_owner thanks a Aleksey Sanin remark. + +2004-07-26 Petr Ovtchenkov + + * src/explore/Makefiles/gmake/lib/gcc.mak: avoid linkage with libstd++ + for gcc compilers. + + * src/explore/Makefiles/gmake/linux/rules-so.mak: ditto + + * src/explore/Makefiles/gmake/lib/rules-a.mak: ditto + + * src/explore/Makefiles/gmake/app/top.mak: ditto + +2004-07-21 Francois Dumont + + * stlport/config/stl_gcc.h: Fix of a gcc 3.3.0 test that did not handle + the gcc 2.95.x correctly thanks Jordan Breeding. + + * src/common_rules.mak: Addition of the stlport/stl/pointers folder within + the folder to be install. Add of a call to ranlib under linux mandatory under + Mac OS X and without impact under the other Unixes systems. + +2004-07-17 Francois Dumont + + * Application of a Mac OSX patch from John Daniel (www.etresoft.com) + +2004-07-15 Francois Dumont + + * stlport/stl/_epilog.h: systematical use of the redefined std namespace + rather than using the namespace inclusion schema. + + * test/unit/set_test.cpp: addition of a test case to show the problem of + the namespace injection schema. + +2004-07-13 Francois Dumont + + * stlport/numeric: removal of the _function.h header include. + + * test/unit/divide_test.cpp: add the missing functionnal header + inclusion. + + * doc/README.msvc: new doc specific to the MSVC++ family compiler. + +2004-07-12 Petr Ovtchenkov + + * test/unit/fstream_test.cpp: tests for unformatted extraction bug. + + * stlport/stl/_istream.c: _M_read_unbuffered should leave delimiter + in the stream in case of unformatted input. Thanks Joerg Becker. + +2004-07-09 Francois Dumont + + * src/sgi_mipspro.mak: add the -LANG:libc_in_namespace_std:OFF + thanks Jack Perdue. + +2004-07-08 Francois Dumont + + * doc/README.evc3: additionnal doc thanks Michael Fink + +2004-07-08 Petr Ovtchenkov + + * test/unit/sstream_test.cpp: added two test for unformatted extraction + and newline character. Inspired by Joerg Becker. + +2004-07-07 Francois Dumont + + * stlport/stl/_hashtable.h, stlport/stl/_hashtable.c, + stlport/stl/_hash_set.h, stlport/stl/_hash_map.h: generalization + of the iterator traits adopted on the tree class. Now iterator and + const_iterator on hash_set and hash_multiset are different types + even if iterator is still immutable. + + * stlport/stl/_deque.h, stlport/stl/_list.h, stlport/stl/_slist.h: + Modification of the iterator classes to only use the template + parameter _Traits rather than using an external type traits. It is + the way hash containers and sorted containers have their iterator + struct working. + + * stlport/stl/_iterator_base.h: Addition of the immutable traits + struct _Const_Const_traits and _Nonconst_Const_traits for + implementation of the set, multiset, hash_set, hash_multiset + iterators. + + * stlport/stl/c_locale.h, stlport/stl/debug/_debug.h: removal of + unjustified _config.h inclusions + + * stlport/stl/_iterator_base.h: inclusion of type_traits.h only + for compilers that need it. + + * stlport/stl/_algobase.h, stlport/stl/debug/_debug.h: add inclusion + of type_traits.h. + + * stlport/stl/_algo.h, stlport/stl/_algo.c: move of the _tempbuf.h + inclusion from the .h to the .c that is the only one that need it. + + * stlport/stl/_config.h: addition of the boost support section. + +2004-07-07 Petr Ovtchenkov + + * stlport/stl/_monetary.c: iterator __str_first out of range, + i.e. outside __str_last in 'mismatch' call in __get_string, if + size of interval [__first, __last) is larger than size of interval + [__str_first, __str_last). + + * test/unit/fstream_test.cpp: test for correct report by tellg added. + +2004-07-05 Francois Dumont + + * stlport/stl/_map.h: internal type _Rep_type set as public for use + in the __move_traits specialization thanks Oliver Stoeneberg. + + * stlport/stl/_set.h: specialization of the __move_traits to make the + set and multiset movable thanks Oliver Stoeneberg. + + * stlport/stl/_function_base.h, stlport/stl/_heaps.h: removal of the + unjustified _config.h inclusion that should only be included from the + _prolog.h header. + +2004-07-05 Petr Ovtchenkov + + * src/facets_byname.cpp: avoid pass address to member of derived class into + base class via constructor. + + * src/facets_byname.cpp: remove first member---EOF---of _M_byname_table---one + not required and lead to wrong reference; this a fix for test in + locale_test.cpp. + + * src/ctype.cpp: ditto. + + * src/c_locale_win32/c_locale_win32.c: ditto. + + * stlport/stl/_ctype.h: ditto. + +2004-07-02 Petr Ovtchenkov + + * src/c_locale_glibc/c_locale_glibc2.c: message catalog functions dealing + with message catalog descriptor; but this descriptor not necessary to be + int; Linux use here void *, i.e. pointer to mmap segment. + + * stlport/stl/_messages_facets.h: ditto. + + * src/messages.cpp: ditto. + + * src/message_facets.h: ditto. + + * src/facets_byname.cpp: ditto. + + * src/c_locale_stub.cpp: ditto. + + * src/c_locale.h: ditto. + + * src/c_locale_glibc/c_locale_glibc2.c: fix _Locale_extract_*_name + functions. + +2004-07-01 Francois Dumont + + * src/explore/Makefiles/nmake/lib/vc-common.mak: creation of the + STLP_BUILD_FORCE_DYNAMIC_RUNTIME option to create STLport statix + versions more easily. + +2004-06-30 Francois Dumont + + * stlport/stl/_function.h: Use a call_traits to avoid the reference + to reference problem in struct like binder1st or binder2nd. + +2004-06-26 Francois Dumont + + * src/explore/: portage of the explore build system for the + MSVC .Net 2003 compiler. + +2004-06-24 Francois Dumont + + * stlport/stl/_site_config.h: Addition of an entry for the per thread + allocator configuration. + + * stlport/stl/_config.h: Avoid use of the import/export technique + when not using own iostreams. This way you can use the STLport debug + mode without building the libraries. + +2004-06-23 Francois Dumont + + * extension of the cygwin link problem workaround for mingw32. + + * src/locale_catalog.cpp: Move of the _STLP_lock object instance + declaration to limit the critical section and improve performace. + + * stlport/stl/_pthread_alloc.h: fix of the pthread_allocator and + per_thread_allocator allocate method to check for the required + number of element before multiplication with the size of the objects + to instanciate. + +2004-06-22 Francois Dumont + + * src/locale_catalog.cpp: fix of the locale facets registration system. + The hash container use string as key rather than char const* so that + a copy of the facet name is stored rather than a copy of the string + pointer that might be freed. We also extract the complete facet name + before storing it to avoid store of facet aliases that cannot be retrieved + at release. + +2004-06-21 Francois Dumont + + * Restauration of the cygwin support (using gcc 3.3.1). Extension of the + explore build system, workaround of a link problem when using shared + libraries. + +2004-06-13 Petr Ovtchenkov + + * src/c_locale_glibc/c_locale_glibc2.c: locale_data for glibc 2.3 is differ + from one for glibc 2.2. + +2004-06-11 Francois Dumont + + * test/unit: Modification of some tests to make the assertion + clearer. Mainly add of check of the streams state before check + of the stream content. + + * test/unit/locale_test.cpp: fix of the thousands separator which is + 0xa0 under Win32 and not a simple ' ' for the french locale. + +2004-06-07 Francois Dumont + + * stlport/stl/_algo.c: rollback of the sort algo implementation + to the 4.5.3 version. + +2004-06-03 Francois Dumont + + * stlport/stl/pointers/README, doc/pointer_specialization.txt: move and + rename of the doc about pointer partial template specialization feature. + + * doc/README.ecv4: Creation of a documentation about the install and use + of STLport within Embedded Visual C++ 4 thanks Zdenek Nemec. + + * doc/README.ecv3: Creation of a documentation about the process installment + with the Embedded Visual C++ 3 thanks Michael Fink. + + * stlport/stl/_slist.h: fix of an invalid reference to a _M_node member data + on a _Slist_node_base struct (thanks gcc 3.4.0). + + * stlport/stl/_string.c, stlport/stl/_string.h: fix of missing scopes to + access the base template class _String_base _DEFAULT_SIZE enum member. + (thanks gcc 3.4.0) + + * stlport/stl/_string_base.h: fix of the anonymous union used as a parameter + of the template function swap. (thanks gcc 3.4.0) + + * stlport/stl/_ostream.h: fixes of the missing scopes to access the basefield enum + within the base template class basic_ios from the basic_ostream. (thanks gcc 3.4.0) + + * stlport/stl/_debug.c: clean up of a no more use template function. + (thanks gcc 3.4.0) + + * stlport/stl/_rope.h: fix of the missing scope to access base template class + data member. (thanks gcc 3.4.0) + +2004-06-02 Petr Ovtchenkov + + * src/num_put_float.cpp: some fixes for systems that use snprintf for + output, i.e. for FreeBSD and OpenBSD + + * test/unit/floatio_test.cpp: less precise request, this should work + with static buffer for systems that use snprintf + + * stlport/stl/_config.h: detect MT for OpenBSD + + * stlport/stl/_threads.h: use original spinlock for OpenBSD + +2004-05-28 Francois Dumont + + * stlport/config/stl_gcc.h: fix for the gcc3.4.0 compiler. Modification + of the include path macro to generate 3.4.0 rather than 3.4 . Need + template keyword to reveal use of a nested template class. + + * stlport/stl/_config.h: creation of the _STLP_LONG_DOUBLE macro that + extend to long double on compiler supporting it and double on the other + as a workaround. + + * stlport/stl/_num_put.h, stlport/stl/_num_put.c, src/num_put_float.cpp: + Addition of functions to get the digits from a long double for the monetary + facet. + + * stlport/stl/_monetary.h, stlport/stl/_monetary.c, src/monetary.cpp: + Implementation of the missing money_put::put method taking a long double. + Fixing of the grouping application. + + * test/unit/Makefile.inc, test/unit/locale_test.cpp: Creation of a unit test + for the locale support. At creation it tests the num_put, num_get, money_put, + money_get facets. + + * src/facets_byname.cpp: fix of the monetary format determination from + the locale platform API informations. + +2004-05-28 Petr Ovtchenkov + + * src/explore/Makefiles/gmake/sysid.mak: correctly detect Mingw + + * src/explore/Makefiles/gmake/mingw: compilation under Mingw + +2004-05-27 Petr Ovtchenkov + + * Makefiles/gmake/linux/extern.mak: fix lib catalog name in case of cross-compilation + + * Makefiles/gmake/freebsd/extern.mak: ditto + + * Makefiles/gmake/openbsd/extern.mak: ditto + +2004-05-26 Petr Ovtchenkov + + * Repository: STLport 5.0 RC1 + +2004-05-24 Francois Dumont + + * stlport/stl/_iostream_string.h: + Fix of the iostring_allocator rebind embedded struct and implementation + of the missing __stl_alloc_rebind and __stl_alloc_create useful for compiler + not supporting or buggy on the member template feature (VC6 for instance). + +2004-05-22 Francois Dumont + + * src/num_put_float.cpp, stlport/stl/_num_put.h, stlport/stl/_num_put.c: + Correction of the locale grouping schema application in case of the scientific + output when there is no decimal point. + +2004-05-19 Petr Ovtchenkov + + * stlport/stl/_tree.h, stlport/stl/debug/_tree.h: fix template parameters, see rec + 2004-05-14 below. + +2004-05-16 Petr Ovtchenkov + + * Repository: STLport 5.0 branch + +2004-05-14 Francois Dumont + + * stlport/stl/_tree.h, stlport/stl/_tree.c, stlport/stl/_set.h, stlport/stl/_map.h: + Modification of the _Rb_tree implementation to restore the non mutability of the set + iterators but to keep distinct type between it and the const_iterator. + +2004-05-13 Francois Dumont + + * stlport/config/stl_evc.h, test/unit/nmake-evc3.mak: Portage to the WinCE 3 platform. + Thanks Michael Fink. + +2004-05-13 Francois Dumont + + * stlport/stl/_set.h: Addition of the const/non-const methods for many methods now that + iterator are not const_iterator anymore. Correction of the multiset interface to be + homogeneous with the set interface. + +2004-05-09 Francois Dumont + + * stlport/stl/char_traits.h: Addition of the specific wchar_t static methods similar + to the one of the char specialization calling the wide functions. + +2004-05-08 Petr Ovtchenkov + + * stlport/stl/_set.h: fix definition of const/non-const for find and *_bound + methods. Thanks KL for report. + +2004-05-07 Petr Ovtchenkov + + * stlport/stl/_set.h: fix definition of const/non-const iterators. + Thanks Ilya Chvetsov for report. + + * test/unit/set_test.cpp: test that detect bug above. + +2004-04-27 Francois Dumont + + * stlport/stl/_complex.h: removal of a macro guard on the template != operator. + + * test/unit/complex_test.cpp: creation of a test case for the complex class. + +2004-04-26 Francois Dumont + + * stlport/stl/_fstream.h, src/fstream.cpp: extension of the fstream interface to accept Win32 + HANDLE on construction and in the open method. + +2004-04-26 Petr Ovtchenkov + + * stlport/stl/_istream.h: don't change value while input error happens. + Thanks Nix. + + * test/unit/sstream_test.cpp, test/unit/fstream_test.cpp: added test for error + flags and unchanged value when input error occur. + +2004-04-23 Petr Ovtchenkov + + * stlport/stl/_rope.h: allow search of rope, like done in string + +2004-04-21 Francois Dumont + + * stlport/stl/pointers/README: Creation of a documentation on the new + pointer partial specialization feature. + +2004-04-20 Francois Dumont + + * stlport/stl/_pair.h: modification of the make_pair signature. After the latest + Standard revision it takes params per value and not reference to const. + +2004-04-20 Petr Ovtchenkov + + * stlport/stl/pointers/_list.h: 'clear' method was forgot. + + * test/unit/list_test.cpp: check presence of 'clear' + +2004-04-15 Petr Ovtchenkov + + * test/unit/partial_test.cpp: wrong comparison during test + + * test/unit/sort_test.cpp: ditto + + * test/unit/rm_cp_test.cpp: #ifndef not required---should work + + * test/unit/unique_test.cpp: ditto + +2004-04-14 Petr Ovtchenkov + + * stlport/typeinfo, stlport/config/stl_wince_4.h, stlport/stl/debug/_debug.c: adaptation for Win CE .NET; + Thanks Zdenek Nemec. + + * stlport/stl/_algobase.h: calculate difference once + + * stlport/stl/pointers/_vector.h: missed returns. Thanks KL. + + * stlport/stl/pointers/_list.h: idem. + + * stlport/stl/pointers/_deque.h: idem. + + * stlport/stl/pointers/_slist.h: idem. + + * stlport/stl/_vector.c, stlport/stl/_vector.h: big enough functions moved to non-inline section + + * stlport/stl/_iterator.h: use reference instead of pointer for stored container + +2004-04-06 Petr Ovtchenkov + + * stlport/stl/_prolog.h: when we in _STLP_REDEFINE_STD mode, we really + need to #undef std, see mistake 2004-02-19 below. + + * stlport/config/stl_msvc.h: partially undo workaround 2004-03-30, + not required; problem was solved by #undef std in _prolog.h + + * stlport/stl/_abbrevs.h: add new abbrevs---VC6 has problems in debug mode + +2004-04-03 Petr Ovtchenkov + + * stlport/stl_user_config.h: expose _STLP_DONT_FORCE_MSVC_LIB_NAME for + configuration. + + * stlport/config/stl_msvc.h: incorporate content of stl_select_lib.h and + vc_select_lib.h; a bit cleaned. + + * stlport/config/stl_select_lib.h: removed. + + * stlport/config/vc_select_lib.h: removed. + +2004-04-02 Petr Ovtchenkov + + * src/time_facets.cpp: add #include for sprintf; remove + c_copy_string function. + + * stlport/stl/_time_facets.h: fix for _STLP_LEAKS_PEDANTIC. + +2004-04-01 Petr Ovtchenkov + + * stlport/stl/_string.h: reorder of in-class template and + quazi-specialization function make VC happy, ref. 2004-03-29 + + * stlport/stl/debug/_string.h: fix insert and replace for + iterators that refer to same string in _STLP_DEBUG mode. + +2004-03-31 Petr Ovtchenkov + + * src/explore/nmake-evc4-arm.mak, src/explore/nmake-evc4-x86.mak, etc.: + rules for eVC4 compilers---ARM and ix86 target architectures. + Contribution by Zdenek Nemec. + +2004-03-30 Petr Ovtchenkov + + * stlport/stl/_algo.c: workaround for VC compilers---ones pass reference + to parent object directly, pay no regard for temporary object + + * stlport/new, stlport/stl/_new.h, stlport/typeinfo, stlport/config/stl_msvc.h: + workaround for VC6's problem with 'using' directive, while import native + bad_alloc and some other classes into STLport's namespace + + * stlport/stl/_streambuf.h: export template class, to make VCs to be happy. + + * stlport/stl/_valarray.h: use , not + + * src/explore/Makefiles/nmake/lib/macro.mak, test/unit/nmake-vc6.mak: + fix static library names + +2004-03-29 Petr Ovtchenkov + + * stlport/stl/_set.h: fix problems with erase functions. + + * stlport/stl/_string.h: VC compiler expect only one variant---template + or not---of replace function with four iterators in parameters. + + * test/unit/nmake-src-prefix.mak: really know what do with sources + in cppunit. + +2004-03-25 Petr Ovtchenkov + + * stlport/stl/_string_base.h: enlarge default string static buffer size + + * stlport/stl/debug/_string.h: avoid attempt to invalidate iterators beyond + string size range. + + * stlport/config/stl_gcc.h: instantiation scheme that idefault used---witout + --repo option---in gcc 3 made void of sense explicit instantiation within + library---nothing except increased library size. + Define _STLP_NO_FORCE_INSTANTIATE is default now for gcc 3.x. + + * stlport/stl/_streambuf.h: remove specialization of + basic_streambuf >---reference to FILE struct here + isn't required and really not used anyware. Functionality of standard io + streams, including synchronization with C std io streams provided in + src/stdio_streambuf.cpp + + * stlport/stl/_iosfwd.h: same. + + * src/fstream_impl.h, src/iostream.cpp, src/stdio_streambuf.cpp: same. + + * src/streambuf.cpp: removed. + + * stlport/stl/_stdio_file.h: moved... + * src/_stdio_file.h: ...here + + * stlport/stdio_streambuf: moved... + * src/_stdio_file.h: ...here + + * src/explore/Makefile.inc: remove streambuf.cpp + +2004-03-24 Petr Ovtchenkov + + * c_locale_glibc2.c: real locale implementation for glibc 2.3.x. + +2004-03-15 Petr Ovtchenkov + + * test/unit: unit test suite intended for test/regression replacement. + Zdenek Nemec contribution. + +2004-03-01 Francois Dumont + + * _hash_fun.h: Correction of the hash struct specialization for the _STLP_LONG_LONG + type. Thanks Vianney Lecroard + + * type_traits.h: Integration of the boost (www.boost.org) type traits within STLport. + +2004-02-21 Francois Dumont + + * _tree.h: Modification of the base class implementtion to avoid the systematical + dynamic allocation of a node as the root note of the RB tree. + + * Addition of many missing macro guards in the stlport public headers to avoid to break + the stlport prolog/epilog include framework. + +2004-02-19 Petr Ovtchenkov + + * _slist.h, debug/_slist.h,, dll_main.cpp: remove excess slist redefinitions + + * debug/_slist.h: comment explicit usage of namespace with functions---under + some conditions this hangs gcc compilers. + + * _config.h, _cwchar.h, _epilog.h, _iterator_base.h, debug/_debug.c: multiple import + of _STL namespace into std, as multiple import VENDOR_CSTD namespace into _STL + namespace lead to crash of gcc compilers. Import of _STL namespace into std + namespace done once in the _config.h, not in _epilog.h. + + * _prolog.h: undef std not required in all cases; instead this is useful only + for redefinition of std namespace, and should be done in the _config.h. + + * _epilog.h: include of _config.h has no sense here. + + * _threads.h: wrong import of _STL namespace into global namespace + +2004-02-18 Francois Dumont + + * _list.h: Modification of the base list class based on the slist implementation. + The list do not allocate a node systematically anymore even for the empty list. + +2004-02-14 Petr Ovtchenkov + + * debug/_relops_cont.h, debug/_string.h: fix typos in template specializations. + +2004-02-12 Petr Ovtchenkov + + * explore/icc.mak: experimental make system support Intel's icc compiler + on Linux. + +2004-02-05 Petr Ovtchenkov + + * iostream.cpp, _ios_base.h, iostream, locale_impl.h, locale_impl.cpp: + revise standard iostream and locale initialization, remove worrits about + order of static objects initialization as soon as possible; all real + initialization situated in the locale_impl.cpp; locale initialization + moved to _Locale_impl constructor---locale will be correctly initialized + either via direct locale usage, or during standard iostream initialization, + as ios_base member. This changes may lead to problems with Digital Mars + and Borland compilers---should be checked and fixed. + +2004-02-03 Francois Dumont + + * integration of a portage to the Windows CE .NET (eMebedded Visual + C++ 4) compiler thanks Zdenek Nemek + +2004-02-02 Petr Ovtchenkov + + * _iostream_string.h: avoid usage of iostring in the _STLP_DEBUG mode, + due to iostring::iterator not convertable into string::iterator in this + mode. + +2004-01-29 Petr Ovtchenkov + + * _string.c: avoid 'insert( iterator, const_iterator, const_iterator )' + instantiation in the 'replace'---VC6 has problem here. + +2004-01-29 Francois Dumont + + * facets_byname.cpp: correction of the typeid use thanks to Ulrich Eckhardt. + + * _iostream_string.h: creation and integration of a special string used within + the iostream implementation to display floating point numbers. It mixes a static + buffer with a dynamic one to improve performance. + +2004-01-22 Francois Dumont + + * _new.h: check of the _STLP_USE_EXCEPTIONS before correction of the new + operator behavior and bad_alloc exception definition. + + * _ios_base.h: removal of the _M_get_facet function not fully implemented + and unused thanks Ulrich Eckhardt. + + * _algo.h: correction of the __less_2 helper struct to remove + copy thanks Sergey Volk + +2004-01-19 Petr Ovtchenkov + + * _debug.c: avoid recursive locks in __owner_list's mutex---equivalent + code use underlie iterators, not debug wrapper iterators. By the way this + approach faster---no excessive checks; solved by Boris Fomitchev. + + * _thread.h, _debug.h: recursive-safe mutex structure removed---not + required more; see reason just above. + +2004-01-09 Francois Dumont + + * type_manip.h: Correction of the _IsSame struct to have both partial template + specialization version and the other behaving similarly. + +2004-01-07 Francois Dumont + + * _deque.c: Mysterious copies of instance to store in the containers + has been removed. + +2004-01-05 Francois Dumont + + * _list.h, _slist.h: Implementation of the pointer specialization for list + and slist. + +2003-12-31 Petr Ovtchenkov + + * _vector.h, _vector.c, _hashtable.h: remove excess vector redefinitions + + * debug/_vector.h: pointer specialization for vector not derived + from _Vector_base, so we should avoid references on _Vector_base + class members in debug wrapper. + +2003-12-22 Francois Dumont + + * _string.h: use _STLP_FORCE_STRING_TERMINATION flag to enforce + null-termination of data associated with string. + +2003-12-20 Francois Dumont + + * _vector.h: Implementation of the pointer specialization for vector to + avoid code bloat. + +2003-11-29 Francois Dumont + + * _string.h: Implementation of the short string optimization. + basic_string have now a short static buffer to avoid call + to the allocator when the string is short. + +2003-11-29 Petr Ovtchenkov + + * cwchar, _config.h, _cwchar.h, _stdio_file.h, c_locale.h: + support for OpenBSD, gcc 3.3.1 + + * src/explore/Makefiles/gmake/...: support for OpenBSD, gcc 3.3.1 + +2003-11-17 Francois Dumont + + * _alloc.h: Move of the definition of _Alloc_Traits before inclusion + of _pthread_alloc.h; thanks Diego Klabjan + +2003-11-16 Petr Ovtchenkov + + * _algobase.h, _algo.c: iter_swap and __insertion_sort don't + properly deduce value type of iterator, instead uses dereference's + return type; this occur when dereference return some proxy object, + convertible into value type. + Thanks Przemek Kuczmierczyk for report, test + and solution. + + * iterswp0.cpp, iterswp1.cpp, iterswp.cpp, stl_test.cpp, + stl_test.h, Makefile.inc (test/regression): move iterswp0_test, + iterswp1_test into iterswp.cpp, add new tests for properly deduce + value type of iterator, when dereference return some proxy object. + +2003-11-15 Francois Dumont + + * _string.h: implementation of the expression template for string + addition with other string or C string or char. + + * _ostream.h: adoption of the classic (even if not clear in + the standard) ouput for short and int negative values in hexa + or octo bases that is display according its size for the compiler. + thanks Tanaka. + +2003-11-14 Petr Ovtchenkov + + * src/c_locale.c, src/c_locale_glibc/c_locale_glibc2.c: step to + real locales support with glibc >= 2.2.x + + * src/c_locale_glibc/c_locale_glibc.c: bit fixes for locales + support with glibc < 1.90, and, possible, 1.90 <= glibc < 2.1; + we can't support this old code, so file + src/c_locale_glibc/c_locale_glibc.c is obsolete, and will be + removed. + + * src/explore, test/regression/explore: exprimental make system. + +2003-11-13 Petr Ovtchenkov + + * STLport (repository): current development moved to CVS HEAD stream. + + * STLport (repository): current development stream marked as STLport 5.0. + +2003-11-02 Francois Dumont + + * _limits.c: Correction of the quiet and signaling NaN that was inverted + for several platform; thanks Alexey Sarytchev. + +2003-11-01 Francois Dumont + + * _string.c: judicious correction for string::find_first_not_of to + improve performance; thanks Stephen Cleary. + + * _bitset.h: integration of a workaround for up to MSVC6 compilers + for the bitset input and output operators; thanks Jesse Booher. + + * _ostream.h, _istream.h: fix of a non-standard behavior of the seekp + and seekg calls and conformance to the latest 2003 standard; thanks Tanaka. + +2003-10-26 Francois Dumont + + * _monetary.c: fix an other memory overrun on monetary display; + thanks Tanaka. + +2003-10-26 Petr Ovtchenkov + + * ioiter.cpp, gcc.mak, stl_test.h, stl_test.cpp, stl_test.exp + (test/regression): tests for postfix increment operator and + indirection of istreambuf_iterator. + +2003-10-25 Petr Ovtchenkov + + * _istreambuf_iterator.h: fix postfix increment operator + of istreambuf_iterator to provide conformance with + ISO/IEC 14882:1998(E), 24.1.1, p.511, i.e. + *r++ equivalent to { T tmp = *r; ++r; return tmp; }. + Thanks Tanaka for the report. + +2003-10-23 Francois Dumont + + * debug/: modification of the invalidation of iterators to avoid + invalidation of the end iterator for the associative containers, + hashed containers and list on calls to clear/assign/assignment + operator. (thanks Alexey Sarytchev) + + * _rope.h: Correction of the rope::iterator and rope::const_iterator + copy constructor and assignment operator (thanks Bradley Grainger) + +2003-10-16 Francois Dumont + + * _alloc.h: Add of the throw() specification on allocator comparision. + + * _iterator.h: Correction of the operator++(int) signature to conform + to the standard. + + * _ctype.h: tolower and toupper for wchar_t types. + + * _valarray.h: gslice_array::operator = (const value_type&) not + const anymore + + * _valarray.h: slice_array idem + + * _valarray.h: valarray operator [](const gslice&) former version + was taking a copy of gslice + + * _codecvt.h: correction of the default codecvt class definition and + correction of the out method + + (all thanks Richard Peng) + +2003-10-16 Francois Dumont + + * debug/: add of the iterator range check on all container constructors. + + * _string.h: correction of a bug on string auto referencing throught + some method like insert and replace. (thanks Tanaka) + + * _valarray.h: correction of the missing slice_array copy constructor + and assignment operator in the private section (thanks Tanaka) + +2003-10-11 Petr Ovtchenkov + + * _sstream.c: [io]?stringstream must do equivalent of seek at end, + after opened with ios_base::ate; this behaviour useful only when buffer + initialized by string; thanks Tanaka for the report. + +2003-10-06 Francois Dumont + + * _istreambuf_iterator.h, _ostreambuf_iterator.h: correction + of the missing iterator base class (Thanks Tanaka) + +2003-10-05 Francois Dumont + + * _string.h: correction of the replace implementation badling form + for self referencing + + * _string.h, _string.c: Modification of the _M_copy method + to _M_move as basic_string do not correctly handled self referecing; + thanks Tanaka + +2003-09-25 Francois Dumont + + * como 4.3.0 on linux support (thanks Synge Todo and Karel Gardas) + + * Quazy-leak patch: make memory detection tools happier, + option _STLP_LEAKS_PEDANTIC in _site_config.h. (thanks Petr Ovtchenkov) + +2003-09-19 Francois Dumont + + * Support of the Linux Intel C++ support (thanks Blaine Kubesh) + + * FreeBSD support update (thanks Guy Middleton). + + ---- + + * codecvt.cpp: charcode correction in the do_in method (thanks J Hamilton report) + + ---- + + * _valarray.h: Correction of the missing explicit keyword in front of one of the valarray constructors + (thanks Stephen Clamage) + + ---- +2003-08-10 Francois Dumont + + * stdexcept: Correction of the mysterious 50 messages from VC7.Net (thanks Krish S) + + ---- + + * _vector.h: implementation of the max_size method based on the allocator::max_size method + (thanks Gennaro Prota from the boost forum). + + ---- + + * _vector.c: add of the standard length_error exception to the reserve method (thanks Steven Youngs). + + ---- + + * _alloc.h: add of a check of the number of element require to allocator::allocate to avoid a possible + size_type overflow (thanks Steven Youngs). + + ---- + + * _istream.h: move of the ws implementation within the header to avoid undefined symbol + under NO_CUSTOM_IO mode (thanks Ulrich Eckhardt) + + ---- + + * ctype.cpp : charcode correction (thanks Markus Stier reports and Alberto Barbati correction) + + ---- + + * _function.h : all function can now be used in a non-const world (thanks Alexey Kirjushkin) + + ---- + + * move constructor framework integration (thanks Francois Dumont) + + ---- + + * containers interface correction for standard compliance when using explicit + intanciation of not default constructible type. (thanks Alexei Agafonov report) + + ---- + + * iostream.cpp, locale_impl.cpp : static initialization made robust for case of + dynamic loader circular dependancies (Thanks Alexey Sarytchev for the report) + + ---- + + * _function.h : integration of a new workaround for mem_fun_* family + for compiler having return void bug (Thanks Pavel Kuznetsov). + + * stl_solaris.h : v8plus compilation fix (Thanks Mukesh Kapoor) + + * num_put_float.cpp : FreeBSD fix + + * _construct.h : fixed case for compilers with default integer + constructor bug + + --- + + * fstream.cpp : text file stream position bug correction (thanks Christopher Kohlert) + + --- + + * _num_put.c : Correction of the display of the min 64 bits signed integer values + like numeric_limits<__int64>::min() on WIN32 for instance (thanks Anders Dalvander) + + --- + * _num_put.c : Add of the '+' sign when requested for the unsigned integer display + (thanks Francois Dumont) + + --- + + * debug : many missing iterator invalidation corrected (thanks Detlev V.Davidson and Francois Dumont) + + --- + + * _new.h : introduction of a new config compiler switch for those which do define + bad_alloc but that do not throw it! (thanks ?) + --- + * _new.h : class nothrow_t changed to struct nothrow_t (Thanks Francois Dumont) + --- + * _bvector.h : Addition of the |= and &= operator on the _Bit_reference struct (thanks Ed Rice) + --- + * Performance bug in type_traits.h fixed (Thanks Francois Dumont) + --- + * Added Linux spin lock code () + --- + * Added GCC-3.x configurations + + * Fixed HP aCC support + + * Added OpenWatcom support + + * version numbers bumped + + * iostreams ported to EMX (gcc on OS/2) (Thanks Martin Schaffoener) + + * iostreams ported to CRAY Unicos C90, T90, and J90 (Thanks Geir Johansen) + + * stl_sunpro.h : fixed mbstate definition for SUN 4.2 (thanks lengzq) + + * complex.cpp, _complex.h : template<> used for specializations + + * _num_put.c : unused locale variable removed (thanks Petr Ovtchenkov) + + * _algo.h : __reverse beautified (thanks Kabanov) + + * dll_main.cpp : force_link() forced to be linked in + + * stl_msvc.h : config changes for .NET + + * _auto_ptr.h : "struct" changed to "class" + + * _istream.c : M_read_unbuffered fixed (thanks Stefan Schwarzer ) + + * stl_gcc.h : added missing inclusion for SCO platform (thanks Emmanuel Soden) + + * _tree.c : optimized insert_unique (thanks Timothy) + + * _algo.c : relaxed type requirements for lower_bound, upper_bound, binary_search + + * _algo.h : adjacent_find() expressed with compare-function flavour + + * cpp_runtime/typeinfo : made adjustments for .NET (Thanks Daniel) + + * cstd/cassert : guard removed (thanks Evan Cheng) + +The following changes were made in 4.5.3 since 4.5.1 release: + + * iostreams ported to Windows CE (thanks Andrew Waters) + + * iostreams ported to AmigaOS (thanks Steven Solie) + + * iostreams ported to NCR 3.x (thanks Emmanuel Soden) + + * _hash_map::operator[] : enhanced to avoid calling default object constructor + (Thanks Yuri Taranenko for the report) + + * Identifier "__value" changed everywhere to "__val" to avoid clashes with Microsoft's "managed C++" keyword (thanks Crow for the report) + + * Most containers : swap() fixed to swap non-stateless allocators correctly (thanks Scott Meyers) + + * _sstream : fix to account for ios_base::app flag properly + + * type_traits.h : _IsOKToMemCpy() fixed to only allow memcpy() for same type arguments (thanks Ed Brey for the report) + + * stl/_num_put.c, stl/_list.c : workarounds for Debian gcc (thanks Levente Farkas) + + * : fixed MS workaround (thanks Wil Evers, Andrew Ushakov) + + * _pthread_alloc.h : added per_thread_allocator class; returns memory to the same thread it's been allocated in. + + * _iterator_old.h : restored ->() operator for MSVC (thanks Daniel Anderson) + + * a bunch of MPW fixes (thanks Tsutomu Yoshida) + + * _config_compat.h : fixed compatibility definition for _STLP_NO_EXCEPTIONS (thanks Nicolas) + + * _fstream.c : fixed bug in _M_seek_init (thanks Pavel Kuznetsov) + + * _rope.h : rope<>::swap() methods fixed for non-partial ordering case (thanks Eric Musser) + + * comlex_trig.cpp : fixed bug on SGI (thanks Mortis) + + * A bunch of fixes for HP aCC compilation with -AA option (thanks John Bossom) + + * *.c files : added conditional inclusion of corresponding *.h file to fix xlC issues with -tempinc option (thanks Alla Bogolyubov for the report) + + * _auto_ptr.h : "struct" changed to "class" (thanks Alex Pinsker for the report) + + * _config.h/stl_user_config.h : handling of macro _STLP_WHOLE_VENDOR_STD rectified + + * _num_put.c : do_put(const void*) changed to output pointers in hex format (thanks Alex Rosenberg) + + * test/eh/test_algobase.cpp : fixed alignment to work on 64-bit architectures + +The following changes were made in 4.5.1 beta 1 since 4.5 release: + + * _config.h, _epilog.h : new namespace inclusion schema implemented for own iostreams mode + (no std:: redefinition; _STL:: namespace imported into std::, instead of std:: imported to _STL. + C library header files wrappers become obsolete if this mode is used and no own namespace is selected. + They will be moved out to distinct directory in the next release, and default is going to be no own namespace + with own iostreams.) + For some compilers (VC6), this only works with _STLP_NO_OWN_NAMESPACE and _STLP_OWN_IOSTREAMS settings. + + * iostreams ported to SCO OpenServer (thanks Emmanuel Soden) + + * sparc_atomic.s : added "stbar" to fix multiprocessor crashes on SPARC + + * dll_main.cpp : forced link of Bs_G static data members (thanks Sandy Martel). Function wrapped in STLport namespace. + + * _alloc.c : fixed _STLP_CHUNK_MALLOC for debug malloc configuration (thanks Markus Sch pflin) + + * _config_compat.h : fixed compatibility section for _STLP_NO_OWN_IOSTREAMS + + * fstram.cpp , vc6.unicode.mak : fixed bug in wide streams handling for VC6 (thanks Jim Dolter) + + * etc/*.txt : files list broken up into several categories for future reorganization + + * stl_msvc.h : fixed library selection for .NET (Thanks Franz Zetting) + + * _ftsream.h, iostream.cpp : fixed compilation for _STLP_NO_EXTENSIONS case (thanks Ben Dorman for the report) + + * char_traits.h : fpos<> operators == made members (thanks Thomas Witt) + + * _threads.h : added using directive for Solaris x86 compile (thanks Mukesh Kapoor) + + * _threads.h : fixed InterlockedXXX definitions for VC++ 6.0 SP5 (thanks AndreasM) + + * gcc-install-apple-macosx.mak : INSTALL_STEP set to install_unix (Thanks Tron Thomas) + + * common.mak : default install directory for Unix set to /usr/local + + * _string.h : _M_null expressed via _STLP_DEFAULT_CONSTRUCTED (Thanks Anthony) + + * _site_config.h : made sure _STLP_NO_THREADS are set if _NOTHREADS is on (Thanks Jeppe Madsen) + + * _config.h : _STLP_WIN32THREADS is set (bugfix) ( thanks to Andreas Malzahn ) + + * _num_put.c, common_rules.mak : patches by Levente Farkas + + * etc/STLport-4.5.1.spec : spec file to build STLport-4.5.1 RPM added (thanks Levente Farkas) + + * _auto_ptr.h , _debug.c, _debug.h : debug check for auto_ptr pointer added (thanks Gerd Hoeren for the idea) + + * debug/_vector.h : invalidation for erase() corrected not to invalidate current iterator (Thanks ALberto Barbati) + + * stl_bc.h : restored automatic library link directive for cases when STLport is not a native library + + + * _auto_ptr.h : template constructor conversion bug fixed (thanks mbergal) + + * MIngw32 patches integrated (thanks Wu Yongwei) + + * src/complex_impl.h : case for DEC CXX changed to general, instead of extension functions for float and long double, to get it compliled with CC 6.1 (thanks Tony McConnell) + + * dll_main.cpp : added __malloc_alloc instantiation (thanks Michael Ehrig) + + * _debug.c : fixed race condition in _M_detach (thanks Achim Stremplat) + + * test/*/hpacc.mak : fixed flags and libs (thanks Michael Ehrig) + + * typeinfo : added fix for MS VC ::bad_cast confusion (thanks Alberto Barbati) + + * debug/_vector.h : removed extra guard for MSCV around member template constructor (thanks Alberto Barbati) + + * _fstream.h : added extension basic_fstream<> constructors taking protection parameter (thanks Mukesh Kapoor for the idea) + + * stl_sunpro.h : added additional C include directory choice for Solaris 6&7 (thanks John E. Bossom) + + * _vector.c : added _vector.h inclusion for _STLP_LINK_TIME_INSTANTIATION case (thanks Alex Vanic) + + + * _num_put.c : fixed overflow case with grouping (thanks Will Evers) + + * _istreambuf_iterator.h : fixed distance_type return type (thanks Anthony Williams) + + * debug/_vector.h : debug version of push_back() added (thanks) + + * Iostreams ported to LynxOS 3.0 (thanks Dmitry Azovtsev) + + * wrappers/*.h : added inclusions of the master header to fix xlC 3.x compile (Thanks Dmitry Azovtsev) + + * Changes for BCB6 integration (thanks Nathan York) + + * Removed all dead code blocks marked by #if OBSOLETE and #if 0 + + * Updates build spec file for Linux rpm (thanks Levene Farkas, Harold van Oostrom) + + * complex_trig.cpp : limits changed to be static, for performance optimization (thanks Sergei Nikolaev) + + * _algo.c : eliminated default-constructed iterators, to lift unnecessary restriction (thanks Tonci Tomic ) + + * _vector.h : fixed bug in assign() : copy used instead of __copy_aux (Thanks Tim Finer) + + * stl_sunpro.h : restored _STLP_HAS_NO_NEW_C_HEADERS switch for SUN CC 4.2 + + * : __stl_new definition put into the namespace (thanks Satoshi Nakamura) + + * bcb*.mak : fixed md command and DYN_LINK (thanks Kirby Zhou) + + * stl_user_config.h : added _STLP_USE_CUSTOM_CHAR_TYPES_IO switch to optimize iostreams for default case + + * debug/_vector.h : fixed debug check bug (thanks Gerd Hoeren) + + * _alloc.h : allocator::construct uses std::_Construct (thanks Gert Grossmann) + + * stl/_alloc_old.h : restored (thanks Gert Grossmann) + + * stl/_threads.h : fixed _STLP_ATOMIC_xxx macros for DEC (thanks Gert Grossman) + + * src/_locale_impl.cpp : added missing guards for codecvt<> in _STLP_NO_MBSTATE_T case + + +The following changes were made in 4.5 release since 4.5 beta 8 : + + * _threads.h, debug/_debug.h etc : STLport iostreams library made binary compatible with user code compiler w/o multithreaded switch, for some platforms + + * config/stl_msvc.h, : corrected _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS for VC++ 6.0 SP5 + (Thanks Alberto Barbati) + + * src/vc6.mak : RC macro definition restored (Thanks Graham) + + * stl/_cmath.h, : parts of code moved to as uses it (Thanks Synge Todo) + + * stl/_tree.c : fixed insert_unique() with a hint bug (Thanks Serge Pashkov) + + * src/gcc-*.mak : removed -nostdinc++ option + + * stl_solaris.h : definition of _STLP_SUNPRO_EXCLUDE made dependant on _XOPEN macro instead of SUN CC macros (Thanks ecohen for the report) + + * fstream.cpp : mmap_chunk made to be 1M instead of 16M as was originally intended (thanks Alexey Starikovskiy) + * stl_sunpro.h : _STLP_LIMITED_DEFAULT_TEMPLATES not defined for compat mode anymore ( thanks Michael Kopp) + * dll_main.cpp : added instantiation for _Swap_lock_struct<> (thanks simonb) + + * _ostream.c : fixed formatting bug for width()==1 + + * config/_epilog.h : added option pop section for Borland. + + * stl/_threads.h : fixed InterlockedXXX declarations for MS .NET (thanks Piers Haken) + + * vc7.mak makefile added for MS VC++ 7.0 (.NET) + + * fixed _STLP_ITERATOR_CATEGORY, etc. for Mwerks CodeWarrior 5.0 + + * stl/_num_put.c : fixed operator<<(void*) to use _STLP_LONG_LONG where available. + + * _STLP_WHOLE_VENDOR_STD option is back supported (Thanks anton ephanov for the input) + + * _cmath.h : added guard to mask additional overloads (thanks Tim Smith) + + * stl_solaris.h : mbstate_t stuff defined here, old-style C headers used (Thanks Mukesh Kapoor) + + * type_traits.h : __default_constructed() inlined (Thanks Matt Davies) + + * new.h : fix for gcc-3.0 to look in backward directory (Thanks Ken) + + * stlport/using/h/streambuf.h added (Thanks Gennadiy) + + * A bunch of changes for Borland static and DLL compile (Thanks Nathan York) + + * stl/_algo.c : fixed find_end() bug (Thanks Alberto Barbati) + + * stl/_queue.h : priority_queue<>::_comp renamed to "comp" as standard states (thanks Todd Greer) + + * _limits.c : added correct data member representations for AS400 and Alpha machines (thanks Holger Stash) + + * _vector.h : added check to avoid calling allocator<>::deallocate(0) (thanks Stephen Cleary) + + * config/_prolog.h, config/_epilog.h : added push/pop pack(8) pragmas for MSVC (thanks Todd Greer, Alberto Barbati) + + * gcc.mak's : default spelling for "-pthreads" option changed to "-pthread" as more platforms use that. + + +The following changes were made in 4.5 beta 8 since 4.5 beta 7 : + + * stl/_fstream.c : _M_underflow bug fix for custom codecvt facets (thanks Alberto Barbati) + + * bcc55.mak : c_locale.c added to the link command (thanks Steve Loves) + + * _iterator_base.h & many other places : iterator tags are being accepted by const reference + instead of value, to fix segmentation faults experienced on certain platforms with beta7. + That also should improve efficiency on same platforms (apparently, empty unreferenced + objects with no constructors/destructors were copied on the stack when passed by value). + Accompanied change eliminates hardcoded deference hack used in previous beta. + Thanks everybody who reported this. + + * stl_user_config.h : added _STLP_GCC_USES_GNU_LD switch. This is for those platforms + where native linker does not let gcc to implement automatic instantiation of static + template data members (Tru64, AIX, HP-UX). + It is being put in this file as there is no automatic way to check if we are using GNU ld or not. + + * _range_erors.h : depandancy on and removed for own iostreams mode + (thanks Doug Gilbert) + + * debug/_list.h : "typename" added in new methods (thanks Doug Gilbert) + + * _config.h, src/common_macros.mak : beta version number bumped + + * src/ftream.cpp, c_locale_win32.c : fixes for UNICODE compilation (thanks Valo) + + * stl_gcc.h, etc : changes for GCC support on Tru64 (thanks Tobias Ernst) + + * _alloc.c : for MS VC, malloc_dbg only used when _STLP_DEBUG_ALLOC is set, not for all debug configs + (Thanks Anton Ephanov) + + * test/eh/gcc.mak : directories stuff fixed (Thanks Brodie) + + * stl/_complex.h : fixed declarations for long double specializations (Thanks Tsutomu Yoshida) + + * locale_byname.cpp, etc. : fixes for Apple compilers by Tsutomu Yoshida. + + * _ios_base.h : __evenk id changed not to clash with MS VC++ 7 (thanks Paul Ghezzi) + + * _fstream.c : added basic_filebuf constructor workaround for compiler which do not initialize builtins + to zero when default constructed (thanks Alberto Barbati) + + * _locale.h : relaxed guerd around templated locale constructor (thanks Alberto Barbati) + + * stl_mwerks.h : changes to accomodate CodeWarrior 6.2 (thanks cprosser) + + * stl/_cmath.h : extracted from for better decoupling + + * stl/_std_prolog.h, stl/_std_epilog.h : hooks for future alternative namespace inclusion style. + + * config/stl_gcc.h : gcc-3.0 now supported + + * src/gcc-beos.h : only static library is being built (dynamic stil don't work) (thanks John Maddock) + + * using/iostream : included using/istream and using/ostream + + * dll_main.cpp : force_link() fix to prevent numeric_limits static members and + _M_increment/decrement from _tree.c from being optimized out by VC++ + (thanks Sofus Mortensen, Alberto Barbati ) + + * _alloc.c : added CHECK_NULL_ALLOC for _STLP_CHUNK_ALLOC with malloc, to throw exception if malloc returns 0 (thanks ghunt) + + * stl_bc.h, : fixed Borland C++ import of unexpected handler stuff + + * stl_ibm.h, etc. : fixes for IBM VisualAge 5.02 to compile + + * type_traits.h : bool2type<> changed to be parameterized on int, to work around SUN CC bugs (probably others, too) + +The following changes were made in 4.5 beta 7 since 4.1 beta 6 : + + * sparc_atomic.s : file missing from the distribution restored + + * etc/ subdirectory created; miscellanous files moved there + + * STLport ported to BeOs, complete with iostreams (thanks John Maddock) + + * Macro _STLP_NO_SGI_IOSTREAMS renamed to _STLP_NO_OWN_IOSTREAMS, old references to SGI removed; + + * "prepare" target added to all makefiles in src/; should be run before using STLport; + on most platforms it's empty, on some of them it creates necessary symbolic links, etc. + + * stl/_deque.h : deque<>::erase bug (introduced in 4.1b4) fixed (thanks to BruceFlorman) + : default parameter in constructor bug fixed (Thanks to Alex Vanic) + + * stl_msvc.h : explicit template function agruments enabled for VC++; + + * stl_wince.h : added inclusion + + * stl/_limits.h : numeric_limits::digits changed from 0 to 1 (Thanks Mukesh Kapoor) + + * stl/_function_base.h : added __identity_element() (extension name), _numeric.h : this one used instead of identity_element() (Thanks Hafeez) + + * stl_msvc.h : explicit template function agruments enabled for VC++; + + use_facet<> now fully conforms to the standard with VC++. (Thanks Jeff Kohn for the input) + + * fstream.cpp : LARGE_INTEGER used to work around Intel shift instruction bug (thanks Thomas Meischner) + * fstream.cpp : ULL macro fixed for Win32 + * fstream.cpp : Added test for for INVALID_HANDLE_VALUE and NULL base and _M_view_id, + for _M_close on Win32 (Thanks Stephen Baker) + * fstream.cpp : Fixed corner case with mmap() on EOF (Thanks Jens Maurer) + + * _istream.c : fixed _M_read_buffered sssso that it does not skip delimiters (Thanks Gerd Hoeren) + + * stl/_string.h : operator __std_string() uses constructor with a size to correctly initialize string containing null chars (Thanks Armin) + + * iomanip : added operator for setfill object and istream (was ostream only) (Thanks Mukesh Kapoor) + + * stl/_locale.h , stl_intel.h : fixes for Intel 5.0 compiler (Thanks Anton and Marcello Pietrobon) + + * stl_solaris.h : added _STLP_NO_NATIVE_WIDE_FUNCTIONS + + * New makefiles added for Intel C++ 5.0 and VC++ 6.0 in src/, test/eh, test/regression (Thanks to Marcello Pietrobon) + + * _STLP_NO_LONG_DOUBLE case handled for STLport iostreams as well (thanks John Daniel) + + * SUN CC compiler template cache is being properly cleaned up (Thanks Whitney Kew) + + * dll_main.cpp : added extern "C" around DllMain() (Thanks Danny Smith) + + * type_traits.h : added bool parameter to shut up warnings on some compilers (Thanks glassman) + + * stl/_rope.h/.c, src/mrcpp.mak, src/mrc.mak, stl/_tree.h : MPW & MRC fixes by Tsutomu Yoshida + + * stl_gcc.h : added path for et al for gcc-2.95.3 on FreeBSD (Thanks to + + * _tree.h /_tree.c : pointers used as return values instead of iterators for implementation + functions, for efficiency. + + * _algo.h/.c : added leading underscrore to some symbols (Thanks to Ed James-Beckerman for the report) + + * dll_main.cpp : fixed nothrow object initialization (Thanks to Dan Ingold) + + * beta suffix in common_macros.mak updated (thanks to Whitney Kew) + + * c_locale_win32.c : incomple fix for locale completed (thanks to Alberto Barbati) + + * c_locale.h : _Locale_ALPHA definition for VC++ and mingw32 fixed (thanks Danny Smith) + + * _threads.h : fixed _DECTHREADS block to work on both DEC and HP + + * _hash_set.h : fixed typo in MSVC++ bug workaround ( Thanks to Jon_Hanson for the report) + + * stlport/strstream.h : fixed inclusion for MSVC 6 (Thanks Joachim Achtzehnter) + + * _config.h : _STLP_RETHROW changed to avoid warnings with NO_EXCEPTIONS (thanks Richmond) + + * _hashtable.c : prime list definition made consistent (thanks Rainer Schnitker) + + * stl_hpacc.h : _STLP_FORCE_ALLOCATORS workaround used for Version 3.15 also (thanks Rainer Schnitker) + + * stl/_string_io.c : fixed using directive in operator >>() (thanks Rainer Schnitker) + + * debug/_deque.h : a check in erase() fixed (thanks Andreas Malzahn) + + * debug/_list.h : added remove() to do iterator invalidation; range erase() fixed to do invalidation + + * stl_watcom.h : added switches; disabled own iosterams by default; + enabled ->() operator for iterators (thanks Steven Green) + + * : added throw spec for what(); stl_sgi.h : made _STLP_NO_EXCEPTIONS depend on __EXCEPTIONS macro (Thanks Anton Ephanov) + + * _string_io.c : operator << : fixed width() interpretation bug + + * stl_hpacc.h/cmath : fixed HP aCC settings for -AA option (thanks Doug Gilbert) + + + +The following changes were made in 4.1 beta 6 since 4.1 beta 5 : + + * _istream.h, _ostream.h, _ios.h, _fstream.h : guard macros fixed to not clash with .h files in "stlport" directory + Also all uses of those macros fixed. (thanks to Gerd Hoeren for the report) + + * _debug.c/_debug.h : fixed swap() for rb_tree and list (thanks to Gerd Hoeren for the report) + swap() changed not to invalidate any iterators, as prescribed by the standard + + * forced _REENTRANT to be defined when compiling with STLport iostreams and _STLP_DEBUG + (without _STLP_DEBUG it seems to be binary compatible even without that) + + * facets_byname.cpp source introduced to replace all xx_byname.cpp files; + restored separate facets .cpp complilation (they used to be included in locale_impl.cpp) + + * introduced _STLP_USE_PERTHREAD_ALLOC to optionally use per-thread allocator + (_Pthread_alloc from _pthread_alloc.h) as the deafult node allocator. Only works with pthreads for now. + + * Switches _STLP_DONT_REDEFINE_STD and _STLP_WHOLE_VENOR_STD are back (thanks to Anton Ephanov for the report) + + * _vector.h : fixed bug in template version of insert (Thanks to Yotam Medini for the report) + + * monetary.cpp : unneded hack for cygwin removed (thanks to Dean Sturtevant) + + * : fixed _STLP_OUTERMOST_HEADER_ID macro + + * cin/cout/cerr redefined if no namespaces and SGI iostreams are used, for all compilers, just in case. + * _sparc_atomic.h : fixed and improved atomic ops for gcc + + * test/regression : non-backward-compatible old-style __STL_xx macros use changed to _STLP_xx + + * config/st_gcc.h : disabled non-standard "extern" use for non-DLL templates + + * mingw32 - used 'windows.h replacement' section in _threads.h (thanks to Danny Smith) + + * locale Win32 bug fixed (thanks to Alberto Balbarti) + + * mingw32 : _STLP_CONST_INIT_BUG defined for dll (thanks to Danny Smith) + + * "make clean" glitches fixed (thanks to Whitney Kew for the report) + + * _fstream.c : fixed codecvt bug for variable width encoding + + * _STLP_ABORT macro introduced to avoid clashes with third-party sw redefining abort() (thanks to Jerry) + + * c_locale_win32 : fixed parse bug in __ParseLocaleString (thanks to Danny Smith) + + * extra declspecs removed from templates to fix VC++ 7.0 ; only concrete classes have specifiers (thanks to Holger Stasch for the report) + + * stl_msvc.h, _hashtable.h/.c : fixes for IA64 compilation (thanks to Rainer Schnitker ) + + * fixed bugs in "make install" on Unix (thanks to Carlos Paniago) + + * dll_main.cpp : DisableThreadLibraryCalls used for optimization (thanks to Alberto Barbati) + + * dll_main.cpp : a dummy function added to force guts for static VC++ link (thanks to Alberto Barbati) + + * gcc-linux.mak : flags fixed (thanks to Levente Farkas ) + + * stl_msvc.h, stl_intel.h : fixed __ICL version test (thanks to Serge Pashkov) + + * versioning schema changed on Windows to have .dll extension (thanks everybody for the feedback) + + * NetBSD makefiles fixed + + * A bunch of fixes by Tsutomu Yoshida : MPW fixes plus : + * stl/_config.h : I believe the definition for _STLP_STD under debug/non-debug configurations swapped. + + * typeinfo.h : added check for _STLP_NO_NEW_HEADER for using declaration. + Otherwise three classes will not be included in the namespace std when #include . + + * _istream.c : use of bind2nd (which required _function.h inclusion) changed to use alternate functor (thanks to Sergei Nikolaev) + + * stl_msvc.h : removed erroneous _STLP_USE_TEMPLATE_EXPORT setting which caused major code bloat for native streams builds on VC++ (Thanks to Johannes Brunen for the report) + + * _string_io.c : fixed Intel C++ compilation bug in native streams mode + + * fstream.cpp : added write-sharing for fstream file handle (Thanks to Leland Best) + + * stl_gcc.h : disabled wide function imports for linux (some xx_POSIX macro should be really used; disabled for all linuxes for now). Thanks everybody for the reports. + + * KAI C++ 4.0 is now supported on SUN + + * MAC OS X compilation fixed (thanks Patrick Luby for the patch) + + * HP aCC fixes by Michael Tsirkin + + * "INF/NAN" string representation for uppercase changed to "Inf/NaN" to behave like printf() on most systems. + + * debug/_iterator.c : fixed SUN 6.0 compiler internal error + + * typeinfo.h : global scope used to import bad_cast, etc. (thanks to Val Melamed) + + * debug/_list.h : missing template versions of remove_if(), merge() added. Missing regular sort() added. + (Thanks to dgehri) + + * debug/_slist.h : missing sort() (template and regular) interface added + + * _istream.h : eliminated warning about comparison with unsigned (Thanks to Gerd Hoeren for the report) + + * template constructors for containers changed to be one version with default allocator agrument, where possible. + + * remaining _STL_ prefixes changed to _STLP_ + + * Solaris 7 compilation fixed + + * fstream.cpp : seek() allowed to seek past the end of the stream (Thanks to Phillip Toland for the input) +The following changes were made in 4.1 beta 5 since 4.1 beta 4 : + + * All internal macros changed to have prefix _STLP_ instead of __STL or __STLPORT or __SGI_STL. + That is to allow seamless wrapping on platforms that use SGI STL as native STL/iostreams. + For backward compatibility, most of user-settable __STL_xxx macros are accepted. + + * Versioning of shared libraries made UNIX-compliant + + + * Some temporary lifetime problems in SGI iostreams which may introduce memory corruption, fixed. + + * : fixed memory leak bug due to unclever macro expansion in __stl_new (thanks to Joachim Achtzehnter) + + * stl/_tree.h : fixed several bugs in new code for corner cases in insert_equal()/insert_unique() with a hint + (thanks to Micheal Tsirkin for the report and patch) + + * _vector.h:284 : __copy call fixed to be __copy_aux (thanks to Alex Vanic) + + * _config.h : fixed static build bug due to __STL_EXPOSE_GLOBALS_IMPLEMENTATION typo (thanks to Serge Pashkov) + + * fstream.cpp: __pioinfo definition for mingw32 fixed (Thanks to Danny Smith) + + * *.SUNWCCh files changed to regular files; moved to "stlport" directory + + * pthread_alloc : split into / + + * lightweight atomic ops used on SPARC v8plus and v9 (gcc and SUN CC) + + * Mac OS X support introduced (thanks to Patrick Luby) + + * SGI iostreams ported to DJGPP (thanks to Tanes Sriviroolchai) + + * SGI iostreams ported to NetBSD (thanks to Michael Rauch) + + * FreeBSD build fixed, now builds for wchar_t too + + * DEC CXX build fixed; restricted to dynamic lib only + + * SGI MIPSpro build fixed; GNU make has to be used + + * Set of HP fixes by Michael Tsirkin + + * Set of Watcom fixes by Ricardo Gayozo + + * Bunch of Apple MRC/MPW fixes by Tsutomu Yoshida integrated + + * Bunch of iostream fixes for Cygwin, Borland and Intel 4.5, by Serge Pashkov + + * debug/_list.h : added checking versions of pop_back/pop_front (thanks to Per Liboriussen) + + * src/c_locale_win32.c : fix for VC5sp3 (thanks to Petr Ovtchenkov), fix for day of week order (thanks to Danny Smith), + fix for null-termination in my_ltoa (thanks to Serge Pashkov) + + * Some warnings in debug mode fixed (thanks to Marco) + + * type_traits.h : IsP functions return types changed to be more portable (thanks to Serge Pashkov for the suggestion), + __cdecl added for Win (thanks to Todd Wilson) + + * debug/_tree.h : added owner check for erase() (thanks to Alberto Barbati) + + * stl/_ostream.h : << operator specializations added for compilers w/o partial ordering + (thanks to Alberto Barbati for pointing this out). + + * "make install" on UNIX : fixed the target not to remove lib directory; + default installdir restored to be /usr/local (thanks to Jeff de Vries for the input) + + * _construct.h : extra cast for __STL_SHRED_BYTE removed (thanks to khesin) + + * _relops.h header obsoleted; some extra includes removed + + * __STL_STATIC_CONST_INIT_BUG use normalized; now it's used for all compilers not able + to treat const members as coplile-time constants; enum used for them (e.g VC++). + Thanks to Dean Sturtevant and Gavin Collins for the ideas. + + * stlport/cmath : fixed SUN CC 5.0 compatibility mode bug (thanks to ade for the report) + + * debug/_hashtable.h : fixed equal_range() bug (thanks to decraft for the report) + + * streambuf.cpp/_streambuf.h : fixes xsgetn() bug (thanks to Vadim Egorov) + + * istreambuf_iterator<> : nonconforming behaviour fixed (thanks to Tom Widmer) + + * _num_put.c : fixed corner case for 0x8000000 output. + + * num_get<> : extra get() and do_get() members for "int" and "short" removed; istream operators changed accordingly + + * _itreambuf_iterator.h/_ostreambuf_iterator.h introduced to decouple those from num_get/num_put + + * gcc makefiles in src : "-fno-implement-inlines" removed + + * Added workaround for gcc's limits.h and SUN Ultra with -mcpu=ultrasparc in 32-bit mode. + + * ios_base:: type for constants made "int" for all compilers, as it more efficient and perfectly compliant. + + * debug/_hashtable.h : fixed typo in swap() ( thanks to Gerd Hoeren for the report) + + * debug/_string.h : +() operators defined unconditionally ( thanks to Gerd Hoeren for the report) + + * _istream.c : removed dependancy on _function.h (thanks to Kenny Simpson for the report) + + * _limits.c : fixed little-endian representation of infinity & NaN (thanks to Rene van Oostrum) + + * _stdio_file.h : fixed postdecr macro for 64-bit Solaris (thanks to Jim Cole) + + +The following changes were made in 4.1 beta 4 since 4.1 beta 3 : + + * Simulation of class partial specialization (thanks to Mat Marcus and Jesse Jones of Adobe) + used to provide following enhancements : + + - type_traits are automatically specialized for all pointer types for all compilers, + which makes them able to utilize type_traits-based optimizations when dealing with pointer types, + automatically. + + - all functions specialized for pointers and optimized via __type_traits + ( like copy()/copy_backward(), _uninitialized_xx) now enjoy this optimization for all compilers! + + - generic __value_type()/__difference_type()/__iterator_category() are written so user does not have + to supply any of its own even when partial specialization is not available. + (Note : gcc-2.7 and VC++ 5.x, 6.x have bugs which prevents them from using this enhancement, still) + + * : by default, non-standard iterator query names like + value_type()/difference_type()/iterator_category() are not used + + * : major revision: + - algorithms without explicit Compare() function expressed via the one that has it where possible. + This considerably reduces header size and reduces code bloat for programs which use both flavours of + those algorithms. + - some function bodies moved between .c and .h + - all functions used internally moved out to _algobase.h, so no other header includes <_algo.h> anymore + - find() specialized for random access iterators regardless of partial spec. + + * Dynamic libraries (.DLL and .so) : name versioning used to prevent clashes between STLport versions + + * src/ : code regrouped between .cpp files to provide for less executable size with dumb linkers; + + * locale subsystem initialization : startup changed to use statically allocated structures as much as possible; + + * : basic stuff moved to _function_base.h ; + other STL headers now include _function_base.h instead + + * _threads.h : MT support for OS/2 added (only tested with VAC++) + + * _stdio_file.h : added support for Solaris in ELF64 mode (thanks to Holger Stasch) + + * stl/_hashtable.h : [] operator for hash_map optimized to take no more than find() when element is present + (Thanks to Thomas Witt et al.) + + * _ostream.h : fix for default unsigned char (thanks to Holger Stasch) + + * all __STL_ABBREVS abbreviations moved aside in _abbrevs.h header. + + * Fujitsu C++ Compiler support added (thanks to Holger Stasch) + + * Initial SGI iostreams port to OS/390 introduced (thanks to Holger Stasch). + + * More on SGI iostreams port to xlC 5.0 (thanks to Holger Stasch). + + * Fixes for SGI MIPSpro compilers (Thanks to Ralph) + + * Fixes for HP aCC compiler (Thanks to Michael Tsirkin) + + * stlport/SC5 directory : removed C library .h files to fix circular inclusion problem with WS6.0 + C programs. + + * hash_map::swap() in debug mode fixed (thanks to Anton) + + * __STL_COMPILE_INSTANTIATE hack for DEC removed (thanks to Ralph) + + * __STL_INLINE_STRING_LITERAL_BUG defined for HP aCC ( thanks to Jason Taylor) + + * _bitset.h - member workaround operators made const (thanks to dzwick) + + * _bitset.h/.c, hashtable.h -- small bugfixes (thanks to Levente Farkas) + + * - now includes exception.h if only that is available. + + * vector::assign() inplemented for vector::iterator when member templates are not available (Thanks to dzwick) + + * fstream.cpp : __pioinfo used for MinGW32 (thanks to Danny Smith) + +The following changes were made in 4.1 beta 3 since 4.1 beta 2 : + + * list<>::clear() : protected access bug fixed + + * __STL_MUTEX_INITIALIZER set back to PTHREAD_MUTEX_INITIALIZER for pthreads case, + as some platforms (eg AIX) do not treat zero-initialized mutex as valid one (thanks to Alex Vanic, Jack Andrews for help) + + * stl/_limits.c : fixed typo preventing numeric limits constants to be defined for __STL_LITTLE_ENDIAN, + constants initialization fixed (thanks to Ingo Donasch) + + * real implementation of locales for Win32 contributed by Anton Lapach (thanks !) merged in. + + * stl_user_config.h, _config.h : changed default to not define relops:: operators + in __STL_NO_NAMESPACES mode. + + * _numeric_facets.c/num_put.cpp : printing of integer do not use sprintf() anymore + + * "install" target implemented for UNIX & VC++ Makefiles. It now installs headers and libraries. + + * "src" : files merged to get less compilation time and less space overhead for imperfect compilers + + * "debug" flavour of STLport excluded from default build and auto-select ; + please use __STL_USE_DEBUG_LIB and build debug STLport lib explicitly with "make debug_dynamic" + if you really need it). "all" now builds 2 kinds : "release" and "STLdebug", for static and dynamic builds. + + * stlport_prefix.h : WIN32_LEAN_AND_MEAN set for Win32 build of STLport library, for speed. + + * FreeBSD compile fixed; makefiles added. + + * All "__init" changed to "_Init" to fix clashes with DEC conventions (thanks to Holger Stasch) + + * _range_errors.h -- fixed to always set __STL_EXTERN_RANGE_ERRORS for SGI iostreams (thanks to Serge Pashkov) + + * *gcc* mak : some files renamed to gcc-platform mak + + * "extern template" extension used for gcc & standard i/o classes, to reduce code bloat in application's .o + + * "extern template" extension used for VC++ & standard i/o classes (was for DLL only) + + * _iterator.h : added template(and non-template) assignment operator for reverse_iterator<> (thanks to psw). Obsolete HP-style code moved to _iterator_old.h + + * _alloc.h : obsolete code for raw SGI allocators support moved to separate header, for compile-time improvement + + * More iostreams code conditionally moved out for clients who only use standard i/o and can set __STL_NO_CUSTOM_IO flag + + * , : initialization of locale subsystem made independent of standard streams. + sync_with_stdio call before iostream initialization now works. + + * , : added initialization code for locale , same as in + (thanks to George Trojan for the report) + + * fstream.cpp : fixed resource leak in case memory map fails on Win32 (thanks to Mark Laffoon) + + * , : added additonal overload signatures required by chapter 26.5 of ANSI (thanks to Levente Farkas for + the suggestion), plus "long long" flavour where applicable. + + * __STL_LONG_LONG generalized to support __int64 on Win32 (thanks to Adam Gates for the suggestion) + + * _fstream.h : added constructor from file descriptor, as extension (thanks to eric_a_benson) + + * _fstream.h : added basic_filebuf<>::fd() file descriptor accessor, as extension (thanks to George Trojan) + + * stl_sunpro.h : strstream masked for CC 4.2 to avoid virtual table clash (thanks to Ken) + + * stl_msvc.h : member templates allowed for VC5, it's capable of hadling most of them (same restrictions as VC6 -- inline). + + * debug/_debug.c : slightly changed format of debug message to please VC++ IDE (thanks for Bruce Dawson for the suggestion) + + * src/sgi_mipspro.mak added, for SGI MIPSPro compilation + + * merged series of HP/SUN minor fixes by Petr Ovtchenkov + + * merged series of Intel 4.5 fixes by Serge + + * vc_common.mak : -Yd dropped, as obsolete (thanks to psw) + + * _range_errors.h:95 : unused argument removed (thanks to George Trojan) + + * _string_io.h : refined _WRTLING workaround for Watcom (thanks to Serge Pashkov) + + * _threads.h : fixed SGI threads dafines for gcc on IRIX (thanks to Brett Denner for the report) + + * , : mutually-exclusive machanism added to allow including both in same unit. + + * Inclusion of SGI iostreams headers put to some order; _streambuf_iterator.h file introduced to resolve circular dependancies + +The following changes were made in 4.1 beta 2 since 4.1 beta 1 : + + * _algobase.h : fixed __STL_DECLARE_COPY_TRIVIAL definition + (thanks to Charles Burfoot for the report) + + * _algobase.h : added copy_backward specializations for builtin types for compilers w/o partial spec. + + * _char_traits.h : fixed zero-length check for copy (thanks to Michael Tsirkin) + + * msvc_warnings_off.h : fixed "and" typo + (thanks to Charles Burfoot for the report) + + * num_put_float.cpp : fixed rounding for "g" format (thanks to Bernd Mohr for the report) + + * Initial port of iostreams to xlC 5.0 added (thanks to Jack Andrews) + + * stl_sunpro.h : a fix for Forte config (Thanks to Alex Vanic for the report) + + * old_hp/iterator.h : fixed iterator_category()/etc. import + + * _threads.h : __stl_atomic_t used instead of "unsigned long" (thanks to Alex Vanic for the report) + * using/iomanip : old-streams path used for native iomanip.h (thanks to Michael Tsirkin for the report). + + * _bitset.h , _bitset.c : direct STL_THROW replaced with __stl_throw_xxx calls (thanks to Michael Tsirkin for the report) + + * range_errors.h/cpp : added functions to support throwing of overflow_error and invalid_argument + + * _threads.h : enganced HP-specific guards for HP-UX 11 (thanks to Matthew Collins for the report) + + * _string.h : compare() bugfix (thanks to Anton Sergeev) + + * moneypunct_byname_w.cpp : rolled back wrong bugfix (thanks to Ken) + + * _vector.h, _deque.h, _list.h : nonstandard versions of push_back()/push_front() + moved under __STL_NO_ANACHRONISMS guard (thanks to Ed Brey) + + * _tree.c, _list.c, _slist.c, _debug.c : compile-time improvements + + * _tree.h/c, _list.h/c, _slist.h/c, _vector.h/c, _string.h/c : using directive for data members + changed to explicit "this->". + + * _complex.h : signatures of some methods changed to take value_type instead of const value_type&, + for better conformance (thanks to Petr Ovtchenkov) + + * Bunch of fixes to compile with gcc on HP-UX 10, 11 (thanks to Petr Ovtchenkov) + + * Code duplication for __STL_INLINE_MEMBER_TEMPLATES removed -- corresponding methods are always inlined + + * stl_sunpro.h : fix for "-compat" mode (thanks to Vijay Ramachandran) + + * pthread.h : new wrapper added + + * Added custom prolog/epilog for HP aCC to select kthreads on HP-UX 11 (Thanks to Michael Tsirkin) + + * : fixed throw specification for bad_alloc (has to be inherited) + + * Macro __STL_NATIVE_CPP_RUNTIME_INCLUDE_PATH introduced to specify separate path for , , . + (thanks to Bryan Byrnes) + + * : moved from stlport/stl to stlport directory, for SGI compatibility + +The following changes were made in 4.1 beta 1 since 4.0 : + + * Sun Forte 6.0 C++ configuration provided (thanks to Alexander Vanic for the input) + + * _threads.h/_config.h : added efficient support for atomic operations for + DEC CXX and Watcom (thanks to Ricardo Gayoso for the input). + Macros __STL_ATOMIC_xxx introduced to facilitate this. + + * _tree.h : optimizations to lower number of comparisons (thanks to Craig Powers for the patch) + + * _tree.h, _hashtable.h and clients : added templated find() as an extension (thanks to Michael Tsirkin for the suggestion) + + * _tree.h : changed some inlining for performance optimization + + * __node_alloc:: allocate broken into two functions for better inlining + + * _threads.h : added PTHREAD_MUTEX_INITIALIZER guard for HP workaround + + * stl_bc.h : option set to control alignment and virtual table behaviour to be consistent; + library name adjusted to stlport_bcc55_xxx + + * _algobase.h, _uninitialized.h, char_traits.h -- optimized out empty memcpy() calls + (thanks to Michael Tsirkin for the report). + + * _iterator.h : fixed reverse_iterator::operator+(int, reverse_iterator) resolution + (thanks to Anton Sergeev for the input) + + * _bitset.h : bitset<>::test bugfix (thanks to Anton Sergeev for the patch) + + * complex_trig.cpp : use of __STL_NO_LONG_DOUBLE made consistent, fixes for Borland on Linux + (thanks to John Wiegley for the input) + + * moneypunct_byname_w.cpp : bugfixes for string copying (thanks to Anton Sergeev for the input) + + * Watcom-specific fixes (thanks to Ricardo Gayoso for the input) + + * src/common_macros.mak : some intermediate targets added (thanks to Jeremy for the suggestion) + + * _debug.c : fixes for Win CE (thanks to John Hynes for the patch) + + * Intel CC 4.0-specific fixes (thanks to Sean Cavanaugh for the input) + + * _list.c : workaround for Watcom C++ (thanks to Mike Steed for the report) + + * __STL_NO_NATIVE_WIDE_STREAMS definition fixed (thanks to Glen Summers for the patch) + + * cast macros fixed to be more robust (thanks to Geoff Oakham for the report) + + * "strstream.h" native inclusion for VC 6.0 fixed (thanks to Sathish T C for the report) + + * debug/_string.h : improvement to string with __STL_DEBUG w/o member templates + (thanks to Paul Furnanz for the report) + + * debug/_string.h : fixed internal compiler error for VC++ 5.x (thanks to chvetsov for the report) + + * cstdio, stl/_streambuf.h : fixes to allow gcc compilation with -ansi flag + + * workaround for cin/cout renaming on HPUX11 for -D_REENTRANT (thankf to Jeff Sparkes for the report) + + * cin/cout/cerr/clog renaming in STLport for CC 4.0 and SGI iostreams, + to avoid symbol clashes with native ones (thanks to Dirk Schreib for the report) + + * type_info scope fixes for VC++ 6.0 (thanks to Sathish T C for the report) + + * typeinfo.h using fixes (thanks to Glen Summers for the input) + + * stlcomp.h : fixes to allow compilation of .c modules with VAC++, Sun CC, DEC CC, Watcom CC + (thanks to Dmitry A.Steklenev, Jonathan Richardson for the report) + + * debug/_tree.h : fixed insert_unique() bug (thanks to Ben Liblit for the report) + + * regression/gcc.mak made non-dependant on "." in the path + (thanks to Thomas Matelich for the report) + + * hmset1.cpp fixed to compile under OS390 ( thanks to Andrey Khovanskiy for the report) +