1 2008-12-10 Petr Ovtchenkov <complement (a] users.sourceforge.net> 2 3 * Repository: STLport release 5.2.1 4 5 2008-12-03 Petr Ovtchenkov <complement (a] 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 11 2008-11-27 Petr Ovtchenkov <complement (a] users.sourceforge.net> 12 13 * build: EVC9 (Visual Studio 2008) by Johan Andersson. 14 15 2008-11-19 Petr Ovtchenkov <complement (a] users.sourceforge.net> 16 17 * Repository: STLport release 5.2.0 18 19 2008-08-26 Petr Ovtchenkov <complement (a] users.sourceforge.net> 20 21 * Repository: branch for STLport 5.2, r3618 22 23 2008-07-21 Petr Ovtchenkov <complement (a] users.sourceforge.net> 24 25 * stlport/type_traits: decay, conditional, ebable_if added. 26 27 2008-07-18 Francois Dumont <dums (a] users.sourceforge.net> 28 29 * configure.bat: Specifying the compiler is now mandatory and 30 must be first. 31 32 2008-07-17 Francois Dumont <dums (a] 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 39 2008-07-17 Petr Ovtchenkov <complement (a] 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 52 2008-07-14 Francois Dumont <dums (a] 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 63 2008-07-10 Francois Dumont <dums (a] 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 76 2008-07-02 Francois Dumont <dums (a] 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 86 2008-06-26 Francois Dumont <dums (a] 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 92 2008-06-26 Petr Ovtchenkov <complement (a] 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 97 2008-06-24 Francois Dumont <dums (a] 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 105 2008-06-18 Francois Dumont <dums (a] 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 118 2008-06-16 Petr Ovtchenkov <complement (a] 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 125 2008-06-13 Francois Dumont <dums (a] 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 140 2008-06-05 Francois Dumont <dums (a] 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 162 2008-06-07 Petr Ovtchenkov <complement (a] users.sourceforge.net> 163 164 * configure: don't duplicate options in config.mak, that 165 has default values in makefiles. 166 167 2008-06-06 Petr Ovtchenkov <complement (a] 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 185 2008-06-05 Francois Dumont <dums (a] 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 197 2008-06-03 Francois Dumont <dums (a] 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 220 2008-05-27 Francois Dumont <dums (a] 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 226 2008-05-27 Francois Dumont <dums (a] 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 232 2008-05-15 Francois Dumont <dums (a] 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 239 2008-04-26 Francois Dumont <dums (a] 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 246 2008-05-11 Petr Ovtchenkov <complement (a] 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 257 2008-05-10 Petr Ovtchenkov <complement (a] 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 269 2008-04-26 Francois Dumont <dums (a] 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 274 2008-04-24 Francois Dumont <dums (a] 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 283 2008-04-23 Petr Ovtchenkov <complement (a] 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 290 2008-04-22 Petr Ovtchenkov <complement (a] 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 295 2008-04-17 Francois Dumont <dums (a] users.sourceforge.net> 296 297 * stlport/stl/_string.h: Remove support for non POD type in basic_string 298 implementation. 299 300 2008-04-08 Petr Ovtchenkov <complement (a] 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 308 2008-03-28 Francois Dumont <dums (a] 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 314 2008-03-21 Francois Dumont <dums (a] users.sourceforge.net> 315 316 * Patch 1876529 from Johan Andersson to add support for VS 2005 317 bundled Pocket PC 2003 SDK. 318 319 2008-03-18 Petr Ovtchenkov <complement (a] 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 326 2008-03-17 Francois Dumont <dums (a] 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 337 2008-03-10 Francois Dumont <dums (a] 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 343 2008-03-08 Francois Dumont <dums (a] 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 360 2008-03-06 Francois Dumont <dums (a] 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 371 2008-03-05 Francois Dumont <dums (a] 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 376 2008-03-03 Francois Dumont <dums (a] 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 393 2008-02-29 Francois Dumont <dums (a] 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 402 2008-02-28 Petr Ovtchenkov <complement (a] 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 416 2008-02-26 Francois Dumont <dums (a] 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 425 2008-02-25 Francois Dumont <dums (a] 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 433 2008-02-22 Francois Dumont <dums (a] 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 459 2008-02-20 Francois Dumont <dums (a] 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 468 2008-02-19 Francois Dumont <dums (a] 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 482 2008-02-18 Francois Dumont <dums (a] 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 499 2008-02-16 Francois Dumont <dums (a] users.sourceforge.net> 500 501 * Removed anachronous and unmaintained raw SGI allocator mode. 502 503 2008-02-15 Francois Dumont <dums (a] 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 514 2008-02-14 Francois Dumont <dums (a] 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 524 2008-02-13 Francois Dumont <dums (a] 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 530 2008-02-12 Francois Dumont <dums (a] 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 547 2008-02-01 Francois Dumont <dums (a] 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 573 2008-01-31 Francois Dumont <dums (a] 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 579 2008-01-30 Francois Dumont <dums (a] 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 590 2008-01-29 Petr Ovtchenkov <complement (a] 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 607 2008-01-28 Francois Dumont <dums (a] 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 613 2008-01-26 Francois Dumont <dums (a] 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 642 2008-01-22 Petr Ovtchenkov <complement (a] 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 648 2008-01-21 Francois Dumont <dums (a] 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 670 2008-01-18 Francois Dumont <dums (a] 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 686 2008-01-17 Francois Dumont <dums (a] 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 708 2008-01-17 Petr Ovtchenkov <complement (a] 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 715 2008-01-15 Petr Ovtchenkov <complement (a] users.sourceforge.net> 716 717 * stlport/stl/config/_hpux.h: define _POSIX_C_SOURCE 199506; 718 suggested by KBac, patch #1869229. 719 720 2008-01-14 Francois Dumont <dums (a] 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 734 2008-01-12 Petr Ovtchenkov <complement (a] 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 749 2008-01-11 Francois Dumont <dums (a] 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 762 2008-01-10 Francois Dumont <dums (a] 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 775 2008-01-09 Francois Dumont <dums (a] 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 781 2008-01-08 Francois Dumont <dums (a] 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 798 2008-01-07 Francois Dumont <dums (a] users.sourceforge.net> 799 800 * src/c_locale_dummy/c_locale_dummy.c: Upgrade to take into account 801 recent localization Api modifications. 802 803 2008-01-04 Francois Dumont <dums (a] 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 822 2008-01-02 Francois Dumont <dums (a] 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 829 2008-01-01 Francois Dumont <dums (a] 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 835 2007-12-29 Francois Dumont <dums (a] 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 853 2007-12-27 Francois Dumont <dums (a] 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 865 2007-12-23 Francois Dumont <dums (a] 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 881 2007-12-20 Francois Dumont <dums (a] 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 900 2007-12-20 Petr Ovtchenkov <complement (a] users.sourceforge.net> 901 902 * test/unit/fstream_test.cpp: test for seek, inspired by Soren 903 (stsoe, #1854345); report not confirmed. 904 905 2007-12-17 Francois Dumont <dums (a] users.sourceforge.net> 906 907 * stlport/stl/_limits.c: Add brackets on union initialization for gcc 908 starting with version 4. 909 910 2007-12-17 Petr Ovtchenkov <complement (a] users.sourceforge.net> 911 912 * stlport/stl/config/_linux.h: if not explicitly specified another, 913 use threads. 914 915 2007-12-14 Francois Dumont <dums (a] 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 928 2007-12-14 Petr Ovtchenkov <complement (a] 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 937 2007-12-13 Francois Dumont <dums (a] 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 944 2007-12-13 Petr Ovtchenkov <complement (a] 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 949 2007-12-12 Petr Ovtchenkov <complement (a] 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 957 2007-12-07 Petr Ovtchenkov <complement (a] 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 967 2007-12-05 Francois Dumont <dums (a] 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 977 2007-12-05 Francois Dumont <dums (a] 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 984 2007-12-04 Francois Dumont <dums (a] 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 991 2007-12-03 Francois Dumont <dums (a] 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 996 2007-11-30 Francois Dumont <dums (a] 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 1012 2007-11-27 Francois Dumont <dums (a] 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 1031 2007-11-26 Francois Dumont <dums (a] 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 1041 2007-11-24 Francois Dumont <dums (a] 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 1064 2007-11-23 Francois Dumont <dums (a] 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 1077 2007-11-23 Petr Ovtchenkov <complement (a] users.sourceforge.net> 1078 1079 * build/lib/configure: make configuration suitable for installation 1080 procedure and package building. 1081 1082 2007-11-22 Francois Dumont <dums (a] 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 1097 2007-11-20 Francois Dumont <dums (a] 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 1103 2007-11-17 Francois Dumont <dums (a] 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 1110 2007-11-16 Francois Dumont <dums (a] 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 1126 2007-11-14 Francois Dumont <dums (a] 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 1138 2007-11-12 Petr Ovtchenkov <complement (a] 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 1147 2007-11-09 Francois Dumont <dums (a] 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 1159 2007-10-30 Francois Dumont <dums (a] 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 1164 2007-10-21 Francois Dumont <dums (a] users.sourceforge.net> 1165 1166 * Merged with STLPORT_5_1 up to revision 3229. 1167 1168 2007-10-20 Francois Dumont <dums (a] 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 1176 2007-10-14 Francois Dumont <dums (a] 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 1181 2007-10-12 Francois Dumont <dums (a] 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 1212 2007-10-10 Petr Ovtchenkov <complement (a] 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 1236 2007-10-07 Francois Dumont <dums (a] users.sourceforge.net> 1237 1238 * 5.1.4 released, trunk merged with STLPORT_5_1 branch up to 1239 revision 3221. 1240 1241 2007-10-04 Francois Dumont <dums (a] 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 1259 2007-10-02 Francois Dumont <dums (a] 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 1272 2007-09-28 Francois Dumont <dums (a] 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 1286 2007-09-27 Francois Dumont <dums (a] 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 1309 2007-09-27 Petr Ovtchenkov <complement (a] users.sourceforge.net> 1310 1311 * test/unit/find_test.cpp: array initialization missed. 1312 1313 2007-09-19 Francois Dumont <dums (a] users.sourceforge.net> 1314 1315 * trunk merged with STLPORT_5_1 up to revision 3193. 1316 1317 2007-09-11 Petr Ovtchenkov <complement (a] 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 1333 2007-09-10 Francois Dumont <dums (a] 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 1357 2007-09-10 Petr Ovtchenkov <complement (a] 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 1365 2007-09-09 Petr Ovtchenkov <complement (a] 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 1371 2007-09-07 Petr Ovtchenkov <complement (a] 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 1379 2007-09-05 Petr Ovtchenkov <complement (a] 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 1392 2007-09-03 Petr Ovtchenkov <complement (a] 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 1415 2007-09-02 Francois Dumont <dums (a] 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 1427 2007-08-29 Francois Dumont <dums (a] 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 1433 2007-08-26 Francois Dumont <dums (a] 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 1441 2007-08-23 Petr Ovtchenkov <complement (a] 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 1451 2007-08-18 Francois Dumont <dums (a] users.sourceforge.net> 1452 1453 * stlport/stl/config/host.h: Removed _STLP_NO_CYGWIN macro 1454 unused since we are using include_next. 1455 1456 2007-08-16 Francois Dumont <dums (a] 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 1465 2007-08-15 Petr Ovtchenkov <complement (a] 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 1482 2007-08-13 Francois Dumont <dums (a] 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 1494 2007-08-12 Francois Dumont <dums (a] 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 1504 2007-08-08 Francois Dumont <dums (a] 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 1520 2007-08-03 Francois Dumont <dums (a] 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 1534 2007-07-30 Francois Dumont <dums (a] 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 1542 2007-07-20 Francois Dumont <dums (a] 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 1548 2007-07-22 Petr Ovtchenkov <complement (a] 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 1553 2007-07-20 Francois Dumont <dums (a] 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 1561 2007-07-18 Francois Dumont <dums (a] 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 1595 2007-07-17 Petr Ovtchenkov <complement (a] 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 1614 2007-07-15 Petr Ovtchenkov <complement (a] 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 1623 2007-07-05 Francois Dumont <dums (a] 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 1630 2007-07-04 Petr Ovtchenkov <complement (a] users.sourceforge.net> 1631 1632 * src/num_get_float.cpp: reorder code, one condition go away. 1633 1634 2007-07-03 Francois Dumont <dums (a] 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 1659 2007-06-29 Petr Ovtchenkov <complement (a] 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 1670 2007-06-28 Francois Dumont <dums (a] 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 1683 2007-06-28 Petr Ovtchenkov <complement (a] 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 1704 2007-06-24 Petr Ovtchenkov <complement (a] 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 1711 2007-06-23 Francois Dumont <dums (a] 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 1717 2007-06-21 Francois Dumont <dums (a] 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 1726 2007-06-20 Petr Ovtchenkov <complement (a] 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 1735 2007-06-19 Francois Dumont <dums (a] 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 1757 2007-06-19 Petr Ovtchenkov <complement (a] 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 1766 2007-06-15 Petr Ovtchenkov <complement (a] users.sourceforge.net> 1767 1768 * build/test/unit/Makefile.inc: macro_checks.cpp instead of cwchar.cpp. 1769 1770 2007-06-14 Francois Dumont <dums (a] 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 1791 2007-06-11 Francois Dumont <dums (a] 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 1800 2007-06-11 Petr Ovtchenkov <complement (a] 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 1827 2007-06-08 Francois Dumont <dums (a] 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 1840 2007-06-05 Francois Dumont <dums (a] 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 1860 2007-05-29 Francois Dumont <dums (a] 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 1867 2007-05-28 Francois Dumont <dums (a] 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 1879 2007-05-22 Francois Dumont <dums (a] 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 1890 2007-05-21 Francois Dumont <dums (a] 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 1900 2007-05-19 Francois Dumont <dums (a] 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 1906 2007-05-17 Francois Dumont <dums (a] 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 1912 2007-05-16 Francois Dumont <dums (a] 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 1919 2007-05-15 Francois Dumont <dums (a] 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 1933 2007-05-11 Francois Dumont <dums (a] 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 1953 2007-05-10 Francois Dumont <dums (a] 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 1963 2007-05-04 Francois Dumont <dums (a] 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 1984 2007-05-03 Francois Dumont <dums (a] 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 2010 2007-05-02 Francois Dumont <dums (a] 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 2016 2007-04-19 Francois Dumont <dums (a] 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 2026 2007-04-16 Francois Dumont <dums (a] 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 2061 2007-04-15 Francois Dumont <dums (a] 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 2067 2007-04-10 Francois Dumont <dums (a] 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 2079 2007-04-09 Francois Dumont <dums (a] 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 2091 2007-04-05 Francois Dumont <dums (a] 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 2099 2007-04-05 Petr Ovtchenkov <complement (a] 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 2115 2007-04-04 Francois Dumont <dums (a] 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 2121 2007-03-22 Francois Dumont <dums (a] 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 2126 2007-03-20 Francois Dumont <dums (a] 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 2156 2007-03-17 Francois Dumont <dums (a] 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 2178 2007-03-15 Francois Dumont <dums (a] 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 2195 2007-03-13 Francois Dumont <dums (a] 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 2225 2007-03-13 Petr Ovtchenkov <complement (a] 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 2232 2007-03-10 Francois Dumont <dums (a] 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 2263 2007-03-09 Petr Ovtchenkov <complement (a] 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 2269 2007-03-08 Petr Ovtchenkov <complement (a] 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 2280 2007-03-05 Francois Dumont <dums (a] users.sourceforge.net> 2281 2282 * Synchronization with STLPORT_5_1 branch revision 2945. 2283 2284 2007-02-19 Francois Dumont <dums (a] 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 2293 2007-02-15 Francois Dumont <dums (a] users.sourceforge.net> 2294 2295 * Synchronization with STLPORT_5_1 branch up to revision 2918. 2296 2297 2007-02-13 Francois Dumont <dums (a] 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 2315 2007-02-12 Francois Dumont <dums (a] 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 2327 2007-02-12 Petr Ovtchenkov <complement (a] 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 2338 2007-02-07 Francois Dumont <dums (a] 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 2344 2007-02-05 Francois Dumont <dums (a] 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 2374 2007-02-02 Francois Dumont <dums (a] 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 2394 2007-02-02 Petr Ovtchenkov <complement (a] 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 2400 2007-01-29 Petr Ovtchenkov <complement (a] users.sourceforge.net> 2401 2402 * stlport/stl/debug/_deque.h: typename required. 2403 2404 * test/unit/sstream_test.cpp: test for seekp added. 2405 2406 2007-01-28 Francois Dumont <dums (a] 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 2418 2007-01-25 Petr Ovtchenkov <complement (a] 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 2428 2007-01-23 Francois Dumont <dums (a] 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 2460 2007-01-20 Francois Dumont <dums (a] 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 2474 2007-01-19 Petr Ovtchenkov <complement (a] 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 2490 2007-01-18 Francois Dumont <dums (a] 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 2503 2007-01-17 Petr Ovtchenkov <complement (a] users.sourceforge.net> 2504 2505 * stlport/stl/_cmath.h: move hypot in global namespace for SunSoft; 2506 suggested by Graham Reed. 2507 2508 2007-01-15 Francois Dumont <dums (a] 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 2532 2007-01-14 Francois Dumont <dums (a] 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 2541 2007-01-07 Francois Dumont <dums (a] 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 2546 2007-01-05 Francois Dumont <dums (a] 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 2564 2006-12-29 Francois Dumont <dums (a] 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 2579 2006-12-20 Francois Dumont <dums (a] 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 2587 2006-12-19 Francois Dumont <dums (a] 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 2595 2006-12-17 Francois Dumont <dums (a] 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 2602 2006-12-15 Francois Dumont <dums (a] users.sourceforge.net> 2603 2604 * stlport/stl/config/_dm.h, test/unit/map_test.cpp: Eric Sanford 2605 patch for DMC. 2606 2607 2006-12-13 Francois Dumont <dums (a] 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 2614 2006-12-13 Petr Ovtchenkov <complement (a] 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 2620 2006-12-13 Francois Dumont <dums (a] 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 2639 2006-12-11 Francois Dumont <dums (a] 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 2652 2006-12-11 Petr Ovtchenkov <complement (a] 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 2657 2006-12-09 Francois Dumont <dums (a] 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 2672 2006-12-07 Francois Dumont <dums (a] 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 2715 2006-12-06 Francois Dumont <dums (a] 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 2729 2006-12-04 Francois Dumont <dums (a] 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 2735 2006-12-02 Francois Dumont <dums (a] 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 2760 2006-11-30 Francois Dumont <dums (a] 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 2771 2006-11-28 Francois Dumont <dums (a] 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 2782 2006-11-25 Francois Dumont <dums (a] 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 2796 2006-11-24 Francois Dumont <dums (a] 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 2804 2006-11-23 Francois Dumont <dums (a] 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 2811 2006-11-20 Francois Dumont <dums (a] 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 2818 2006-11-20 Petr Ovtchenkov <complement (a] users.sourceforge.net> 2819 2820 * src/monetary.cpp: template header not allowed in member definition 2821 of explicitly specialized class 2822 2823 2006-11-19 Francois Dumont <dums (a] users.sourceforge.net> 2824 2825 * stlport/stl/_ios_base.h: Replace wrong external utility inclusion 2826 with internal _pair.h header. 2827 2828 2006-11-17 Francois Dumont <dums (a] 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 2864 2006-11-13 Francois Dumont <dums (a] 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 2873 2006-11-07 Francois Dumont <dums (a] 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 2881 2006-11-07 Francois Dumont <dums (a] 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 2919 2006-11-05 Francois Dumont <dums (a] 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 2933 2006-11-04 Francois Dumont <dums (a] 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 2941 2006-11-02 Francois Dumont <dums (a] 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 2949 2006-11-02 Petr Ovtchenkov <complement (a] users.sourceforge.net> 2950 2951 * Repository: merged from 5.1 branch. 2952 2953 2006-11-01 Francois Dumont <dums (a] users.sourceforge.net> 2954 2955 * stlport/stl/_stdexcept_base.h: Patch from Uli to simplify 2956 __Named_Exception implementation. 2957 2958 2006-10-31 Francois Dumont <dums (a] 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 2978 2006-10-30 Francois Dumont <dums (a] users.sourceforge.net> 2979 2980 * stlport/stl/_stlport_version.h: Upgrade STLport version information 2981 to reflect built libraries. 2982 2983 2006-10-24 Petr Ovtchenkov <complement (a] 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 2998 2006-10-16 Petr Ovtchenkov <complement (a] 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 3004 2006-10-13 Petr Ovtchenkov <complement (a] users.sourceforge.net> 3005 3006 * Repository: merge changes [not all] 2006-10-12 from STLPORT_5_1 branch 3007 3008 2006-10-12 Petr Ovtchenkov <complement (a] 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 3028 2006-09-12 Petr Ovtchenkov <complement (a] 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 3035 2006-09-08 Petr Ovtchenkov <complement (a] 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 3062 2006-07-27 Francois Dumont <dums (a] 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 3077 2006-03-27 Petr Ovtchenkov <complement (a] 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 3086 2006-03-23 Petr Ovtchenkov <complement (a] users.sourceforge.net> 3087 3088 * src/cxa.c: remove wrong exclusion of lock for Solaris. 3089