* 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)
* _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, <cmath> : corrected _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS for VC++ 6.0 SP5
* 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 <limits> 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 <typeinfo>.
* _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)
(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)
* <iterator> : by default, non-standard iterator query names like
value_type()/difference_type()/iterator_category() are not used
* <algo> : 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;
* <stl/_function.h> : 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)
* <exception> - 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
* <iostream>, <locale> : initialization of locale subsystem made independent of standard streams.
sync_with_stdio call before iostream initialization now works.
* <fstream>, <fstream.h> : added initialization code for locale , same as in <locale>
(thanks to George Trojan for the report)
* fstream.cpp : fixed resource leak in case memory map fails on Win32 (thanks to Mark Laffoon)
* <cmath>, <cstdlib> : 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 Ovchenkov
* 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)
* <typeinfo.h>, <typeinfo> : 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 :