blob: 44a7ea46e15677e57d18d701993b988021714f68 [file] [log] [blame]
2008-12-10 Petr Ovtchenkov <complement@users.sourceforge.net>
* Repository: STLport release 5.2.1
2008-12-03 Petr Ovtchenkov <complement@users.sourceforge.net>
* build: HP-UX/ia64 with aC++ compiler; verified on HP-UX 11.23
and 11.31 with aC++ A.06.17; [4 of 436 tests, 4 ignored (2 explicit),
and 4 of 360 tests, 2 ignored]; submitted by Boris Gubenko.
2008-11-27 Petr Ovtchenkov <complement@users.sourceforge.net>
* build: EVC9 (Visual Studio 2008) by Johan Andersson.
2008-11-19 Petr Ovtchenkov <complement@users.sourceforge.net>
* Repository: STLport release 5.2.0
2008-08-26 Petr Ovtchenkov <complement@users.sourceforge.net>
* Repository: branch for STLport 5.2, r3618
2008-07-21 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/type_traits: decay, conditional, ebable_if added.
2008-07-18 Francois Dumont <dums@users.sourceforge.net>
* configure.bat: Specifying the compiler is now mandatory and
must be first.
2008-07-17 Francois Dumont <dums@users.sourceforge.net>
* stlport/stdlib.h, cstdlib: Fix errno workaround for gcc MinGW.
Latest gcc version (4.3.0) includes stdlib.h in cstdlib using
include_next so skipping workaround in STLport stdlib.h. So errno.h
must also be included from cstdlib.
2008-07-17 Petr Ovtchenkov <complement@users.sourceforge.net>
src/details/fstream_unistd.cpp: fix bug #2001222, opening with
ios_base::app should rewind write pointer to the end of the file;
fix treatment of ios_base::ate (it should rewind pointer
to the end of the file once) and ios_base::app (offset will be set
to the end of the file prior to each write); references ---
http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2691.pdf
27.8.1.4; http://www.opengroup.org/onlinepubs/7990989775/xsh/fopen.html;
http://www.opengroup.org/onlinepubs/7990989775/xsh/open.html
test/unit/fstream_test.cpp: add sample with fopen as reference point.
2008-07-14 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/gmake: Build system updated for gcc under Cygwin,
MinGW. Under Cygwin, with or without -mno-cygwin option, STLport
is now a full replacement for libstdc++, building an application
with it do not require -lsupc++ anymore as it is completely
integrated in STLport. Under MinGW it didn't work resulting in a
crash when starting an application using STLport so -lsupc++ is
necessary both when linking STLport _and_ when linking the
application using it.
2008-07-10 Francois Dumont <dums@users.sourceforge.net>
* src/num_put_float.cpp: Use an union based technique to find out
the sign of floating point values. It will maybe replace use of
platform specific functions in a future version.
* src/stdio_streambuf.cpp, test/unit/iostream_test.cpp: Change
behavior of stdio_istreambuf implementation that now always return 0 on
showmanyc call. Returning -1 means that reading attempt will
necessarily fail which is not the case, 0 is prefered as it means that
we don't know. It is also similar to other std implementations like
libstdc++.
2008-07-02 Francois Dumont <dums@users.sourceforge.net>
* configure.bat: After a very interesting debate the consesus
is to put configure scripts in root folder.
* stlport/stl/_string_sum_methods.h: Bug report #2003308,
compilation error with _STLP_USE_TEMPLATE_EXPRESSION.
Regression due to remove of POD type support in basic_string
implementation.
2008-06-26 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_fstream.c: Consider read file failure in
_M_underflow_aux method to avoid infinite looping on some
platforms. Thanks Pawel Sikora.
2008-06-26 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/Makefiles/gmake/unix/rules-install-so.mak: do
install-headers tags when make install or install-release-shared.
2008-06-24 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/gmake: Cygwin/MinGW upgrade, now build
without referencing libstdc++.
* stlport/stl/_threads.h: Move definition of __stl_atomic_t next
to definition of atomic operations to guaranty coherency.
2008-06-18 Francois Dumont <dums@users.sourceforge.net>
* build: configure.bat moved to build folder. lib/Makefile,
test/unit/Makefile removed from SVN, now generated by configure
scripts. Under GNU make use include rather than link to
reference the right make file, link seems not supported by
Cygwin/MinGW make. Remove default value of STLPORT_DIR,
already set in internal make files and moreover the absolute
path generated in the script leads to trouble under Cygwin/MinGW.
* src/num_get_float.cpp: Use an union to generate double value
from 64 bits int to avoid gcc type-punned pointer warning.
2008-06-16 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/test/unit/gcc.mak: pass runtime pathes as absolute;
removed LDSEARCH macro, use LDFLAGS instead;
* Makefile: clean in test/unit too.
2008-06-13 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_iterator_base.h: Add a funny feature, when
using both STLport and native STLs it was not possible
to use std iterators in STLport containers because of the
missing iterator category that is defined in std:: and
not in stlport::. So now STLport map std iterator categories
in stlport ones. Now it is possible to write something like
that:
std::string stdstr("std");
stlport::string stlportstr("stlport and ");
stlportstr.append(stdstr.begin(), stdstr.end());
However the other side is not supported except when STLport
iterators are simply pointers.
2008-06-05 Francois Dumont <dums@users.sourceforge.net>
* src/num_get_float.cpp: Remove useless skip of white
space at begining of buffer in _Stl_string_to_double function.
__read_float, the function that generate that buffer do not
put white space at the first place.
* stlport/stl/_new.h, _range_errors.c: Remove unused
_STLP_RTTI_BUG macro. Moreover __stl_new was not correctly
implemented with this macro, there was no check for failed
allocation.
* test/unit/limits_test.cpp: Remove code supposed to hide
numeric_limits::max value to MSVC 8 compiler, this code was
introducing a test regression. If it is producing a warning
a #pragma warning should be use to hide it.
* test/unit/num_put_get_test.cpp: Add test showing problem
with code that used to be in limits test. Those tests will be
activated for 5.3 to check that there is really nothing wrong
with it.
2008-06-07 Petr Ovtchenkov <complement@users.sourceforge.net>
* configure: don't duplicate options in config.mak, that
has default values in makefiles.
2008-06-06 Petr Ovtchenkov <complement@users.sourceforge.net>
* configure: put it on common place for ./configure;
* build/Makefiles/gmake/targetdirs.mak: use $(DESTDIR)
as in common practice (change root of installation, but
don't change run paths);
* build: by default use make for gcc;
* Makefile: top makefile for common project task;
* build/Makefiles/gmake/depend.mak: fix options for ctags
and etags;
* configure, build/Makefiles/gmake/top.mak: take into account
extra flags for linker.
2008-06-05 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_function_adaptors.h: Fix instantiation of
unary_function and binary_function as base type of _Mem_fun0_ref,
_Mem_fun1_ref, _Const_mem_fun0_ref, _Const_mem_fun1_ref,
_Void_mem_fun0_ref, _Void_mem_fun1_ref, _Void_const_mem_fun0_ref,
_Void_const_mem_fun1_ref. Those classes are use as a workaround for
compiler missing class partial template specialization or that don't
support return of void. Instantiation is now done without reference
qualifier as specified by the Standard and as done in the
implementation used when workaround is not necessary.
2008-06-03 Francois Dumont <dums@users.sourceforge.net>
* src/ios.cpp, stlport/stl/_complex.c, _ios.c, _ios.h, _ios_base.h,
_istream.c, _num_get.c, _num_put.c: Remove invalid cached facet
pointers in ios_base class. This class can be used in a char or
wchar_t instantiation context making cast to ctype<char> or
ctype<wchar_t> invalid resulting in an application crashed. The
only safe access to facet instances from a ios_base instance is through
the use_facet<Facet>(getloc()) function. Only _M_cached_ctype has been
kept in basic_ios class even if small bench hasn't show real
enhancement compared to using use_facet.
* stlport/stl/_time_facets.c: In addition to above modifications
time_get implementation has been simplified as localized info are
now stored as wchar_t for wide char instantiation. We do not need
to use ctype.widen method anymore.
* test/unit/time_facets_test.cpp: Add test for time_get wchar_t
instantiation.
* test/unit/cppunit/cppunit_mini.h: Fix report of ignored/explicit
tests.
2008-05-27 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_alloc.h: Code simplification, clean up null
pointer checks as allocators should never return it but rather
throw a bad_alloc exception.
2008-05-27 Francois Dumont <dums@users.sourceforge.net>
* test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix
counting of failed test, won't report more failures than tests
anymore. Now also report explicit tests.
2008-05-15 Francois Dumont <dums@users.sourceforge.net>
* src/allocators.cpp, locale_catalog.cpp, num_put_float.cpp:
Use static method returning static instance to mutex rather than
direct access to a static mutex instance to control initialization
order of static variables thanks Peter Hrenka report.
2008-04-26 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_function.h, type_traits.h: Adoption of Defect Report 109
Missing binders for non-const sequence elements.
* test/unit/bind_test.cpp: Test for DR above.
2008-05-11 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_string.c: from formal (ISO/IEC 14882:2003) point of view
string s; string::size_type p = s.find( "", 0, 0 ); should return 0 in p,
i.e. position out-of-bound of string; people near Standard commete has
opinion that Standard correct in this point and not require clarification
(opposite to my opinion); even if it looks like bogus behavior for me,
it fixed to conform standard; see bugreport #1872656;
* test/unit/string_test.cpp: test for issue above.
2008-05-10 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_istream.c, stlport/stl/_ostream.h: ISO/IEC 14882:2003
(and 1998 too) assume change as get as put positions with
seekg and seekp (27.6.1.3, par 38; 27.6.2.4 par 2), but this
contradict to common practice and proposed draft N2588
(27.6.1.3, par 41; 27.6.2.5, par 4); now STLport implement
(i.e. change present behavior) the draft's point of view;
this reflect patch #1650657 by Jan Echternach;
* test/unit/sstream_test.cpp: test for issue above.
2008-04-26 Francois Dumont <dums@users.sourceforge.net>
* Patches #1940126, #1941267, #1941814 from Johan Andersson for evc8
Pocket PC support and build of tests without warnings.
2008-04-24 Francois Dumont <dums@users.sourceforge.net>
* Patch 1937823 from Johan Andersson to add Microsoft Visual
Studio 2008 support.
* stlport/stl/_algobase.h: Patch 1935497 from Andrey Semashev to
apply a common optimization in STLport algos for random access
iterators to fill and fill_n algos.
2008-04-23 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/num_put.cpp: remove ambiguity of char to int conversion
(comparison with integers, check for negative value); remove
ambiguity with postfix increment in index in conditional
expression.
2008-04-22 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/Makefiles/gmake/gcc.mak, build/lib/configure: take
into account CFLAGS, EXTRA_CFLAGS, because of C compiler in use too.
2008-04-17 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_string.h: Remove support for non POD type in basic_string
implementation.
2008-04-08 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/Makefiles/gmake/lib/gcc.mak: try to create $(PRE_OUTPUT_DIR) before
run lipo; impact only MacOS;
* build/Makefiles/gmake/sysid.mak: uname -m on MacOS return
power-macintosh, but identify architechture as ppc.
2008-03-28 Francois Dumont <dums@users.sourceforge.net>
* stlport/assert.h: Bug #1894882: Apply a technique similar to the
one used in errno.h to detect when assert has been defined before
including assert.h.
2008-03-21 Francois Dumont <dums@users.sourceforge.net>
* Patch 1876529 from Johan Andersson to add support for VS 2005
bundled Pocket PC 2003 SDK.
2008-03-18 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_string.c: derived from patch #1914475, wrong
replace for selfreferencing string; thanks Farid Zaripov;
* test/unit/string_test.cpp: test for problem above.
2008-03-17 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_stdexcept_base.h, _stdexcept_base.c,
type_manips.h, src/num_put_float.cpp,
test/unit/num_put_get_test.cpp: Borland patch from Eric Sanford.
No need for a __Named_exception workaround anymore. Force
floating point control word when testing special floating point
operations. Change implementation _Copyable and add a workaround
to correctly render long double max value that is consider as
equal to double max value.
2008-03-10 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles: Normalization of --with-static-rtl and
--with-dynamic-rtl extended to configure script for Borland
and DMC compilers.
2008-03-08 Francois Dumont <dums@users.sourceforge.net>
* test/unit/cppunit/cppunit_mini.h: New mini cppunit framework
feature, the explicit tests that have to be explicitly tested
thanks to the -t option to run.
* test/unit/unordered_test.cpp: benchmark1 and benchmark2 tests
are now explicit.
* stlport/stl/_stdexcept_base.h, _stdexcept_base.c:
__Named_exception that contains dynamically allocated memory
require a copy constructor and assignment operator. Thanks bug
report #1908626 from Ilya Dogadaev.
* build/Makefiles: Normalized some configure options:
--without-thread, --without-rtti, --with-lib-motif.
2008-03-06 Francois Dumont <dums@users.sourceforge.net>
* Fix rtti management:
- no rtti support do not imply no type_info struct definition.
- #error message in typeinfo to signal missing rtti support
has been removed.
- locale implementation do not use typeid anymore to enhance
runtime_error message thrown by combine message when we cannot
find the combined facet. It was introducing an annoying dependency
making use of the lib without rtti support impossible.
2008-03-05 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_range_errors.h: Signal function responsible
for throwing excepions as not returning to the DMC compiler.
2008-03-03 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/gmake: Eric Sanford patch to make generation
of debug symbols optional when using Borland compiler to build
unit tests.
* stlport/stl/config: Normalization of verbose mode used to get
feedback about build context when using STLport.
_STLP_VERBOSE_AUTO_LINK has been renamed in _STLP_VERBOSE and
report additional information like rtti, exception support,
mono/multi threaded, static/dynamic library.
* stlport/stl/_check_config.h: Unused, removed.
* stlport/typeinfo: Report use of this header when there is no
RTTI support, only when we can detect it of course.
2008-02-29 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/gmake: Several modif for Digital Mars support.
* stlport/stl/_function_base.h: Hide protected constructor not
supported by Borland compiler.
* stlport/stl/config/_bc.h: Now detect Rtti support.
2008-02-28 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/Makefiles/gmake/gcc.mak: use more convenient option
-dumpversion to detect compiler's revision; check that
-fuse-cxa-atexit really required; remove -fident option;
* build/Makefiles/gmake/targetdirs.mak: take into account DESTDIR;
* build/lib/configure: write DESTDIR as prefix for installation pathes;
* stlport/type_traits: type traits, close to JTC1/SC22/WG21
C++ 0x working draft
[http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2521.pdf]
2008-02-26 Francois Dumont <dums@users.sourceforge.net>
* Rationalization in detection of real localization implementation.
_STLP_REAL_LOCALE_IMPLEMENTED removed, the whole detection mecanism
is now in c_locale.h/c_locale.c and is based on API specific macros.
For the moment real localization is used for windows platforms
(_STLP_WIN32 except Windows CE) and when Glibc 2.2 or newer with
GNU extensions (_GNU_SOURCE) is detected.
2008-02-25 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/type_traits.h: Generalize technique used by Borland
compiler to detect pointer types const or volatile qualified and
avoid trivial copy in this case.
* Eric Sanford patch for Borland compiler for Linux.
2008-02-22 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/c_locale.h, src/c_locale.h,
c_locale_win32/c_locale_win32.c, c_wlocale_win32.c: Major code
simplification. Definition of _Locale_UPPER, _Locale_LOWER, etc...
used to be platform dependant requiring a lot of macro checks and
additionnaly exposing STLport to wrong definitions. When for
instance _Locale_PRINT was defined as
_Locale_UPPER|_Locale_LOWER|..., marking a character as printable
was also making it a upper and lower character!
In fact those masks have to be platform specific only when
STLport directly expose platform masks which is only the case when
using GlibC. So now those mask are hard coded in STLport using
values defined in the C++ Standard 22.2.1. Under Windows the
localisation implementation has been adapted to map Win32 mask values
to the STLport ones. A number of now useless workaround has been
removed.
* src/c_locale_dummy/c_locale_dummy.c, ctype.cpp,
test/unit/ctype_facets_test.cpp: Removed the hard coded table of
character types that was duplicating the one in src/ctype.cpp. Now
a table is build during library initialisation using C functions
isspace, isalpha... Doing so and adding a test in
LocaleTest::ctype_by_name will show if STLport and the C runtime
agree on character classification.
2008-02-20 Francois Dumont <dums@users.sourceforge.net>
* src/allocators.cpp: Change management of _S_heap_size, now bit
translation is done on the value used to increment it rather than
when using _S_heap_size. Thanks to this modif, when _S_heap_size is only a 32
bits value it won't roll before 16Go has been allocated. Thanks to
an additional unsigned cast the effect won't be notice before 32 Go
are allocated.
2008-02-19 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_dummy/c_locale_dummy.c: Fix implementation of
_WLocale_toupper/_WLocale_tolower, call to respectively
towupper/towlower was inverted.
* src/allocators.cpp: __stlp_chunk_malloc/__stlp_chunck_free
renamed respectively in __stlp_new_chunk/__stlp_delete_chunck as
those functions behavior are closer to the new operator behavior
rather than to malloc. __stlp_new_chunk implementation fixed, it
was using _STLP_CHECK_NULL_ALLOC reserved to check allocations
performed through new operator. Fix code to correctly take into account
bad_alloc exceptions.
2008-02-18 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_algobase.h: Removed namespace specification on
swap invocation in iter_swap implemenation because it was breaking
template function resolution for gcc. Whether this is a gcc bug
or simply correct Standard C++ is not clear yet so namespace has
been removed independant of compiler in use.
* stlport/stl/_alloc.h, _new.h, src/locale.cpp, locale_impl.cp:
Generalize use of _STLP_THROW_BAD_ALLOC macro to throw the
bad_alloc exception. Definition of this macro is now in _new.h
header.
* stlport/stl/_valarray.h: Use __stl_new rather than malloc to get
exception management without additional code. It also gives users
a Standard way to detect memory starvation through the new handler.
2008-02-16 Francois Dumont <dums@users.sourceforge.net>
* Removed anachronous and unmaintained raw SGI allocator mode.
2008-02-15 Francois Dumont <dums@users.sourceforge.net>
* src/details/fstream_win32io.cpp: Fix wrong use of Win32 API.
SetFilePointer do not take SEEK_CUR macro but FILE_CURRENT.
* src/allocators.cpp, stlport/stl/_alloc.h, _alloc_old.h,
_construct.h, _new.h, _pthread_alloc.h, _rope.h, config/_evc.h,
features.h: Code cleanup; __THROW_BAD_ALLOC normalized in
_STLP_THROW_BAD_ALLOC; _STLP_NEW, _STLP_PLACEMENT_NEW and
_STLP_BROKEN_BAD_ALLOC_CLASS macros removed.
2008-02-14 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_glibc/c_locale_glibc2.c: Manualy handle the "C" locale
to guaranty consistency with the default "C" facet implementations in
the lib.
* * test/unit/time_facets_test.cpp, num_facets_test.cpp,
monetary_facets_test.cpp, ctype_facets_test.cpp: Enhance tests by using
a third way of generating locale instance from names.
2008-02-13 Francois Dumont <dums@users.sourceforge.net>
* src/fstream_impl.h, details/fstream_win32io.cpp,
fstream_unitstd.cpp, fstream_stdio.cpp, stdio_streambuf.cpp: __stdin_size
function revomed making fstream_impl.h useless.
2008-02-12 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/type_manips.h, type_traits.h: Borland patch from Eric
Sanford to fix regressions introduced with recent modifications of
some helper struct used to detect potential optimizations.
* config/_bc.h, features.h: New configuration, Borland do not support
following syntax:
typename std::iterator_traits<>::value_type. It breaks on association
of typename keyword with namespace specification. As Borland do not
require typename keyword in this case it is now possible avoid it
thanks to the _STLP_NO_TYPENAME_BEFORE_NAMESPACE macro.
* stlport/stl/_limits.c: Borland, like gcc 4, prefer additional brackets
in initialization of struct associated to computation of numeric limits
values.
2008-02-01 Francois Dumont <dums@users.sourceforge.net>
* General code review to look for Standard or internal functions
called with namespace scope in order to avoid ambiguous calls
when compiler implement Argument Dependant Lookup. See ListTest::adl
test case to see what it means.
* stlport/stl/config/features.h: _STLP_PRIV now contains full
namespace path starting at global namespace that is to say
::stlport::priv:: when private namespace is in use and ::stlport::
when it is not. Idem for _STLP_TR1 that now contains ::stlport::tr1::.
* stlport/stl/debug/_string.h: Call to std::distance removed to avoid
reading input iterators before reading their contents. Now all
basic_string::assign methods invalidate all iterators like other
containers.
* stlport/stl/_iterator_base.h: Remove implementation of __value_type
__distance_type and __iterator_category when compiler support partial
template specialization. In this case we directly use iterator_traits,
we do not need those functions. Removed special __distance implementations
use in an anachronous implementation of distance taking an initial value
to start counting. Now this function use __distance functions already
used by the std::distance function. The MSVC _Distance function is also
considered as anachronous.
2008-01-31 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_string.h, test/unit/string_test.cpp: Add swap
implementation when there is no support for template function
partial ordering.
2008-01-30 Francois Dumont <dums@users.sourceforge.net>
* src/fstream_impl.h, details/fstream_stdio.cpp, fstream_unistd.cpp,
fstream_win32io.cpp, stdio_streambuf.h, stdio_streambuf.cpp: Hide
__is_regular_file only used in fsteam implementation specific files.
Rename __file_size in __stdin_size as this function is only used
to get stdin FILE* size. Under Win32 this function now always returns
0 as it looks like Windows do not consider FILE* as allowing
position operations. Move platform specific code from stdio_streambuf
implementation to associated fstream_*.cpp file.
2008-01-29 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/test/unit/gcc.mak: option for run-time path to libstlport
on HP-UX;
* build/Makefiles/gmake/hp-ux/targetsys.mak: HP-UX IA64 use so
as shared object extention, while PA-RISC use sl;
* build/Makefiles/gmake/gcc.mak: use -fno-reorder-blocks for PA-RISC;
* src/cxa.c: use cxa_atexit fix similar to trick on Solaris and FreeBSD;
* src/num_get_float.cpp: stdint.h on HP-UX;
* stlport/wctype.h, stlport/stl/_cwctype.h: HP-UX has problems with
wchars; changes suggested by KBac.
2008-01-28 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_cygwin.h: Cygwin do not define _STLP_USE_GLIBC
anymore, platform API is closer to a Standard C lib than to the Gnu
lib C.
2008-01-26 Francois Dumont <dums@users.sourceforge.net>
* src/fstream_stdio.cpp, fstream_win32io.cpp, fstream_unistd.cpp:
Removed unused uint64.h include and definition of ULL macro.
* src/uin64.h: Removed, _compound_int class defined in it is simply
not used anymore.
* src/_stdio_file.h: Major cleanup, only _FILE_fd is still in use.
* src/locale.cpp, locale_impl.cpp, build/lib/Makefile.inc: Restore
independency between those 2 translation units, code duplication is
very limited. This is a 1st step to make build of STLport easier by
having all sources in src folder buildable.
* src/locale_impl.h, locale_impl.cpp: _copy_Locale_impl removed,
only use to create initial global locale that can simply reference
classic locale incrementing its reference counter by one.
* stlport/stl/_locale.h: Fix locale implementation when MSVC6 workaround
is used. The base class _NoMem_loc do not have to have a virtual
destructor, it only need a protected one. Moreover fix constructor
taking an other locale instance and a facet instance, _M_impl was
not released before being assigned resulting in a memory leak.
* src/fstream_stdio.cpp, fstream_unistd.cpp, fstream_win32io.cpp:
Moved to details sub-folder. Now building STLport means build all
.cpp, .c and optionnaly .rc files from src folder.
2008-01-22 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/test/unit/gcc.mak: check confguration and set
ALL_TAGS before inclusion top.mak, to correctly set
targets for 'all'.
2008-01-21 Francois Dumont <dums@users.sourceforge.net>
* build/test/unit/icl.mak: Add /fp:strict option to build unit tests
as we need strict floating point number operations respect to have
numeric limits to work correctly.
* stlport/stl/config/_intel.h: Looks like ICL since version 9 support
static constant correctly.
* stlport/stl/config/features.h, src/c_locale_win32/c_locale_win32.c:
New macro _STLP_MARK_PARAMETER_AS_UNUSED to offer a compiler specific
way of marking parameters as unused. Default behavior is to cast the
parameter to void*.
* src/c_locale_win32/c_wlocale_win32.c: Fix _WLocale_strxfrm function
implementation thanks Kai Khcyt. Despite taking a pointer to wchar_t*
LCMapStringW writes bytes to it.
* build/Makefiles/gmake/bcc.mak, lib/bcc.mak, app/bcc.mak, stlport/cerrno,
errno.h, stl/type_manips.h, type_traits.h: Borland patch from Eric
Sanford to build Borland libs with GNU make build system.
2008-01-18 Francois Dumont <dums@users.sourceforge.net>
* test/unit/locale_test.cpp, ctype_facets_test.cpp,
money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
test_supported_locale function do not have to be template, might
avoid ICL wring code generation.
* stlport/stl/_function_base.h: Based on an idea from Herb Sutter in
his excellent book "Exceptional C++ Style", derived class destructor
should be protected non virtual or public virtual. unary_function
and binary_function struct are intended to be derived but they
are not polymorphic so destructor should be protected non virtual.
According the book it is even not breaking library Standard conformity
in doing so. What is sure is that it will help users detect bad
code.
2008-01-17 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/debug/_list.h: Remove use of std::distance in STL
safe mode, it is invalid for pure input iterators. Now assign
invalidate all iterators which make the code simpler.
* Remove the difficult to implement and maintain _AreSameUnCVTypes,
doing so has a number of impact on the lib:
- Remove usage of it in debug/_string.h and debug/_deque.h, we
rather use function specialization to detect self reference. In string
implementation it is almost impossible to detect self referencing in
insert and assign method even with use of _AreSameUnCVTypes, so
we systematically creation an intermediate string instance.
- Creation of _AreCopyable helper class to detect when it is safe
to do a memcpy or memmove between 2 types. This class returns false
when any type is volatile qualified or when trying to copy to a const
qualified type.
- Creation of _AreSameTypes only really implemented thanks to partial
template specialization, only used in _IsOkToSwap struct.
* test/unit/copy_test.cpp: Add test showing bug 1806558.
2008-01-17 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/lib/configure: Don't override COMPILER_NAME, if already
defined;
* stlport/stl/config/_prolog.h: remove suspicious comments.
2008-01-15 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/config/_hpux.h: define _POSIX_C_SOURCE 199506;
suggested by KBac, patch #1869229.
2008-01-14 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_string.h, _string.c: Restore code to support non-POD
types in basic_string implementation as specified in basic_string
comments.
* stlport/stl/_limits.c: Use double numeric limits for long double
when sizeof(double) == sizeof(long double).
* stlport/stl/debug/_debug.h, _deque.h, _list.h, _vector.h: Prefer to
use overloading of member method to activate additional check of
23.1.1 table 67 Standard conformity rather than using metaprogrammng
technique.
2008-01-12 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/Makefiles/gmake/lib/gcc.mak: gcc 3.3 has useful
libsupc++, but some builds not; prefer normal situation,
not marginal; see record 2007-10-10;
* build/Makefiles/gmake/gcc.mak: fix reference to _FORCE_CXX macro;
* build/Makefiles/gmake/CC.mak: ditto;
* build/Makefiles/gmake/aCC.mak: ditto;
* build/lib/configure: keep compiler and default compiler --- gcc
is most common defualt and plans to switch to default makefile.
2008-01-11 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_limits.c: Adapt long double numeric limits for
Intel C++ compiler 9 for Windows.
* test/unit/cppunit/test_main.cpp: Add command usage output when
option is not recognise.
* build/lib/configure: Remove specification of COMPILER_NAME default
value gcc. COMPILER_NAME is already set in all root make scripts like
gcc.mak, aCC.mak, dmc.mak ... Doing so forces users to specify their
compiler family using configure script which is redundant.
2008-01-10 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_prolog.h: Remove code duplication by including
_cprolog.h.
* stlport/errno.h, cerrno: Move import of errno from errno.h to
cerrno.
* src/ctype.cpp, facets_byname.cpp, time_facets.cpp,
test/unit/codecvt_test.cpp: Several small modifications to make
Intel C++ compiler happier. Mostly avoid warnings and use
unary_function to avoid some typedef.
2008-01-09 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_uninitialized.h: Fix implementation of
__uninitialized_copy_copy in order to make the function exception
safe. Detected thanks to the EH test suite.
2008-01-08 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_ios_base.h: _S_was_synced renamed in _S_is_synced
because it reflects what the sync state is and not what it was.
* src/iostream.cpp: Use auto_ptr to avoid use of the catch(...)
blocks. Changed management of the _STLP_REDIRECT_STDSTREAMS macro.
cout, cerr and clog streams are not ofstream anymore but classic
ostream instances, only streambuf is a filebuf when the macro is
defined. Improve _S_initialize robustness to exceptions, now
exceptions like bad_alloc are not silently eaten. _S_initialize
guaranty that on exception, Standard streams will be valid, it do
not offer however strong guaranty, global state might still have
been modified. Idem for sync_with_stdio. Moreover this method is
now Standard compliant, it returns the new sync state and not the
old one.
2008-01-07 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_dummy/c_locale_dummy.c: Upgrade to take into account
recent localization Api modifications.
2008-01-04 Francois Dumont <dums@users.sourceforge.net>
* src/fstream_win32.cpp: Change detection of regular file, only reject
handlers identified as folders.
* stlport/stl/_codecvt.h: Add assertion to check buffer ranges pass to
the codecvt facet.
* src/fstream.cpp, stlport/stl/_fstream.c: Complete bug #1854345 fix,
get buffer was not reset at the right place.
* stlport/stl/_fstream.h, _fstream.c: Several modifications in the
seekoff method:
- Remove limitation of positioning to binary file stream, setting
position in a text file stream is not a problem.
- Fix mbstate_t instance returned in the file_pos instance when
getting position in a file stream with variable encoding.
- Move all the sanity check code to the debug mode.
2008-01-02 Francois Dumont <dums@users.sourceforge.net>
* test/unit/fstream_test.cpp: Change FstreamTest::seek test to reveal
bug #1854345.
* src/fstream.cpp: #1854345 bug fixed.
2008-01-01 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_time_facets.h, _time_facets.c, src/time_facet.cpp,
c_locale_glibc/c_locale_glibc2.c: Restore GlibC++ support after
2007-12-27 modifications.
2007-12-29 Francois Dumont <dums@users.sourceforge.net>
* Borland patch from Eric Sanford mainly to enable move constructor.
* stlport/stl/_string_base.h, _string.h, _string.c,
_string_sum_methods.h: Attempt to make string implementation more
clear: _M_allocated renamed in _M_start_of_storage,
_M_Buffers._M_dynamic_buffer renamed in _M_Buffers._M_end_of_storage,
_M_end_block renamed in _M_end_of_storage too. To respect current
naming convention _capacity has been renamed in _M_capacity and
_rest in _M_rest.
* stlport/stl/_string_workaround.h: Updated to take into account recent
modification in string data model.
* etc/autoexp.dat: Updated to take into account string data model
modifications, new model is really simpler to map to.
2007-12-27 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
c_locale_win32/c_locale_win32.c, facets_byname.cpp, time_facets.cpp,
stlport/stl/_codecvt.h, _ctype.h, _numpunct.h, _time_facets.c,
_time_facets.h: Major internal localization API modification. Add
several _WLocale_* functions to allow native support of access to
wide char representation of localization information. The time facet
support has been the most impacted. GlibC based implementation
still have to be updated.
2007-12-23 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/nmake/evc8.mak, targets.mak, src/_stdio_file.h,
fstream_win32io.cpp, iostream.cpp, locale_catalog.cpp: Patch from
Johan Anderson for Evc 3/4/8 to:
- fix the opening console issue on this platform.
- add EVC8 SH4 support.
* test/unit: Add CPPUNIT_FAIL macro to force failure without
using a constant conditional expression. Many tests updated to
use this new macro.
* stlport/stl/config/_evc.h, debug/_debug.h, _debug.c: Patch
from Michael Fink to allow _STLP_DEBUG mode when using WCE ARM
platform.
2007-12-20 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_monetary.c: Remove test of existing space at end of
stream when last pattern field is none because on ouput stream
space are only added optionaly. Small code duplication removed.
* build/lib/configure.bat, evc.mak, msvc.mak, test/unit/evc.mak,
msvc.mak: Config file moved to Makefiles/nmake folder. Add
--without-stlport option to build unit tests without STLport.
* test/unit/money_facets_test.cpp: Add validation that moneypunct
"C" facet is identical to the one contained in locale::classic().
* src/c_locale_dummy/c_locale_dummy.c,
c_locale_win32/c_locale_win32.c, facets_byname.cpp: Fix to have
moneypunct by name facet build from "C" similar to locale::classic()
one. Now default format in _Init_monetary_formats is the C++ default
one.
2007-12-20 Petr Ovtchenkov <complement@users.sourceforge.net>
* test/unit/fstream_test.cpp: test for seek, inspired by Soren
(stsoe, #1854345); report not confirmed.
2007-12-17 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_limits.c: Add brackets on union initialization for gcc
starting with version 4.
2007-12-17 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/config/_linux.h: if not explicitly specified another,
use threads.
2007-12-14 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_win32/c_locale_win32.c: Fix implementation of
_Locale_mbtowc and _Locale_wctomb functions. Reveal limitation of
the MultiByteToWideChar function that cannot be used to implement
more complicated encodings that have a real shift state like the
JIS one. Add support for UTF7 and UTF8 encodings.
* test/unit/codecvt_test.cpp: New test case to check support for
2 encodings, the Windows specific code page 936 and the UTF8 one.
Those tests are coming from chinese test samples proposed by Victor
Xie.
2007-12-14 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_string_base.h, stlport/stl/_string.h, stlport/stl/_string.c:
experimental string buffer---start of buffer in _M_allocated._M_data now,
end of buffer either end of local short buffer, or stored in pointer
within local short buffer; this potentially reduce amount of pointer
arithmetic; prefer Traits::assign to uninitialized fill, it more
optimized for POD types, such as chars [experimental too].
2007-12-13 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
c_locale_win32/c_locale_win32.c: Remove unused _Locale_wctob and
_Locale_btowc localization API functions.
2007-12-13 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/test/unit/gcc.mak, test/unit/...: allow build unit tests
with libstdc++, without STLport; useful for reference and comparison.
2007-12-12 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/Makefiles/gmake/unix/rules-install-so.mak, build/lib/gcc.mak:
install-headers usable; it use user-defined macro HEADERS_BASE
[catalog and all files, keeping directory structure] and HEADERS
[for single files]; target catalog is INSTALL_HDR_DIR, by default
it is ${BASE_INSTALL_DIR}/include.
2007-12-07 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_uninitialized.h: comment unused parameter;
* stlport/stl/_limits.c: 64-bits systems may has [and really has]
size of long double 16, not 12; but IEEE 854 still in force, and
only 10 bytes of long double taken into account. This should fix
limits<long double> on 64-bits systems. Thanks joebishop
[aka Denis Cheremisov] for granted access to 64-bit linux.
2007-12-05 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_glibc/c_locale_glibc2.c: Fix a one byte memory overrun
when passing a very locale name.
* src/c_locale_win32/c_locale_win32.c: Simplified Win32 localization
code. Remove useless calls to strcpy. Remove useless call to the
__Extract_locale_name once in the _Locale_*_create functions as
name has already been extracted at this moment.
2007-12-05 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_glibc/c_locale_glibc2.c: Removed many checks useless
as the C functions are called in a well defined and safe context. Also
remove useless strcpy calls when it is safe to return the internal
string.
2007-12-04 Francois Dumont <dums@users.sourceforge.net>
* Add the _Locale_codecvt localization data structure for 2 purposes:
- in the win32 implementation it simplify _Locale_ctype data structure.
- in the glibc implementation it helps making clear that this
implementation do not support the codecvt facet for the moment.
2007-12-03 Francois Dumont <dums@users.sourceforge.net>
* src/fstream_win32io.cpp: Fix management of Ctrl-Z when reading
text file stream thanks Hector Chu patch.
2007-11-30 Francois Dumont <dums@users.sourceforge.net>
* src/acquire_release.h, facets_byname.cpp, locale.cpp,
locale_impl.cpp, locale_impl.h, messages.cpp, time_facets.cpp:
Localization code modification, now locale instances will adopt
a normalized name rather than the name used to create them. This
way identical locale instances will compare equals even if created
from name aliases like 'french' and 'fr_FR'. Moreover default
locale built from an empty string won't have an empty name.
* test/unit/locale_test.cpp, ctype_facets_test.cpp,
money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
Enhance localization tests, add test of default locale when possible.
Add test for the locale instances built from a mix of the
locale::classic instance and a named category.
2007-11-27 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_ios_base.h, _ios.c: Add qualification on the cached
ctype and numpunct facets, we can keep them as const pointers.
Moreover, prefer to use the use_facet function rather than _M_get_facet
to access those instances to avoid direct reference to the facet::id
static instance.
* Some evolution in the localization code:
- Hide _Locale_name_hint in internal implementation, facets *_byname
constructor are now respecting the C++ Standard signature.
- numpunct facet: Remove unused _M_grouping field, move hard coded
values of the "C" facet in the sources. Only the numpunct_byname<wchar_t>
keeps internal wstring representation of true and false names.
- time facets: Use the non template time_base class for initialization
of the _Time_Info instance, it is more coherent with other facets
implementations. Many functions like __acquire_time and __release_time
are now hidden in the library.
2007-11-26 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/char_traits.h, _stdexcept_base.c: Borland patch
from Eric Sanford, add a missing header and change
__Named_exception implementation because of a Borland compiler
bug.
* src/c_locale_win32/c_locale_win32.c: Add LANG_INVARIANT
definition when SDK are missing it.
2007-11-24 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_monetary.h: Add missing explicit keyword on
money_get and money_put constructors.
* stlport/stl/_numpunct.h: Removed friend relation between
numpunct and num_get, looks like it is useless with current
implementation.
* stlport/stl/config/stl_mycomp.h, features.h, _watcom.h, _sunprocc.h,
_mwerks.h, _msvc.h, _ibm.h, _dec_vms.h, _dec.h, _as400.h: Removed
_STLP_NO_FRIEND_TEMPLATES, _STLP_FRIEND_TEMPLATES macros unused
since fix above regarding numpunct/num_get friend relation.
* test/unit/collate_facets_test.cpp: Fix "C" facet by name test,
Standard do not define any special behavior for the "C" transform
method so transformed result should simply follow the normal transform
behavior.
* src/locale_impl.cpp: Removed useless holes in locale facets table.
Now the table contains 26 non null entries rather than 38 entries with
some begin null.
2007-11-23 Francois Dumont <dums@users.sourceforge.net>
* src/locale.cpp, locale_impl.h, locale_impl.cpp: Some small
modifications to limit necessary friend class _Locale_impl
declaration in several facet classes. Moreover, num_get, num_put,
money_get, money_put facets that do not depend on any name are
not allocated anymore in the functions responsible for generating
facets for a given category.
* stlport/stl/_codecvt.h, _collate.h, _ctype.h, _messages_facets.h,
_monetary.h, _num_get.h, _num_put.h, _numpunct.h, _time_facets.h:
Removed many useless friend class _Locale_impl declarations.
2007-11-23 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/lib/configure: make configuration suitable for installation
procedure and package building.
2007-11-22 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_dummy/c_locale_dummy.c: Now implements the "C" locale
to respect the C++ Standard.
* test/unit/collate_facets_test.cpp: Fix test checking that collate
facet build from the "C" name behave like the one coming from the
locale::classic() locale.
* src/c_locale.h, locale.cpp, c_locale_glibc/c_locale_glibc.c,
c_locale_glic2.c, c_locale_win32/c_locale_win32.c, locale.cpp: Removed
_Locale_compose_name from the STLport internal localization API.
Composition of locale names will now be the responsibility of STLport
itself and not of the platform localization implementations one.
2007-11-20 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_iterator_base.h, _ptrs_specialize.h: Avoid inclusion
of _ptrs_specialize.h while still in stlport namespace scope thanks
Christof Meerwald report.
2007-11-17 Francois Dumont <dums@users.sourceforge.net>
* _STLP_STATIC_MEMBER_DECLSPEC workaround removed. Thanks to
_GetFacetId other workaround it should now be useless. There
are still some tests to confirm especially testing the
gcc visibility feature.
2007-11-16 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_fstream.c: Fix implementation of
basic_filebuf<_CharT, _Traits>::_M_underflow_aux() to take
into consideration already read external buffer even if
reading from file failed. Thanks Hector Chu report and patch.
* test/unit/codecvt_test.cpp: New test for problem above,
CodecvtTest::imbue_while_reading thanks Hector Chu.
* test/unit/fstream_test.cpp: Remove useless
FstreamTest::special_encoding test replaced by new test in
CodecvtTest. Fix FstreamTest::custom_facet test that is now using
a specialization of codecvt rather than a class inheriting from
codecvt.
2007-11-14 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_win32/c_locale_win32.c: Fix to support creation
of locale facet from the 'C' name.
* test/unit/collate_facets_test.cpp, locale_test.cpp,
money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
Add test to check build from names "" or "C", on platform without
real localization support, "" should result in "C". Also check
for some facets that the one build from "C" name is similar to
the one taken from locale::classic() locale.
2007-11-12 Petr Ovtchenkov <complement@users.sourceforge.net>
* test/unit/fstream_test.cpp: testcase for bug #1830513;
__read_unbuffered wrongly process valid streamsize 0;
[was derived from original report of Anton Samokhvalov and Oleg Obolenskiy]
* stlport/stl/_istream.c: fix for bug #1830513 above;
check boundary condition in the beginning of loop.
2007-11-09 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/gmake: Add missing cygming folder comming
from task branch, required for Cygwin/MinGW builds.
* stlport/stl/_bvector.h, _deque.h, _hashtable.h, _list.h,
_rope.h, _slist.h, _string_base.h, _tree.h, _vector.h: Removed
useless instantiation of _Alloc_traits to define nested
allocator_type in several containers. STLport users will simply
have to correctly instantiate containers when they specify
the allocator to use.
2007-10-30 Francois Dumont <dums@users.sourceforge.net>
* etc/autoexp.dat: New file containing description of STLport
data structures in the Visual Studio C++ debugger language.
2007-10-21 Francois Dumont <dums@users.sourceforge.net>
* Merged with STLPORT_5_1 up to revision 3229.
2007-10-20 Francois Dumont <dums@users.sourceforge.net>
* _STLP_NO_MBSTATE_T removed, STLport cannot really live without
any mbstate_t definition. Moreover we were already defining our own
definition when _STLP_NO_MBSTATE_T is defined, we now simply generalize
this behavior. So definition of _STLP_NO_MBSTATE_T has been replaced
with _STLP_NO_NATIVE_MBSTATE_T.
2007-10-14 Francois Dumont <dums@users.sourceforge.net>
* src/bitset.cpp: Add const qualifier on static arrays used in
bitset implementation. Thanks a Andrey Semachev remark.
2007-10-12 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_hash_map.h, _hash_set.h, _unordered_set.h,
_unordered_map.h: Because of the hashtable data model, number
of bucket should not be to high compare to the number of
elements. For this reason, default constructor of all hash
containers is now passing 0 as the initial size rather than 100.
* stlport/stl/_hashtable.h, _hashtable.c: For the same reason exposed
above, the hashtable number of buckets is decrease when removing
elements from the container. All is done in the newly introduce
_M_reduce method that should be called each time elements are
removed.
* test/unit/unordered_test.cpp: Two new test in UnorderedTest test
fixture, benchmark1 and benchmark2. Those tests are rather, as indicated
by their name, bench to compare performance of hashed containers.
It can be used with the -m unit test console option that display
timing of tests. For instance, thanks to the reduction policy exposed
above, benchmark1 is running 20 times faster while benchmark2 is
almost identical.
* stlport/stl/_hashtable.h: Container might now be rehash when user
modified max load factor in order to respect
load_factor() <= max_load_factor() rule. hashtable::resize fixed,
according SGI doc it should behave as Standard unordered_*::rehash that
is to say it gives number of buckets and not number of elements.
* stlport/stl/_hashtable.c: Fix Code warrior workaround that was only
showing a limited number of prime numbers.
2007-10-10 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/Makefiles: merge r2883:3223 from tasks/STLport-Makefiles;
revision of build system, from 'complement' project, adopted for
STLport requirements; support build of static lib and build unit
tests with this lib; gmake-specific files moved into gmake catalog;
top.mak (gmake-specific) moved into gmake catalog; add include
option for boost's headers, if STLP_BUILD_BOOST_PATH defined;
config.mak has make-dependent features, so it moved to gmake or
nmake catalog; settings from gmake/windows/sysid.mak should
be present in common gmake/sysid.mak file; gcc 3.3 has bad or
absent libsupc++, at least in debian; don't use -lstlport, when
build it; removed windows platform support that used to represent
the environment given by the cmd shell with MinGW additional commands
i.e. MinGW require not only gmake, but other POSIX file utils too;
install target by default install to /usr/local/lib on POSIX-like
platforms; added distclean target; added install-headers target;
* build/test/unit: top.mak (gmake-specific) moved into gmake catalog;
* build/test/unit/gcc.mak: see just build stlport libs, not
installation path [default install path is /usr/local/lib on POSIX-like
platforms].
2007-10-07 Francois Dumont <dums@users.sourceforge.net>
* 5.1.4 released, trunk merged with STLPORT_5_1 branch up to
revision 3221.
2007-10-04 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_codecvt.h, _fstream.c, src/codecvt.cpp: Fix non
Standard conformity in codecvt::length and associated
codecvt::do_length methods. Those methods was taking const reference
to mbstate_t but the Standard specify that it must be a simple
reference.
* src/facets_byname.cpp: Add a real implementation of
codecvt<wchar_t, char, mbstate_t>::do_length based on the
_Locale_mbtowc locale API function.
* test/unit/codecvt_test.cpp: Add a test for codecvt::length.
* test/unit/fstream_test.cpp: Add a test that indirectly test
codecvt facet and integration of it in the basic_filebuf
implementation.
2007-10-02 Francois Dumont <dums@users.sourceforge.net>
* test/unit/deque_test.cpp, hash_test.cpp, list_test.cpp, map_test.cpp,
set_test.cpp, slist_test.cpp, unordered_test.cpp, vector_test.cpp:
Allow test on incomplete types even when pointer specialization is
activated as long as partial template specialization is supported.
* stlport/stl/_fstream.c, src/facets_byname.cpp,
test/unit/codecvt_test.cpp:
Fixed codecvt_byname<wchar_t, char, mbstate_t>::do_in and do_out
methods. They now both correctly take into account to_end pointer.
Thanks Vistor (finalvistory) report on sourceforge Developer forum.
2007-09-28 Francois Dumont <dums@users.sourceforge.net>
* src/num_put_float.cpp: Modification in _Stl_ecvtR and _Stl_fcvtR
long double overloads, if value can be converted to double without
precision loss we can rely on the double overload. Moreover _Stl_fcvtR
has been fixed.
* stlport/stl/pointer/_tools.h: Use class partial specialization to
enhance usability of the container pointer specialization feature.
Thanks to it, container can be instanciated with incomplete types.
Modification based on bug report 1799048 from Andrey Semashev.
* trunk merged with STLPORT_5_1 up to revision 3211.
2007-09-27 Francois Dumont <dums@users.sourceforge.net>
* src: Modification in the internal localization API.
_Locale_errno removed, now an int pointer is passed to all
_Locale_*_create and all _Locale_extract_*_name functions so
that they can return an error code. This method avoid multithreaded
issues.
* src/locale_catalog.cpp: Modification in __acquire_category
function. If create_obj return null, the null pointer is not
stored anymore in cached as creation failure reason might be
temporary like in case of memory starvation.
* stlport/stl/_locale.h: Error reporting enhancement. In combine
method we use a typeid call to report the unknown facet type. In other
situation we report both the facet category being built and the name
used to build it.
* test/unit/locale_test.cpp, collate_facets_test.cpp,
messages_facet_test.cpp, money_facets_test.cpp, num_facets_test.cpp,
time_facets_test.cpp: Add checks for construction of facets from
very long facet name.
2007-09-27 Petr Ovtchenkov <complement@users.sourceforge.net>
* test/unit/find_test.cpp: array initialization missed.
2007-09-19 Francois Dumont <dums@users.sourceforge.net>
* trunk merged with STLPORT_5_1 up to revision 3193.
2007-09-11 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_algobase.c: keep check for symmetry in
lexicographical compare---algorithm assume symmetry comparator;
remove check for symmetrical comparator in search and find,
due to double checks not better then single (the same check
done in algorithm, and algorithm not require symmetrical
comparator);
* stlport/stl/debug/_hashtable.h: idem;
* stlport/stl/debug/_tree.h: idem;
* stlport/stl/debug/_debug.h: __symetrical_strict_weak_call
and __symetrical_equal_call not used anyware.
2007-09-10 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_algo.c: Add check for symetrical functor
in max_element and min_element algo.
* stlport/stl/_algobase.c: Restore symetrical functor checks.
Sometimes simply because the algo was already considering the
functor as symetrical as in lexicographical_compare. Sometimes
using specific helpers functions (see below).
* stlport/stl/debug/_debug.h: Add __symetrical_strict_weak_call
and __symetrical_equal_call helper functions to check for
symetric functors only when invocating the symetrical functor
is valid that is to say when both parameters are of the same
type.
* stlport/stl/debug/_hashtable.h: Make use of
__symetrical_equal_call to check that equivalence functor used
in hashtable instanciation is correctly implemented.
* stlport/stl/debug/_tree.h: Make use of
__symetrical_strict_weak_call to check that functor predicate
use in tree instanciation is correctly implemented.
2007-09-10 Petr Ovtchenkov <complement@users.sourceforge.net>
* 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.
2007-09-09 Petr Ovtchenkov <complement@users.sourceforge.net>
* 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.
2007-09-07 Petr Ovtchenkov <complement@users.sourceforge.net>
* test/unit/alg_test.cpp: add #include <string>, required for
comparator symmetry test;
* test/unit/string_test.cpp: test for bug in find_last_of,
bug #1788700, submitted by Bred Bored.
2007-09-05 Petr Ovtchenkov <complement@users.sourceforge.net>
* 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-03 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/dll_main.cpp, stlport/stl/debug/_debug.c: removed
macro _STLP_STATIC_TEMPLATE_DATA, __PUT_STATIC_DATA_MEMBERS_HERE,
_STLP_NO_STATIC_TEMPLATE_DATA; only few old compilers
require this and are good enough to work with STL;
* test/eh/test_rope.cpp, stlport/stl/_num_get.c: idem;
* stlport/stl/_time_facets.c, stlport/stl/_codecvt.h: idem;
* stlport/stl/_monetary.c, stlport/stl/_num_put.c: idem;
* stlport/stl/_rope.c, stlport/stl/_rope.h: idem;
* stlport/stl/config/user_config.h: idem;
* stlport/stl/config/stl_mycomp.h: idem;
* stlport/stl/config/_gcc.h: idem;
* stlport/stl/_threads.c: idem.
2007-09-02 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_algobase.c: Small optimization, add an
intermediate __eq function to detect when both iterator types
are identicals. Thanks Jim Xochellis idear.
* stlport/stl/_threads.h, _threads.c: Fully apply modification
of _S_nsec_sleep implementation for Win32 platforms contained
in bug report 1720635 from Taras Overchuck. It is an optimization
of the spin lock mutex specifically targetting the multiprocessor
platforms.
2007-08-29 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_algobase.c, _string.c: Some modification in
__find_first_of_aux2 implementation to reduce number of iterator
dereferencements.
2007-08-26 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/user_config.h, host.h: Moved administrative
_STLP_USE_UNIX_IO, _STLP_USE_STDIO_IO, _STLP_USE_WIN32_IO
macros to host.h.
* Merged with STLPORT_5_1 branch up to revision 3151.
2007-08-23 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/debug/_vector.h: only random access iterators
allow operations 'less-then' and distance; for bidirectional
iterators removed usage of 'less-then', and for others
[like forward and input iterators] removed as usage of 'less-then'
as distance; thanks Oleg Obolenskiy for bug report;
* test/unit/ioiter_test.cpp: test for problem above.
2007-08-18 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/host.h: Removed _STLP_NO_CYGWIN macro
unused since we are using include_next.
2007-08-16 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_gcc.h: Avoid conflict in link model, gcc
visibility for many platforms or dllimport/dllexport for
Cygwin/MinGW.
* build/Makefiles/gmake/gcc.mak: Looks like Cygwin/MinGW won't
support visibility for the moment.
2007-08-15 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/char_traits.h, src/fstream_unistd.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;
* src/fstream_stdio.cpp, src/stdio_streambuf.cpp: ditto;
* 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-08-13 Francois Dumont <dums@users.sourceforge.net>
* test/unit/memory_test.cpp: MSVC6 do not support this test,
ignored.
* stlport/stl/_string.h: Internal _String_reserve_t moved to
private namespace.
* stlport/stl/_algobase.c, _string.c, char_traits.h: Adoption of
the find_first_of trick below in string::find_first_of, find_last_of,
find_first_not_of and find_last_not_of.
2007-08-12 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_algo.h, _algobase.h, _algobase.c: find_first_of
algorithm enhancement based on the Jim Xochellis analysis that you
can find here:
http://www.codeproject.com/vcpp/stl/find_first_of.asp.
* test/unit/alg_test.cpp: Add several tests to challenge the above
enhancement.
2007-08-08 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/feature.h: Removed useless workaround, there
is no more platform using Win32 threading API and missing bool
type.
* src/num_put_float.cpp, num_get_float.cpp: Fixes for DMC, DMC has
real long double so it now uses ieee854_long_double Glibc type. DMC
do not use anymore the sprintf workaround to write floating point
numbers.
* stlport/stl/_auto_ptr.h, test/unit/memory_test.cpp: Fix auto_ptr
implementation, removed a useless const_cast and change a reinterpret_cast
in static_cast. Add support for instanciation with the volatile qualifier.
Thanks Ulrich Eckhardt report.
2007-08-03 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_win32/c_locale_win32.c: Fix some static buffer size
to always have a free place for the trailing zero.
* test/unit/locale_test.cpp: Add a test when passing a very long name
as the LC_CTYPE facet name to the locale constructor.
* src/system_api.h, system_api.c, build/lib/Makefile.inc,
src/num_put_float.cpp: Removed system_api workaround to access
isinfinite, isnan, isinf C functions used with gcc under Hp unix.
Now __format_nan_or_inf has an implementation entirely based on
numeric_limits values that avoids access to platform functions.
2007-07-30 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_facets_fwd.h, _num_put.h, _num_get.h, _monetary.h,
_time_facets.h, _locale.h: Fix _GetFacetId workaround for compilers
like gcc since 3.4 that consider only the context at point on template
definition and not at the point of instantiation when resolving
_GetFacetId calls in has_facet or use_facets template functions.
2007-07-20 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_mbstate_t.h: We have to define mbstate_t ourself
on platforms having mbstate_t in cwchar when we want to only use
C headers.
2007-07-22 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/fstream_unistd.cpp: force use lseek64/mmap64 for HP-UX,
if _LARGEFILE64_SOURCE defined; thanks for Michael Klein.
2007-07-20 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_gcc.h, stl_mycomp.h: Removed unused
_STLP_WEAK_ATTRIBUTE macro.
* stlport/stl/config/_msvc.h, _intel.h, _gcc.h, features.h: Some
cleanup concerning _STLP_STATIC_TEMPLATE_DATA macro.
2007-07-18 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_num_put.h: Removed __string_to_float declarations only
used in a num_get context.
* src/num_get_float.cpp:
- Import Glibc ieee854_long_double union for compilers having a real
long double type but no runtime support to correctly generate it. This
union is used by gcc under Cygwin and MinGW and by Borland compiler.
- _Stl_string_to_long_double removed, it was so similar to
_Stl_string_to_double that everything is done with this function now.
- Removed check on exponent value while parsing it from buffer, check is
only done when combining this value with the digits read.
* src/num_get_float.cpp:
- Generalize synchronization code arround the ecvt/fcvt functions when
the platform do not grant reentrant functions.
- In __format_float_scientific, removed useless rz temporary variable, removed
limitation in the number of appended trailing zeros.
- In __format_float_fixed, removed limitation of number of trailing zeros
added after decimal point, it is only limited by precision.
- __format_float: Code to detect infinity or NaN has been moved before call
to platform specific ecvt/fcvt functions. Thanks to this modification, this
function is not template anymore.
- Add _Stl_ecvt/_Stl_fcvt emulation functions when platform do not grant
the necessary ecvt/fcvt functions for long double. Emulation is based on
sprintf function using 'L' modifier.
- In __write_floatT function, fix size of static buffer used by _Stl_ecvt/fcvt
functions. Fix number of digits in calls to _Stl_fcvt/ecvt in both modes,
fixed or scientific.
* test/unit/num_put_get_test.cpp: Add some tests, somes with a really high
precision that show problem with static buffer size.
2007-07-17 Petr Ovtchenkov <complement@users.sourceforge.net>
* 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 <complement@users.sourceforge.net>
* 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-07-05 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/nmake/vc8.mak: Removed _CRT_SECURE_NO_DEPRECATE
when building STLport. Not secured version of functions _ecvt and
_fcvt functions used for floating point numbers output are not
reentrant.
2007-07-04 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/num_get_float.cpp: reorder code, one condition go away.
2007-07-03 Francois Dumont <dums@users.sourceforge.net>
* src/num_put_float.cpp: _Stl_ecvtR, _Stl_fcvtR, _Stl_qecvtR,
_Stl_qfcvtR functions, pass buffer size as a parameter when the
platform functions need it rather than duplicating the size
definition. This modification has been applied to the DECC platforms
and when the GLibC is in use.
Removed useless islong __format_float_scientific parameter. Removed
useless x __format_float_fixed parameter, islong parameter
replaced with direct specification of the maxfsig value.
In __format_float function, first attempt in detection of NaN or
infinity is done thanks to the std::numeric_limits and compiler
support, _Stl_is_nan_or_inf do not correctly handled long double
values. long double values larger than max double values were always
displayed as Inf.
* src/num_get_float.cpp: Removed useless null buffer checks in
_Stl_atod functions, we know how this function is called. Replaced
some hard coded constant with numeric_limits values. Add check that
there is less than 64 digits before hiding hidden bits in vv.i64, for
long double it was generating wrong long double value.
* test/unit/num_put_get_test.cpp: Add numerous tests to check both
long double input and output.
2007-06-29 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/memory: more forward declarations; fix typo;
* stlport/functional: more tricks to compile with boost
and tr1;
* test/unit/boost_check.cpp: problems trace; set 1 in
appropriate places to check presence of problem, but only
use one case at a time.
2007-06-28 Francois Dumont <dums@users.sourceforge.net>
* src/locale.cpp, locale_impl.h, stlport/stl/_locale.h,
config/features.h: Runtime check system do not fully use the
MSVC6 workaround anymore, it only use the locale workaround,
not the basic_string one.
* src/string.cpp: Fix wrong explicit instanciation.
* test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix
computation of test failure when both CPPUNIT_CHECK and
CPPUNIT_ASSERT are used.
2007-06-28 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/boost_type_traits.h: reread boost/config.h
to force usage of stlport in boost and force read essential
macros from boost/config/suffix.hpp; this is because boost
included within stlport from one side, and stlport included
within boost from another side; this make sense with
_STLP_USE_BOOST_SUPPORT defined in user_config.h;
checked for boost 1.34;
* test/unit/boost_check.cpp, build/test/unit/Makefile.inc:
test for problem above; this simulate problem when boost's
header was included before any stlport's one;
* stlport/stl/config/features.h: remove definition of
BOOST_STDLIB_CONFIG, due to it unconditionally defined
in boost.
* stlport/memory: forward declarations for boost required,
by the same reasons as described above.
2007-06-24 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_function.h, stlport/functional: fix import
of boost::shared_ptr---moved from _function.h to functional;
import mem_fn, bind, bad_function_call, function, swap from
boost to std::tr1.
2007-06-23 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_string.h, _string_workaround.h: Some fix for gcc
that is now expose to the VC6 workaround because of the runtime
check mechanism under MinGW.
2007-06-21 Francois Dumont <dums@users.sourceforge.net>
* test/unit/cstring_test.cpp, limits_test.cpp: Small modif to avoid
MSVC compiler warning in release build.
* stlport/stl/_cwchar.h: Replace a _STLP_MSVC check with a _STLP_MSVC_LIB
check as WCHAR_MIN and WCHAR_MAX macros definition depends on library
and not on compiler.
2007-06-20 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/memory: import shared_ptr from boost to std::tr1 namespace,
if no _STLP_NO_EXTENSIONS and present _STLP_USE_BOOST_SUPPORT;
see ISO/IEC DTR 19768,
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
* test/unit/shared_ptr_test.cpp: test for shared_ptr.
2007-06-19 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/debug/_debug.h, _debug.c: Replace __in_range with
stlp_in_range, __in_range is a macro in the Windows Vista PSDK.
* src/locale.cpp, stlport_prefix.h, warning_disable.h,
stlport/stl/_locale.h, _string.h, config/features.h: Fix some
regression introduce with the improvment of the runtime compatibility
check mecanism.
* src/c_locale_glibc/c_locale_glibc2.c: Fix implementation of
_Locale_strcmp and _Locale_strwcmp functions.
* stlport/stl/_limits.c: Change technique used to generate NaN or
infinity floating point numbers. No more reinterpret_cast of a buffer,
we now use an union based technique. gcc prefer this cleaner method
especially in release mode.
* test/unit/limits_test.cpp: Small test modification as gcc was still
performing some weird optimization in release mode resulting in
unexpected behavior.
2007-06-19 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_function.h: import reference_wrapper from boost to
std::tr1 namespace, if no _STLP_NO_EXTENSIONS and present
_STLP_USE_BOOST_SUPPORT; see ISO/IEC DTR 19768,
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
* test/unit/reference_wrapper_test.cpp: test for reference_wrapper.
2007-06-15 Petr Ovtchenkov <complement@users.sourceforge.net>
* build/test/unit/Makefile.inc: macro_checks.cpp instead of cwchar.cpp.
2007-06-14 Francois Dumont <dums@users.sourceforge.net>
* src/dll_main.cpp, locale.cpp, locale_impl.h, locale_impl.cpp,
stlport/stl/_locale.h, _rope.h, config/_windows.h, features.h:
Enhance the runtime compatibility mecanism used to detect build
inconsistency under Windows. We now use the locale class with the
VC6 workaround coming with it to force a call to the compatibility
check function. Inconsistency detection is activated if _DEBUG
or _STLP_DEBUG is defined. If an inconsistency is detected it is
reported by the linker thanks to an unresolved symbol
building_for_up_to_windows95_but_library_built_for_at_least_windows98
or
building_for_at_least_windows98_but_library_built_for_up_to_windows95
that are self describing.
* test/unit/cwchar.cpp: Renamed in macro_checks.cpp, add many tests for
all C Standard macros like CHAR_MIN, CHAR_MAX, INT_MIN, INT_MAX...
* stlport/stl/_cwchar.h: Add MSVC compilers before Visual Studio 2005
as not defining WCHAR_MAX correctly.
2007-06-11 Francois Dumont <dums@users.sourceforge.net>
* src/lock_free_list.h: Fix check of _WIN32_WINNT rather than _WIN32_WINDOWS.
* stlport/stl/_threads.c: In the Win32 implementation, add a call to
the SwitchToThread function to potentially avoid a costly call to
Sleep(1) that can take more time than expected. If SwitchToThread fail
we call Sleep(1) again. Based on Taras Overchuk bug report 1720635.
2007-06-11 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/fstream.cpp: integration file; code clean, three implementations
sublimated, unix-emulation approach removed; this is reorganization
changeset, functionality was not changed;
* src/fstream_win32io.cpp: win32io-based implementation of _Filebuf_base,
i.e. based on Windows calls CreateFile/CloseHandle/ReadFile/WriteFile +
CreateFileMapping, MapViewOfFile;
* src/fstream_unistd.cpp: unistdio-based implementation of _Filebuf_base,
based on unistd open/close/read/write + mmap;
* src/fstream_stdio.cpp: stdio-based implementation of _Filebuf_base,
based on stdio fopen/flose/fread/fwrite;
* stlport/stl/_fstream.h: detect of _Filebuf_base implementation moved
into stlport/stl/config files;
* stlport/stl/config/*.h: iostreams underline technique depends upon
OE or user's preferences;
* stlport/stl/config/features.h: some system-specific macro moved to
system- or compiler-specific files;
* stlport/stl/_rope.h: rewritten suspicion code, functionality not changed.
2007-06-08 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_complex.h: Clean unused _STLP_NO_COMPLEX_SPECIALIZATIONS
macro and code coming with it.
* build/lib/configure, configure.bat: Removed --windows95 option, it is
useless now that STLport includes windows.h when building the libraries.
* build/Makefiles/gmake/bcc.mak, dmc.mak, gcc.mak, nmake/vc-common.mak:
Removed references to Windows 95 build, if STLport users want to target
a specific Windows OS they will only have to use --extra-cxxflags to
give WINVER, _WIN32_WINDOWS or _WIN32_WINNT values.
2007-06-05 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/features.h: Removed unused _STLP_LDOUBLE_* macros giving
real long double size.
* stlport/stl/_limits.h, _limits.c: Major code upgrade, now computation
of infinity and NaN is done thanks to some code extracted from the boost
library (www.boost.org). This code is more portable as it adapts to compiler
representation of float, double and long double and do not require many
compiler macro checks. Additionaly STLport numeric_limits now handle real
denorm_min values.
* test/unit/limit_test.cpp: Add many test on dernomalized float and
some other values of numeric_limits.
* stlport/stl/config/_cray.h, _gcc.h, _msvc.h, stl_mycomp.h: Removed
_STLP_NO_IEC559_SUPPORT macro, meaning was not clear and impact was
localized to the _limits.h file so use of a global macro was rather
useless.
2007-05-29 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_num_get_.c: Small refactoring, all num_get::do_get for
float, double and long double are now calling the same __do_get_float
function. Moreover, when __read_float failed, __sring_to_float is not
called anymore.
2007-05-28 Francois Dumont <dums@users.sourceforge.net>
* test/unit/limits_test.cpp: Add test checking that numeric_limits
min is really min and max really max.
* src/allocators.cpp, locales.cpp, stlport/stl/_threads.h,
config/_windows.h: Fix detection of Windows OS having limited
implementation of Interlocked[Increment,Decrement] Win32 API
functions. _STLP_WIN95 macro has been rename _STLP_WIN95_LIKE
as it do not only signal Windows 95 build context but also former
OS versions.
2007-05-22 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_win32/c_locale_win32.c: gcc MinGW has no thread
locale storage intrisinc support so for this compiler, locale
creation failure will always be reported with runtime_error
exception.
* stlport/stl/config/_msvc.h: Configuration fix, check that _STLP_MSVC
is defined before activating MSVC6 workaround
(_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro).
2007-05-21 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale.h, locale.cpp, locale_impl.cpp,
c_locale_dummy/c_locale_dummy.c, c_locale_win32/c_locale_win32.c,
c_locale_glic/c_locale_glibc.c, c_locale_glibc2.c: Add a _Locale_errno
function to the small localization framework in order to report more
accurate locale creation failure. For the moment there are 3 possible
failure reasons, no more memory, unsupported locale, no platform support.
In case of memory starvation, we throw a bad_alloc exception.
2007-05-19 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_valarray.h, _valarray.c: Add many assertion checks to
track potential undefined behaviors mostly regarding invalid argument
size.
2007-05-17 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_prolog.h: Hide _debug.h when including C standard
headers. Some platforms (Win32) include C headers in an 'extern "C"'
scope that do not accept templates exposed in _debug.h.
2007-05-16 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_auto_link.h, build/Makefiles/gmake/cygming/lib.mak,
build/Makefiles/nmake/lib/macro.mak: Removed version information
from static libs name for consistency among all supported compilers/
platform.
2007-05-15 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_range_errors.c, _stdexcept_base.c: New files
containing codes that used to be duplicated in dll_main.cpp.
* src/dll_main.cpp: Include _range_errors.c and _stdexcept_base.c
when necessary.
* stlport/stl/_stdexcept_base.h, _stdexcept_base.c: __Names_exception
do not truncate anymore exception message when longer than internal
static buffer, a dynamic buffer is allocated through malloc in this
case. I haven't use __iostring class in this case as it would
have introduce a cyclic dependency between classes.
2007-05-11 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale.h, c_locale_glibc/c_locale_glibc2.c: Some fixes to
avoid gcc warnings when compiled with -Wall -Wmissing_prototypes.
* stlport/stl/_num_put.c: Fix a cast to avoid a signed/unsigned
comparison warning.
* c_locale_glibc/c_locale_glibc2.c: Use __locale_t __names field
rather than __locales to access to category names. Thanks to this
modification we do not need the Glib internal locale_data struct
definition anymore.
* test/unit/fstream_test.cpp: Port the FstreamTest::null_stream for
unixes platforms that use /dev/null, the test is not ignored anymore.
* src/fstream.cpp: Under Windows, check that the file we are
opening is a real file before trying to truncate it or move to
the end. Allow use of special file like "NUL" with C++ fstream.
2007-05-10 Francois Dumont <dums@users.sourceforge.net>
* src/stdio_streambuf.cpp: Add checks of error codes returned
by ftell and fseek functions in stdio_istreambuf::showmanyc
Windows CE special implementation.
* test/unit/fstream_test.cpp: Add new test case to check file streams
built from platform dependent null pipe (NUL under Windows, /dev/null
under unixes). Ignored for the moment.
2007-05-04 Francois Dumont <dums@users.sourceforge.net>
* src/locale.cpp, allocators.cpp, stlport/stl/_threads.h,
config/_windows.h: Change macro checks to detect Windows 95 platform.
Windows 95 and NT4 has both WINVER == 0x0400 but only Windows 95 has
limitation impacting STLport code. Distinction between both platforms
is done thanks to the _WIN32_WINNT macro only defined for NT4. New
_STLP_WIN95 macro signals Windows 95 platform, it replaces
_STLP_WIN32_VERSION. Thanks Jan Echternach patch 1707963.
* src/c_locale_win32/c_locale_win32.c: Remove all code concerning the
messages facet, Windows platform do not support it.
* src/fstream.cpp: Fix use of fseek in _Filebuf_base::_M_seek in
_STLP_USE_STDIO_IO mode. fseek do not return the position in file
but a boolean value indicating if call has succeeded or not, and
call to ftell to get file position. Thanks Marco Jez bug report
1704843. I have also integrated a number of small fixes to use
_STLP_USE_STDIO_IO mode under MSVC or GCC MinGW, it shouldn't be
really nececarry but it costs nothing and help testing this mode.
2007-05-03 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_numpunct.h, _time_facets.h, _ctype.h, _monetary.h,
_messages_facets.h: Remove friend _Locale_extract_hint function
declaration replace by the more simple friend class
_Locale_impl expression.
* src/locale_impl.cpp: Change implementation of
_Locale_impl::insert_*_facets methods. Now only facets used internally
for iostreams implementation are considered as mandatory when
instanciating a locale from a name. Other facets like collate or
messages won't generate a runtime_error exception if the platform is
not able to grant an implementation. This will make STLport more
flexible in regards of platform possibilities.
* stlport/stl/_messages_facets.h, src/facets_byname.cpp, messages.cpp:
Simplification of the messages facet implementation. _Messages class
has no virtual method anymore, _Messages_Impl has been removed. Now
messages class implementation is a dummy implementation that do not
allow access to platform messages, real messages implementation is
available thanks to the messages_byname class.
* stlport/stl/_time_facets.h: _Locale_time instance is not kept
anymore in the facet implementation, it is only used on construction
to initiliaze _Time_Info struct instance.
2007-05-02 Francois Dumont <dums@users.sourceforge.net>
* test/unit/codecvt_test.cpp: Fixed comparison with char_traits::eof
to use eq_int_type in order to be compatible with platform having
a default unsigned char built-in type. Thanks Marco Jez report.
2007-04-19 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_valarray.h: Integrate C++ Standard defect 253
signaling that slice_array, gslice_array, mask_array and
indirect_array copy constructor cannot be private.
* test/unit/valarray_test.cpp: Add compilation test to check that
valarray operator[] taking a slice, gslice, valarray<bool> and
valarray<size_t> can be called.
2007-04-16 Francois Dumont <dums@users.sourceforge.net>
* src/locale.cpp: Simplified locale::_M_throw_runtime_error
implementation using std::string rather than C string functions.
Also change exception message generation to make failure reason
more obvious.
* src/facets_byname.cpp: As, according Standard, *_byname facet
constructor should behave as locale constructor taking a name
STLport now throws a runtime_error instance when building
a facet from a null name.
* src/messages.cpp: Now contains all classes implementation involved
in messages facet support.
* stlport/stl/_messages_facets.h, src/messages_facets.h, messages.cpp:
Simplification of the messages facet implementation. Major modification
is that the C messages facet has now only one representation which is
the one given by the _Message class. There used to be an other one
based on _Messages_impl class using __acquire_messages("C").
* src/messages_facets.h: Internal classes _Messages and _Messages_impl
are not exported anymore.
* test/unit/locale_test.cpp: Facet tests has been moved to facet
category test files.
* test/unit/collate_facets_test.cpp, ctype_facets_test.cpp,
messages_facets_test.cpp, money_facets_test.cpp, num_facets_test.cpp,
time_facets_test.cpp, build/test/unit/Makefile.inc: New test cases for
each facet category.
* stlport/stl/config/features.h: Define _STLP_NO_TYPEINFO when _STLP_NO_RTTI
is defined.
2007-04-15 Francois Dumont <dums@users.sourceforge.net>
* src/dll_main.cpp: Removed useless _Atomic_swap_struct export
that has already been removed from _threads.h and that was generating
compilation error with MSVC 2005.
2007-04-10 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/pointers/_deque.h, _list.h, _set.h, _slist.h:
Eric Sanford DMC patch to allow pointer specialization feature.
* test/unit/map_test.cpp, set_test.cpp, slist_test.cpp,
unordered_test.cpp: Remove DMC check hiding pointer specialization
tests.
* build/Makefiles/gmake/dmc.mak, app/dmc.mak: Additional fixes from
Eric Sanford.
2007-04-09 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_pair.h, _vector.h, config/_bc.h: Borland patch
from Eric Sanford, remove move semantic for free compiler.
* test/unit/mvctor_test.h: Eric Sanford patch to restore 2 tests
that has been lost in a previous test modification,
movable_declaration_assoc and movable_declaration_hash.
* test/unit/mvctor_traits_test.cpp: Add some _STLP_NO_MOVE_SEMANTIC
checks when using __move_traits.
2007-04-05 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_gcc.h: Removed undef of _STLP_NEW_PLATFORM_SDK,
under MinGW, MinGW can use a new SDK and not the one coming with
MinGW.
* Merged with STLPORT_5_1 branch up to revision 2994.
2007-04-05 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/ctype.cpp: move declaration from loop;
* stlport/stl/debug/_debug.c: stl/_cstdlib.h already included;
* stlport/stl/_cprolog.h: prolog for C headers can't include
files with C++ constructions;
* stlport/*.h: C headers use prolog that don't include C++
constructions;
* test/unit/stldbg_include.cpp, build/test/unit/Makefile.inc:
test for problem with inclusion C++ constructions from
C header.
2007-04-04 Francois Dumont <dums@users.sourceforge.net>
* build/lib/configure.bat: Change advise command to build
STLport after configuration, it is now 'clean all' rather
than default build command.
2007-03-22 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale_dummy/c_locale_dummy.c: Fixed dummy definition
for a number of localization functions that are now type safe.
2007-03-20 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_prolog.h, config/features.h, debug/_debug.h:
Normalize the way STLport debug mode macros are defined. All
debug macro definition are now coming from _debug.h and not
anymore partially from features.h. _debug.h is now included from
_prolog.h after all configuration has been completed.
* stlport/stl/_alloc.h, _iterator_base.h, _valarray.h: Removed
_debug.h references now fully integrated in STLport configuration
phase.
* stlport/stl/config/_windows.h: Add some Windows macro before
inclusion of windows.h when building library to limit Windows
pollution (NOMINMAX, STRICT). Moreover add definition of
_STLP_OUTERMOST_HEADER_ID macro before windows.h inclusion to
avoid indirect include of STLport stuff throught C Standard headers
included in windows.h as at this moment STLport is not yet completely
configured.
* stlport/stl/config/_evc.h: Removed unjustified macro definition to
limit inclusion from windows.h, it is a user decision not an STLport one.
* build/Makefiles/nmake/vc8.mak: Fix definition of DEFS in this file
to keep current DEFS value that might exist if configure --extra-cxxflag
option has been used.
* src/allocators.cpp: Add _STLP_NEW_PLATFORM_SDK macro check to
perform necessary const_cast in _STLP_ATOMIC_ADD macro definition.
2007-03-17 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/gmake/bcc.mak, dmc.mak, gcc.mak, nmake/vc-common.mak:
Add WINVER definition when building libraries to signal required OS
compatibility, per default it is Windows 98 and later ones.
* build/lib/configure, configure.bat: Add new configuration option
--windows95 to signal that we want Windows 95 compatibility.
* stlport/stl/_threads.h, config/_windows.h, src/allocators.cpp:
Move _STLP_ATOMIC_ADD macro definition in source files where it is
used.
* stlport/stl/config/_windows.h:
- When building the libraries we always include windows.h, when using
the library we always use own function declaration to avoid windows.h
inclusion.
- InterlockedExchangeAdd is not declared anymore.
- InterlockedExchangePointer is only used when detecting 64 bits
platform thanks to the _WIN64 macro, otherwise InterlockedExchange
is used.
2007-03-15 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/nmake/vc8.mak: Default MSVC 2005 build is now done
without safe string functions for performance reasons.
* stlport/stl/_locale.h, _alloc.h, _rope.h: Moved
_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME invocation where problem
might happen which is in the rope implementation for current use. A future
use will need to guess where this function has to be invoked.
* stlport/stl/config/feature.h: Fixed _STLP_USE_NO_IOSTREAMS check to undef
_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro.
* stlport/stl/config/_windows.h: For performance reason
_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME system is only used in debug
mode (detected thanks to _DEBUG macro).
2007-03-13 Francois Dumont <dums@users.sourceforge.net>
* Merged with STLPORT_5_1 branch revision 2963.
* src/locale_catalog.cpp: Use C cast for C struct like _Locale_ctype,
it makes Borland compiler happier.
* stlport/stl/_string.h: Made inheritance relation between basic_string
and _String_base class public for DMC.
* src/dll_main.cpp, stlport/stl/config/features.h,
stlport/stl/_locale.h, _alloc.h: Add a new mecanism to detect library
build/use inconsisteny at link time.
_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro contains a
function name declared in features.h and defined in dll_main.cpp.
This function name depends on the build context. If, when using the
library, this macro contains an other function name because of a
different configuration context an unresolved symbol will appear at
link time showing the missing function symbol. Function name should
be chosen carefully to make problem as explicit as possible. For the
moment function is called in arbitrary places, in std::use_facet
function and std::allocator constructor.
* stlport/stl/config/_windows.h: Use
_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro to detect
inconsistency when building STLport for Windows 95 and using it
in Windows XP or opposite. Depending on targetted platform,
_Refcount_Base has a different sizeof which lead to undefined
behavior at runtime if we do not use this trick.
2007-03-13 Petr Ovtchenkov <complement@users.sourceforge.net>
* test/unit/string_test.cpp: add test for trivial compare with plain
char array;
* test/unit/exception_test.cpp: add test for what().
2007-03-10 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_windows.h: Major modification, when building
STLport libs windows.h or afx.h, when _STLP_USE_MFC is defined, is
systematically included in order to detect the SDK version used to
the libraries. _windows.h is now the only place is the library where
windows.h is included.
* src/dll_main.cpp, fstream.cpp, lock_free_slist.h,
c_locale_win32/c_locale_win32.c: Removed references to windows.h now
included from _windows.h.
* stlport/stl/_istream.c: Add parenthesis on a use_facet call to make
VC6 happy when building the library.
* test/unit: Disable tests checking instanciation and use of
containers with an incomplete type when pointer specialization is
enable.
* stlport/stl/config/user_config.h: Add comment about limitation
of pointer specialization.
* stlport/stl/_string.h, _string_workaround.h: Now that _STLP_DEBUG
mode do not use inheritance anymore, use private rather than
protected members in basic_string implementation. Only exception
is when using VC6 workaround, this is what _STLP_PRIVATE macro is
for.
* src/allocators.cpp, stlport/stl/config/features.h: Removed
unjustified _STLP_PRIVATE macro.
2007-03-09 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/config/_msvc.h: use MS's safe string functions only
if _CRT_SECURE_NO_DEPRECATE not defined (see bug #1674974).
Thanks Bronek Kozicki.
2007-03-08 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/num_get_float.cpp: experimental support of correct input
of long doubles on Linuxes.
* test/unit/num_put_get_test.cpp: test for correct input of float,
double and long double, including values out of type range.
* stlport/stl/config/_linux.h: mark that Alpha, PowerPC,
32-bit SPARC, 32-bit MIPS, ARM, SH4 has no long double.
2007-03-05 Francois Dumont <dums@users.sourceforge.net>
* Synchronization with STLPORT_5_1 branch revision 2945.
2007-02-19 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl: swap workaround review, now when swap implementation
detect that a STLport class is being swapped it calls the
_M_swap_workaround member method. We do not use the swap method
anymore because the way the workaround is implemented would have
forces us to add a swap method to queue, priority_queue and stack
containers that do not have a swap method according the C++ Standard.
2007-02-15 Francois Dumont <dums@users.sourceforge.net>
* Synchronization with STLPORT_5_1 branch up to revision 2918.
2007-02-13 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/features.h, _msvc.h, stl_mycomp.h: Removed
_STLP_USING_NAMESPACE_BUG macro config. STLport private namespace
is now always nested in stlport one. Makes namespace management
easier.
* stlport/stl/_algobase.h: Restore workaround for compilers
not supporting template function partial ordering feature, was
resulting in regression for a number of compilers, VC6, Borlands.
A template class like _SwapImplemented do not have to be specialized
to be useful, this class is used to detect types having a swap
method. Detection is based on the class being flagged as STLport
class thanks to the __stlport_class inheritance.
* test/unit/swap_test.cpp: Add macro checks to ignore test for
compilers we know not being able to support it.
2007-02-12 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/features.h: Add necessary macro to work
with tr1 namespace of the C++ technical report.
* stlport/stl/_unordered_set.h, _unordered_map.h: Put unordered
containers in tr1 namespace.
* test/unit/unordered_test.cpp, mvctor_test.cpp,
mvctor_declaration_test.cpp: Add necessary using directive
to access tr1 namespace.
2007-02-12 Petr Ovtchenkov <complement@users.sourceforge.net>
* Repository: revert back r2908;
* test/unit/swap_test.cpp: test that swap( a, b ) has specialization
a.swap( b ), when required;
* stlport/stl/_algobase.h: _SwapImplemented useless, because it never
specialized elsewhere---remove swap specialization here, use instead
swap specialization from _relops_cont.h, when required.
2007-02-07 Francois Dumont <dums@users.sourceforge.net>
* locale_impl.cpp, monetary.cpp, num_get.cpp, num_put.cpp,
time_facets.cpp: Moved all _GetFacetId implementations in
the same translation unit as the one where id are initialized.
2007-02-05 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_alloc.h, allocators.cpp: Moved _ALIGN and
_ALIGN_SHIFT constant definition in source file where it is used
_MAX_BYTES is used in deque implementation. Moreover those
constant value now depends on sizeof(void*) to avoid preprocessor
check like _WIN64.
* stlport/stl/_vector.h, _vector.c: Moved __type_traits
instanciations in methods that need it in order to be able to
access nested types like iterator even if type used to instanciate
the vector is not yet completely defined.
* stlport/stl/_deque.h, _deque.c: Removed useless __type_traits
instanciations. For the same reason than above, __buffer_size
constant has been replaced by a function computing deque buffer
size at runtime.
* stlport/stl/_hashtable.h, _hashtable.c: For the same reason than
above, hashtable do not contains anymore an instance of the _ExK type
which is used to extract the key part from a value instance. This
instance was not returned in any method of the hashtable type. An
unused constructor taking an instance of this type has been removed.
* test/unit/vector_test.cpp, deque_test.cpp, list_test.cpp,
slist_test.cpp, map_test.cpp, set_test.cpp, hash_test.cpp,
unordered_test.cpp: Add compilation tests to check that the container
iterator nested type is accessible even if type used to instanciate
the container is not yet completely defined.
2007-02-02 Francois Dumont <dums@users.sourceforge.net>
* src/c_locale.h: Add type information for the following functions
of the localization support API:
- _Locale_*_create
- _Locale_*_destroy
- _Locale_*_name
Also add some variable name to make associated documentation more
explicit.
* src/c_locale_win32/c_locale_win32.c,
src/c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c: Adapted to
conform to new localization API functions prototypes. Adaptation
in glibc before 2.2 has been updated but compilation hasn't been
completed because of the lack of the glibc required version.
* src/locale_catalog.cpp: Now wrapper functions are used to
offer a homogeneous prototype to type safe localization API
functions.
2007-02-02 Petr Ovtchenkov <complement@users.sourceforge.net>
* test/unit/hash_test.cpp: add test for hash_multimap, equivalent
keys problem on some data sets [this is regression test, suggested
by tef for 5.0.2, bug report #1606308].
2007-01-29 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/debug/_deque.h: typename required.
* test/unit/sstream_test.cpp: test for seekp added.
2007-01-28 Francois Dumont <dums@users.sourceforge.net>
* build/Makefiles/gmake: Borland patch from Eric Sanford to install
.tds file for Borland debugger.
* trunk synchronized with STLPORT_5_1 branch up to revision 2895.
* stlport/stl/_threads.h: Changed way of including headers for
_STLP_UITHREADS platform. We now include internal STLport headers
rather than Standard ones. It was especially important for Sun
Studio compiler that natively include Standard headers only once.
2007-01-25 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/facets_byname.cpp: we search within scope, specified by mask,
so _Locale_wchar_ctype return can't be beyond of this mask.
* src/c_locale_glibc/c_locale_glibc2.c: _Locale_wchar_ctype
implemented.
* test/unit/locale_test.cpp: test for ctype facet for wchar_t added.
2007-01-23 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_locale.h: Introduction of the _GetFacetId function
to isolate access to facet id instance in one place. It guaranty that
the facet id instances initialized in _Stl_loc_assign_ids function
are the same as the ones used by streams to format output. Many compilers
have problem with template class static variable and duplicate them
arround the different shared library depending on STLport.
* stlport/stl/_monetary.h, _num_get.h, _num_put.h, _time_facets.h:
Add _GetFacetId overloads for money_get, money_put, num_get, num_put,
time_get, time_put facets that are exposed as template facets. Other
facets are fully specialized template classes whose id should be
correctly handle by compilers like for any static variable in a non
template class.
* src/monetary.cpp, num_get.cpp, num_put.cpp, time_facets.cpp: Add
_GetFacetId implementation.
* stlport/stl/_collate.h: Use _GetFacetId in __locale_do_operator_call
implementation, not required but more consistent.
* stlport/stl/_monetary.c, _num_put.c, _num_get.c, _time_facets.c,
src/locale_impl.cpp: Removed now useless gcc Cygwin or MinGW and
Borland workarounds.
* test/unit/locale_test.cpp: Removed facet_id test case, facet id
indexes are STLport internal stuff that shouldn't be part of a unit
test. Wrong facet id management will be shown by other tests. Moreover
this test was failing for compilers duplicating template class
static instances.
2007-01-20 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_cmath.h, _cstdlib.h, config/_watcom.h: Small
evolution for Open Watcom support.
* Synchronization of trunk from STLPORT_5_1 branch from revision
2750 to revision 2871.
* stlport/stl/config/features.h, _gcc.h, _intel.h, _msvc.h, _sgi.h:
Major exception policy modification, _STLP_NOTHROW default value
is now throw() when exception support is activated. Compilers not
supporting is should define this macro as empty. Configuration files
of compilers already managing this feature have been updated.
2007-01-19 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/config/host.h: define one of __SunOS_5_x macro
for gcc (during installation?) on Solaris; note, that Solaris
system may has patch with MATH_F and MATH_L functions.
* stlport/stl/config/_solaris.h: reminder for __SunOS_5_x
macro definition for gcc; turn on/off MATH_F/MATH_L functions
present: see beacon that depends upon Solaris version and patch present,
as defined by SunPro compilers or in host.h. Thanks to Graham Reed.
* stlport/stl/config/_sunprocc.h: if use new-c-headers, SunPro
include iso/stdlib_iso.h instead of stdlib.h; note, that this exclude
usage of long double, long long, etc. functions, even when ones present
in OS. Thanks to Graham Reed. Bugreport 1630943.
2007-01-18 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_num_put.c: Add cast to avoid gcc warning.
* stlport/stl/_pair.h, _construct.h: Add _STLP_NO_MOVE_SEMANTIC
before inclusion of _move_construct_fwk.h.
* stlport/stl/_istream.c: Removed useless cast to num_get facet.
* src/system_api.c: Move macro check to at least include math.h
in order to avoid an empty translation unit which can generate
compilation warning.
2007-01-17 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_cmath.h: move hypot in global namespace for SunSoft;
suggested by Graham Reed.
2007-01-15 Francois Dumont <dums@users.sourceforge.net>
* test/unit/locale_test.cpp: Upgrade Russian currency abbreviation
'RUR' to 'RUB'. Thanks Tiziano Muller, bug report 1634886.
* test/unit/cstring_test.cpp: Fix test to avoid some gcc warnings.
* stlport/stl/config/_gcc.h: Add _STLP_NOTHROW definition for
this compiler for C++ Standard compliancy. It might also help the
compiler not to emit false warning about potential use of
uninitialized variable (-Wall mode).
* build/lib/Makefile.inc, src/system_api.h, system_api.c: New source
file used for platform exposing some features only to C compiler. for
the moment used under Hp Unix for GNU compiler access to platform
isfinite, isnan and isinf functions.
* src/num_put_float.cpp: Replace a lot of unofficial Hp Unix specific
code to access functions isfinite, isinf or isnan. Replaced by
system_api.h.
* build/Makefiles/gmake/hp-ux/sys.mak: Looks like install command
on this platform is rather exotic, use cp instead.
2007-01-14 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_system.h: Add __SUNPRO_C macro check to
detect Sun Pro C compiler. Thanks Graham Reed bug report 1630916.
* stlport/stl/_cstdlib.h: Add __SUNPRO_CC macro check before
defining abs(long) and div(long, long) as Sun pro already
defined them. Thanks Graham Reed bug report 1630972.
2007-01-07 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl: Add _STLP_NO_MOVE_SEMANTIC macro checks to
completely hide move semantic framework when not necessary.
2007-01-05 Francois Dumont <dums@users.sourceforge.net>
* test/unit/bitset_test.cpp: Check _STLP_NON_TYPE_TMPL_PARAM_BUG
macro before doing tests that depends on it.
* stlport/stl/_list.h: Add assertion to signal potential stack
overflow in recurssive calls to list::insert and list::splice thanks
Aleksey Sanin idear.
* build/Makefiles/gmake/lib/gcc.mak: Removed obsolete -C ld option
on Hp Unix platform.
* stlport/stl/_mbstate_t.h: Attempt to fix STLport config for compilers
coming with a native lib defining mbstate_t only for C++ compilers.
For those compilers native mbstate_t definition won't be used for
the moment, STLport simply grant a dummy definition in C. Test
under Hp Unix has shown that it works.
2006-12-29 Francois Dumont <dums@users.sourceforge.net>
* src/iostream.cpp, stlport/stdio.h, stl/_cstdio.h: Eric Sanford
patch to move a Borland workaround from cstdio to stdio.h.
* stlport/stl/debug: Generalize _STLP_NO_MOVE_SEMANTIC check
to hide move constructors like already done in non debug
implementation.
* stlport/stl/config/_msvc.h: Restore move semantic for MSVC6. AFAIR
only MSVC .Net 2002 had problem with it.
* test/unit/strstream_test.cpp: Made the tests for _STLP_LONG_LONG
a little bit more portable.
2006-12-20 Francois Dumont <dums@users.sourceforge.net>
* test/unit/strstream_test.cpp: New test case for sourceforge
bug report 1615554. Not confirm for the moment.
* test/unit/math_aux.h, mvctor_test.h, string_test.cpp: Fixes
to correctly take into account _STLP_USE_NAMESPACES.
2006-12-19 Francois Dumont <dums@users.sourceforge.net>
* test/unit/bvector_test.cpp: Fix macro check for namespace
support.
* test/unit/num_put_get_test.cpp: disable warning about float
overflow for MSVC.
2006-12-17 Francois Dumont <dums@users.sourceforge.net>
* test/unit: One more cleanup for compilers not supporting the
namespace feature. This time we avoid namespace specification when
doing template specialisation of Standard functor like less or
allocator.
2006-12-15 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_dm.h, test/unit/map_test.cpp: Eric Sanford
patch for DMC.
2006-12-13 Francois Dumont <dums@users.sourceforge.net>
* test/unit/test_main.cpp: Clean up use of namespace feature.
* test/unit: Clean up use of std namespace or ignore tests if
necessary.
2006-12-13 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport, src: Orphan code removed [Symantec without maintainance a long time;
gcc prior 2.95 and 2.96 can't work with current code in any case;
NetWare unsupported too]
2006-12-13 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/feature.h: Fix and generalize the mutable
workaround for compilers missing this feature. Replace
_STLP_ASSIGN_MUTABLE with _STLP_MUTABLE macro that is more flexible
as not limited to assignment.
* stlport/stl/_istreambuf_iterator.h, _stream_iterator.h, _string_sum.h:
Use _STLP_MUTABLE rather than manually handle _STLP_NEED_MUTABLE macro.
* stlport/stl/_sstream.h: Removed useless mutable qualifier for
basic_stringbuf _M_str member.
* test/unit/bind_test.cpp: Use STLport mutable workaround.
* src/message_facets.h, facets_byname.cpp: Limit use of the mutable
qualified to one member in _Message_Impl class and use _STLP_MUTABLE
in class implementation.
2006-12-11 Francois Dumont <dums@users.sourceforge.net>
* test/unit/mvctor_test.cpp: Split in 2 other translation unit
mvctor_declaration_test.cpp and mvctor_traits_test.cpp without
impacting number of test case. It helps DMC to perform a correct
link.
* stlport/stl/type_manips.h: Check _STLP_DONT_USE_PRIV_NAMESPACE before
importing __true_type and __false_type in private namespace.
* stlport/stl/config/_dec.h, _apcc.h: Removed references to unused
_STLP_HAS_NO_NEW_IOSTREAMS macro.
2006-12-11 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/fstream.cpp, stlport/stl/_fstream.h: non-template friend function
of template class isn't good idea. Fixed.
2006-12-09 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_range_errors.h: To complete 2006-12-04 modification
fix inclusion to access to string definition. In normal mode we include
stlport/stl/_string.h rather than string header. There is a special case
however if cumulating _STLP_NO_IOSTREAMS, _STLP_DONT_REDEFINE_STD and
_STLP_WHOLE_NATIVE_STD then functions defined in _range_errors.h will
throw exception from std namespace rather than from stlport.
* stlport/stl/config/user_config.h: Documented above modification.
* stlport/stl/config/features.h: Modify _STLP_VENDOR_STD definition. This
internal macro do not have to use __std_alias, within STLport code std is
not a macro and can be used as the vendor namespace.
2006-12-07 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_algobase.c, config/features.h: Removed unused
_STLP_MPW_EXTRA_CONST macro.
* stlport/stl/config/_watcom.h, _dm.h, feature.h: Add new
_STLP_NO_CONST_IN_PAIR macro config to avoid instanciation of
pair with a const qualified type. _STLP_CONST is defined based
on _STLP_NO_CONST_IN_PAIR.
* stlport/stl/_map.h, _hash_map.h, _unordered_map.h: Add use of
_STLP_CONST.
* stlport/stl/_num_put.c: Introduce __do_put_bool function containing
all codes to render bool values. We do not use anymore
__copy_integer_and_fill function that was difficult to instanciate for
Open Watcom compiler. Moreover this function was not really adapted for
being use in this context, code duplication is very limitated and
absolute number of lines of code hasn't been modified.
* stlport/stl/_fstream.h, src/fstream.cpp: Removed useless declaration
of template specialization for _Noconv_input _Noconv_output and _Underflow.
_Underflow template specialization now use a function __Underflow_doit
to avoid the complex syntax of the implementation of a member method of
a template class specialization in fstream.cpp.
* src/message_facets.h: Add missing allocator parameter in hash_map
instanciation, required for compiler lacking default template parameters
support.
* src/num_get_float.cpp: Add unsigned 64 bits support for Open Watcom.
* stlport/stl/_cmath.h, _cstdlib.h: Signal that Open Watcom has already
all math functions C++ overloads in global namespace.
* Cleanup of all workarounds for MSVC before version 6.
* build/Makefiles/gmake/gcc.mak: Hide -fvisibility option for windows as
in this context we are not able to correctly detect gcc version in use.
* stlport/stl/_fstream.h: Reorder member variables in _Filebuf_base
to avoid gcc warning.
2006-12-06 Francois Dumont <dums@users.sourceforge.net>
* STLport 5.1.0 released based on STLPORT_5_1 branch revision 2750.
* Merge STLPORT_5_1 branch from revision 2711 to 2749.
* stlport/stl/config/_hpux.h: Specify that Hp Unix is a unix platform
_STLP_UNIX. This platform was already recognise as a unix platform
but it is more clear to put it in Hp Unix configuration file.
* src/num_put_float.cpp: Limit Hp Unix workaround to access isfinite
isnan and some other system functions to the gcc compiler, aCC has
natively access to it. Tests done by Boris Gubenko.
2006-12-04 Francois Dumont <dums@users.sourceforge.net>
* stlport/fstream, iomanip, ios, iosfwd, iostream, istream, locale,
ostream, sstream, streambuf, strstream: Allow use of iostream headers
even when _STLP_NO_IOSTREAMS is defined if using _STLP_WHOLE_NATIVE_STD.
2006-12-02 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_string.c: Use find_end algo rather than internal
__find_end function, find_end contains workaround for limited
compilers.
* stlport/stl/_algo.c: Avoid a useless default value for last
parameter of __stable_partition_aux_aux function.
* src/num_put.cpp: In __insert_grouping_aux, use template parameter
Str to get iterator definition rather than getting definition from
basic_string.
* stlport/stl/_num_get.c, _num_put.c: Complete basic_string
definition for compiler not supporting default template parameters.
* stlport/cmath, cstdio, typeinfo: Modified to be reentrant once.
* stlport/stl/_alloc.h, _bvector.h, _construct.h, _deque.h,
_hash_map.h, _hash_set.h, _hashtable.h, _list.h, _map.h, _pair.h,
_queue.h, _rope.h, _set.h, _slist.h, _stack.h, _string.h,
_string_base.h, _string_workaround.h, _tree.h, _unordered_map.h,
_unordered_set.h, _vector.h: Now _STLP_NO_MOVE_SEMANTIC hide all
calls to _AsMoveSource function.
2006-11-30 Francois Dumont <dums@users.sourceforge.net>
* test/unit/stack_allocator.h: Fixed StackAllocator implementation
for Borland and DMC that required a workaround.
* stlport/stl/config/_gcc.h: Starting with gcc 4, use visibility
feature.
* build/Makefiles/gmake/gcc.mak: Starting with gcc 4, add
-fvisibility=hidden compilation option.
2006-11-28 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_alloc.h: Avoid explicit instanciation of template
function _AsMoveSource. Replace internal allocator::allocate function
with _M_allocate to avoid use of overloading.
* stlport/utility: Fix header reentrancy.
* stlport/stl/_ptrs_specialize.h: Fixed instanciation of
__type_traits_aux.
2006-11-25 Francois Dumont <dums@users.sourceforge.net>
* stlport/climits, iosfwd, mem.h, string.h, typeinfo.h, wchar.h,
stl/char_traits:
Eric Sanford patch to complete use of include_next with Borland
compilers.
* stlport/using/cstring: Fix macro check for Borland compiler.
* test/unit/locale_test.cpp: Add test for Borland _fpclass.
* src/num_put_float.cpp: Fix potential error in _Stl_is_neg_nan
for Borland compiler after 0x581.
2006-11-24 Francois Dumont <dums@users.sourceforge.net>
* Eric Sanford patch for DMC compiler, allow access to associative
containers extension.
* stlport/typeinfo.h, exception: Workaround for DMC that force
inclusion of typeinfo.h at the begining of all translation units.
2006-11-23 Francois Dumont <dums@users.sourceforge.net>
* test/unit/cstring_test.cpp: New test case to check import of all
C functions from string.h in STLport namespace.
* stlport/using/cstring: Fix import of strcmp and strcpy for Borland.
2006-11-20 Francois Dumont <dums@users.sourceforge.net>
* stlport/iosfwd, stl/type_manips.h, config/_bc.h, pointers/_tools.h:
Patch from Eric Sanford to remove useless Borland workaround for
pointer specialisation and use include_next feature for versions after
0x580.
2006-11-20 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/monetary.cpp: template header not allowed in member definition
of explicitly specialized class
2006-11-19 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_ios_base.h: Replace wrong external utility inclusion
with internal _pair.h header.
2006-11-17 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/features.h: Modification of the static constant
workaround implementation to use something similar to the boost
workaround. _STLP_STATIC_CONST_INIT_BUG macro change definition of
newly introduce _STLP_STATIC_CONSTANT macro which use an enum or a
real static const variable. Moreover the new
_STLP_NO_STATIC_CONST_DEFINITION will hide static constant definition
when defined.
* src/ctype.cpp, ios.cpp, locale.cpp: Add check for
_STLP_NO_STATIC_CONST_DEFITION.
* src/monetary.cpp: Add intl static constant definitions.
* stlport/stl/_ctype.h, _ios_base.h, _limits.h, _monetary.h: Use
_STLP_STATIC_CONSTANT.
* stlport/stl/_limits.h: Limits a workaround for long long and unsigned
long long types that used to be applied for gcc after 2.96 up to version
3.0.
* stlport/stl/_limits.c: Clean all static constant values duplicated from
_limits.h that was not used in this file. Add static constant definition
necessary for long long and unsigned long long types for gcc between 2.96
and 3.0 (see above).
* stlport/stl/debug/_string.h: Removed npos static constant definition
that is only necessary in stlport/stl/_string.c.
* stlport/stl/config/_msvc.h: Use real static constant starting with
VS .Net 2003 (_MSC_VER >= 1310).
* test/unit/limits_test.cpp: Modified test to reveal potentially missing
static constant definitions.
2006-11-13 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/stl_confix.h: Add some STLport config options based
on EDG version information using boost common_edg.hpp content.
* stlport/stl/: Patch from Eric Sanford for Borland compiler. Allow
associative container extension (member methods) and use of pointer
specialization.
2006-11-07 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/config/_hpacc.h, stl_confix.h: Thanks to additional info
from Boris Gubenko STLport now check __EDG_VERSION__ to detect EDG based
compilers. It use this macro to activate include_next feature. Moreover
a workaround has been added for aCC6 that was not defining __EDG_VERSION__
as expected. _hpacc.h has also been cleaned of obsolete config.
2006-11-07 Francois Dumont <dums@users.sourceforge.net>
* stlport: All C++ Standard headers are now using the same schema. If
included from outside (_STLP_OUTERMOST_HEADER_ID not defined) it first
included internal header (in stl folder) and then, if _STLP_WHOLE_NATIVE
is defined, include the equivalent native Standard header. If included
from inside, simply forward to native header include. This schema has
several advantages:
- Less dependancy on native library headers interdependancy.
- Less code included as STLport code is only exposed if headers are
included from the outside.
- Restore _STLP_WHOLE_NATIVE_STD configuration (tested with gcc, msvc, bcc)
The condition for this schema to work is that STLport never include Standard
headers internaly when it wants to access some STLport code.
* stlport/stl/_iomanip.h: New file containing all STLport code that used
to be in stlport/iomanip.
* stlport/stl/_complex.h, _rope.h, _stream_iterator.h, _string_fwd.h: Use
stl/_iomanip.h rather than iomanip.
* stlport/stl/_rope.c: Use stl/_ostream.h and stl/_istream.h rather than
iostream.
* stlport/stl/config/_kai.h, _msvc.h, feature.h: _STLP_MINIMUM_IMPORT_STD
macro removed, it was only used in vector header to avoid include of
native vector header even when _STLP_IMPORT_VENDOR_STD was defined. MSVC6
used to define it but removing it hasn't make compilation failed when
importing all native std stuff. Looks like it was a workaround necessary
when STLport was not as clean as it is now or for the former wrapper mode
that has been removed.
* stlport/stl/config/features.h: Add a #error to signal that
_STLP_WHOLE_NATIVE_STD and _STLP_NO_OWN_NAMESPACE are incompatible
options.
* stlport/stl/config/stl_confix.h
2006-11-05 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_sstream.h, _sstream.c: Add 2 helper functions _S_start and
_S_finish to hide complexity of code required to have read access to the
aggregated string instance internal buffer. Those 2 functions help keeping
basic_stringbuf implementation simple without requiring a friend
declaration in basic_string class and use of inheritance in _STLP_DEBUG
mode between the debug string and the non debug one.
* stlport/stl/_string.h, debug/_string.h, _string_sum_methods.h: Removed
friend declaration and inheritance (see above). This also avoids to restore
some workarounds that used to be necessary when _STLP_DEBUG mode was using
inheritance in all the debug containers.
2006-11-04 Francois Dumont <dums@users.sourceforge.net>
* src/num_put_float.cpp: According C Standard number of digits in the
exponent part of scientific output should be at least 2, C99 even says
that we shouldn't add zeros if there are more than 3 significant digits.
* test/unit/complete_digits.h: Modified according to above rules.
2006-11-02 Francois Dumont <dums@users.sourceforge.net>
* Repository: Merged STLPORT_5_1_RC3 tag changes up to r2771 into the trunk.
Now trunk is really in sync with STLPORT_5_1 branch.
* etc/ChangeLog: Now contains only trunk modif, 5.1 changes are in
ChangeLog-5.1.
2006-11-02 Petr Ovtchenkov <complement@users.sourceforge.net>
* Repository: merged from 5.1 branch.
2006-11-01 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_stdexcept_base.h: Patch from Uli to simplify
__Named_Exception implementation.
2006-10-31 Francois Dumont <dums@users.sourceforge.net>
* build/test/unit/Makefile.inc: Restore STLport version information that
had mysteriously disappeared in a previous modification.
* stlport/stl/_num_put.c: Disable warning for MSVC that signal problem in
cast from pointer to unsigned long.
* src/num_put_float.cpp: Fix buffer overflow introduce by a previous
modification. Now STLport appends '0' so that floating point scientific
output has a constant size. MAXESIZ renamed in MAXEDIGITS to make macro
signification more obvious.
* test/unit/complete_digits.h: New file containing the function giving
platform dependant number of digits in STLport scientific output of
floating point types.
* test/unit/num_put_get_test.cpp, locale_test.cpp: Adapt tests to latest
STLport modifications.
2006-10-30 Francois Dumont <dums@users.sourceforge.net>
* stlport/stl/_stlport_version.h: Upgrade STLport version information
to reflect built libraries.
2006-10-24 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/config/host.h, _linux.h: force usage malloc_alloc as default
allocator on systems with glibc 2.3.x and later due to better performance.
* stlport/stl/_alloc.h: remove _STLP_MALLOC_USABLE_SIZE dependant
code---not really used.
* stlport/stl/_alloc.c: remove recalculation of __n [Francois was right];
remove _STLP_MALLOC_USABLE_SIZE dependant code---not really used.
* src/allocators.cpp: remove additional __malloc_alloc_impl class---not
required; add mutex lock for custom __malloc_alloc oom handler change/use
[in multi-threaded environment].
2006-10-16 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/c_locale.h, _mbstate_t.h, src/c_locale.h, c_locale.c:
merge changes from STLPORT_5_1 branch, see 2006-10-12 [Francois Dumont];
may be problems on Solaris, and FreeBSD---more check required.
2006-10-13 Petr Ovtchenkov <complement@users.sourceforge.net>
* Repository: merge changes [not all] 2006-10-12 from STLPORT_5_1 branch
2006-10-12 Petr Ovtchenkov <complement@users.sourceforge.net>
* Repository: merge changes from STLPORT_5_1 branch (records
from 2006-10-06 to 2006-10-04).
* stlport/stl/_alloc.c: Hmm, looks like deallocation size in
2006-10-06 is wrong.
* stlport/stl/_num_put.c: print pointer as in fix width form, and
with base 0x, independent, zero pointer or not.
* test/unit/num_put_get_test.cpp: test for issue above.
* test/unit/string_test.cpp: test for overloaded operators
and temporary string; inspired by problems with some compilers.
* stlport/stl/_mbstate_t.h: revert back changes from STLPORT_5_1 branch;
mbstate_t couple with wchar closely, and sometimes has compex and implicit
dependance; include wchar.h first required!
2006-09-12 Petr Ovtchenkov <complement@users.sourceforge.net>
* test/unit/string_test.cpp: add test for bug report #1541499,
problem not detected; looks like gcc 4.1.1 can compile te_tmp test
correctly [sum operations under class derived from string, with
_STLP_USE_TEMPLATE_EXPRESSION].
2006-09-08 Petr Ovtchenkov <complement@users.sourceforge.net>
* stlport/stl/_sstream.h, _sstream.c: remove double buffering
on write only underlying string as buffer. Use knowlege about
string implementation, this should improve performance, and,
at least simplify code and avoid logic that already present in
string implementation.
* stlport/stl/_string_base.h: basic_streambuf is friend, to access
to internal function (access to storage pointers).
* stlport/stl/debug/_string.h, _string_sum_methods.h: change usage
of 'non-debug string', from 'use of' relation to 'inherit' releation.
Useful for access basic_streambuf to string storage in _STLP_DEBUG
mode too.
* test/unit/sstream_test.cpp: test for tellp call; change test
with inited ostringstream in accordance with another Standard
treatment.
* stlport/stl/_streambuf.h: remove ancient code, that can't
work with present code in any case.
* src/c_locale.c: ditto
* build/lib/Makefile.inc: bump minor version (5.2.0)
2006-07-27 Francois Dumont <dums@users.sourceforge.net>
* stlport: Adopt include_next GNU extension for the following reasons:
- Standard headers do not have to be categorised anymore to be
included, we could have a wrong include order if headers are not
correctly categorized.
- Package builder can use any folder structure they want for gcc,
STLport won't have to be customized anymore.
- Make STLport usable with other library that also use the shadow
header trick to modify native headers content.
* stlport/stl/config/_gcc.h: Add definition of _STLP_HAS_INCLUDE_NEXT
macro to signal that this compiler preprocessor support include_next.
Removed all definition of native headers path that are now useless.
2006-03-27 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/num_put_float.cpp: use buffers that at least longer
than maximal double [or long double] exponent, so avoid
potential vulnerabilities; this allow to read really long
fix-float numbers [with lost of significant digits, of course].
* test/unit/floatio_test.cpp: add test for issue above
2006-03-23 Petr Ovtchenkov <complement@users.sourceforge.net>
* src/cxa.c: remove wrong exclusion of lock for Solaris.