2007-10-21 Francois Dumont * src/allocators.cpp: Add missing const_cast in lock free allocator implementation when _STLP_LEAKS_PEDANTIC is defined. Thanks trungantran on forum. 2007-10-07 Francois Dumont * STLport 5.1.4 released based on revision 3219. STLport-5.1.4 tag created. * stlport/stl/_stlport_version.h, build/lib/Makefile.inc: Patch version bump to 5 to prepare next potential patch release. 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. 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-12-06 Francois Dumont * STLport 5.1.0 released based on STLPORT_5_1 branch revision 2750. 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; [bug in gcc 4.1.2-svn, compiler under development]. 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++ ! Add 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)