xref: /reactos/sdk/lib/3rdparty/stlport/etc/ChangeLog (revision 02e84521)
12008-12-10  Petr Ovtchenkov  <complement@users.sourceforge.net>
2
3	* Repository: STLport release 5.2.1
4
52008-12-03  Petr Ovtchenkov  <complement@users.sourceforge.net>
6
7	* build: HP-UX/ia64 with aC++ compiler; verified on HP-UX 11.23
8	and 11.31 with aC++ A.06.17; [4 of 436 tests, 4 ignored (2 explicit),
9	and 4 of 360 tests, 2 ignored]; submitted by Boris Gubenko.
10
112008-11-27  Petr Ovtchenkov  <complement@users.sourceforge.net>
12
13	* build: EVC9 (Visual Studio 2008) by Johan Andersson.
14
152008-11-19  Petr Ovtchenkov  <complement@users.sourceforge.net>
16
17	* Repository: STLport release 5.2.0
18
192008-08-26  Petr Ovtchenkov  <complement@users.sourceforge.net>
20
21	* Repository: branch for STLport 5.2, r3618
22
232008-07-21  Petr Ovtchenkov  <complement@users.sourceforge.net>
24
25	* stlport/type_traits:  decay, conditional, ebable_if added.
26
272008-07-18  Francois Dumont  <dums@users.sourceforge.net>
28
29	* configure.bat: Specifying the compiler is now mandatory and
30	must be first.
31
322008-07-17  Francois Dumont  <dums@users.sourceforge.net>
33
34	* stlport/stdlib.h, cstdlib: Fix errno workaround for gcc MinGW.
35	Latest gcc version (4.3.0) includes stdlib.h in cstdlib using
36	include_next so skipping workaround in STLport stdlib.h. So errno.h
37	must also be included from cstdlib.
38
392008-07-17  Petr Ovtchenkov  <complement@users.sourceforge.net>
40
41	src/details/fstream_unistd.cpp: fix bug #2001222, opening with
42	ios_base::app should rewind write pointer to the end of the file;
43	fix treatment of ios_base::ate (it should rewind pointer
44	to the end of the file once) and ios_base::app (offset will be set
45	to the end of the file prior to each write); references ---
46	http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2691.pdf
47	27.8.1.4; http://www.opengroup.org/onlinepubs/7990989775/xsh/fopen.html;
48	http://www.opengroup.org/onlinepubs/7990989775/xsh/open.html
49
50	test/unit/fstream_test.cpp: add sample with fopen as reference point.
51
522008-07-14  Francois Dumont  <dums@users.sourceforge.net>
53
54	* build/Makefiles/gmake: Build system updated for gcc under Cygwin,
55	MinGW. Under Cygwin, with or without -mno-cygwin option, STLport
56	is now a full replacement for libstdc++, building an application
57	with it do not require -lsupc++ anymore as it is completely
58	integrated in STLport. Under MinGW it didn't work resulting in a
59	crash when starting an application using STLport so -lsupc++ is
60	necessary both when linking STLport _and_ when linking the
61	application using it.
62
632008-07-10  Francois Dumont  <dums@users.sourceforge.net>
64
65	* src/num_put_float.cpp: Use an union based technique to find out
66	the sign of floating point values. It will maybe replace use of
67	platform specific functions in a future version.
68
69	* src/stdio_streambuf.cpp, test/unit/iostream_test.cpp: Change
70	behavior of stdio_istreambuf implementation that now always return 0 on
71	showmanyc call. Returning -1 means that reading attempt will
72	necessarily fail which is not the case, 0 is prefered as it means that
73	we don't know. It is also similar to other std implementations like
74	libstdc++.
75
762008-07-02  Francois Dumont  <dums@users.sourceforge.net>
77
78	* configure.bat: After a very interesting debate the consesus
79	is to put configure scripts in root folder.
80
81	* stlport/stl/_string_sum_methods.h: Bug report #2003308,
82	compilation error with _STLP_USE_TEMPLATE_EXPRESSION.
83	Regression due to remove of POD type support in basic_string
84	implementation.
85
862008-06-26  Francois Dumont  <dums@users.sourceforge.net>
87
88	* stlport/stl/_fstream.c: Consider read file failure in
89	_M_underflow_aux method to avoid infinite looping on some
90	platforms. Thanks Pawel Sikora.
91
922008-06-26  Petr Ovtchenkov  <complement@users.sourceforge.net>
93
94	* build/Makefiles/gmake/unix/rules-install-so.mak: do
95	install-headers tags when make install or install-release-shared.
96
972008-06-24  Francois Dumont  <dums@users.sourceforge.net>
98
99	* build/Makefiles/gmake: Cygwin/MinGW upgrade, now build
100	without referencing libstdc++.
101
102	* stlport/stl/_threads.h: Move definition of __stl_atomic_t next
103	to definition of atomic operations to guaranty coherency.
104
1052008-06-18  Francois Dumont  <dums@users.sourceforge.net>
106
107	* build: configure.bat moved to build folder. lib/Makefile,
108	test/unit/Makefile removed from SVN, now generated by configure
109	scripts. Under GNU make use include rather than link to
110	reference the right make file, link seems not supported by
111	Cygwin/MinGW make. Remove default value of STLPORT_DIR,
112	already set in internal make files and moreover the absolute
113	path generated in the script leads to trouble under Cygwin/MinGW.
114
115	* src/num_get_float.cpp: Use an union to generate double value
116	from 64 bits int to avoid gcc type-punned pointer warning.
117
1182008-06-16  Petr Ovtchenkov  <complement@users.sourceforge.net>
119
120	* build/test/unit/gcc.mak: pass runtime pathes as absolute;
121	removed LDSEARCH macro, use LDFLAGS instead;
122
123	* Makefile: clean in test/unit too.
124
1252008-06-13  Francois Dumont  <dums@users.sourceforge.net>
126
127	* stlport/stl/_iterator_base.h: Add a funny feature, when
128	using both STLport and native STLs it was not possible
129	to use std iterators in STLport containers because of the
130	missing iterator category that is defined in std:: and
131	not in stlport::. So now STLport map std iterator categories
132	in stlport ones. Now it is possible to write something like
133	that:
134	std::string stdstr("std");
135	stlport::string stlportstr("stlport and ");
136	stlportstr.append(stdstr.begin(), stdstr.end());
137	However the other side is not supported except when STLport
138	iterators are simply pointers.
139
1402008-06-05  Francois Dumont  <dums@users.sourceforge.net>
141
142	* src/num_get_float.cpp: Remove useless skip of white
143	space at begining of buffer in _Stl_string_to_double function.
144	__read_float, the function that generate that buffer do not
145	put white space at the first place.
146
147	* stlport/stl/_new.h, _range_errors.c: Remove unused
148	_STLP_RTTI_BUG macro. Moreover __stl_new was not correctly
149	implemented with this macro, there was no check for failed
150	allocation.
151
152	* test/unit/limits_test.cpp: Remove code supposed to hide
153	numeric_limits::max value to MSVC 8 compiler, this code was
154	introducing a test regression. If it is producing a warning
155	a #pragma warning should be use to hide it.
156
157	* test/unit/num_put_get_test.cpp: Add test showing problem
158	with code that used to be in limits test. Those tests will be
159	activated for 5.3 to check that there is really nothing wrong
160	with it.
161
1622008-06-07  Petr Ovtchenkov  <complement@users.sourceforge.net>
163
164	* configure: don't duplicate options in config.mak, that
165	has default values in makefiles.
166
1672008-06-06  Petr Ovtchenkov  <complement@users.sourceforge.net>
168
169	* configure: put it on common place for ./configure;
170
171	* build/Makefiles/gmake/targetdirs.mak: use $(DESTDIR)
172	as in common practice (change root of installation, but
173	don't change run paths);
174
175	* build: by default use make for gcc;
176
177	* Makefile: top makefile for common project task;
178
179	* build/Makefiles/gmake/depend.mak: fix options for ctags
180	and etags;
181
182	* configure, build/Makefiles/gmake/top.mak: take into account
183	extra flags for linker.
184
1852008-06-05  Francois Dumont  <dums@users.sourceforge.net>
186
187	* stlport/stl/_function_adaptors.h: Fix instantiation of
188	unary_function and binary_function as base type of _Mem_fun0_ref,
189	_Mem_fun1_ref, _Const_mem_fun0_ref, _Const_mem_fun1_ref,
190	_Void_mem_fun0_ref, _Void_mem_fun1_ref, _Void_const_mem_fun0_ref,
191	_Void_const_mem_fun1_ref. Those classes are use as a workaround for
192	compiler missing class partial template specialization or that don't
193	support return of void. Instantiation is now done without reference
194	qualifier as specified by the Standard and as done in the
195	implementation used when workaround is not necessary.
196
1972008-06-03  Francois Dumont  <dums@users.sourceforge.net>
198
199	* src/ios.cpp, stlport/stl/_complex.c, _ios.c, _ios.h, _ios_base.h,
200	_istream.c, _num_get.c, _num_put.c: Remove invalid cached facet
201	pointers in ios_base class. This class can be used in a char or
202	wchar_t instantiation context making cast to ctype<char> or
203	ctype<wchar_t> invalid resulting in an application crashed. The
204	only safe access to facet instances from a ios_base instance is through
205	the use_facet<Facet>(getloc()) function. Only _M_cached_ctype has been
206	kept in basic_ios class even if small bench hasn't show real
207	enhancement compared to using use_facet.
208
209	* stlport/stl/_time_facets.c: In addition to above modifications
210	time_get implementation has been simplified as localized info are
211	now stored as wchar_t for wide char instantiation. We do not need
212	to use ctype.widen method anymore.
213
214	* test/unit/time_facets_test.cpp: Add test for time_get wchar_t
215	instantiation.
216
217	* test/unit/cppunit/cppunit_mini.h: Fix report of ignored/explicit
218	tests.
219
2202008-05-27  Francois Dumont  <dums@users.sourceforge.net>
221
222	* stlport/stl/_alloc.h: Code simplification, clean up null
223	pointer checks as allocators should never return it but rather
224	throw a bad_alloc exception.
225
2262008-05-27  Francois Dumont  <dums@users.sourceforge.net>
227
228	* test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix
229	counting of failed test, won't report more failures than tests
230	anymore. Now also report explicit tests.
231
2322008-05-15  Francois Dumont  <dums@users.sourceforge.net>
233
234	* src/allocators.cpp, locale_catalog.cpp, num_put_float.cpp:
235	Use static method returning static instance to mutex rather than
236	direct access to a static mutex instance to control initialization
237	order of static variables thanks Peter Hrenka report.
238
2392008-04-26  Francois Dumont  <dums@users.sourceforge.net>
240
241	* stlport/stl/_function.h, type_traits.h: Adoption of Defect Report 109
242	Missing binders for non-const sequence elements.
243
244	* test/unit/bind_test.cpp: Test for DR above.
245
2462008-05-11  Petr Ovtchenkov  <complement@users.sourceforge.net>
247
248	* stlport/stl/_string.c: from formal (ISO/IEC 14882:2003) point of view
249	string s; string::size_type p = s.find( "", 0, 0 ); should return 0 in p,
250	i.e. position out-of-bound of string; people near Standard commete has
251	opinion that Standard correct in this point and not require clarification
252	(opposite to my opinion); even if it looks like bogus behavior for me,
253	it fixed to conform standard; see bugreport #1872656;
254
255	* test/unit/string_test.cpp: test for issue above.
256
2572008-05-10  Petr Ovtchenkov  <complement@users.sourceforge.net>
258
259	* stlport/stl/_istream.c, stlport/stl/_ostream.h: ISO/IEC 14882:2003
260	(and 1998 too) assume change as get as put positions with
261	seekg and seekp (27.6.1.3, par 38; 27.6.2.4 par 2), but this
262	contradict to common practice and proposed draft N2588
263	(27.6.1.3, par 41; 27.6.2.5, par 4); now STLport implement
264	(i.e. change present behavior) the draft's point of view;
265	this reflect patch #1650657 by Jan Echternach;
266
267	* test/unit/sstream_test.cpp: test for issue above.
268
2692008-04-26  Francois Dumont  <dums@users.sourceforge.net>
270
271	* Patches #1940126, #1941267, #1941814 from Johan Andersson for evc8
272	Pocket PC support and build of tests without warnings.
273
2742008-04-24  Francois Dumont  <dums@users.sourceforge.net>
275
276	* Patch 1937823 from Johan Andersson to add Microsoft Visual
277	Studio 2008 support.
278
279	* stlport/stl/_algobase.h: Patch 1935497 from Andrey Semashev to
280	apply a common optimization in STLport algos for random access
281	iterators to fill and fill_n algos.
282
2832008-04-23  Petr Ovtchenkov  <complement@users.sourceforge.net>
284
285	* src/num_put.cpp: remove ambiguity of char to int conversion
286	(comparison with integers, check for negative value); remove
287	ambiguity with postfix increment in index in conditional
288	expression.
289
2902008-04-22  Petr Ovtchenkov  <complement@users.sourceforge.net>
291
292	* build/Makefiles/gmake/gcc.mak, build/lib/configure: take
293	into account CFLAGS, EXTRA_CFLAGS, because of C compiler in use too.
294
2952008-04-17  Francois Dumont  <dums@users.sourceforge.net>
296
297	* stlport/stl/_string.h: Remove support for non POD type in basic_string
298	implementation.
299
3002008-04-08  Petr Ovtchenkov  <complement@users.sourceforge.net>
301
302	* build/Makefiles/gmake/lib/gcc.mak: try to create $(PRE_OUTPUT_DIR) before
303	run lipo; impact only MacOS;
304
305	* build/Makefiles/gmake/sysid.mak: uname -m on MacOS return
306	power-macintosh, but identify architechture as ppc.
307
3082008-03-28  Francois Dumont  <dums@users.sourceforge.net>
309
310	* stlport/assert.h: Bug #1894882: Apply a technique similar to the
311	one used in errno.h to detect when assert has been defined before
312	including assert.h.
313
3142008-03-21  Francois Dumont  <dums@users.sourceforge.net>
315
316	* Patch 1876529 from Johan Andersson to add support for VS 2005
317	bundled Pocket PC 2003 SDK.
318
3192008-03-18  Petr Ovtchenkov  <complement@users.sourceforge.net>
320
321	* stlport/stl/_string.c: derived from patch #1914475, wrong
322	replace for selfreferencing string; thanks Farid Zaripov;
323
324	* test/unit/string_test.cpp: test for problem above.
325
3262008-03-17  Francois Dumont  <dums@users.sourceforge.net>
327
328	* stlport/stl/_stdexcept_base.h, _stdexcept_base.c,
329	type_manips.h, src/num_put_float.cpp,
330	test/unit/num_put_get_test.cpp: Borland patch from Eric Sanford.
331	No need for a __Named_exception workaround anymore. Force
332	floating point control word when testing special floating point
333	operations. Change implementation _Copyable and add a workaround
334	to correctly render long double max value that is consider as
335	equal to double max value.
336
3372008-03-10  Francois Dumont  <dums@users.sourceforge.net>
338
339	* build/Makefiles: Normalization of --with-static-rtl and
340	--with-dynamic-rtl extended to configure script for Borland
341	and DMC compilers.
342
3432008-03-08  Francois Dumont  <dums@users.sourceforge.net>
344
345	* test/unit/cppunit/cppunit_mini.h: New mini cppunit framework
346	feature, the explicit tests that have to be explicitly tested
347	thanks to the -t option to run.
348
349	* test/unit/unordered_test.cpp: benchmark1 and benchmark2 tests
350	are now explicit.
351
352	* stlport/stl/_stdexcept_base.h, _stdexcept_base.c:
353	__Named_exception that contains dynamically allocated memory
354	require a copy constructor and assignment operator. Thanks bug
355	report #1908626 from Ilya Dogadaev.
356
357	* build/Makefiles: Normalized some configure options:
358	--without-thread, --without-rtti, --with-lib-motif.
359
3602008-03-06  Francois Dumont  <dums@users.sourceforge.net>
361
362	* Fix rtti management:
363	 - no rtti support do not imply no type_info struct definition.
364	 - #error message in typeinfo to signal missing rtti support
365	has been removed.
366	 - locale implementation do not use typeid anymore to enhance
367	runtime_error message thrown by combine message when we cannot
368	find the combined facet. It was introducing an annoying dependency
369	making use of the lib without rtti support impossible.
370
3712008-03-05  Francois Dumont  <dums@users.sourceforge.net>
372
373	* stlport/stl/_range_errors.h: Signal function responsible
374	for throwing excepions as not returning to the DMC compiler.
375
3762008-03-03  Francois Dumont  <dums@users.sourceforge.net>
377
378	* build/Makefiles/gmake: Eric Sanford patch to make generation
379	of debug symbols optional when using Borland compiler to build
380	unit tests.
381
382	* stlport/stl/config: Normalization of verbose mode used to get
383	feedback about build context when using STLport.
384	_STLP_VERBOSE_AUTO_LINK has been renamed in _STLP_VERBOSE and
385	report additional information like rtti, exception support,
386	mono/multi threaded, static/dynamic library.
387
388	* stlport/stl/_check_config.h: Unused, removed.
389
390	* stlport/typeinfo: Report use of this header when there is no
391	RTTI support, only when we can detect it of course.
392
3932008-02-29  Francois Dumont  <dums@users.sourceforge.net>
394
395	* build/Makefiles/gmake: Several modif for Digital Mars support.
396
397	* stlport/stl/_function_base.h: Hide protected constructor not
398	supported by Borland compiler.
399
400	* stlport/stl/config/_bc.h: Now detect Rtti support.
401
4022008-02-28  Petr Ovtchenkov  <complement@users.sourceforge.net>
403
404	* build/Makefiles/gmake/gcc.mak: use more convenient option
405	-dumpversion to detect compiler's revision; check that
406	-fuse-cxa-atexit really required; remove -fident option;
407
408	* build/Makefiles/gmake/targetdirs.mak: take into account DESTDIR;
409
410	* build/lib/configure: write DESTDIR as prefix for installation pathes;
411
412	* stlport/type_traits:  type traits, close to JTC1/SC22/WG21
413	C++ 0x working draft
414	[http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2521.pdf]
415
4162008-02-26  Francois Dumont  <dums@users.sourceforge.net>
417
418	* Rationalization in detection of real localization implementation.
419	_STLP_REAL_LOCALE_IMPLEMENTED removed, the whole detection mecanism
420	is now in c_locale.h/c_locale.c and is based on API specific macros.
421	For the moment real localization is used for windows platforms
422	(_STLP_WIN32 except Windows CE) and when Glibc 2.2 or newer with
423	GNU extensions (_GNU_SOURCE) is detected.
424
4252008-02-25  Francois Dumont  <dums@users.sourceforge.net>
426
427	* stlport/stl/type_traits.h: Generalize technique used by Borland
428	compiler to detect pointer types const or volatile qualified and
429	avoid trivial copy in this case.
430
431	* Eric Sanford patch for Borland compiler for Linux.
432
4332008-02-22  Francois Dumont  <dums@users.sourceforge.net>
434
435	* stlport/stl/c_locale.h, src/c_locale.h,
436	c_locale_win32/c_locale_win32.c, c_wlocale_win32.c: Major code
437	simplification. Definition of _Locale_UPPER, _Locale_LOWER, etc...
438	used to be platform dependant requiring a lot of macro checks and
439	additionnaly exposing STLport to wrong definitions. When for
440	instance _Locale_PRINT was defined as
441	_Locale_UPPER|_Locale_LOWER|..., marking a character as printable
442	was also making it a upper and lower character!
443	In fact those masks have to be platform specific only when
444	STLport directly expose platform masks which is only the case when
445	using GlibC. So now those mask are hard coded in STLport using
446	values defined in the C++ Standard 22.2.1. Under Windows the
447	localisation implementation has been adapted to map Win32 mask values
448	to the STLport ones. A number of now useless workaround has been
449	removed.
450
451	* src/c_locale_dummy/c_locale_dummy.c, ctype.cpp,
452	test/unit/ctype_facets_test.cpp: Removed the hard coded table of
453	character types that was duplicating the one in src/ctype.cpp. Now
454	a table is build during library initialisation using C functions
455	isspace, isalpha... Doing so and adding a test in
456	LocaleTest::ctype_by_name will show if STLport and the C runtime
457	agree on character classification.
458
4592008-02-20  Francois Dumont  <dums@users.sourceforge.net>
460
461	* src/allocators.cpp: Change management of _S_heap_size, now bit
462	translation is done on the value used to increment it rather than
463	when using _S_heap_size. Thanks to this modif, when _S_heap_size is only a 32
464	bits value it won't roll before 16Go has been allocated. Thanks to
465	an additional unsigned cast the effect won't be notice before 32 Go
466	are allocated.
467
4682008-02-19  Francois Dumont  <dums@users.sourceforge.net>
469
470	* src/c_locale_dummy/c_locale_dummy.c: Fix implementation of
471	_WLocale_toupper/_WLocale_tolower, call to respectively
472	towupper/towlower was inverted.
473
474	* src/allocators.cpp: __stlp_chunk_malloc/__stlp_chunck_free
475	renamed respectively in __stlp_new_chunk/__stlp_delete_chunck as
476	those functions behavior are closer to the new operator behavior
477	rather than to malloc. __stlp_new_chunk implementation fixed, it
478	was using _STLP_CHECK_NULL_ALLOC reserved to check allocations
479	performed through new operator. Fix code to correctly take into account
480	bad_alloc exceptions.
481
4822008-02-18  Francois Dumont  <dums@users.sourceforge.net>
483
484	* stlport/stl/_algobase.h: Removed namespace specification on
485	swap invocation in iter_swap implemenation because it was breaking
486	template function resolution for gcc. Whether this is a gcc bug
487	or simply correct Standard C++ is not clear yet so namespace has
488	been removed independant of compiler in use.
489
490	* stlport/stl/_alloc.h, _new.h, src/locale.cpp, locale_impl.cp:
491	Generalize use of _STLP_THROW_BAD_ALLOC macro to throw the
492	bad_alloc exception. Definition of this macro is now in _new.h
493	header.
494
495	* stlport/stl/_valarray.h: Use __stl_new rather than malloc to get
496	exception management without additional code. It also gives users
497	a Standard way to detect memory starvation through the new handler.
498
4992008-02-16  Francois Dumont  <dums@users.sourceforge.net>
500
501	* Removed anachronous and unmaintained raw SGI allocator mode.
502
5032008-02-15  Francois Dumont  <dums@users.sourceforge.net>
504
505	* src/details/fstream_win32io.cpp: Fix wrong use of Win32 API.
506	SetFilePointer do not take SEEK_CUR macro but FILE_CURRENT.
507
508	* src/allocators.cpp, stlport/stl/_alloc.h, _alloc_old.h,
509	_construct.h, _new.h, _pthread_alloc.h, _rope.h, config/_evc.h,
510	features.h: Code cleanup; __THROW_BAD_ALLOC normalized in
511	_STLP_THROW_BAD_ALLOC; _STLP_NEW, _STLP_PLACEMENT_NEW and
512	_STLP_BROKEN_BAD_ALLOC_CLASS macros removed.
513
5142008-02-14  Francois Dumont  <dums@users.sourceforge.net>
515
516	* src/c_locale_glibc/c_locale_glibc2.c: Manualy handle the "C" locale
517	to guaranty consistency with the default "C" facet implementations in
518	the lib.
519
520	* * test/unit/time_facets_test.cpp, num_facets_test.cpp,
521	monetary_facets_test.cpp, ctype_facets_test.cpp: Enhance tests by using
522	a third way of generating locale instance from names.
523
5242008-02-13  Francois Dumont  <dums@users.sourceforge.net>
525
526	* src/fstream_impl.h, details/fstream_win32io.cpp,
527	fstream_unitstd.cpp, fstream_stdio.cpp, stdio_streambuf.cpp: __stdin_size
528	function revomed making fstream_impl.h useless.
529
5302008-02-12  Francois Dumont  <dums@users.sourceforge.net>
531
532	* stlport/stl/type_manips.h, type_traits.h: Borland patch from Eric
533	Sanford to fix regressions introduced with recent modifications of
534	some helper struct used to detect potential optimizations.
535
536	* config/_bc.h, features.h: New configuration, Borland do not support
537	following syntax:
538	typename std::iterator_traits<>::value_type. It breaks on association
539	of typename keyword with namespace specification. As Borland do not
540	require typename keyword in this case it is now possible avoid it
541	thanks to the _STLP_NO_TYPENAME_BEFORE_NAMESPACE macro.
542
543	* stlport/stl/_limits.c: Borland, like gcc 4, prefer additional brackets
544	in initialization of struct associated to computation of numeric limits
545	values.
546
5472008-02-01  Francois Dumont  <dums@users.sourceforge.net>
548
549	* General code review to look for Standard or internal functions
550	called with namespace scope in order to avoid ambiguous calls
551	when compiler implement Argument Dependant Lookup. See ListTest::adl
552	test case to see what it means.
553
554	* stlport/stl/config/features.h: _STLP_PRIV now contains full
555	namespace path starting at global namespace that is to say
556	::stlport::priv:: when private namespace is in use and ::stlport::
557	when it is not. Idem for _STLP_TR1 that now contains ::stlport::tr1::.
558
559	* stlport/stl/debug/_string.h: Call to std::distance removed to avoid
560	reading input iterators before reading their contents. Now all
561	basic_string::assign methods invalidate all iterators like other
562	containers.
563
564	* stlport/stl/_iterator_base.h: Remove implementation of __value_type
565	__distance_type and __iterator_category when compiler support partial
566	template specialization. In this case we directly use iterator_traits,
567	we do not need those functions. Removed special __distance implementations
568	use in an anachronous implementation of distance taking an initial value
569	to start counting. Now this function use __distance functions already
570	used by the std::distance function. The MSVC _Distance function is also
571	considered as anachronous.
572
5732008-01-31  Francois Dumont  <dums@users.sourceforge.net>
574
575	* stlport/stl/_string.h, test/unit/string_test.cpp: Add swap
576	implementation when there is no support for template function
577	partial ordering.
578
5792008-01-30  Francois Dumont  <dums@users.sourceforge.net>
580
581	* src/fstream_impl.h, details/fstream_stdio.cpp, fstream_unistd.cpp,
582	fstream_win32io.cpp, stdio_streambuf.h, stdio_streambuf.cpp: Hide
583	__is_regular_file only used in fsteam implementation specific files.
584	Rename __file_size in __stdin_size as this function is only used
585	to get stdin FILE* size. Under Win32 this function now always returns
586	0 as it looks like Windows do not consider FILE* as allowing
587	position operations. Move platform specific code from stdio_streambuf
588	implementation to associated fstream_*.cpp file.
589
5902008-01-29  Petr Ovtchenkov  <complement@users.sourceforge.net>
591
592	* build/test/unit/gcc.mak: option for run-time path to libstlport
593	on HP-UX;
594
595	* build/Makefiles/gmake/hp-ux/targetsys.mak: HP-UX IA64 use so
596	as shared object extention, while PA-RISC use sl;
597
598	* build/Makefiles/gmake/gcc.mak: use -fno-reorder-blocks for PA-RISC;
599
600	* src/cxa.c: use cxa_atexit fix similar to trick on Solaris and FreeBSD;
601
602	* src/num_get_float.cpp: stdint.h on HP-UX;
603
604	* stlport/wctype.h, stlport/stl/_cwctype.h: HP-UX has problems with
605	wchars; changes suggested by KBac.
606
6072008-01-28  Francois Dumont  <dums@users.sourceforge.net>
608
609	* stlport/stl/config/_cygwin.h: Cygwin do not define _STLP_USE_GLIBC
610	anymore, platform API is closer to a Standard C lib than to the Gnu
611	lib C.
612
6132008-01-26  Francois Dumont  <dums@users.sourceforge.net>
614
615	* src/fstream_stdio.cpp, fstream_win32io.cpp, fstream_unistd.cpp:
616	Removed unused uint64.h include and definition of ULL macro.
617
618	* src/uin64.h: Removed, _compound_int class defined in it is simply
619	not used anymore.
620
621	* src/_stdio_file.h: Major cleanup, only _FILE_fd is still in use.
622
623	* src/locale.cpp, locale_impl.cpp, build/lib/Makefile.inc: Restore
624	independency between those 2 translation units, code duplication is
625	very limited. This is a 1st step to make build of STLport easier by
626	having all sources in src folder buildable.
627
628	* src/locale_impl.h, locale_impl.cpp: _copy_Locale_impl removed,
629	only use to create initial global locale that can simply reference
630	classic locale incrementing its reference counter by one.
631
632	* stlport/stl/_locale.h: Fix locale implementation when MSVC6 workaround
633	is used. The base class _NoMem_loc do not have to have a virtual
634	destructor, it only need a protected one. Moreover fix constructor
635	taking an other locale instance and a facet instance, _M_impl was
636	not released before being assigned resulting in a memory leak.
637
638	* src/fstream_stdio.cpp, fstream_unistd.cpp, fstream_win32io.cpp:
639	Moved to details sub-folder. Now building STLport means build all
640	.cpp, .c and optionnaly .rc files from src folder.
641
6422008-01-22  Petr Ovtchenkov  <complement@users.sourceforge.net>
643
644	* build/test/unit/gcc.mak: check confguration and set
645	ALL_TAGS before inclusion top.mak, to correctly set
646	targets for 'all'.
647
6482008-01-21  Francois Dumont  <dums@users.sourceforge.net>
649
650	* build/test/unit/icl.mak: Add /fp:strict option to build unit tests
651	as we need strict floating point number operations respect to have
652	numeric limits to work correctly.
653
654	* stlport/stl/config/_intel.h: Looks like ICL since version 9 support
655	static constant correctly.
656
657	* stlport/stl/config/features.h, src/c_locale_win32/c_locale_win32.c:
658	New macro _STLP_MARK_PARAMETER_AS_UNUSED to offer a compiler specific
659	way of marking parameters as unused. Default behavior is to cast the
660	parameter to void*.
661
662	* src/c_locale_win32/c_wlocale_win32.c: Fix _WLocale_strxfrm function
663	implementation thanks Kai Khcyt. Despite taking a pointer to wchar_t*
664	LCMapStringW writes bytes to it.
665
666	* build/Makefiles/gmake/bcc.mak, lib/bcc.mak, app/bcc.mak, stlport/cerrno,
667	errno.h, stl/type_manips.h, type_traits.h: Borland patch from Eric
668	Sanford to build Borland libs with GNU make build system.
669
6702008-01-18  Francois Dumont  <dums@users.sourceforge.net>
671
672	* test/unit/locale_test.cpp, ctype_facets_test.cpp,
673	money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
674	test_supported_locale function do not have to be template, might
675	avoid ICL wring code generation.
676
677	* stlport/stl/_function_base.h: Based on an idea from Herb Sutter in
678	his excellent book "Exceptional C++ Style", derived class destructor
679	should be protected non virtual or public virtual. unary_function
680	and binary_function struct are intended to be derived but they
681	are not polymorphic so destructor should be protected non virtual.
682	According the book it is even not breaking library Standard conformity
683	in doing so. What is sure is that it will help users detect bad
684	code.
685
6862008-01-17  Francois Dumont  <dums@users.sourceforge.net>
687
688	* stlport/stl/debug/_list.h: Remove use of std::distance in STL
689	safe mode, it is invalid for pure input iterators. Now assign
690	invalidate all iterators which make the code simpler.
691
692	* Remove the difficult to implement and maintain _AreSameUnCVTypes,
693	doing so has a number of impact on the lib:
694	- Remove usage of it in debug/_string.h and debug/_deque.h, we
695	rather use function specialization to detect self reference. In string
696	implementation it is almost impossible to detect self referencing in
697	insert and assign method even with use of _AreSameUnCVTypes, so
698	we systematically creation an intermediate string instance.
699	- Creation of _AreCopyable helper class to detect when it is safe
700	to do a memcpy or memmove between 2 types. This class returns false
701	when any type is volatile qualified or when trying to copy to a const
702	qualified type.
703	- Creation of _AreSameTypes only really implemented thanks to partial
704	template specialization, only used in _IsOkToSwap struct.
705
706	* test/unit/copy_test.cpp: Add test showing bug 1806558.
707
7082008-01-17  Petr Ovtchenkov  <complement@users.sourceforge.net>
709
710	* build/lib/configure: Don't override COMPILER_NAME, if already
711	defined;
712
713	* stlport/stl/config/_prolog.h: remove suspicious comments.
714
7152008-01-15  Petr Ovtchenkov  <complement@users.sourceforge.net>
716
717	* stlport/stl/config/_hpux.h: define _POSIX_C_SOURCE 199506;
718	suggested by KBac, patch #1869229.
719
7202008-01-14  Francois Dumont  <dums@users.sourceforge.net>
721
722	* stlport/stl/_string.h, _string.c: Restore code to support non-POD
723	types in basic_string implementation as specified in basic_string
724	comments.
725
726	* stlport/stl/_limits.c: Use double numeric limits for long double
727	when sizeof(double) == sizeof(long double).
728
729	* stlport/stl/debug/_debug.h, _deque.h, _list.h, _vector.h: Prefer to
730	use overloading of member method to activate additional check of
731	23.1.1 table 67 Standard conformity rather than using metaprogrammng
732	technique.
733
7342008-01-12  Petr Ovtchenkov  <complement@users.sourceforge.net>
735
736	* build/Makefiles/gmake/lib/gcc.mak: gcc 3.3 has useful
737	libsupc++, but some builds not; prefer normal situation,
738	not marginal; see record 2007-10-10;
739
740	* build/Makefiles/gmake/gcc.mak: fix reference to _FORCE_CXX macro;
741
742	* build/Makefiles/gmake/CC.mak: ditto;
743
744	* build/Makefiles/gmake/aCC.mak: ditto;
745
746	* build/lib/configure: keep compiler and default compiler --- gcc
747	is most common defualt and plans to switch to default makefile.
748
7492008-01-11  Francois Dumont  <dums@users.sourceforge.net>
750
751	* stlport/stl/_limits.c: Adapt long double numeric limits for
752	Intel C++ compiler 9 for Windows.
753
754	* test/unit/cppunit/test_main.cpp: Add command usage output when
755	option is not recognise.
756
757	* build/lib/configure: Remove specification of COMPILER_NAME default
758	value gcc. COMPILER_NAME is already set in all root make scripts like
759	gcc.mak, aCC.mak, dmc.mak ... Doing so forces users to specify their
760	compiler family using configure script which is redundant.
761
7622008-01-10  Francois Dumont  <dums@users.sourceforge.net>
763
764	* stlport/stl/_prolog.h: Remove code duplication by including
765	_cprolog.h.
766
767	* stlport/errno.h, cerrno: Move import of errno from errno.h to
768	cerrno.
769
770	* src/ctype.cpp, facets_byname.cpp, time_facets.cpp,
771	test/unit/codecvt_test.cpp: Several small modifications to make
772	Intel C++ compiler happier. Mostly avoid warnings and use
773	unary_function to avoid some typedef.
774
7752008-01-09  Francois Dumont  <dums@users.sourceforge.net>
776
777	* stlport/stl/_uninitialized.h: Fix implementation of
778	__uninitialized_copy_copy in order to make the function exception
779	safe. Detected thanks to the EH test suite.
780
7812008-01-08  Francois Dumont  <dums@users.sourceforge.net>
782
783	* stlport/stl/_ios_base.h: _S_was_synced renamed in _S_is_synced
784	because it reflects what the sync state is and not what it was.
785
786	* src/iostream.cpp: Use auto_ptr to avoid use of the catch(...)
787	blocks. Changed management of the _STLP_REDIRECT_STDSTREAMS macro.
788	cout, cerr and clog streams are not ofstream anymore but classic
789	ostream instances, only streambuf is a filebuf when the macro is
790	defined. Improve _S_initialize robustness to exceptions, now
791	exceptions like bad_alloc are not silently eaten. _S_initialize
792	guaranty that on exception, Standard streams will be valid, it do
793	not offer however strong guaranty, global state might still have
794	been modified. Idem for sync_with_stdio. Moreover this method is
795	now Standard compliant, it returns the new sync state and not the
796	old one.
797
7982008-01-07  Francois Dumont  <dums@users.sourceforge.net>
799
800	* src/c_locale_dummy/c_locale_dummy.c: Upgrade to take into account
801	recent localization Api modifications.
802
8032008-01-04  Francois Dumont  <dums@users.sourceforge.net>
804
805	* src/fstream_win32.cpp: Change detection of regular file, only reject
806	handlers identified as folders.
807
808	* stlport/stl/_codecvt.h: Add assertion to check buffer ranges pass to
809	the codecvt facet.
810
811	* src/fstream.cpp, stlport/stl/_fstream.c: Complete bug #1854345 fix,
812	get buffer was not reset at the right place.
813
814	* stlport/stl/_fstream.h, _fstream.c: Several modifications in the
815	seekoff method:
816	- Remove limitation of positioning to binary file stream, setting
817	position in a text file stream is not a problem.
818	- Fix mbstate_t instance returned in the file_pos instance when
819	getting position in a file stream with variable encoding.
820	- Move all the sanity check code to the debug mode.
821
8222008-01-02  Francois Dumont  <dums@users.sourceforge.net>
823
824	* test/unit/fstream_test.cpp: Change FstreamTest::seek test to reveal
825	bug #1854345.
826
827	* src/fstream.cpp: #1854345 bug fixed.
828
8292008-01-01  Francois Dumont  <dums@users.sourceforge.net>
830
831	* stlport/stl/_time_facets.h, _time_facets.c, src/time_facet.cpp,
832	c_locale_glibc/c_locale_glibc2.c: Restore GlibC++ support after
833	2007-12-27 modifications.
834
8352007-12-29  Francois Dumont  <dums@users.sourceforge.net>
836
837	* Borland patch from Eric Sanford mainly to enable move constructor.
838
839	* stlport/stl/_string_base.h, _string.h, _string.c,
840	_string_sum_methods.h: Attempt to make string implementation more
841	clear: _M_allocated renamed in _M_start_of_storage,
842	_M_Buffers._M_dynamic_buffer renamed in _M_Buffers._M_end_of_storage,
843	_M_end_block renamed in _M_end_of_storage too. To respect current
844	naming convention _capacity has been renamed in _M_capacity and
845	_rest in _M_rest.
846
847	* stlport/stl/_string_workaround.h: Updated to take into account recent
848	modification in string data model.
849
850	* etc/autoexp.dat: Updated to take into account string data model
851	modifications, new model is really simpler to map to.
852
8532007-12-27  Francois Dumont  <dums@users.sourceforge.net>
854
855	* src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
856	c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
857	c_locale_win32/c_locale_win32.c, facets_byname.cpp, time_facets.cpp,
858	stlport/stl/_codecvt.h, _ctype.h, _numpunct.h, _time_facets.c,
859	_time_facets.h: Major internal localization API modification. Add
860	several _WLocale_* functions to allow native support of access to
861	wide char representation of localization information. The time facet
862	support has been the most impacted. GlibC based implementation
863	still have to be updated.
864
8652007-12-23  Francois Dumont  <dums@users.sourceforge.net>
866
867	* build/Makefiles/nmake/evc8.mak, targets.mak, src/_stdio_file.h,
868	fstream_win32io.cpp, iostream.cpp, locale_catalog.cpp: Patch from
869	Johan Anderson for Evc 3/4/8 to:
870	- fix the opening console issue on this platform.
871	- add EVC8 SH4 support.
872
873	* test/unit: Add CPPUNIT_FAIL macro to force failure without
874	using a constant conditional expression. Many tests updated to
875	use this new macro.
876
877	* stlport/stl/config/_evc.h, debug/_debug.h, _debug.c: Patch
878	from Michael Fink to allow _STLP_DEBUG mode when using WCE ARM
879	platform.
880
8812007-12-20  Francois Dumont  <dums@users.sourceforge.net>
882
883	* stlport/stl/_monetary.c: Remove test of existing space at end of
884	stream when last pattern field is none because on ouput stream
885	space are only added optionaly. Small code duplication removed.
886
887	* build/lib/configure.bat, evc.mak, msvc.mak, test/unit/evc.mak,
888	msvc.mak: Config file moved to Makefiles/nmake folder. Add
889	--without-stlport option to build unit tests without STLport.
890
891	* test/unit/money_facets_test.cpp: Add validation that moneypunct
892	"C" facet is identical to the one contained in locale::classic().
893
894	* src/c_locale_dummy/c_locale_dummy.c,
895	c_locale_win32/c_locale_win32.c, facets_byname.cpp: Fix to have
896	moneypunct by name facet build from "C" similar to locale::classic()
897	one. Now default format in _Init_monetary_formats is the C++ default
898	one.
899
9002007-12-20  Petr Ovtchenkov  <complement@users.sourceforge.net>
901
902	* test/unit/fstream_test.cpp: test for seek, inspired by Soren
903	(stsoe, #1854345); report not confirmed.
904
9052007-12-17  Francois Dumont  <dums@users.sourceforge.net>
906
907	* stlport/stl/_limits.c: Add brackets on union initialization for gcc
908	starting with version 4.
909
9102007-12-17  Petr Ovtchenkov  <complement@users.sourceforge.net>
911
912	* stlport/stl/config/_linux.h: if not explicitly specified another,
913	use threads.
914
9152007-12-14  Francois Dumont  <dums@users.sourceforge.net>
916
917	* src/c_locale_win32/c_locale_win32.c: Fix implementation of
918	_Locale_mbtowc and _Locale_wctomb functions. Reveal limitation of
919	the MultiByteToWideChar function that cannot be used to implement
920	more complicated encodings that have a real shift state like the
921	JIS one. Add support for UTF7 and UTF8 encodings.
922
923	* test/unit/codecvt_test.cpp: New test case to check support for
924	2 encodings, the Windows specific code page 936 and the UTF8 one.
925	Those tests are coming from chinese test samples proposed by Victor
926	Xie.
927
9282007-12-14  Petr Ovtchenkov  <complement@users.sourceforge.net>
929
930	* stlport/stl/_string_base.h, stlport/stl/_string.h, stlport/stl/_string.c:
931	experimental string buffer---start of buffer in _M_allocated._M_data now,
932	end of buffer either end of local short buffer, or stored in pointer
933	within local short buffer; this potentially reduce amount of pointer
934	arithmetic; prefer Traits::assign to uninitialized fill, it more
935	optimized for POD types, such as chars [experimental too].
936
9372007-12-13  Francois Dumont  <dums@users.sourceforge.net>
938
939	* src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
940	c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
941	c_locale_win32/c_locale_win32.c: Remove unused _Locale_wctob and
942	_Locale_btowc localization API functions.
943
9442007-12-13  Petr Ovtchenkov  <complement@users.sourceforge.net>
945
946	* build/test/unit/gcc.mak, test/unit/...: allow build unit tests
947	with libstdc++, without STLport; useful for reference and comparison.
948
9492007-12-12  Petr Ovtchenkov  <complement@users.sourceforge.net>
950
951	* build/Makefiles/gmake/unix/rules-install-so.mak, build/lib/gcc.mak:
952	install-headers usable; it use user-defined macro HEADERS_BASE
953	[catalog and all files, keeping	directory structure] and HEADERS
954	[for single files]; target catalog is INSTALL_HDR_DIR, by default
955	it is ${BASE_INSTALL_DIR}/include.
956
9572007-12-07  Petr Ovtchenkov  <complement@users.sourceforge.net>
958
959	* stlport/stl/_uninitialized.h: comment unused parameter;
960
961	* stlport/stl/_limits.c: 64-bits systems may has [and really has]
962	size of long double 16, not 12; but IEEE 854 still in force, and
963	only 10 bytes of long double taken into account. This should fix
964	limits<long double> on 64-bits systems. Thanks joebishop
965	[aka Denis Cheremisov] for granted access to 64-bit linux.
966
9672007-12-05  Francois Dumont  <dums@users.sourceforge.net>
968
969	* src/c_locale_glibc/c_locale_glibc2.c: Fix a one byte memory overrun
970	when passing a very locale name.
971
972	* src/c_locale_win32/c_locale_win32.c: Simplified Win32 localization
973	code. Remove useless calls to strcpy. Remove useless call to the
974	__Extract_locale_name once in the _Locale_*_create functions as
975	name has already been extracted at this moment.
976
9772007-12-05  Francois Dumont  <dums@users.sourceforge.net>
978
979	* src/c_locale_glibc/c_locale_glibc2.c: Removed many checks useless
980	as the C functions are called in a well defined and safe context. Also
981	remove useless strcpy calls when it is safe to return the internal
982	string.
983
9842007-12-04  Francois Dumont  <dums@users.sourceforge.net>
985
986	* Add the _Locale_codecvt localization data structure for 2 purposes:
987	- in the win32 implementation it simplify _Locale_ctype data structure.
988	- in the glibc implementation it helps making clear that this
989	implementation do not support the codecvt facet for the moment.
990
9912007-12-03  Francois Dumont  <dums@users.sourceforge.net>
992
993	* src/fstream_win32io.cpp: Fix management of Ctrl-Z when reading
994	text file stream thanks Hector Chu patch.
995
9962007-11-30  Francois Dumont  <dums@users.sourceforge.net>
997
998	* src/acquire_release.h, facets_byname.cpp, locale.cpp,
999	locale_impl.cpp, locale_impl.h, messages.cpp, time_facets.cpp:
1000	Localization code modification, now locale instances will adopt
1001	a normalized name rather than the name used to create them. This
1002	way identical locale instances will compare equals even if created
1003	from name aliases like 'french' and 'fr_FR'. Moreover default
1004	locale built from an empty string won't have an empty name.
1005
1006	* test/unit/locale_test.cpp, ctype_facets_test.cpp,
1007	money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
1008	Enhance localization tests, add test of default locale when possible.
1009	Add test for the locale instances built from a mix of the
1010	locale::classic instance and a named category.
1011
10122007-11-27  Francois Dumont  <dums@users.sourceforge.net>
1013
1014	* stlport/stl/_ios_base.h, _ios.c: Add qualification on the cached
1015	ctype and numpunct facets, we can keep them as const pointers.
1016	Moreover, prefer to use the use_facet function rather than _M_get_facet
1017	to access those instances to avoid direct reference to the facet::id
1018	static instance.
1019
1020	* Some evolution in the localization code:
1021	- Hide _Locale_name_hint in internal implementation, facets *_byname
1022	constructor are now respecting the C++ Standard signature.
1023	- numpunct facet: Remove unused _M_grouping field, move hard coded
1024	values of the "C" facet in the sources. Only the numpunct_byname<wchar_t>
1025	keeps internal wstring representation of true and false names.
1026	- time facets: Use the non template time_base class for initialization
1027	of the _Time_Info instance, it is more coherent with other facets
1028	implementations. Many functions like __acquire_time and __release_time
1029	are now hidden in the library.
1030
10312007-11-26  Francois Dumont  <dums@users.sourceforge.net>
1032
1033	* stlport/stl/char_traits.h, _stdexcept_base.c: Borland patch
1034	from Eric Sanford, add a missing header and change
1035	__Named_exception implementation because of a Borland compiler
1036	bug.
1037
1038	* src/c_locale_win32/c_locale_win32.c: Add LANG_INVARIANT
1039	definition when SDK are missing it.
1040
10412007-11-24  Francois Dumont  <dums@users.sourceforge.net>
1042
1043	* stlport/stl/_monetary.h: Add missing explicit keyword on
1044	money_get and money_put constructors.
1045
1046	* stlport/stl/_numpunct.h: Removed friend relation between
1047	numpunct and num_get, looks like it is useless with current
1048	implementation.
1049
1050	* stlport/stl/config/stl_mycomp.h, features.h, _watcom.h, _sunprocc.h,
1051	_mwerks.h, _msvc.h, _ibm.h, _dec_vms.h, _dec.h, _as400.h: Removed
1052	_STLP_NO_FRIEND_TEMPLATES, _STLP_FRIEND_TEMPLATES macros unused
1053	since fix above regarding numpunct/num_get friend relation.
1054
1055	* test/unit/collate_facets_test.cpp: Fix "C" facet by name test,
1056	Standard do not define any special behavior for the "C" transform
1057	method so transformed result should simply follow the normal transform
1058	behavior.
1059
1060	* src/locale_impl.cpp: Removed useless holes in locale facets table.
1061	Now the table contains 26 non null entries rather than 38 entries with
1062	some begin null.
1063
10642007-11-23  Francois Dumont  <dums@users.sourceforge.net>
1065
1066	* src/locale.cpp, locale_impl.h, locale_impl.cpp: Some small
1067	modifications to limit necessary friend class _Locale_impl
1068	declaration in several facet classes.  Moreover, num_get, num_put,
1069	money_get, money_put facets that do not depend on any name are
1070	not allocated anymore in the functions responsible for generating
1071	facets for a given category.
1072
1073	* stlport/stl/_codecvt.h, _collate.h, _ctype.h, _messages_facets.h,
1074	_monetary.h, _num_get.h, _num_put.h, _numpunct.h, _time_facets.h:
1075	Removed many useless friend class _Locale_impl declarations.
1076
10772007-11-23  Petr Ovtchenkov  <complement@users.sourceforge.net>
1078
1079	* build/lib/configure: make configuration suitable for installation
1080	procedure and package building.
1081
10822007-11-22  Francois Dumont  <dums@users.sourceforge.net>
1083
1084	* src/c_locale_dummy/c_locale_dummy.c: Now implements the "C" locale
1085	to respect the C++ Standard.
1086
1087	* test/unit/collate_facets_test.cpp: Fix test checking that collate
1088	facet build from the "C" name behave like the one coming from the
1089	locale::classic() locale.
1090
1091	* src/c_locale.h, locale.cpp, c_locale_glibc/c_locale_glibc.c,
1092	c_locale_glic2.c, c_locale_win32/c_locale_win32.c, locale.cpp: Removed
1093	_Locale_compose_name from the STLport internal localization API.
1094	Composition of locale names will now be the responsibility of STLport
1095	itself and not of the platform localization implementations one.
1096
10972007-11-20  Francois Dumont  <dums@users.sourceforge.net>
1098
1099	* stlport/stl/_iterator_base.h, _ptrs_specialize.h: Avoid inclusion
1100	of _ptrs_specialize.h while still in stlport namespace scope thanks
1101	Christof Meerwald report.
1102
11032007-11-17  Francois Dumont  <dums@users.sourceforge.net>
1104
1105	* _STLP_STATIC_MEMBER_DECLSPEC workaround removed. Thanks to
1106	_GetFacetId other workaround it should now be useless. There
1107	are still some tests to confirm especially testing the
1108	gcc visibility feature.
1109
11102007-11-16  Francois Dumont  <dums@users.sourceforge.net>
1111
1112	* stlport/stl/_fstream.c: Fix implementation of
1113	basic_filebuf<_CharT, _Traits>::_M_underflow_aux() to take
1114	into consideration already read external buffer even if
1115	reading from file failed. Thanks Hector Chu report and patch.
1116
1117	* test/unit/codecvt_test.cpp: New test for problem above,
1118	CodecvtTest::imbue_while_reading thanks Hector Chu.
1119
1120	* test/unit/fstream_test.cpp: Remove useless
1121	FstreamTest::special_encoding test replaced by new test in
1122	CodecvtTest. Fix FstreamTest::custom_facet test that is now using
1123	a specialization of codecvt rather than a class inheriting from
1124	codecvt.
1125
11262007-11-14  Francois Dumont  <dums@users.sourceforge.net>
1127
1128	* src/c_locale_win32/c_locale_win32.c: Fix to support creation
1129	of locale facet from the 'C' name.
1130
1131	* test/unit/collate_facets_test.cpp, locale_test.cpp,
1132	money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
1133	Add test to check build from names "" or "C", on platform without
1134	real localization support, "" should result in "C". Also check
1135	for some facets that the one build from "C" name is similar to
1136	the one taken from locale::classic() locale.
1137
11382007-11-12  Petr Ovtchenkov  <complement@users.sourceforge.net>
1139
1140	* test/unit/fstream_test.cpp: testcase for bug #1830513;
1141	__read_unbuffered wrongly process valid streamsize 0;
1142	[was derived from original report of Anton Samokhvalov and Oleg Obolenskiy]
1143
1144	* stlport/stl/_istream.c: fix for bug #1830513 above;
1145	check boundary condition in the beginning of loop.
1146
11472007-11-09  Francois Dumont  <dums@users.sourceforge.net>
1148
1149	* build/Makefiles/gmake: Add missing cygming folder comming
1150	from task branch, required for Cygwin/MinGW builds.
1151
1152	* stlport/stl/_bvector.h, _deque.h, _hashtable.h, _list.h,
1153	_rope.h, _slist.h, _string_base.h, _tree.h, _vector.h: Removed
1154	useless instantiation of _Alloc_traits to define nested
1155	allocator_type in several containers. STLport users will simply
1156	have to correctly instantiate containers when they specify
1157	the allocator to use.
1158
11592007-10-30  Francois Dumont  <dums@users.sourceforge.net>
1160
1161	* etc/autoexp.dat: New file containing description of STLport
1162	data structures in the Visual Studio C++ debugger language.
1163
11642007-10-21  Francois Dumont  <dums@users.sourceforge.net>
1165
1166	* Merged with STLPORT_5_1 up to revision 3229.
1167
11682007-10-20  Francois Dumont  <dums@users.sourceforge.net>
1169
1170	* _STLP_NO_MBSTATE_T removed, STLport cannot really live without
1171	any mbstate_t definition. Moreover we were already defining our own
1172	definition when _STLP_NO_MBSTATE_T is defined, we now simply generalize
1173	this behavior. So definition of _STLP_NO_MBSTATE_T has been replaced
1174	with _STLP_NO_NATIVE_MBSTATE_T.
1175
11762007-10-14  Francois Dumont  <dums@users.sourceforge.net>
1177
1178	* src/bitset.cpp: Add const qualifier on static arrays used in
1179	bitset implementation. Thanks a Andrey Semachev remark.
1180
11812007-10-12  Francois Dumont  <dums@users.sourceforge.net>
1182
1183	* stlport/stl/_hash_map.h, _hash_set.h, _unordered_set.h,
1184	_unordered_map.h: Because of the hashtable data model, number
1185	of bucket should not be to high compare to the number of
1186	elements. For this reason, default constructor of all hash
1187	containers is now passing 0 as the initial size rather than 100.
1188
1189	* stlport/stl/_hashtable.h, _hashtable.c: For the same reason exposed
1190	above, the hashtable number of buckets is decrease when removing
1191	elements from the container. All is done in the newly introduce
1192	_M_reduce method that should be called each time elements are
1193	removed.
1194
1195	* test/unit/unordered_test.cpp: Two new test in UnorderedTest test
1196	fixture, benchmark1 and benchmark2. Those tests are rather, as indicated
1197	by their name, bench to compare performance of hashed containers.
1198	It can be used with the -m unit test console option that display
1199	timing of tests. For instance, thanks to the reduction policy exposed
1200	above, benchmark1 is running 20 times faster while benchmark2 is
1201	almost identical.
1202
1203	* stlport/stl/_hashtable.h: Container might now be rehash when user
1204	modified max load factor in order to respect
1205	load_factor() <= max_load_factor() rule. hashtable::resize fixed,
1206	according SGI doc it should behave as Standard unordered_*::rehash that
1207	is to say it gives number of buckets and not number of elements.
1208
1209	* stlport/stl/_hashtable.c: Fix Code warrior workaround that was only
1210	showing a limited number of prime numbers.
1211
12122007-10-10  Petr Ovtchenkov  <complement@users.sourceforge.net>
1213
1214	* build/Makefiles: merge r2883:3223 from tasks/STLport-Makefiles;
1215	revision of build system, from 'complement' project, adopted for
1216	STLport requirements; support build of static lib and build unit
1217	tests with this lib; gmake-specific files moved into gmake catalog;
1218	top.mak (gmake-specific) moved into gmake catalog; add include
1219	option for boost's headers, if STLP_BUILD_BOOST_PATH defined;
1220	config.mak has make-dependent features, so it moved to gmake or
1221	nmake catalog; settings from gmake/windows/sysid.mak should
1222	be present in common gmake/sysid.mak file; gcc 3.3 has bad or
1223	absent libsupc++, at least in debian; don't use -lstlport, when
1224	build it; removed windows platform support that used to represent
1225	the environment given by the cmd shell with MinGW additional commands
1226	i.e. MinGW require not only gmake, but other POSIX file utils too;
1227	install target by default install to /usr/local/lib on POSIX-like
1228	platforms; added distclean target; added install-headers target;
1229
1230	* build/test/unit: top.mak (gmake-specific) moved into gmake catalog;
1231
1232	* build/test/unit/gcc.mak: see just build stlport libs, not
1233	installation path [default install path is /usr/local/lib on POSIX-like
1234	platforms].
1235
12362007-10-07  Francois Dumont  <dums@users.sourceforge.net>
1237
1238	* 5.1.4 released, trunk merged with STLPORT_5_1 branch up to
1239	revision 3221.
1240
12412007-10-04  Francois Dumont  <dums@users.sourceforge.net>
1242
1243	* stlport/stl/_codecvt.h, _fstream.c, src/codecvt.cpp: Fix non
1244	Standard conformity in codecvt::length and associated
1245	codecvt::do_length methods. Those methods was taking const reference
1246	to mbstate_t but the Standard specify that it must be a simple
1247	reference.
1248
1249	* src/facets_byname.cpp: Add a real implementation of
1250	codecvt<wchar_t, char, mbstate_t>::do_length based on the
1251	_Locale_mbtowc locale API function.
1252
1253	* test/unit/codecvt_test.cpp: Add a test for codecvt::length.
1254
1255	* test/unit/fstream_test.cpp: Add a test that indirectly test
1256	codecvt facet and integration of it in the basic_filebuf
1257	implementation.
1258
12592007-10-02  Francois Dumont  <dums@users.sourceforge.net>
1260
1261	* test/unit/deque_test.cpp, hash_test.cpp, list_test.cpp, map_test.cpp,
1262	set_test.cpp, slist_test.cpp, unordered_test.cpp, vector_test.cpp:
1263	Allow test on incomplete types even when pointer specialization is
1264	activated as long as partial template specialization is supported.
1265
1266	* stlport/stl/_fstream.c, src/facets_byname.cpp,
1267	test/unit/codecvt_test.cpp:
1268	Fixed codecvt_byname<wchar_t, char, mbstate_t>::do_in and do_out
1269	methods. They now both correctly take into account to_end pointer.
1270	Thanks Vistor (finalvistory) report on sourceforge Developer forum.
1271
12722007-09-28  Francois Dumont  <dums@users.sourceforge.net>
1273
1274	* src/num_put_float.cpp: Modification in _Stl_ecvtR and _Stl_fcvtR
1275	long double overloads, if value can be converted to double without
1276	precision loss we can rely on the double overload. Moreover _Stl_fcvtR
1277	has been fixed.
1278
1279	* stlport/stl/pointer/_tools.h: Use class partial specialization to
1280	enhance usability of the container pointer specialization feature.
1281	Thanks to it, container can be instanciated with incomplete types.
1282	Modification based on bug report 1799048 from Andrey Semashev.
1283
1284	* trunk merged with STLPORT_5_1 up to revision 3211.
1285
12862007-09-27  Francois Dumont  <dums@users.sourceforge.net>
1287
1288	* src: Modification in the internal localization API.
1289	_Locale_errno removed, now an int pointer is passed to all
1290	_Locale_*_create and all _Locale_extract_*_name functions so
1291	that they can return an error code. This method avoid multithreaded
1292	issues.
1293
1294	* src/locale_catalog.cpp: Modification in __acquire_category
1295	function. If create_obj return null, the null pointer is not
1296	stored anymore in cached as creation failure reason might be
1297	temporary like in case of memory starvation.
1298
1299	* stlport/stl/_locale.h: Error reporting enhancement. In combine
1300	method we use a typeid call to report the unknown facet type. In other
1301	situation we report both the facet category being built and the name
1302	used to build it.
1303
1304	* test/unit/locale_test.cpp, collate_facets_test.cpp,
1305	messages_facet_test.cpp, money_facets_test.cpp, num_facets_test.cpp,
1306	time_facets_test.cpp: Add checks for construction of facets from
1307	very long facet name.
1308
13092007-09-27  Petr Ovtchenkov  <complement@users.sourceforge.net>
1310
1311	* test/unit/find_test.cpp: array initialization missed.
1312
13132007-09-19  Francois Dumont  <dums@users.sourceforge.net>
1314
1315	* trunk merged with STLPORT_5_1 up to revision 3193.
1316
13172007-09-11  Petr Ovtchenkov  <complement@users.sourceforge.net>
1318
1319	* stlport/stl/_algobase.c: keep check for symmetry in
1320	lexicographical compare---algorithm assume symmetry comparator;
1321	remove check for symmetrical comparator in search and find,
1322	due to double checks not better then single (the same check
1323	done in algorithm, and algorithm not require symmetrical
1324	comparator);
1325
1326	* stlport/stl/debug/_hashtable.h: idem;
1327
1328	* stlport/stl/debug/_tree.h: idem;
1329
1330	* stlport/stl/debug/_debug.h: __symetrical_strict_weak_call
1331	and __symetrical_equal_call not used anyware.
1332
13332007-09-10  Francois Dumont  <dums@users.sourceforge.net>
1334
1335	* stlport/stl/_algo.c: Add check for symetrical functor
1336	in max_element and min_element algo.
1337
1338	* stlport/stl/_algobase.c: Restore symetrical functor checks.
1339	Sometimes simply because the algo was already considering the
1340	functor as symetrical as in lexicographical_compare. Sometimes
1341	using specific helpers functions (see below).
1342
1343	* stlport/stl/debug/_debug.h: Add __symetrical_strict_weak_call
1344	and __symetrical_equal_call helper functions to check for
1345	symetric functors only when invocating the symetrical functor
1346	is valid that is to say when both parameters are of the same
1347	type.
1348
1349	* stlport/stl/debug/_hashtable.h: Make use of
1350	__symetrical_equal_call to check that equivalence functor used
1351	in hashtable instanciation is correctly implemented.
1352
1353	* stlport/stl/debug/_tree.h: Make use of
1354	__symetrical_strict_weak_call to check that functor predicate
1355	use in tree instanciation is correctly implemented.
1356
13572007-09-10  Petr Ovtchenkov  <complement@users.sourceforge.net>
1358
1359	* stlport/stl/_string.c: fix bugs in string rfind, find_last_of,
1360	find_last_not_of [bug #1788700, position 0 was wrongly excluded];
1361
1362	* test/unit/string_test.cpp: test for problems above. Thanks
1363	to Bred Bored for bug report and initial test.
1364
13652007-09-09  Petr Ovtchenkov  <complement@users.sourceforge.net>
1366
1367	* test/unit/rope_test.cpp, stlport/stl/_rope.h: test for
1368	bug #1788615 [bug during copy of rope's iterator] and fix;
1369	suggested by John Maddock.
1370
13712007-09-07  Petr Ovtchenkov  <complement@users.sourceforge.net>
1372
1373	* test/unit/alg_test.cpp: add #include <string>, required for
1374	comparator symmetry test;
1375
1376	* test/unit/string_test.cpp: test for bug in find_last_of,
1377	bug #1788700, submitted by Bred Bored.
1378
13792007-09-05  Petr Ovtchenkov  <complement@users.sourceforge.net>
1380
1381	* stlport/stl/_algobase.c: symmetry not required for
1382	comparator in case of two different sequences comparison or
1383	searching; symmetrical comparator just may not exist;
1384
1385	* stlport/stl/debug/_hashtable.h: symmetry not required for
1386	comparator in hashtable in case of containers extention;
1387	symmetrical comparator just may not exist;
1388
1389	* test/unit/alg_test.cpp: test for problem above, thanks
1390	Oleg Obolenskiy.
1391
13922007-09-03  Petr Ovtchenkov  <complement@users.sourceforge.net>
1393
1394	* src/dll_main.cpp, stlport/stl/debug/_debug.c: removed
1395	macro _STLP_STATIC_TEMPLATE_DATA, __PUT_STATIC_DATA_MEMBERS_HERE,
1396	_STLP_NO_STATIC_TEMPLATE_DATA; only few old compilers
1397	require this and are good enough to work with STL;
1398
1399	* test/eh/test_rope.cpp, stlport/stl/_num_get.c: idem;
1400
1401	* stlport/stl/_time_facets.c, stlport/stl/_codecvt.h: idem;
1402
1403	* stlport/stl/_monetary.c, stlport/stl/_num_put.c: idem;
1404
1405	* stlport/stl/_rope.c, stlport/stl/_rope.h: idem;
1406
1407	* stlport/stl/config/user_config.h: idem;
1408
1409	* stlport/stl/config/stl_mycomp.h: idem;
1410
1411	* stlport/stl/config/_gcc.h: idem;
1412
1413	* stlport/stl/_threads.c: idem.
1414
14152007-09-02  Francois Dumont  <dums@users.sourceforge.net>
1416
1417	* stlport/stl/_algobase.c: Small optimization, add an
1418	intermediate __eq function to detect when both iterator types
1419	are identicals. Thanks Jim Xochellis idear.
1420
1421	* stlport/stl/_threads.h, _threads.c: Fully apply modification
1422	of _S_nsec_sleep implementation for Win32 platforms contained
1423	in bug report 1720635 from Taras Overchuck. It is an optimization
1424	of the spin lock mutex specifically targetting the multiprocessor
1425	platforms.
1426
14272007-08-29  Francois Dumont  <dums@users.sourceforge.net>
1428
1429	* stlport/stl/_algobase.c, _string.c: Some modification in
1430	__find_first_of_aux2 implementation to reduce number of iterator
1431	dereferencements.
1432
14332007-08-26  Francois Dumont  <dums@users.sourceforge.net>
1434
1435	* stlport/stl/config/user_config.h, host.h: Moved administrative
1436	_STLP_USE_UNIX_IO, _STLP_USE_STDIO_IO, _STLP_USE_WIN32_IO
1437	macros to host.h.
1438
1439	* Merged with STLPORT_5_1 branch up to revision 3151.
1440
14412007-08-23  Petr Ovtchenkov  <complement@users.sourceforge.net>
1442
1443	* stlport/stl/debug/_vector.h: only random access iterators
1444	allow operations 'less-then' and distance; for bidirectional
1445	iterators removed usage of 'less-then', and for others
1446	[like forward and input iterators] removed as usage of 'less-then'
1447	as distance; thanks Oleg Obolenskiy for bug report;
1448
1449	* test/unit/ioiter_test.cpp: test for problem above.
1450
14512007-08-18  Francois Dumont  <dums@users.sourceforge.net>
1452
1453	* stlport/stl/config/host.h: Removed _STLP_NO_CYGWIN macro
1454	unused since we are using include_next.
1455
14562007-08-16  Francois Dumont  <dums@users.sourceforge.net>
1457
1458	* stlport/stl/config/_gcc.h: Avoid conflict in link model, gcc
1459	visibility for many platforms or dllimport/dllexport for
1460	Cygwin/MinGW.
1461
1462	* build/Makefiles/gmake/gcc.mak: Looks like Cygwin/MinGW won't
1463	support visibility for the moment.
1464
14652007-08-15  Petr Ovtchenkov  <complement@users.sourceforge.net>
1466
1467	* stlport/stl/char_traits.h, src/fstream_unistd.cpp: use 64-bits
1468	file operations calls, if available on system; streamoff is
1469	always off64_t, if _LARGEFILE_SOURCE or _LARGEFILE64_SOURCE
1470	defined, i.e. if 64-bits file operations present;
1471
1472	* src/fstream_stdio.cpp, src/stdio_streambuf.cpp: ditto;
1473
1474	* stlport/stl/config/user_config.h: add _STLP_USE_DEFAULT_FILE_OFFSET,
1475	force use off_t for streamoff and appropriate file operations calls;
1476	note, that this may lead to problems, for example if _FILE_OFFSET_BITS
1477	defined as 64 somewhere in user's code;
1478
1479	* test/unit/fstream_test.cpp: test 64 bits type for filesize and
1480	file offset.
1481
14822007-08-13  Francois Dumont  <dums@users.sourceforge.net>
1483
1484	* test/unit/memory_test.cpp: MSVC6 do not support this test,
1485	ignored.
1486
1487	* stlport/stl/_string.h: Internal _String_reserve_t moved to
1488	private namespace.
1489
1490	* stlport/stl/_algobase.c, _string.c, char_traits.h: Adoption of
1491	the find_first_of trick below in string::find_first_of, find_last_of,
1492	find_first_not_of and find_last_not_of.
1493
14942007-08-12  Francois Dumont  <dums@users.sourceforge.net>
1495
1496	* stlport/stl/_algo.h, _algobase.h, _algobase.c: find_first_of
1497	algorithm enhancement based on the Jim Xochellis analysis that you
1498	can find here:
1499	http://www.codeproject.com/vcpp/stl/find_first_of.asp.
1500
1501	* test/unit/alg_test.cpp: Add several tests to challenge the above
1502	enhancement.
1503
15042007-08-08  Francois Dumont  <dums@users.sourceforge.net>
1505
1506	* stlport/stl/config/feature.h: Removed useless workaround, there
1507	is no more platform using Win32 threading API and missing bool
1508	type.
1509
1510	* src/num_put_float.cpp, num_get_float.cpp: Fixes for DMC, DMC has
1511	real long double so it now uses ieee854_long_double Glibc type. DMC
1512	do not use anymore the sprintf workaround to write floating point
1513	numbers.
1514
1515	* stlport/stl/_auto_ptr.h, test/unit/memory_test.cpp: Fix auto_ptr
1516	implementation, removed a useless const_cast and change a reinterpret_cast
1517	in static_cast. Add support for instanciation with the volatile qualifier.
1518	Thanks Ulrich Eckhardt report.
1519
15202007-08-03  Francois Dumont  <dums@users.sourceforge.net>
1521
1522	* src/c_locale_win32/c_locale_win32.c: Fix some static buffer size
1523	to always have a free place for the trailing zero.
1524
1525	* test/unit/locale_test.cpp: Add a test when passing a very long name
1526	as the LC_CTYPE facet name to the locale constructor.
1527
1528	* src/system_api.h, system_api.c, build/lib/Makefile.inc,
1529	src/num_put_float.cpp: Removed system_api workaround to access
1530	isinfinite, isnan, isinf C functions used with gcc under Hp unix.
1531	Now __format_nan_or_inf has an implementation entirely based on
1532	numeric_limits values that avoids access to platform functions.
1533
15342007-07-30  Francois Dumont  <dums@users.sourceforge.net>
1535
1536	* stlport/stl/_facets_fwd.h, _num_put.h, _num_get.h, _monetary.h,
1537	_time_facets.h, _locale.h: Fix _GetFacetId workaround for compilers
1538	like gcc since 3.4 that consider only the context at point on template
1539	definition and not at the point of instantiation when resolving
1540	_GetFacetId calls in has_facet or use_facets template functions.
1541
15422007-07-20  Francois Dumont  <dums@users.sourceforge.net>
1543
1544	* stlport/stl/_mbstate_t.h: We have to define mbstate_t ourself
1545	on platforms having mbstate_t in cwchar when we want to only use
1546	C headers.
1547
15482007-07-22  Petr Ovtchenkov  <complement@users.sourceforge.net>
1549
1550	* src/fstream_unistd.cpp: force use lseek64/mmap64 for HP-UX,
1551	if _LARGEFILE64_SOURCE defined; thanks for Michael Klein.
1552
15532007-07-20  Francois Dumont  <dums@users.sourceforge.net>
1554
1555	* stlport/stl/config/_gcc.h, stl_mycomp.h: Removed unused
1556	_STLP_WEAK_ATTRIBUTE macro.
1557
1558	* stlport/stl/config/_msvc.h, _intel.h, _gcc.h, features.h: Some
1559	cleanup concerning _STLP_STATIC_TEMPLATE_DATA macro.
1560
15612007-07-18  Francois Dumont  <dums@users.sourceforge.net>
1562
1563	* stlport/stl/_num_put.h: Removed __string_to_float declarations only
1564	used in a num_get context.
1565
1566	* src/num_get_float.cpp:
1567	- Import Glibc ieee854_long_double union for compilers having a real
1568	long double type but no runtime support to correctly generate it. This
1569	union is used by gcc under Cygwin and MinGW and by Borland compiler.
1570	- _Stl_string_to_long_double removed, it was so similar to
1571	_Stl_string_to_double that everything is done with this function now.
1572	- Removed check on exponent value while parsing it from buffer, check is
1573	only done when combining this value with the digits read.
1574
1575	* src/num_get_float.cpp:
1576	- Generalize synchronization code arround the ecvt/fcvt functions when
1577	the platform do not grant reentrant functions.
1578	- In __format_float_scientific, removed useless rz temporary variable, removed
1579	limitation in the number of appended trailing zeros.
1580	- In __format_float_fixed, removed limitation of number of trailing zeros
1581	added after decimal point, it is only limited by precision.
1582	- __format_float: Code to detect infinity or NaN has been moved before call
1583	to platform specific ecvt/fcvt functions. Thanks to this modification, this
1584	function is not template anymore.
1585	- Add _Stl_ecvt/_Stl_fcvt emulation functions when platform do not grant
1586	the necessary ecvt/fcvt functions for long double. Emulation is based on
1587	sprintf function using 'L' modifier.
1588	- In __write_floatT function, fix size of static buffer used by _Stl_ecvt/fcvt
1589	functions. Fix number of digits in calls to _Stl_fcvt/ecvt in both modes,
1590	fixed or scientific.
1591
1592	* test/unit/num_put_get_test.cpp: Add some tests, somes with a really high
1593	precision that show problem with static buffer size.
1594
15952007-07-17  Petr Ovtchenkov  <complement@users.sourceforge.net>
1596
1597	* stlport/stl/_algo.c, stlport/stl/_algobase.c: search, the __tmp and
1598	__p1 iterators always point at the same position, hence one of them
1599	is redundant;
1600
1601	* stlport/stl/_algobase.c: in the main-loop of search there are two
1602	successive while-loops doing exactly the same thing; one of them is
1603	redundant and, since it is inside the main-loop, it slows down
1604	the algorithm significantly;
1605
1606	* stlport/stl/_algo.c, stlport/stl/_algobase.c: in the search the main-loop
1607	condition "while (__first1 != __last1)" is always true and consequently
1608	redundant; this is because the initial adn in-loop conditions virtually
1609	act as guards and will never let the main-loop condition to fail; since
1610	this condition is evaluated in every main-loop iteration, its removal
1611	will also improve the performance of the algorithm; thanks for
1612	Jim Xochellis for this suggestions.
1613
16142007-07-15  Petr Ovtchenkov  <complement@users.sourceforge.net>
1615
1616	* src/strstream.cpp: "get end" pointer should be initialized
1617	to the "begin of get + N" in obsolete strstream; bug #1536503,
1618	thanks for Jean-Eric Cuendet;
1619
1620	* test/unit/strstream_buffer_read_test.cpp, build/test/unit/Makefile.inc:
1621	test for bug above; [submitted by Jean-Eric Cuendet].
1622
16232007-07-05  Francois Dumont  <dums@users.sourceforge.net>
1624
1625	* build/Makefiles/nmake/vc8.mak: Removed _CRT_SECURE_NO_DEPRECATE
1626	when building STLport. Not secured version of functions _ecvt and
1627	_fcvt functions used for floating point numbers output are not
1628	reentrant.
1629
16302007-07-04  Petr Ovtchenkov  <complement@users.sourceforge.net>
1631
1632	* src/num_get_float.cpp: reorder code, one condition go away.
1633
16342007-07-03  Francois Dumont  <dums@users.sourceforge.net>
1635
1636	* src/num_put_float.cpp: _Stl_ecvtR, _Stl_fcvtR, _Stl_qecvtR,
1637	_Stl_qfcvtR functions, pass buffer size as a parameter when the
1638	platform functions need it rather than duplicating the size
1639	definition. This modification has been applied to the DECC platforms
1640	and when the GLibC is in use.
1641	Removed useless islong __format_float_scientific parameter. Removed
1642	useless x __format_float_fixed parameter, islong parameter
1643	replaced with direct specification of the maxfsig value.
1644	In __format_float function, first attempt in detection of NaN or
1645	infinity is done thanks to the std::numeric_limits and compiler
1646	support, _Stl_is_nan_or_inf do not correctly handled long double
1647	values. long double values larger than max double values were always
1648	displayed as Inf.
1649
1650	* src/num_get_float.cpp: Removed useless null buffer checks in
1651	_Stl_atod functions, we know how this function is called. Replaced
1652	some hard coded constant with numeric_limits values. Add check that
1653	there is less than 64 digits before hiding hidden bits in vv.i64, for
1654	long double it was generating wrong long double value.
1655
1656	* test/unit/num_put_get_test.cpp: Add numerous tests to check both
1657	long double input and output.
1658
16592007-06-29  Petr Ovtchenkov  <complement@users.sourceforge.net>
1660
1661	* stlport/memory: more forward declarations; fix typo;
1662
1663	* stlport/functional: more tricks to compile with boost
1664	and tr1;
1665
1666	* test/unit/boost_check.cpp: problems trace; set 1 in
1667	appropriate places to check presence of problem, but only
1668	use one case at a time.
1669
16702007-06-28  Francois Dumont  <dums@users.sourceforge.net>
1671
1672	* src/locale.cpp, locale_impl.h, stlport/stl/_locale.h,
1673	config/features.h: Runtime check system do not fully use the
1674	MSVC6 workaround anymore, it only use the locale workaround,
1675	not the basic_string one.
1676
1677	* src/string.cpp: Fix wrong explicit instanciation.
1678
1679	* test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix
1680	computation of test failure when both CPPUNIT_CHECK and
1681	CPPUNIT_ASSERT are used.
1682
16832007-06-28  Petr Ovtchenkov  <complement@users.sourceforge.net>
1684
1685	* stlport/stl/boost_type_traits.h: reread boost/config.h
1686	to force usage of stlport in boost and force read essential
1687	macros from boost/config/suffix.hpp; this is because boost
1688	included within stlport from one side, and stlport included
1689	within boost from another side; this make sense with
1690	_STLP_USE_BOOST_SUPPORT defined in user_config.h;
1691	checked for boost 1.34;
1692
1693	* test/unit/boost_check.cpp, build/test/unit/Makefile.inc:
1694	test for problem above; this simulate problem when boost's
1695	header was included before any stlport's one;
1696
1697	* stlport/stl/config/features.h: remove definition of
1698	BOOST_STDLIB_CONFIG, due to it unconditionally defined
1699	in boost.
1700
1701	* stlport/memory: forward declarations for boost required,
1702	by the same reasons as described above.
1703
17042007-06-24  Petr Ovtchenkov  <complement@users.sourceforge.net>
1705
1706	* stlport/stl/_function.h, stlport/functional: fix import
1707	of boost::shared_ptr---moved from _function.h to functional;
1708	import mem_fn, bind, bad_function_call, function, swap from
1709	boost to std::tr1.
1710
17112007-06-23  Francois Dumont  <dums@users.sourceforge.net>
1712
1713	* stlport/stl/_string.h, _string_workaround.h: Some fix for gcc
1714	that is now expose to the VC6 workaround because of the runtime
1715	check mechanism under MinGW.
1716
17172007-06-21  Francois Dumont  <dums@users.sourceforge.net>
1718
1719	* test/unit/cstring_test.cpp, limits_test.cpp: Small modif to avoid
1720	MSVC compiler warning in release build.
1721
1722	* stlport/stl/_cwchar.h: Replace a _STLP_MSVC check with a _STLP_MSVC_LIB
1723	check as WCHAR_MIN and WCHAR_MAX macros definition depends on library
1724	and not on compiler.
1725
17262007-06-20  Petr Ovtchenkov  <complement@users.sourceforge.net>
1727
1728	* stlport/memory: import shared_ptr from boost to std::tr1 namespace,
1729	if no _STLP_NO_EXTENSIONS and present _STLP_USE_BOOST_SUPPORT;
1730	see ISO/IEC DTR 19768,
1731	http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
1732
1733	* test/unit/shared_ptr_test.cpp: test for shared_ptr.
1734
17352007-06-19  Francois Dumont  <dums@users.sourceforge.net>
1736
1737	* stlport/stl/debug/_debug.h, _debug.c: Replace __in_range with
1738	stlp_in_range, __in_range is a macro in the Windows Vista PSDK.
1739
1740	* src/locale.cpp, stlport_prefix.h, warning_disable.h,
1741	stlport/stl/_locale.h, _string.h, config/features.h: Fix some
1742	regression introduce with the improvment of the runtime compatibility
1743	check mecanism.
1744
1745	* src/c_locale_glibc/c_locale_glibc2.c: Fix implementation of
1746	_Locale_strcmp and _Locale_strwcmp functions.
1747
1748	* stlport/stl/_limits.c: Change technique used to generate NaN or
1749	infinity floating point numbers. No more reinterpret_cast of a buffer,
1750	we now use an union based technique. gcc prefer this cleaner method
1751	especially in release mode.
1752
1753	* test/unit/limits_test.cpp: Small test modification as gcc was still
1754	performing some weird optimization in release mode resulting in
1755	unexpected behavior.
1756
17572007-06-19  Petr Ovtchenkov  <complement@users.sourceforge.net>
1758
1759	* stlport/stl/_function.h: import reference_wrapper from boost to
1760	std::tr1 namespace, if no _STLP_NO_EXTENSIONS and present
1761	_STLP_USE_BOOST_SUPPORT; see ISO/IEC DTR 19768,
1762	http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
1763
1764	* test/unit/reference_wrapper_test.cpp: test for reference_wrapper.
1765
17662007-06-15  Petr Ovtchenkov  <complement@users.sourceforge.net>
1767
1768	* build/test/unit/Makefile.inc: macro_checks.cpp instead of cwchar.cpp.
1769
17702007-06-14  Francois Dumont  <dums@users.sourceforge.net>
1771
1772	* src/dll_main.cpp, locale.cpp, locale_impl.h, locale_impl.cpp,
1773	stlport/stl/_locale.h, _rope.h, config/_windows.h, features.h:
1774	Enhance the runtime compatibility mecanism used to detect build
1775	inconsistency under Windows. We now use the locale class with the
1776	VC6 workaround coming with it to force a call to the compatibility
1777	check function. Inconsistency detection is activated if _DEBUG
1778	or _STLP_DEBUG is defined. If an inconsistency is detected it is
1779	reported by the linker thanks to an unresolved symbol
1780	building_for_up_to_windows95_but_library_built_for_at_least_windows98
1781	or
1782	building_for_at_least_windows98_but_library_built_for_up_to_windows95
1783	that are self describing.
1784
1785	* test/unit/cwchar.cpp: Renamed in macro_checks.cpp, add many tests for
1786	all C Standard macros like CHAR_MIN, CHAR_MAX, INT_MIN, INT_MAX...
1787
1788	* stlport/stl/_cwchar.h: Add MSVC compilers before Visual Studio 2005
1789	as not defining WCHAR_MAX correctly.
1790
17912007-06-11  Francois Dumont  <dums@users.sourceforge.net>
1792
1793	* src/lock_free_list.h: Fix check of _WIN32_WINNT rather than _WIN32_WINDOWS.
1794
1795	* stlport/stl/_threads.c: In the Win32 implementation, add a call to
1796	the SwitchToThread function to potentially avoid a costly call to
1797	Sleep(1) that can take more time than expected. If SwitchToThread fail
1798	we call Sleep(1) again. Based on Taras Overchuk bug report 1720635.
1799
18002007-06-11  Petr Ovtchenkov  <complement@users.sourceforge.net>
1801
1802	* src/fstream.cpp: integration file; code clean, three implementations
1803	sublimated, unix-emulation approach removed; this is reorganization
1804	changeset, functionality was not changed;
1805
1806	* src/fstream_win32io.cpp: win32io-based implementation of _Filebuf_base,
1807	i.e. based on Windows calls CreateFile/CloseHandle/ReadFile/WriteFile +
1808	CreateFileMapping, MapViewOfFile;
1809
1810	* src/fstream_unistd.cpp: unistdio-based implementation of _Filebuf_base,
1811	based on unistd open/close/read/write + mmap;
1812
1813	* src/fstream_stdio.cpp: stdio-based implementation of _Filebuf_base,
1814	based on stdio fopen/flose/fread/fwrite;
1815
1816	* stlport/stl/_fstream.h: detect of _Filebuf_base implementation moved
1817	into stlport/stl/config files;
1818
1819	* stlport/stl/config/*.h: iostreams underline technique depends upon
1820	OE or user's preferences;
1821
1822	* stlport/stl/config/features.h: some system-specific macro moved to
1823	system- or compiler-specific files;
1824
1825	* stlport/stl/_rope.h: rewritten suspicion code, functionality not changed.
1826
18272007-06-08  Francois Dumont  <dums@users.sourceforge.net>
1828
1829	* stlport/stl/_complex.h: Clean unused _STLP_NO_COMPLEX_SPECIALIZATIONS
1830	macro and code coming with it.
1831
1832	* build/lib/configure, configure.bat: Removed --windows95 option, it is
1833	useless now that STLport includes windows.h when building the libraries.
1834
1835	* build/Makefiles/gmake/bcc.mak, dmc.mak, gcc.mak, nmake/vc-common.mak:
1836	Removed references to Windows 95 build, if STLport users want to target
1837	a specific Windows OS they will only have to use --extra-cxxflags to
1838	give WINVER, _WIN32_WINDOWS or _WIN32_WINNT values.
1839
18402007-06-05  Francois Dumont  <dums@users.sourceforge.net>
1841
1842	* stlport/stl/config/features.h: Removed unused _STLP_LDOUBLE_* macros giving
1843	real long double size.
1844
1845	* stlport/stl/_limits.h, _limits.c: Major code upgrade, now computation
1846	of infinity and NaN is done thanks to some code extracted from the boost
1847	library (www.boost.org). This code is more portable as it adapts to compiler
1848	representation of float, double and long double and do not require many
1849	compiler macro checks. Additionaly STLport numeric_limits now handle real
1850	denorm_min values.
1851
1852	* test/unit/limit_test.cpp: Add many test on dernomalized float and
1853	some other values of numeric_limits.
1854
1855	* stlport/stl/config/_cray.h, _gcc.h, _msvc.h, stl_mycomp.h: Removed
1856	_STLP_NO_IEC559_SUPPORT macro, meaning was not clear and impact was
1857	localized to the _limits.h file so use of a global macro was rather
1858	useless.
1859
18602007-05-29  Francois Dumont  <dums@users.sourceforge.net>
1861
1862	* stlport/stl/_num_get_.c: Small refactoring, all num_get::do_get for
1863	float, double and long double are now calling the same __do_get_float
1864	function. Moreover, when __read_float failed, __sring_to_float is not
1865	called anymore.
1866
18672007-05-28  Francois Dumont  <dums@users.sourceforge.net>
1868
1869	* test/unit/limits_test.cpp: Add test checking that numeric_limits
1870	min is really min and max really max.
1871
1872	* src/allocators.cpp, locales.cpp, stlport/stl/_threads.h,
1873	config/_windows.h: Fix detection of Windows OS having limited
1874	implementation of Interlocked[Increment,Decrement] Win32 API
1875	functions. _STLP_WIN95 macro has been rename _STLP_WIN95_LIKE
1876	as it do not only signal Windows 95 build context but also former
1877	OS versions.
1878
18792007-05-22  Francois Dumont  <dums@users.sourceforge.net>
1880
1881	* src/c_locale_win32/c_locale_win32.c: gcc MinGW has no thread
1882	locale storage intrisinc support so for this compiler, locale
1883	creation failure will always be reported with runtime_error
1884	exception.
1885
1886	* stlport/stl/config/_msvc.h: Configuration fix, check that _STLP_MSVC
1887	is defined before activating MSVC6 workaround
1888	(_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro).
1889
18902007-05-21  Francois Dumont  <dums@users.sourceforge.net>
1891
1892	* src/c_locale.h, locale.cpp, locale_impl.cpp,
1893	c_locale_dummy/c_locale_dummy.c, c_locale_win32/c_locale_win32.c,
1894	c_locale_glic/c_locale_glibc.c, c_locale_glibc2.c: Add a _Locale_errno
1895	function to the small localization framework in order to report more
1896	accurate locale creation failure. For the moment there are 3 possible
1897	failure reasons, no more memory, unsupported locale, no platform support.
1898	In case of memory starvation, we throw a bad_alloc exception.
1899
19002007-05-19  Francois Dumont  <dums@users.sourceforge.net>
1901
1902	* stlport/stl/_valarray.h, _valarray.c: Add many assertion checks to
1903	track potential undefined behaviors mostly regarding invalid argument
1904	size.
1905
19062007-05-17  Francois Dumont  <dums@users.sourceforge.net>
1907
1908	* stlport/stl/_prolog.h: Hide _debug.h when including C standard
1909	headers. Some platforms (Win32) include C headers in an 'extern "C"'
1910	scope that do not accept templates exposed in _debug.h.
1911
19122007-05-16  Francois Dumont  <dums@users.sourceforge.net>
1913
1914	* stlport/stl/config/_auto_link.h, build/Makefiles/gmake/cygming/lib.mak,
1915	build/Makefiles/nmake/lib/macro.mak: Removed version information
1916	from static libs name for consistency among all supported compilers/
1917	platform.
1918
19192007-05-15  Francois Dumont  <dums@users.sourceforge.net>
1920
1921	* stlport/stl/_range_errors.c, _stdexcept_base.c: New files
1922	containing codes that used to be duplicated in dll_main.cpp.
1923
1924	* src/dll_main.cpp: Include _range_errors.c and _stdexcept_base.c
1925	when necessary.
1926
1927	* stlport/stl/_stdexcept_base.h, _stdexcept_base.c: __Names_exception
1928	do not truncate anymore exception message when longer than internal
1929	static buffer, a dynamic buffer is allocated through malloc in this
1930	case. I haven't use __iostring class in this case as it would
1931	have introduce a cyclic dependency between classes.
1932
19332007-05-11  Francois Dumont  <dums@users.sourceforge.net>
1934
1935	* src/c_locale.h, c_locale_glibc/c_locale_glibc2.c: Some fixes to
1936	avoid gcc warnings when compiled with -Wall -Wmissing_prototypes.
1937
1938	* stlport/stl/_num_put.c: Fix a cast to avoid a signed/unsigned
1939	comparison warning.
1940
1941	* c_locale_glibc/c_locale_glibc2.c: Use __locale_t __names field
1942	rather than __locales to access to category names. Thanks to this
1943	modification we do not need the Glib internal locale_data struct
1944	definition anymore.
1945
1946	* test/unit/fstream_test.cpp: Port the FstreamTest::null_stream for
1947	unixes platforms that use /dev/null, the test is not ignored anymore.
1948
1949	* src/fstream.cpp: Under Windows, check that the file we are
1950	opening is a real file before trying to truncate it or move to
1951	the end. Allow use of special file like "NUL" with C++ fstream.
1952
19532007-05-10  Francois Dumont  <dums@users.sourceforge.net>
1954
1955	* src/stdio_streambuf.cpp: Add checks of error codes returned
1956	by ftell and fseek functions in stdio_istreambuf::showmanyc
1957	Windows CE special implementation.
1958
1959	* test/unit/fstream_test.cpp: Add new test case to check file streams
1960	built from platform dependent null pipe (NUL under Windows, /dev/null
1961	under unixes). Ignored for the moment.
1962
19632007-05-04  Francois Dumont  <dums@users.sourceforge.net>
1964
1965	* src/locale.cpp, allocators.cpp, stlport/stl/_threads.h,
1966	config/_windows.h: Change macro checks to detect Windows 95 platform.
1967	Windows 95 and NT4 has both WINVER == 0x0400 but only Windows 95 has
1968	limitation impacting STLport code. Distinction between both platforms
1969	is done thanks to the _WIN32_WINNT macro only defined for NT4. New
1970	_STLP_WIN95 macro signals Windows 95 platform, it replaces
1971	_STLP_WIN32_VERSION. Thanks Jan Echternach patch 1707963.
1972
1973	* src/c_locale_win32/c_locale_win32.c: Remove all code concerning the
1974	messages facet, Windows platform do not support it.
1975
1976	* src/fstream.cpp: Fix use of fseek in _Filebuf_base::_M_seek in
1977	_STLP_USE_STDIO_IO mode. fseek do not return the position in file
1978	but a boolean value indicating if call has succeeded or not, and
1979	call to ftell to get file position. Thanks Marco Jez bug report
1980	1704843. I have also integrated a number of small fixes to use
1981	_STLP_USE_STDIO_IO mode under MSVC or GCC MinGW, it shouldn't be
1982	really nececarry but it costs nothing and help testing this mode.
1983
19842007-05-03  Francois Dumont  <dums@users.sourceforge.net>
1985
1986	* stlport/stl/_numpunct.h, _time_facets.h, _ctype.h, _monetary.h,
1987	_messages_facets.h: Remove friend _Locale_extract_hint function
1988	declaration replace by the more simple friend class
1989	_Locale_impl expression.
1990
1991	* src/locale_impl.cpp: Change implementation of
1992	_Locale_impl::insert_*_facets methods. Now only facets used internally
1993	for iostreams implementation are considered as mandatory when
1994	instanciating a locale from a name. Other facets like collate or
1995	messages won't generate a runtime_error exception if the platform is
1996	not able to grant an implementation. This will make STLport more
1997	flexible in regards of platform possibilities.
1998
1999	* stlport/stl/_messages_facets.h, src/facets_byname.cpp, messages.cpp:
2000	Simplification of the messages facet implementation. _Messages class
2001	has no virtual method anymore, _Messages_Impl has been removed. Now
2002	messages class implementation is a dummy implementation that do not
2003	allow access to platform messages, real messages implementation is
2004	available thanks to the messages_byname class.
2005
2006	* stlport/stl/_time_facets.h: _Locale_time instance is not kept
2007	anymore in the facet implementation, it is only used on construction
2008	to initiliaze _Time_Info struct instance.
2009
20102007-05-02  Francois Dumont  <dums@users.sourceforge.net>
2011
2012	* test/unit/codecvt_test.cpp: Fixed comparison with char_traits::eof
2013	to use eq_int_type in order to be compatible with platform having
2014	a default unsigned char built-in type. Thanks Marco Jez report.
2015
20162007-04-19  Francois Dumont  <dums@users.sourceforge.net>
2017
2018	* stlport/stl/_valarray.h: Integrate C++ Standard defect 253
2019	signaling that slice_array, gslice_array, mask_array and
2020	indirect_array copy constructor cannot be private.
2021
2022	* test/unit/valarray_test.cpp: Add compilation test to check that
2023	valarray operator[] taking a slice, gslice, valarray<bool> and
2024	valarray<size_t> can be called.
2025
20262007-04-16  Francois Dumont  <dums@users.sourceforge.net>
2027
2028	* src/locale.cpp: Simplified locale::_M_throw_runtime_error
2029	implementation using std::string rather than C string functions.
2030	Also change exception message generation to make failure reason
2031	more obvious.
2032
2033	* src/facets_byname.cpp: As, according Standard, *_byname facet
2034	constructor should behave as locale constructor taking a name
2035	STLport now throws a runtime_error instance when building
2036	a facet from a null name.
2037
2038	* src/messages.cpp: Now contains all classes implementation involved
2039	in messages facet support.
2040
2041	* stlport/stl/_messages_facets.h, src/messages_facets.h, messages.cpp:
2042	Simplification of the messages facet implementation. Major modification
2043	is that the C messages facet has now only one representation which is
2044	the one given by the _Message class. There used to be an other one
2045	based on _Messages_impl class using __acquire_messages("C").
2046
2047	* src/messages_facets.h: Internal classes _Messages and _Messages_impl
2048	are not exported anymore.
2049
2050	* test/unit/locale_test.cpp: Facet tests has been moved to facet
2051	category test files.
2052
2053	* test/unit/collate_facets_test.cpp, ctype_facets_test.cpp,
2054	messages_facets_test.cpp, money_facets_test.cpp, num_facets_test.cpp,
2055	time_facets_test.cpp, build/test/unit/Makefile.inc: New test cases for
2056	each facet category.
2057
2058	* stlport/stl/config/features.h: Define _STLP_NO_TYPEINFO when _STLP_NO_RTTI
2059	is defined.
2060
20612007-04-15  Francois Dumont  <dums@users.sourceforge.net>
2062
2063	* src/dll_main.cpp: Removed useless _Atomic_swap_struct export
2064	that has already been removed from _threads.h and that was generating
2065	compilation error with MSVC 2005.
2066
20672007-04-10  Francois Dumont  <dums@users.sourceforge.net>
2068
2069	* stlport/stl/pointers/_deque.h, _list.h, _set.h, _slist.h:
2070	Eric Sanford DMC patch to allow pointer specialization feature.
2071
2072	* test/unit/map_test.cpp, set_test.cpp, slist_test.cpp,
2073	unordered_test.cpp: Remove DMC check hiding pointer specialization
2074	tests.
2075
2076	* build/Makefiles/gmake/dmc.mak, app/dmc.mak: Additional fixes from
2077	Eric Sanford.
2078
20792007-04-09  Francois Dumont  <dums@users.sourceforge.net>
2080
2081	* stlport/stl/_pair.h, _vector.h, config/_bc.h: Borland patch
2082	from Eric Sanford, remove move semantic for free compiler.
2083
2084	* test/unit/mvctor_test.h: Eric Sanford patch to restore 2 tests
2085	that has been lost in a previous test modification,
2086	movable_declaration_assoc and movable_declaration_hash.
2087
2088	* test/unit/mvctor_traits_test.cpp: Add some _STLP_NO_MOVE_SEMANTIC
2089	checks when using __move_traits.
2090
20912007-04-05  Francois Dumont  <dums@users.sourceforge.net>
2092
2093	* stlport/stl/config/_gcc.h: Removed undef of _STLP_NEW_PLATFORM_SDK,
2094	under MinGW, MinGW can use a new SDK and not the one coming with
2095	MinGW.
2096
2097	* Merged with STLPORT_5_1 branch up to revision 2994.
2098
20992007-04-05  Petr Ovtchenkov  <complement@users.sourceforge.net>
2100
2101	* src/ctype.cpp: move declaration from loop;
2102
2103	* stlport/stl/debug/_debug.c: stl/_cstdlib.h already included;
2104
2105	* stlport/stl/_cprolog.h: prolog for C headers can't include
2106	files with C++ constructions;
2107
2108	* stlport/*.h: C headers use prolog that don't include C++
2109	constructions;
2110
2111	* test/unit/stldbg_include.cpp, build/test/unit/Makefile.inc:
2112	test for problem with inclusion C++ constructions from
2113	C header.
2114
21152007-04-04  Francois Dumont  <dums@users.sourceforge.net>
2116
2117	* build/lib/configure.bat: Change advise command to build
2118	STLport after configuration, it is now 'clean all' rather
2119	than default build command.
2120
21212007-03-22  Francois Dumont  <dums@users.sourceforge.net>
2122
2123	* src/c_locale_dummy/c_locale_dummy.c: Fixed dummy definition
2124	for a number of localization functions that are now type safe.
2125
21262007-03-20  Francois Dumont  <dums@users.sourceforge.net>
2127
2128	* stlport/stl/_prolog.h, config/features.h, debug/_debug.h:
2129	Normalize the way STLport debug mode macros are defined. All
2130	debug macro definition are now coming from _debug.h and not
2131	anymore partially from features.h. _debug.h is now included from
2132	_prolog.h after all configuration has been completed.
2133
2134	* stlport/stl/_alloc.h, _iterator_base.h, _valarray.h: Removed
2135	_debug.h references now fully integrated in STLport configuration
2136	phase.
2137
2138	* stlport/stl/config/_windows.h: Add some Windows macro before
2139	inclusion of windows.h when building library to limit Windows
2140	pollution (NOMINMAX, STRICT). Moreover add definition of
2141	_STLP_OUTERMOST_HEADER_ID macro before windows.h inclusion to
2142	avoid indirect include of STLport stuff throught C Standard headers
2143	included in windows.h as at this moment STLport is not yet completely
2144	configured.
2145
2146	* stlport/stl/config/_evc.h: Removed unjustified macro definition to
2147	limit inclusion from windows.h, it is a user decision not an STLport one.
2148
2149	* build/Makefiles/nmake/vc8.mak: Fix definition of DEFS in this file
2150	to keep current DEFS value that might exist if configure --extra-cxxflag
2151	option has been used.
2152
2153	* src/allocators.cpp: Add _STLP_NEW_PLATFORM_SDK macro check to
2154	perform necessary const_cast in _STLP_ATOMIC_ADD macro definition.
2155
21562007-03-17  Francois Dumont  <dums@users.sourceforge.net>
2157
2158	* build/Makefiles/gmake/bcc.mak, dmc.mak, gcc.mak, nmake/vc-common.mak:
2159	Add WINVER definition when building libraries to signal required OS
2160	compatibility, per default it is Windows 98 and later ones.
2161
2162	* build/lib/configure, configure.bat: Add new configuration option
2163	--windows95 to signal that we want Windows 95 compatibility.
2164
2165	* stlport/stl/_threads.h, config/_windows.h, src/allocators.cpp:
2166	Move _STLP_ATOMIC_ADD macro definition in source files where it is
2167	used.
2168
2169	* stlport/stl/config/_windows.h:
2170	  - When building the libraries we always include windows.h, when using
2171	the library we always use own function declaration to avoid windows.h
2172	inclusion.
2173	  - InterlockedExchangeAdd is not declared anymore.
2174	  - InterlockedExchangePointer is only used when detecting 64 bits
2175	    platform thanks to the _WIN64 macro, otherwise InterlockedExchange
2176	    is used.
2177
21782007-03-15  Francois Dumont  <dums@users.sourceforge.net>
2179
2180	* build/Makefiles/nmake/vc8.mak: Default MSVC 2005 build is now done
2181	without safe string functions for performance reasons.
2182
2183	* stlport/stl/_locale.h, _alloc.h, _rope.h: Moved
2184	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME invocation where problem
2185	might happen which is in the rope implementation for current use. A future
2186	use will need to guess where this function has to be invoked.
2187
2188	* stlport/stl/config/feature.h: Fixed _STLP_USE_NO_IOSTREAMS check to undef
2189	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro.
2190
2191	* stlport/stl/config/_windows.h: For performance reason
2192	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME system is only used in debug
2193	mode (detected thanks to _DEBUG macro).
2194
21952007-03-13  Francois Dumont  <dums@users.sourceforge.net>
2196
2197	* Merged with STLPORT_5_1 branch revision 2963.
2198
2199	* src/locale_catalog.cpp: Use C cast for C struct like _Locale_ctype,
2200	it makes Borland compiler happier.
2201
2202	* stlport/stl/_string.h: Made inheritance relation between basic_string
2203	and _String_base class public for DMC.
2204
2205	* src/dll_main.cpp, stlport/stl/config/features.h,
2206	stlport/stl/_locale.h, _alloc.h: Add a new mecanism to detect library
2207	build/use inconsisteny at link time.
2208	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro contains a
2209	function name declared in features.h and defined in dll_main.cpp.
2210	This function name depends on the build context. If, when using the
2211	library, this macro contains an other function name because of a
2212	different configuration context an unresolved symbol will appear at
2213	link time showing the missing function symbol. Function name should
2214	be chosen carefully to make problem as explicit as possible. For the
2215	moment function is called in arbitrary places, in std::use_facet
2216	function and std::allocator constructor.
2217
2218	* stlport/stl/config/_windows.h: Use
2219	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro to detect
2220	inconsistency when building STLport for Windows 95 and using it
2221	in Windows XP or opposite. Depending on targetted platform,
2222	_Refcount_Base has a different sizeof which lead to undefined
2223	behavior at runtime if we do not use this trick.
2224
22252007-03-13  Petr Ovtchenkov  <complement@users.sourceforge.net>
2226
2227	* test/unit/string_test.cpp: add test for trivial compare with plain
2228	char array;
2229
2230	* test/unit/exception_test.cpp: add test for what().
2231
22322007-03-10  Francois Dumont  <dums@users.sourceforge.net>
2233
2234	* stlport/stl/config/_windows.h: Major modification, when building
2235	STLport libs windows.h or afx.h, when _STLP_USE_MFC is defined, is
2236	systematically included in order to detect the SDK version used to
2237	the libraries. _windows.h is now the only place is the library where
2238	windows.h is included.
2239
2240	* src/dll_main.cpp, fstream.cpp, lock_free_slist.h,
2241	c_locale_win32/c_locale_win32.c: Removed references to windows.h now
2242	included from _windows.h.
2243
2244	* stlport/stl/_istream.c: Add parenthesis on a use_facet call to make
2245	VC6 happy when building the library.
2246
2247	* test/unit: Disable tests checking instanciation and use of
2248	containers with an incomplete type when pointer specialization is
2249	enable.
2250
2251	* stlport/stl/config/user_config.h: Add comment about limitation
2252	of pointer specialization.
2253
2254	* stlport/stl/_string.h, _string_workaround.h: Now that _STLP_DEBUG
2255	mode do not use inheritance anymore, use private rather than
2256	protected members in basic_string implementation. Only exception
2257	is when using VC6 workaround, this is what _STLP_PRIVATE macro is
2258	for.
2259
2260	* src/allocators.cpp, stlport/stl/config/features.h: Removed
2261	unjustified _STLP_PRIVATE macro.
2262
22632007-03-09  Petr Ovtchenkov  <complement@users.sourceforge.net>
2264
2265	* stlport/stl/config/_msvc.h: use MS's safe string functions only
2266	if _CRT_SECURE_NO_DEPRECATE not defined (see bug #1674974).
2267	Thanks Bronek Kozicki.
2268
22692007-03-08  Petr Ovtchenkov  <complement@users.sourceforge.net>
2270
2271	* src/num_get_float.cpp: experimental support of correct input
2272	of long doubles on Linuxes.
2273
2274	* test/unit/num_put_get_test.cpp: test for correct input of float,
2275	double and long double, including values out of type range.
2276
2277	* stlport/stl/config/_linux.h: mark that Alpha, PowerPC,
2278	32-bit SPARC, 32-bit MIPS, ARM, SH4 has no long double.
2279
22802007-03-05  Francois Dumont  <dums@users.sourceforge.net>
2281
2282	* Synchronization with STLPORT_5_1 branch revision 2945.
2283
22842007-02-19  Francois Dumont  <dums@users.sourceforge.net>
2285
2286	* stlport/stl: swap workaround review, now when swap implementation
2287	detect that a STLport class is being swapped it calls the
2288	_M_swap_workaround member method. We do not use the swap method
2289	anymore because the way the workaround is implemented would have
2290	forces us to add a swap method to queue, priority_queue and stack
2291	containers that do not have a swap method according the C++ Standard.
2292
22932007-02-15  Francois Dumont  <dums@users.sourceforge.net>
2294
2295	* Synchronization with STLPORT_5_1 branch up to revision 2918.
2296
22972007-02-13  Francois Dumont  <dums@users.sourceforge.net>
2298
2299	* stlport/stl/config/features.h, _msvc.h, stl_mycomp.h: Removed
2300	_STLP_USING_NAMESPACE_BUG macro config. STLport private namespace
2301	is now always nested in stlport one. Makes namespace management
2302	easier.
2303
2304	* stlport/stl/_algobase.h: Restore workaround for compilers
2305	not supporting template function partial ordering feature, was
2306	resulting in regression for a number of compilers, VC6, Borlands.
2307	A template class like _SwapImplemented do not have to be specialized
2308	to be useful, this class is used to detect types having a swap
2309	method. Detection is based on the class being flagged as STLport
2310	class thanks to the __stlport_class inheritance.
2311
2312	* test/unit/swap_test.cpp: Add macro checks to ignore test for
2313	compilers we know not being able to support it.
2314
23152007-02-12  Francois Dumont  <dums@users.sourceforge.net>
2316
2317	* stlport/stl/config/features.h: Add necessary macro to work
2318	with tr1 namespace of the C++ technical report.
2319
2320	* stlport/stl/_unordered_set.h, _unordered_map.h: Put unordered
2321	containers in tr1 namespace.
2322
2323	* test/unit/unordered_test.cpp, mvctor_test.cpp,
2324	mvctor_declaration_test.cpp: Add necessary using directive
2325	to access tr1 namespace.
2326
23272007-02-12  Petr Ovtchenkov  <complement@users.sourceforge.net>
2328
2329	* Repository: revert back r2908;
2330
2331	* test/unit/swap_test.cpp: test that swap( a, b ) has specialization
2332	a.swap( b ), when required;
2333
2334	* stlport/stl/_algobase.h: _SwapImplemented useless, because it never
2335	specialized elsewhere---remove swap specialization here, use instead
2336	swap specialization from _relops_cont.h, when required.
2337
23382007-02-07  Francois Dumont  <dums@users.sourceforge.net>
2339
2340	* locale_impl.cpp, monetary.cpp, num_get.cpp, num_put.cpp,
2341	time_facets.cpp: Moved all _GetFacetId implementations in
2342	the same translation unit as the one where id are initialized.
2343
23442007-02-05  Francois Dumont  <dums@users.sourceforge.net>
2345
2346	* stlport/stl/_alloc.h, allocators.cpp: Moved _ALIGN and
2347	_ALIGN_SHIFT constant definition in source file where it is used
2348	_MAX_BYTES is used in deque implementation. Moreover those
2349	constant value now depends on sizeof(void*) to avoid preprocessor
2350	check like _WIN64.
2351
2352	* stlport/stl/_vector.h, _vector.c: Moved __type_traits
2353	instanciations in methods that need it in order to be able to
2354	access nested types like iterator even if type used to instanciate
2355	the vector is not yet completely defined.
2356
2357	* stlport/stl/_deque.h, _deque.c: Removed useless __type_traits
2358	instanciations. For the same reason than above, __buffer_size
2359	constant has been replaced by a function computing deque buffer
2360	size at runtime.
2361
2362	* stlport/stl/_hashtable.h, _hashtable.c: For the same reason than
2363	above, hashtable do not contains anymore an instance of the _ExK type
2364	which is used to extract the key part from a value instance. This
2365	instance was not returned in any method of the hashtable type. An
2366	unused constructor taking an instance of this type has been removed.
2367
2368	* test/unit/vector_test.cpp, deque_test.cpp, list_test.cpp,
2369	slist_test.cpp, map_test.cpp, set_test.cpp, hash_test.cpp,
2370	unordered_test.cpp: Add compilation tests to check that the container
2371	iterator nested type is accessible  even if type used to instanciate
2372	the container is not yet completely defined.
2373
23742007-02-02  Francois Dumont  <dums@users.sourceforge.net>
2375
2376	* src/c_locale.h: Add type information for the following functions
2377	of the localization support API:
2378	  - _Locale_*_create
2379	  - _Locale_*_destroy
2380	  - _Locale_*_name
2381	Also add some variable name to make associated documentation more
2382	explicit.
2383
2384	* src/c_locale_win32/c_locale_win32.c,
2385	src/c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c: Adapted to
2386	conform to new localization API functions prototypes. Adaptation
2387	in glibc before 2.2 has been updated but compilation hasn't been
2388	completed because of the lack of the glibc required version.
2389
2390	* src/locale_catalog.cpp: Now wrapper functions are used to
2391	offer a homogeneous prototype to type safe localization API
2392	functions.
2393
23942007-02-02  Petr Ovtchenkov  <complement@users.sourceforge.net>
2395
2396	* test/unit/hash_test.cpp: add test for hash_multimap, equivalent
2397	keys problem on some data sets [this is regression test, suggested
2398	by tef for 5.0.2, bug report #1606308].
2399
24002007-01-29  Petr Ovtchenkov  <complement@users.sourceforge.net>
2401
2402	* stlport/stl/debug/_deque.h: typename required.
2403
2404	* test/unit/sstream_test.cpp: test for seekp added.
2405
24062007-01-28  Francois Dumont  <dums@users.sourceforge.net>
2407
2408	* build/Makefiles/gmake: Borland patch from Eric Sanford to install
2409	.tds file for Borland debugger.
2410
2411	* trunk synchronized with STLPORT_5_1 branch up to revision 2895.
2412
2413	* stlport/stl/_threads.h: Changed way of including headers for
2414	_STLP_UITHREADS platform. We now include internal STLport headers
2415	rather than Standard ones. It was especially important for Sun
2416	Studio compiler that natively include Standard headers only once.
2417
24182007-01-25  Petr Ovtchenkov  <complement@users.sourceforge.net>
2419
2420	* src/facets_byname.cpp: we search within scope, specified by mask,
2421	so _Locale_wchar_ctype return can't be beyond of this mask.
2422
2423	* src/c_locale_glibc/c_locale_glibc2.c: _Locale_wchar_ctype
2424	implemented.
2425
2426	* test/unit/locale_test.cpp: test for ctype facet for wchar_t added.
2427
24282007-01-23  Francois Dumont  <dums@users.sourceforge.net>
2429
2430	* stlport/stl/_locale.h: Introduction of the _GetFacetId function
2431	to isolate access to facet id instance in one place. It guaranty that
2432	the facet id instances initialized in _Stl_loc_assign_ids function
2433	are the same as the ones used by streams to format output. Many compilers
2434	have problem with template class static variable and duplicate them
2435	arround the different shared library depending on STLport.
2436
2437	* stlport/stl/_monetary.h, _num_get.h, _num_put.h, _time_facets.h:
2438	Add _GetFacetId overloads for money_get, money_put, num_get, num_put,
2439	time_get, time_put facets that are exposed as template facets. Other
2440	facets are fully specialized template classes whose id should be
2441	correctly handle by compilers like for any static variable in a non
2442	template class.
2443
2444	* src/monetary.cpp, num_get.cpp, num_put.cpp, time_facets.cpp: Add
2445	_GetFacetId implementation.
2446
2447	* stlport/stl/_collate.h: Use _GetFacetId in __locale_do_operator_call
2448	implementation, not required but more consistent.
2449
2450	* stlport/stl/_monetary.c, _num_put.c, _num_get.c, _time_facets.c,
2451	src/locale_impl.cpp: Removed now useless gcc Cygwin or MinGW and
2452	Borland workarounds.
2453
2454	* test/unit/locale_test.cpp: Removed facet_id test case, facet id
2455	indexes are STLport internal stuff that shouldn't be part of a unit
2456	test. Wrong facet id management will be shown by other tests. Moreover
2457	this test was failing for compilers duplicating template class
2458	static instances.
2459
24602007-01-20  Francois Dumont  <dums@users.sourceforge.net>
2461
2462	* stlport/stl/_cmath.h, _cstdlib.h, config/_watcom.h: Small
2463	evolution for Open Watcom support.
2464
2465	* Synchronization of trunk from STLPORT_5_1 branch from revision
2466	2750 to revision 2871.
2467
2468	* stlport/stl/config/features.h, _gcc.h, _intel.h, _msvc.h, _sgi.h:
2469	Major exception policy modification, _STLP_NOTHROW default value
2470	is now throw() when exception support is activated. Compilers not
2471	supporting is should define this macro as empty. Configuration files
2472	of compilers already managing this feature have been updated.
2473
24742007-01-19  Petr Ovtchenkov  <complement@users.sourceforge.net>
2475
2476	* stlport/stl/config/host.h: define one of __SunOS_5_x macro
2477	for gcc (during installation?) on Solaris; note, that Solaris
2478	system may has patch with MATH_F and MATH_L functions.
2479
2480	* stlport/stl/config/_solaris.h: reminder for __SunOS_5_x
2481	macro definition for gcc; turn on/off MATH_F/MATH_L functions
2482	present: see beacon that depends upon Solaris version and patch present,
2483	as defined by SunPro compilers or in host.h. Thanks to Graham Reed.
2484
2485	* stlport/stl/config/_sunprocc.h: if use new-c-headers, SunPro
2486	include iso/stdlib_iso.h instead of stdlib.h; note, that this exclude
2487	usage of long double, long long, etc. functions, even when ones present
2488	in OS. Thanks to Graham Reed. Bugreport 1630943.
2489
24902007-01-18  Francois Dumont  <dums@users.sourceforge.net>
2491
2492	* stlport/stl/_num_put.c: Add cast to avoid gcc warning.
2493
2494	* stlport/stl/_pair.h, _construct.h: Add _STLP_NO_MOVE_SEMANTIC
2495	before inclusion of _move_construct_fwk.h.
2496
2497	* stlport/stl/_istream.c: Removed useless cast to num_get facet.
2498
2499	* src/system_api.c: Move macro check to at least include math.h
2500	in order to avoid an empty translation unit which can generate
2501	compilation warning.
2502
25032007-01-17  Petr Ovtchenkov  <complement@users.sourceforge.net>
2504
2505	* stlport/stl/_cmath.h: move hypot in global namespace for SunSoft;
2506	suggested by Graham Reed.
2507
25082007-01-15  Francois Dumont  <dums@users.sourceforge.net>
2509
2510	* test/unit/locale_test.cpp: Upgrade Russian currency abbreviation
2511	'RUR' to 'RUB'. Thanks Tiziano Muller, bug report 1634886.
2512
2513	* test/unit/cstring_test.cpp: Fix test to avoid some gcc warnings.
2514
2515	* stlport/stl/config/_gcc.h: Add _STLP_NOTHROW definition for
2516	this compiler for C++ Standard compliancy. It might also help the
2517	compiler not to emit false warning about potential use of
2518	uninitialized variable (-Wall mode).
2519
2520	* build/lib/Makefile.inc, src/system_api.h, system_api.c: New source
2521	file used for platform exposing some features only to C compiler. for
2522	the moment used under Hp Unix for GNU compiler access to platform
2523	isfinite, isnan and isinf functions.
2524
2525	* src/num_put_float.cpp: Replace a lot of unofficial Hp Unix specific
2526	code to access functions isfinite, isinf or isnan. Replaced by
2527	system_api.h.
2528
2529	* build/Makefiles/gmake/hp-ux/sys.mak: Looks like install command
2530	on this platform is rather exotic, use cp instead.
2531
25322007-01-14  Francois Dumont  <dums@users.sourceforge.net>
2533
2534	* stlport/stl/config/_system.h: Add __SUNPRO_C macro check to
2535	detect Sun Pro C compiler. Thanks Graham Reed bug report 1630916.
2536
2537	* stlport/stl/_cstdlib.h: Add __SUNPRO_CC macro check before
2538	defining abs(long) and div(long, long) as Sun pro already
2539	defined them. Thanks Graham Reed bug report 1630972.
2540
25412007-01-07  Francois Dumont  <dums@users.sourceforge.net>
2542
2543	* stlport/stl: Add _STLP_NO_MOVE_SEMANTIC macro checks to
2544	completely hide move semantic framework when not necessary.
2545
25462007-01-05  Francois Dumont  <dums@users.sourceforge.net>
2547
2548	* test/unit/bitset_test.cpp: Check _STLP_NON_TYPE_TMPL_PARAM_BUG
2549	macro before doing tests that depends on it.
2550
2551	* stlport/stl/_list.h: Add assertion to signal potential stack
2552	overflow in recurssive calls to list::insert and list::splice thanks
2553	Aleksey Sanin idear.
2554
2555	* build/Makefiles/gmake/lib/gcc.mak: Removed obsolete -C ld option
2556	on Hp Unix platform.
2557
2558	* stlport/stl/_mbstate_t.h: Attempt to fix STLport config for compilers
2559	coming with a native lib defining mbstate_t only for C++ compilers.
2560	For those compilers native mbstate_t definition won't be used for
2561	the moment, STLport simply grant a dummy definition in C. Test
2562	under Hp Unix has shown that it works.
2563
25642006-12-29  Francois Dumont  <dums@users.sourceforge.net>
2565
2566	* src/iostream.cpp, stlport/stdio.h, stl/_cstdio.h: Eric Sanford
2567	patch to move a Borland workaround from cstdio to stdio.h.
2568
2569	* stlport/stl/debug: Generalize _STLP_NO_MOVE_SEMANTIC check
2570	to hide move constructors like already done in non debug
2571	implementation.
2572
2573	* stlport/stl/config/_msvc.h: Restore move semantic for MSVC6. AFAIR
2574	only MSVC .Net 2002 had problem with it.
2575
2576	* test/unit/strstream_test.cpp: Made the tests for _STLP_LONG_LONG
2577	a little bit more portable.
2578
25792006-12-20  Francois Dumont  <dums@users.sourceforge.net>
2580
2581	* test/unit/strstream_test.cpp: New test case for sourceforge
2582	bug report 1615554. Not confirm for the moment.
2583
2584	* test/unit/math_aux.h, mvctor_test.h, string_test.cpp: Fixes
2585	to correctly take into account _STLP_USE_NAMESPACES.
2586
25872006-12-19  Francois Dumont  <dums@users.sourceforge.net>
2588
2589	* test/unit/bvector_test.cpp: Fix macro check for namespace
2590	support.
2591
2592	* test/unit/num_put_get_test.cpp: disable warning about float
2593	overflow for MSVC.
2594
25952006-12-17  Francois Dumont  <dums@users.sourceforge.net>
2596
2597	* test/unit: One more cleanup for compilers not supporting the
2598	namespace feature. This time we avoid namespace specification when
2599	doing template specialisation of Standard functor like less or
2600	allocator.
2601
26022006-12-15  Francois Dumont  <dums@users.sourceforge.net>
2603
2604	* stlport/stl/config/_dm.h, test/unit/map_test.cpp: Eric Sanford
2605	patch for DMC.
2606
26072006-12-13  Francois Dumont  <dums@users.sourceforge.net>
2608
2609	* test/unit/test_main.cpp: Clean up use of namespace feature.
2610
2611	* test/unit: Clean up use of std namespace or ignore tests if
2612	necessary.
2613
26142006-12-13  Petr Ovtchenkov  <complement@users.sourceforge.net>
2615
2616	* stlport, src: Orphan code removed [Symantec without maintainance a long time;
2617	gcc prior 2.95 and 2.96 can't work with current code in any case;
2618	NetWare unsupported too]
2619
26202006-12-13  Francois Dumont  <dums@users.sourceforge.net>
2621
2622	* stlport/stl/config/feature.h: Fix and generalize the mutable
2623	workaround for compilers missing this feature. Replace
2624	_STLP_ASSIGN_MUTABLE with _STLP_MUTABLE macro that is more flexible
2625	as not limited to assignment.
2626
2627	* stlport/stl/_istreambuf_iterator.h, _stream_iterator.h, _string_sum.h:
2628	Use _STLP_MUTABLE rather than manually handle _STLP_NEED_MUTABLE macro.
2629
2630	* stlport/stl/_sstream.h: Removed useless mutable qualifier for
2631	basic_stringbuf _M_str member.
2632
2633	* test/unit/bind_test.cpp: Use STLport mutable workaround.
2634
2635	* src/message_facets.h, facets_byname.cpp: Limit use of the mutable
2636	qualified to one member in _Message_Impl class and use _STLP_MUTABLE
2637	in class implementation.
2638
26392006-12-11  Francois Dumont  <dums@users.sourceforge.net>
2640
2641	* test/unit/mvctor_test.cpp: Split in 2 other translation unit
2642	mvctor_declaration_test.cpp and mvctor_traits_test.cpp without
2643	impacting number of test case. It helps DMC to perform a correct
2644	link.
2645
2646	* stlport/stl/type_manips.h: Check _STLP_DONT_USE_PRIV_NAMESPACE before
2647	importing __true_type and __false_type in private namespace.
2648
2649	* stlport/stl/config/_dec.h, _apcc.h: Removed references to unused
2650	_STLP_HAS_NO_NEW_IOSTREAMS macro.
2651
26522006-12-11  Petr Ovtchenkov  <complement@users.sourceforge.net>
2653
2654	* src/fstream.cpp, stlport/stl/_fstream.h: non-template friend function
2655	of template class isn't good idea. Fixed.
2656
26572006-12-09  Francois Dumont  <dums@users.sourceforge.net>
2658
2659	* stlport/stl/_range_errors.h: To complete 2006-12-04 modification
2660	fix inclusion to access to string definition. In normal mode we include
2661	stlport/stl/_string.h rather than string header. There is a special case
2662	however if cumulating _STLP_NO_IOSTREAMS, _STLP_DONT_REDEFINE_STD and
2663	_STLP_WHOLE_NATIVE_STD then functions defined in _range_errors.h will
2664	throw exception from std namespace rather than from stlport.
2665
2666	* stlport/stl/config/user_config.h: Documented above modification.
2667
2668	* stlport/stl/config/features.h: Modify _STLP_VENDOR_STD definition. This
2669	internal macro do not have to use __std_alias, within STLport code std is
2670	not a macro and can be used as the vendor namespace.
2671
26722006-12-07  Francois Dumont  <dums@users.sourceforge.net>
2673
2674	* stlport/stl/_algobase.c, config/features.h: Removed unused
2675	_STLP_MPW_EXTRA_CONST macro.
2676
2677	* stlport/stl/config/_watcom.h, _dm.h, feature.h: Add new
2678	_STLP_NO_CONST_IN_PAIR macro config to avoid instanciation of
2679	pair with a const qualified type. _STLP_CONST is defined based
2680	on _STLP_NO_CONST_IN_PAIR.
2681
2682	* stlport/stl/_map.h, _hash_map.h, _unordered_map.h: Add use of
2683	_STLP_CONST.
2684
2685	* stlport/stl/_num_put.c: Introduce __do_put_bool function containing
2686	all codes to render bool values. We do not use anymore
2687	__copy_integer_and_fill function that was difficult to instanciate for
2688	Open Watcom compiler. Moreover this function was not really adapted for
2689	being use in this context, code duplication is very limitated and
2690	absolute number of lines of code hasn't been modified.
2691
2692	* stlport/stl/_fstream.h, src/fstream.cpp: Removed useless declaration
2693	of template specialization for _Noconv_input _Noconv_output and _Underflow.
2694	_Underflow template specialization now use a function __Underflow_doit
2695	to avoid the complex syntax of the implementation of a member method of
2696	a template class specialization in fstream.cpp.
2697
2698	* src/message_facets.h: Add missing allocator parameter in hash_map
2699	instanciation, required for compiler lacking default template parameters
2700	support.
2701
2702	* src/num_get_float.cpp: Add unsigned 64 bits support for Open Watcom.
2703
2704	* stlport/stl/_cmath.h, _cstdlib.h: Signal that Open Watcom has already
2705	all math functions C++ overloads in global namespace.
2706
2707	* Cleanup of all workarounds for MSVC before version 6.
2708
2709	* build/Makefiles/gmake/gcc.mak: Hide -fvisibility option for windows as
2710	in this context we are not able to correctly detect gcc version in use.
2711
2712	* stlport/stl/_fstream.h: Reorder member variables in _Filebuf_base
2713	to avoid gcc warning.
2714
27152006-12-06  Francois Dumont  <dums@users.sourceforge.net>
2716
2717	* STLport 5.1.0 released based on STLPORT_5_1 branch revision 2750.
2718
2719	* Merge STLPORT_5_1 branch from revision 2711 to 2749.
2720
2721	* stlport/stl/config/_hpux.h: Specify that Hp Unix is a unix platform
2722	_STLP_UNIX. This platform was already recognise as a unix platform
2723	but it is more clear to put it in Hp Unix configuration file.
2724
2725	* src/num_put_float.cpp: Limit Hp Unix workaround to access isfinite
2726	isnan and some other system functions to the gcc compiler, aCC has
2727	natively access to it. Tests done by Boris Gubenko.
2728
27292006-12-04  Francois Dumont  <dums@users.sourceforge.net>
2730
2731	* stlport/fstream, iomanip, ios, iosfwd, iostream, istream, locale,
2732	ostream, sstream, streambuf, strstream: Allow use of iostream headers
2733	even when _STLP_NO_IOSTREAMS is defined if using _STLP_WHOLE_NATIVE_STD.
2734
27352006-12-02  Francois Dumont  <dums@users.sourceforge.net>
2736
2737	* stlport/stl/_string.c: Use find_end algo rather than internal
2738	__find_end function, find_end contains workaround for limited
2739	compilers.
2740
2741	* stlport/stl/_algo.c: Avoid a useless default value for last
2742	parameter of __stable_partition_aux_aux function.
2743
2744	* src/num_put.cpp: In __insert_grouping_aux, use template parameter
2745	Str to get iterator definition rather than getting definition from
2746	basic_string.
2747
2748	* stlport/stl/_num_get.c, _num_put.c: Complete basic_string
2749	definition for compiler not supporting default template parameters.
2750
2751	* stlport/cmath, cstdio, typeinfo: Modified to be reentrant once.
2752
2753	* stlport/stl/_alloc.h, _bvector.h, _construct.h, _deque.h,
2754	_hash_map.h, _hash_set.h, _hashtable.h, _list.h, _map.h, _pair.h,
2755	_queue.h, _rope.h, _set.h, _slist.h, _stack.h, _string.h,
2756	_string_base.h, _string_workaround.h, _tree.h, _unordered_map.h,
2757	_unordered_set.h, _vector.h: Now _STLP_NO_MOVE_SEMANTIC hide all
2758	calls to _AsMoveSource function.
2759
27602006-11-30  Francois Dumont  <dums@users.sourceforge.net>
2761
2762	* test/unit/stack_allocator.h: Fixed StackAllocator implementation
2763	for Borland and DMC that required a workaround.
2764
2765	* stlport/stl/config/_gcc.h: Starting with gcc 4, use visibility
2766	feature.
2767
2768	* build/Makefiles/gmake/gcc.mak: Starting with gcc 4, add
2769	-fvisibility=hidden compilation option.
2770
27712006-11-28  Francois Dumont  <dums@users.sourceforge.net>
2772
2773	* stlport/stl/_alloc.h: Avoid explicit instanciation of template
2774	function _AsMoveSource. Replace internal allocator::allocate function
2775	with _M_allocate to avoid use of overloading.
2776
2777	* stlport/utility: Fix header reentrancy.
2778
2779	* stlport/stl/_ptrs_specialize.h: Fixed instanciation of
2780	__type_traits_aux.
2781
27822006-11-25  Francois Dumont  <dums@users.sourceforge.net>
2783
2784	* stlport/climits, iosfwd, mem.h, string.h, typeinfo.h, wchar.h,
2785	stl/char_traits:
2786	Eric Sanford patch to complete use of include_next with Borland
2787	compilers.
2788
2789	* stlport/using/cstring: Fix macro check for Borland compiler.
2790
2791	* test/unit/locale_test.cpp: Add test for Borland _fpclass.
2792
2793	* src/num_put_float.cpp: Fix potential error in _Stl_is_neg_nan
2794	for Borland compiler after 0x581.
2795
27962006-11-24  Francois Dumont  <dums@users.sourceforge.net>
2797
2798	* Eric Sanford patch for DMC compiler, allow access to associative
2799	containers extension.
2800
2801	* stlport/typeinfo.h, exception: Workaround for DMC that force
2802	inclusion of typeinfo.h at the begining of all translation units.
2803
28042006-11-23  Francois Dumont  <dums@users.sourceforge.net>
2805
2806	* test/unit/cstring_test.cpp: New test case to check import of all
2807	C functions from string.h in STLport namespace.
2808
2809	* stlport/using/cstring: Fix import of strcmp and strcpy for Borland.
2810
28112006-11-20  Francois Dumont  <dums@users.sourceforge.net>
2812
2813	* stlport/iosfwd, stl/type_manips.h, config/_bc.h, pointers/_tools.h:
2814	Patch from Eric Sanford to remove useless Borland workaround for
2815	pointer specialisation and use include_next feature for versions after
2816	0x580.
2817
28182006-11-20  Petr Ovtchenkov  <complement@users.sourceforge.net>
2819
2820	* src/monetary.cpp: template header not allowed in member definition
2821	of explicitly specialized class
2822
28232006-11-19  Francois Dumont  <dums@users.sourceforge.net>
2824
2825	* stlport/stl/_ios_base.h: Replace wrong external utility inclusion
2826	with internal _pair.h header.
2827
28282006-11-17  Francois Dumont  <dums@users.sourceforge.net>
2829
2830	* stlport/stl/config/features.h: Modification of the static constant
2831	workaround implementation to use something similar to the boost
2832	workaround. _STLP_STATIC_CONST_INIT_BUG macro change definition of
2833	newly introduce _STLP_STATIC_CONSTANT macro which use an enum or a
2834	real static const variable. Moreover the new
2835	_STLP_NO_STATIC_CONST_DEFINITION will hide static constant definition
2836	when defined.
2837
2838	* src/ctype.cpp, ios.cpp, locale.cpp: Add check for
2839	_STLP_NO_STATIC_CONST_DEFITION.
2840
2841	* src/monetary.cpp: Add intl static constant definitions.
2842
2843	* stlport/stl/_ctype.h, _ios_base.h, _limits.h, _monetary.h: Use
2844	_STLP_STATIC_CONSTANT.
2845
2846	* stlport/stl/_limits.h: Limits a workaround for long long and unsigned
2847	long long types that used to be applied for gcc after 2.96 up to version
2848	3.0.
2849
2850	* stlport/stl/_limits.c: Clean all static constant values duplicated from
2851	_limits.h that was not used in this file. Add static constant definition
2852	necessary for long long and unsigned long long types for gcc between 2.96
2853	and 3.0 (see above).
2854
2855	* stlport/stl/debug/_string.h: Removed npos static constant definition
2856	that is only necessary in stlport/stl/_string.c.
2857
2858	* stlport/stl/config/_msvc.h: Use real static constant starting with
2859	VS .Net 2003 (_MSC_VER >= 1310).
2860
2861	* test/unit/limits_test.cpp: Modified test to reveal potentially missing
2862	static constant definitions.
2863
28642006-11-13  Francois Dumont  <dums@users.sourceforge.net>
2865
2866	* stlport/stl/config/stl_confix.h: Add some STLport config options based
2867	on EDG version information using boost common_edg.hpp content.
2868
2869	* stlport/stl/: Patch from Eric Sanford for Borland compiler. Allow
2870	associative container extension (member methods) and use of pointer
2871	specialization.
2872
28732006-11-07  Francois Dumont  <dums@users.sourceforge.net>
2874
2875	* stlport/stl/config/_hpacc.h, stl_confix.h: Thanks to additional info
2876	from Boris Gubenko STLport now check __EDG_VERSION__ to detect EDG based
2877	compilers. It use this macro to activate include_next feature. Moreover
2878	a workaround has been added for aCC6 that was not defining __EDG_VERSION__
2879	as expected. _hpacc.h has also been cleaned of obsolete config.
2880
28812006-11-07  Francois Dumont  <dums@users.sourceforge.net>
2882
2883	* stlport: All C++ Standard headers are now using the same schema. If
2884	included from outside (_STLP_OUTERMOST_HEADER_ID not defined) it first
2885	included internal header (in stl folder) and then, if _STLP_WHOLE_NATIVE
2886	is defined, include the equivalent native Standard header. If included
2887	from inside, simply forward to native header include. This schema has
2888	several advantages:
2889	- Less dependancy on native library headers interdependancy.
2890	- Less code included as STLport code is only exposed if headers are
2891	included from the outside.
2892	- Restore _STLP_WHOLE_NATIVE_STD configuration (tested with gcc, msvc, bcc)
2893	The condition for this schema to work is that STLport never include Standard
2894	headers internaly when it wants to access some STLport code.
2895
2896	* stlport/stl/_iomanip.h: New file containing all STLport code that used
2897	to be in stlport/iomanip.
2898
2899	* stlport/stl/_complex.h, _rope.h, _stream_iterator.h, _string_fwd.h: Use
2900	stl/_iomanip.h rather than iomanip.
2901
2902	* stlport/stl/_rope.c: Use stl/_ostream.h and stl/_istream.h rather than
2903	iostream.
2904
2905	* stlport/stl/config/_kai.h, _msvc.h, feature.h: _STLP_MINIMUM_IMPORT_STD
2906	macro removed, it was only used in vector header to avoid include of
2907	native vector header even when _STLP_IMPORT_VENDOR_STD was defined. MSVC6
2908	used to define it but removing it hasn't make compilation failed when
2909	importing all native std stuff. Looks like it was a workaround necessary
2910	when STLport was not as clean as it is now or for the former wrapper mode
2911	that has been removed.
2912
2913	* stlport/stl/config/features.h: Add a #error to signal that
2914	_STLP_WHOLE_NATIVE_STD and _STLP_NO_OWN_NAMESPACE are incompatible
2915	options.
2916
2917	* stlport/stl/config/stl_confix.h
2918
29192006-11-05  Francois Dumont  <dums@users.sourceforge.net>
2920
2921	* stlport/stl/_sstream.h, _sstream.c: Add 2 helper functions _S_start and
2922	_S_finish to hide complexity of code required to have read access to the
2923	aggregated string instance internal buffer. Those 2 functions help keeping
2924	basic_stringbuf implementation simple without requiring a friend
2925	declaration in basic_string class and use of inheritance in _STLP_DEBUG
2926	mode between the debug string and the non debug one.
2927
2928	* stlport/stl/_string.h, debug/_string.h, _string_sum_methods.h: Removed
2929	friend declaration and inheritance (see above). This also avoids to restore
2930	some workarounds that used to be necessary when _STLP_DEBUG mode was using
2931	inheritance in all the debug containers.
2932
29332006-11-04  Francois Dumont  <dums@users.sourceforge.net>
2934
2935	* src/num_put_float.cpp: According C Standard number of digits in the
2936	exponent part of scientific output should be at least 2, C99 even says
2937	that we shouldn't add zeros if there are more than 3 significant digits.
2938
2939	* test/unit/complete_digits.h: Modified according to above rules.
2940
29412006-11-02  Francois Dumont  <dums@users.sourceforge.net>
2942
2943	* Repository: Merged STLPORT_5_1_RC3 tag changes up to r2771 into the trunk.
2944	Now trunk is really in sync with STLPORT_5_1 branch.
2945
2946	* etc/ChangeLog: Now contains only trunk modif, 5.1 changes are in
2947	ChangeLog-5.1.
2948
29492006-11-02  Petr Ovtchenkov  <complement@users.sourceforge.net>
2950
2951	* Repository: merged from 5.1 branch.
2952
29532006-11-01  Francois Dumont  <dums@users.sourceforge.net>
2954
2955	* stlport/stl/_stdexcept_base.h: Patch from Uli to simplify
2956	__Named_Exception implementation.
2957
29582006-10-31  Francois Dumont  <dums@users.sourceforge.net>
2959
2960	* build/test/unit/Makefile.inc: Restore STLport version information that
2961	had mysteriously disappeared in a previous modification.
2962
2963	* stlport/stl/_num_put.c: Disable warning for MSVC that signal problem in
2964	cast from pointer to unsigned long.
2965
2966	* src/num_put_float.cpp: Fix buffer overflow introduce by a previous
2967	modification. Now STLport appends '0' so that floating point scientific
2968	output has a constant size. MAXESIZ renamed in MAXEDIGITS to make macro
2969	signification more obvious.
2970
2971	* test/unit/complete_digits.h: New file containing the function giving
2972	platform dependant number of digits in STLport scientific output of
2973	floating point types.
2974
2975	* test/unit/num_put_get_test.cpp, locale_test.cpp: Adapt tests to latest
2976	STLport modifications.
2977
29782006-10-30  Francois Dumont  <dums@users.sourceforge.net>
2979
2980	* stlport/stl/_stlport_version.h: Upgrade STLport version information
2981	to reflect built libraries.
2982
29832006-10-24  Petr Ovtchenkov  <complement@users.sourceforge.net>
2984
2985	* stlport/stl/config/host.h, _linux.h: force usage malloc_alloc as default
2986	allocator on systems with glibc 2.3.x and later	due to better performance.
2987
2988	* stlport/stl/_alloc.h: remove _STLP_MALLOC_USABLE_SIZE dependant
2989	code---not really used.
2990
2991	* stlport/stl/_alloc.c: remove recalculation of __n [Francois was right];
2992	remove _STLP_MALLOC_USABLE_SIZE dependant code---not really used.
2993
2994	* src/allocators.cpp: remove additional __malloc_alloc_impl class---not
2995	required; add mutex lock for custom __malloc_alloc oom handler change/use
2996	[in multi-threaded environment].
2997
29982006-10-16  Petr Ovtchenkov  <complement@users.sourceforge.net>
2999
3000	* stlport/stl/c_locale.h, _mbstate_t.h, src/c_locale.h, c_locale.c:
3001	merge changes from STLPORT_5_1 branch, see 2006-10-12 [Francois Dumont];
3002	may be problems on Solaris, and FreeBSD---more check required.
3003
30042006-10-13  Petr Ovtchenkov  <complement@users.sourceforge.net>
3005
3006	* Repository: merge changes [not all] 2006-10-12 from STLPORT_5_1 branch
3007
30082006-10-12  Petr Ovtchenkov  <complement@users.sourceforge.net>
3009
3010	* Repository: merge changes from STLPORT_5_1 branch (records
3011	from 2006-10-06 to 2006-10-04).
3012
3013	* stlport/stl/_alloc.c: Hmm, looks like deallocation size in
3014	2006-10-06 is wrong.
3015
3016	* stlport/stl/_num_put.c: print pointer as in fix width form, and
3017	with base 0x, independent, zero pointer or not.
3018
3019	* test/unit/num_put_get_test.cpp: test for issue above.
3020
3021	* test/unit/string_test.cpp: test for overloaded operators
3022	and temporary string; inspired by problems with some compilers.
3023
3024	* stlport/stl/_mbstate_t.h: revert back changes from STLPORT_5_1 branch;
3025	mbstate_t couple with wchar closely, and sometimes has compex and implicit
3026	dependance; include wchar.h first required!
3027
30282006-09-12  Petr Ovtchenkov  <complement@users.sourceforge.net>
3029
3030	* test/unit/string_test.cpp: add test for bug report #1541499,
3031	problem not detected; looks like gcc 4.1.1 can compile te_tmp test
3032	correctly [sum operations under class derived from string, with
3033	_STLP_USE_TEMPLATE_EXPRESSION].
3034
30352006-09-08  Petr Ovtchenkov  <complement@users.sourceforge.net>
3036
3037	* stlport/stl/_sstream.h, _sstream.c: remove double buffering
3038	on write only underlying string as buffer. Use knowlege about
3039	string implementation, this should improve performance, and,
3040	at least simplify code and avoid logic that already present in
3041	string implementation.
3042
3043	* stlport/stl/_string_base.h: basic_streambuf is friend, to access
3044	to internal function (access to storage pointers).
3045
3046	* stlport/stl/debug/_string.h, _string_sum_methods.h: change usage
3047	of 'non-debug string', from 'use of' relation to 'inherit' releation.
3048	Useful for access basic_streambuf to string storage in _STLP_DEBUG
3049	mode too.
3050
3051	* test/unit/sstream_test.cpp: test for tellp call; change test
3052	with inited ostringstream in accordance with another Standard
3053	treatment.
3054
3055	* stlport/stl/_streambuf.h: remove ancient code, that can't
3056	work with present code in any case.
3057
3058	* src/c_locale.c: ditto
3059
3060	* build/lib/Makefile.inc: bump minor version (5.2.0)
3061
30622006-07-27  Francois Dumont  <dums@users.sourceforge.net>
3063
3064	* stlport: Adopt include_next GNU extension for the following reasons:
3065	- Standard headers do not have to be categorised anymore to be
3066	included, we could have a wrong include order if headers are not
3067	correctly categorized.
3068	- Package builder can use any folder structure they want for gcc,
3069	STLport won't have to be customized anymore.
3070	- Make STLport usable with other library that also use the shadow
3071	header trick to modify native headers content.
3072
3073	* stlport/stl/config/_gcc.h: Add definition of _STLP_HAS_INCLUDE_NEXT
3074	macro to signal that this compiler preprocessor support include_next.
3075	Removed all definition of native headers path that are now useless.
3076
30772006-03-27  Petr Ovtchenkov  <complement@users.sourceforge.net>
3078
3079	* src/num_put_float.cpp: use buffers that at least longer
3080	than maximal double [or long double] exponent, so avoid
3081	potential vulnerabilities; this allow to read really long
3082	fix-float numbers [with lost of significant digits, of course].
3083
3084	* test/unit/floatio_test.cpp: add test for issue above
3085
30862006-03-23  Petr Ovtchenkov  <complement@users.sourceforge.net>
3087
3088	* src/cxa.c: remove wrong exclusion of lock for Solaris.
3089