501
I Use This!
Activity Not Available

News

Analyzed 6 months ago. based on code collected over 1 year ago.
Posted over 14 years ago
Updated Libraries Asio: Fixed a problem on kqueue-based platforms where a deadline_timer may never fire if the io_service ... [More] is running in a background thread (#4568). Fixed a const-correctness issue that prevented valid uses of has_service<> from compiling (#4638). Fixed MinGW cross-compilation (#4491). Removed dependency on deprecated Boost.System functions (#4672). Ensured close()/closesocket() failures are correctly propagated (#4573). Added a check for errors returned by InitializeCriticalSectionAndSpinCount (#4574). Added support for hardware flow control on QNX (#4625). Always use pselect() on HP-UX, if it is available (#4578). Ensured handler arguments are passed as lvalues (#4744). Fixed Windows build when thread support is disabled (#4680). Fixed a Windows-specific problem where deadline_timer objects with expiry times set more than 5 minutes in the future may never expire (#4745). Fixed the resolver backend on BSD platforms so that an empty service name resolves to port number 0, as per the documentation (#4690). Fixed read operations so that they do not accept buffer sequences of type const_buffers_1 (#4746). Redefined Protocol and id to avoid clashing with Objective-C++ keywords (#4191). Fixed a vector reallocation performance issue that can occur when there are many active deadline_timer objects (#4780). Fixed the kqueue backend so that it compiles on NetBSD (#4662). Fixed the socket io_control() implementation on 64-bit Mac OS X and BSD platforms (#4782). Fixed a Windows-specific problem where failures from accept() are incorrectly treated as successes (#4859). Deprecated the separate compilation header <boost/asio/impl/src.cpp> in favour of <boost/asio/impl/src.hpp> (#4560). Config: Added new defect macros, BOOST_NO_VARIADIC_MACROS and BOOST_NO_NUMERIC_LIMITS_LOWEST. Minor fixes (#4670, #4563, #4474, #4508). Flyweight: Fixed a hanging problem with intermodule_holder in Win32 platforms related to a Boost.Interprocess issue described at ticket #4606. Removed an internal assertion incompatible with program termination via std::exit. Foreach: Fix ambiguitiy by making auto_any constructor explicit. Fusion: Added BOOST_FUSION_ADAPT_ADT, BOOST_FUSION_ADAPT_TPL_ADT, BOOST_FUSION_ADAPT_ASSOC_ADT and BOOST_FUSION_ADAPT_ASSOC_TPL_ADT. Graph: Added Stoer-Wagner min-cut algorithm contributed by Daniel Trebbien. Added implicit graph (implicit_graph) and A* (astar_maze) examples contributed by W. P. McNeill. Added bundled property support for graph properties. Fixed bugs #4556, #4622, #4631, #4715, #4753, #4758 and #4793 plus others not in Trac. Fixed documentation bugs #4731 and #4737. Interprocess: Fixed bugs #1080, #3284, #3439, #3448, #3582, #3682, #3829, #3846, #3914, #3947, #3950, #3951, #3985, #4010, #4417, #4019, #4039, #4218, #4230, #4250, #4297, #4350, #4352, #4426, #4516, #4524, #4557, #4606, #4685, #4694. Added support for standard rvalue reference move semantics (tested on GCC 4.5 and VC10). Permissions can be detailed for interprocess named resources. mapped_region::flush initiates disk flushing but does not guarantee it's completed when returns, since it is not portable. FreeBSD and MacOS now use posix semaphores to implement named semaphores and mutex. Math: Added inverse gamma distribution and inverse chi_square and scaled inverse chi_square. Added warnings about potential ambiguity with std random library in distribution and function names. Editorial revision of documentation, and added FAQ. Meta State Machine: Support for serialization. Possibility to use normal functors (from functor front-end) in eUML. New constructors where substates / submachines can be taken as arguments. This allows passing arguments to the constructor of a submachine. Bugfixes (anonymous transitions) MultiArray: Fixes for bugs #3581, #3820, #3989, #4032, plus other bugs not in Trac. Added new examples and test cases. Proto: Knock down value of proto::N, fixes bug #4602, Support non-rtti compilers Fix bug with proto::matches, array types and the wildcard pattern. Make Proto work on MSVC with the /clr option Add const-qualified overloads of proto::eval Spirit: Spirit V2.4.1, see the 'What's New' section for details. TypeTraits: Added new traits add_rvalue_reference, add_lvalue_reference and common_type. Minor fixes to is_signed, is_unsigned and is_virtual_base_of. uBLAS: Tickets closed: #4410, #3397, #795, #3514, Mixed types operation are possible and new tests added (like matrix+matrix), New features: a new size<> operator is available. For example size<1>(A+B) give the number of rows of the sum of matrices A and B, Unordered: Fix inserting from iterators which return by copy from operator* in boost::unordered_map and boost::unordered_set. Wave: See the Changelog for details. Xpressive: xpressive::as handles wide-char sub_match objects, fixes bug #4496 Updated Tools Boostbook: Fix syntax highlighter for comments at the end of code blocks. Quickbook: Fix command line macros. Nested code snippets. Nested documentation info comments. Revert xml escaping document info, it broke some documentation files (will now be in 1.6). Some other small tweaks. See the change log for more info. Compilers Tested Boost's primary test compilers are: Linux: GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.1. GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0. Intel: 10.1, 11.0, 11.1 Pathscale: 3.2. OS X: GCC: 4.0.1, 4.2.1, 4.4 GCC, C++0x mode: 4.4. Intel: 11.1 Windows: Visual C++: 7.1, 8.0, 9.0 and 10.0. GCC, mingw: 4.3.3. FreeBSD: GCC: 4.2.1, 32 bit. GCC: 4.2.1, 64 bit. Boost's additional test compilers include: Linux: GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.0, 4.6.0 (dev version). GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0. Intel: 10.1, 11.0, 11.1. pgCC 10.1. PathScale: 3.2. Clang from subversion. OS X: Intel C++ Compiler: 10.1, 11.0, 11.1. GCC: 4.0.1, 4.2.1, 4.4.4 GCC, C++0x mode: 4.4.4 Clang from subversion. Windows: Borland: 5.9.3, 6.1.3 (2009), 6.2.1 (2010), 6.3.0 GCC, mingw: 4.3.3, 4.4.5, 4.5.1 GCC, mingw, C++0x mode: 4.5.1 Visual C++: 7.1, 8.0, 9.0, 10.0 AIX: IBM XL C/C++ Enterprise Edition, V11.1.0.0. FreeBSD: GCC 4.2.1, 64 bit. Solaris: Sun C++: 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. [Less]
Posted about 15 years ago
New Libraries Meta State Machine: High-performance expressive UML2 finite state machines, from Christophe Henry Polygon: Booleans/clipping, ... [More] resizing/offsetting and more for planar polygons with integral coordinates, from Lucanus Simonson. Updated Libraries Accumulators: Correct miscellaneous documentation inaccuracies Asio: Reduced compile times. (Note that some programs may need to add additional #includes, e.g. if the program uses boost::array but does not explicitly include <boost/array.hpp>.) Reduced the size of generated code. Refactored deadline_timer implementation to improve performance. Improved multiprocessor scalability on Windows by using a dedicated hidden thread to wait for timers. Improved performance of asio::streambuf with async_read() and async_read_until(). These read operations now use the existing capacity of the streambuf when reading, rather than limiting the read to 512 bytes. Added optional separate compilation. To enable, add #include <boost/asio/impl/src.cpp> to one source file in a program, then build the program with BOOST_ASIO_SEPARATE_COMPILATION defined in the project/compiler settings. Alternatively, BOOST_ASIO_DYN_LINK may be defined to build a separately-compiled Asio as part of a shared library. Added new macro BOOST_ASIO_DISABLE_FENCED_BLOCK to permit the disabling of memory fences around completion handlers, even if thread support is enabled. Reworked timeout examples to better illustrate typical use cases. Ensured that handler arguments are passed as const types. Fixed incorrect parameter order in null_buffers variant of async_send_to (#4170). Ensured unsigned char is used with isdigit in getaddrinfo emulation (#4201). Fixed handling of very small but non-zero timeouts (#4205). Fixed crash that occurred when an empty buffer sequence was passed to a composed read or write operation. Added missing operator+ overload in buffers_iterator (#4382). Implemented cancellation of null_buffers operations on Windows. Config: Added new defect macro, BOOST_NO_COMPLETE_VALUE_INITIALIZATION. Added new defect macro BOOST_NO_0X_HDR_TYPEINDEX, fixes issue #4274. Added support for code visibility in GCC. Fixed issues #4385, #4324, #4221, #4182, #4178, #4152, #4115. #4112, #4059, #4041, #4012. Filesystem: This release contains both version 2 and version 3 of the library. Version 3 is a major upgrade that will break some existing user code, so version 2 is the default. Users are encouraged to migrate to version 3. See 'Version 2' and 'Version 3' for more information. Fix problems with symbol visibility for shared libraries. Fix various minor problems. Fixed issues: #3863, #4248. Foreach: Add boost/foreach_fwd.hpp for forward declarations of foreach's customization points, fixes #3998. Remove out-of-date work-arounds for sun compilers, fixes #4306. Fusion: Added fusion::reverse_fold, fusion::iter_fold and fusion::reverse_iter_fold (#1623). Hash: Option to prevent implicit casts when calling the hash function by defining the macro BOOST_HASH_NO_IMPLICIT_CASTS, which can avoid some subtle problems. This might be activated by default in a future version. Iostreams: Several fixes for file descriptors class, including a breaking change to the constructors and open methods for file_descriptor, file_descriptor_source and file_descriptor_sink. See the documentation for details. The old methods are still available if you define BOOST_IOSTREAMS_USE_DEPRECATED (#3323, #3517, #4335). Fix several issues with compression and decompression (#2318, #4091, #3348, #2783, #1579, #3853). And a load more miscellaneous fixes (#3851, #3279, #3689, #2356, #2996, #4102, #2998, #1612, #2325). Thanks to Steven Watanabe for almost all these fixes. For more detail see the release notes. Math: Fixed incorrect range and support for Rayleigh distribution. MPL: Make mpl::string work with mpl::transform. Multi-index Containers: Fixed a bug preventing the use of modify_key with rollback in ordered and hashed indices when Modifier and Rollback are different types (ticket #4130). Proto: Minor change in behavior: when using proto::and_ as a transform, apply all transforms but only return the result of applying the last. See Proto's Release Notes for details. Minor change in behavior: proto::as_expr and proto::as_child no longer run objects that are already proto expressions through the expression domain's generator. See Proto's Release Notes for details. Minor change in behavior: Proto uses proto::basic_expr instead of proto::expr when possible for better compile times. See Proto's Release Notes for details. Add support for sub-domains. Introduce per-domain as_expr and as_child customization points to allow for domain-specific customization of variable capture behavior. The proto::_default transform is also a grammar that matches the expressions the transform knows how to handle. Add proto::_void, a no-op primitive transform that does nothing and returns void. The proto::pass_through transform doesn't strip expression wrappers, fixes #4175. Const-correctness fixes when invoking proto domains. Regex: Fixed issues: #4309, #4215, #4212, #4191, #4132, #4123, #4114, #4036, #4020, #3941, #3902, #3890. Spirit: Spirit V2.4, see the 'What's New' section for details. System: Change system_category and generic_category to functions, to conform to the C++0x FCD. This change may cause compile errors some user code; the fix is add "()" to references to system_category and generic_category, so that they become function calls. Fix problems with symbol visibility for shared libraries. Fixed issues: #4254, #3994, #3474. Thread: Fixes for miscellaneous trac issues (#2501, #4341, #4363, #3760, #3761, #3611, #2955, #4071, #3195, #3097, #2874, #4316, #4317, #4322, #3244, #2747, #4305, #3195, #2704, #2293, #868, #2918, #4238, #3269, #3178, #3195). Fixes for other miscellaneous issues (remove warnings, support newer compilers, etc.) TR1: Fixed VC10 support. std::tr1::result_of always uses the TR1 ResultOf protocol, even on compilers that support the C++0x decltype-based implementation. Type Traits: Added support for rvalue references throughout the library, plus two new traits classes is_rvalue_reference and is_lvalue_reference. Fixes #4407 and #3804. Fixed ticket #3621. uBLAS: New assignment operators to feed in vectors and matrices in many nice ways (#4034). Thank you Nasos New doxygen-based documentation Enable arithmetic operators (+,-,*,/) to work between ublas containers of std::complex and integral types (#3649). Thank you Neal Removed unused variables in functional.hpp (#4377). Thank you Marco New matrix_indirect and vector_indirect views to access elements with a matrix or vector of indices Utility: Added a new template class, boost::initialized<T>, in order to fix #3472. New version of value_initialized<T> no longer calls memset when the compiler has implemented value-initialization completely (#3869). New template boost::tr1_result_of that implements the TR1 ResultOf protocol even if boost::result_of uses the C++0x decltype-based implementation. Uuid: Define BOOST_UUID_NO_TYPE_TRAITS to remove the dependency on Boost.TypeTraits. Stream operator<< handles left, internal, and right manipulators. Added to_string, to_wstring to convert a uuid to a string. Fixed minor bugs in documentation. Wave: See the Changelog for details. Xpressive: Replace non-portable using declarations with typedefs in nested_results. Support user-defined assertions with placeholders for non-local variables. Updated tools Boostbook: Significantly faster. Improved syntax highlighter. Quickbook: Use the cygwin 1.7 API for better path handling. Improved boostbook generation. Tweak the grammar to clean up some edge cases. For more detail see the change log. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4 on 64-bit Suse. Windows: Visual C++ 7.1 SP1, 8.0 SP1, 9.0 SP1 and 10.0. GCC 4.3.3, using Mingw. FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. GCC, with C++0x extensions, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. GCC 4.4 on 64 bit Suse. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. Clang from subversion (will be released with LLVM 2.8). OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1, 4.2.1 (Apple build). GCC 4.4 GCC, with C++0x extensions, 4.4 Clang from subversion (will be released with LLVM 2.8). Windows: Visual C++ 7.1 SP, 8.0, 9.0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3, 4.5 on Mingw. GCC, with C++0x extensions, 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V11.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. Thanks to Marshall Clow for organizing the bug sprint and to everyone who took part. [Less]
Posted about 15 years ago
New Libraries Meta State Machine: High-performance expressive UML2 finite state machines, from Christophe Henry Polygon: Booleans/clipping, ... [More] resizing/offsetting and more for planar polygons with integral coordinates, from Lucanus Simonson. Updated Libraries Accumulators: Correct miscellaneous documentation inaccuracies Asio: Reduced compile times. (Note that some programs may need to add additional #includes, e.g. if the program uses boost::array but does not explicitly include <boost/array.hpp>.) Reduced the size of generated code. Refactored deadline_timer implementation to improve performance. Improved multiprocessor scalability on Windows by using a dedicated hidden thread to wait for timers. Improved performance of asio::streambuf with async_read() and async_read_until(). These read operations now use the existing capacity of the streambuf when reading, rather than limiting the read to 512 bytes. Added optional separate compilation. To enable, add #include <boost/asio/impl/src.cpp> to one source file in a program, then build the program with BOOST_ASIO_SEPARATE_COMPILATION defined in the project/compiler settings. Alternatively, BOOST_ASIO_DYN_LINK may be defined to build a separately-compiled Asio as part of a shared library. Added new macro BOOST_ASIO_DISABLE_FENCED_BLOCK to permit the disabling of memory fences around completion handlers, even if thread support is enabled. Reworked timeout examples to better illustrate typical use cases. Ensured that handler arguments are passed as const types. Fixed incorrect parameter order in null_buffers variant of async_send_to (#4170). Ensured unsigned char is used with isdigit in getaddrinfo emulation (#4201). Fixed handling of very small but non-zero timeouts (#4205). Fixed crash that occurred when an empty buffer sequence was passed to a composed read or write operation. Added missing operator+ overload in buffers_iterator (#4382). Implemented cancellation of null_buffers operations on Windows. Config: Added new defect macro, BOOST_NO_COMPLETE_VALUE_INITIALIZATION. Added new defect macro BOOST_NO_0X_HDR_TYPEINDEX, fixes issue #4274. Added support for code visibility in GCC. Fixed issues #4385, #4324, #4221, #4182, #4178, #4152, #4115. #4112, #4059, #4041, #4012. Filesystem: This release contains both version 2 and version 3 of the library. Version 3 is a major upgrade that will break some existing user code, so version 2 is the default. Users are encouraged to migrate to version 3. See 'Version 2' and 'Version 3' for more information. Fix problems with symbol visibility for shared libraries. Fix various minor problems. Fixed issues: #3863, #4248. Foreach: Add boost/foreach_fwd.hpp for forward declarations of foreach's customization points, fixes #3998. Remove out-of-date work-arounds for sun compilers, fixes #4306. Fusion: Added fusion::reverse_fold, fusion::iter_fold and fusion::reverse_iter_fold (#1623). Hash: Option to prevent implicit casts when calling the hash function by defining the macro BOOST_HASH_NO_IMPLICIT_CASTS, which can avoid some subtle problems. This might be activated by default in a future version. Iostreams: Several fixes for file descriptors class, including a breaking change to the constructors and open methods for file_descriptor, file_descriptor_source and file_descriptor_sink. See the documentation for details. The old methods are still available if you define BOOST_IOSTREAMS_USE_DEPRECATED (#3323, #3517, #4335). Fix several issues with compression and decompression (#2318, #4091, #3348, #2783, #1579, #3853). And a load more miscellaneous fixes (#3851, #3279, #3689, #2356, #2996, #4102, #2998, #1612, #2325). Thanks to Steven Watanabe for almost all these fixes. For more detail see the release notes. Math: Fixed incorrect range and support for Rayleigh distribution. MPL: Make mpl::string work with mpl::transform. Multi-index Containers: Fixed a bug preventing the use of modify_key with rollback in ordered and hashed indices when Modifier and Rollback are different types (ticket #4130). Proto: Minor change in behavior: when using proto::and_ as a transform, apply all transforms but only return the result of applying the last. See Proto's Release Notes for details. Minor change in behavior: proto::as_expr and proto::as_child no longer run objects that are already proto expressions through the expression domain's generator. See Proto's Release Notes for details. Minor change in behavior: Proto uses proto::basic_expr instead of proto::expr when possible for better compile times. See Proto's Release Notes for details. Add support for sub-domains. Introduce per-domain as_expr and as_child customization points to allow for domain-specific customization of variable capture behavior. The proto::_default transform is also a grammar that matches the expressions the transform knows how to handle. Add proto::_void, a no-op primitive transform that does nothing and returns void. The proto::pass_through transform doesn't strip expression wrappers, fixes #4175. Const-correctness fixes when invoking proto domains. Regex: Fixed issues: #4309, #4215, #4212, #4191, #4132, #4123, #4114, #4036, #4020, #3941, #3902, #3890. Spirit: Spirit V2.4, see the 'What's New' section for details. System: Change system_category and generic_category to functions, to conform to the C++0x FCD. This change may cause compile errors some user code; the fix is add "()" to references to system_category and generic_category, so that they become function calls. Fix problems with symbol visibility for shared libraries. Fixed issues: #4254, #3994, #3474. Thread: Fixes for miscellaneous trac issues (#2501, #4341, #4363, #3760, #3761, #3611, #2955, #4071, #3195, #3097, #2874, #4316, #4317, #4322, #3244, #2747, #4305, #3195, #2704, #2293, #868, #2918, #4238, #3269, #3178, #3195). Fixes for other miscellaneous issues (remove warnings, support newer compilers, etc.) TR1: Fixed VC10 support. std::tr1::result_of always uses the TR1 ResultOf protocol, even on compilers that support the C++0x decltype-based implementation. Type Traits: Added support for rvalue references throughout the library, plus two new traits classes is_rvalue_reference and is_lvalue_reference. Fixes #4407 and #3804. Fixed ticket #3621. uBLAS: New assignment operators to feed in vectors and matrices in many nice ways (#4034). Thank you Nasos New doxygen-based documentation Enable arithmetic operators (+,-,*,/) to work between ublas containers of std::complex and integral types (#3649). Thank you Neal Removed unused variables in functional.hpp (#4377). Thank you Marco New matrix_indirect and vector_indirect views to access elements with a matrix or vector of indices Utility: Added a new template class, boost::initialized<T>, in order to fix #3472. New version of value_initialized<T> no longer calls memset when the compiler has implemented value-initialization completely (#3869). New template boost::tr1_result_of that implements the TR1 ResultOf protocol even if boost::result_of uses the C++0x decltype-based implementation. Uuid: Define BOOST_UUID_NO_TYPE_TRAITS to remove the dependency on Boost.TypeTraits. Stream operator<< handles left, internal, and right manipulators. Added to_string, to_wstring to convert a uuid to a string. Fixed minor bugs in documentation. Wave: See the Changelog for details. Xpressive: Replace non-portable using declarations with typedefs in nested_results. Support user-defined assertions with placeholders for non-local variables. Updated tools Boostbook: Significantly faster. Improved syntax highlighter. Quickbook: Use the cygwin 1.7 API for better path handling. Improved boostbook generation. Tweak the grammar to clean up some edge cases. For more detail see the change log. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4 on 64-bit Suse. Windows: Visual C++ 7.1 SP1, 8.0 SP1, 9.0 SP1 and 10.0. GCC 4.3.3, using Mingw. FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. GCC, with C++0x extensions, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. GCC 4.4 on 64 bit Suse. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. Clang from subversion (will be released with LLVM 2.8). OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1, 4.2.1 (Apple build). GCC 4.4 GCC, with C++0x extensions, 4.4 Clang from subversion (will be released with LLVM 2.8). Windows: Visual C++ 7.1 SP, 8.0, 9.0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3, 4.5 on Mingw. GCC, with C++0x extensions, 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V11.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. Thanks to Marshall Clow for organizing the bug sprint and to everyone who took part. [Less]
Posted about 15 years ago
New Libraries Meta State Machine: High-performance expressive UML2 finite state machines, from Christophe Henry Polygon: Booleans/clipping, ... [More] resizing/offsetting and more for planar polygons with integral coordinates, from Lucanus Simonson. Updated Libraries Accumulators: Correct miscellaneous documentation inaccuracies Asio: Reduced compile times. (Note that some programs may need to add additional #includes, e.g. if the program uses boost::array but does not explicitly include <boost/array.hpp>.) Reduced the size of generated code. Refactored deadline_timer implementation to improve performance. Improved multiprocessor scalability on Windows by using a dedicated hidden thread to wait for timers. Improved performance of asio::streambuf with async_read() and async_read_until(). These read operations now use the existing capacity of the streambuf when reading, rather than limiting the read to 512 bytes. Added optional separate compilation. To enable, add #include <boost/asio/impl/src.cpp> to one source file in a program, then build the program with BOOST_ASIO_SEPARATE_COMPILATION defined in the project/compiler settings. Alternatively, BOOST_ASIO_DYN_LINK may be defined to build a separately-compiled Asio as part of a shared library. Added new macro BOOST_ASIO_DISABLE_FENCED_BLOCK to permit the disabling of memory fences around completion handlers, even if thread support is enabled. Reworked timeout examples to better illustrate typical use cases. Ensured that handler arguments are passed as const types. Fixed incorrect parameter order in null_buffers variant of async_send_to (#4170). Ensured unsigned char is used with isdigit in getaddrinfo emulation (#4201). Fixed handling of very small but non-zero timeouts (#4205). Fixed crash that occurred when an empty buffer sequence was passed to a composed read or write operation. Added missing operator+ overload in buffers_iterator (#4382). Implemented cancellation of null_buffers operations on Windows. Config: Added new defect macro, BOOST_NO_COMPLETE_VALUE_INITIALIZATION. Added new defect macro BOOST_NO_0X_HDR_TYPEINDEX, fixes issue #4274. Added support for code visibility in GCC. Fixed issues #4385, #4324, #4221, #4182, #4178, #4152, #4115. #4112, #4059, #4041, #4012. Filesystem: This release contains both version 2 and version 3 of the library. Version 3 is a major upgrade that will break some existing user code, so version 2 is the default. Users are encouraged to migrate to version 3. See 'Version 2' and 'Version 3' for more information. Fix problems with symbol visibility for shared libraries. Fix various minor problems. Fixed issues: #3863, #4248. Foreach: Add boost/foreach_fwd.hpp for forward declarations of foreach's customization points, fixes #3998. Remove out-of-date work-arounds for sun compilers, fixes #4306. Fusion: Added fusion::reverse_fold, fusion::iter_fold and fusion::reverse_iter_fold (#1623). Hash: Option to prevent implicit casts when calling the hash function by defining the macro BOOST_HASH_NO_IMPLICIT_CASTS, which can avoid some subtle problems. This might be activated by default in a future version. Iostreams: Several fixes for file descriptors class, including a breaking change to the constructors and open methods for file_descriptor, file_descriptor_source and file_descriptor_sink. See the documentation for details. The old methods are still available if you define BOOST_IOSTREAMS_USE_DEPRECATED (#3323, #3517, #4335). Fix several issues with compression and decompression (#2318, #4091, #3348, #2783, #1579, #3853). And a load more miscellaneous fixes (#3851, #3279, #3689, #2356, #2996, #4102, #2998, #1612, #2325). Thanks to Steven Watanabe for almost all these fixes. For more detail see the release notes. Math: Fixed incorrect range and support for Rayleigh distribution. MPL: Make mpl::string work with mpl::transform. Multi-index Containers: Fixed a bug preventing the use of modify_key with rollback in ordered and hashed indices when Modifier and Rollback are different types (ticket #4130). Proto: Minor change in behavior: when using proto::and_ as a transform, apply all transforms but only return the result of applying the last. See Proto's Release Notes for details. Minor change in behavior: proto::as_expr and proto::as_child no longer run objects that are already proto expressions through the expression domain's generator. See Proto's Release Notes for details. Minor change in behavior: Proto uses proto::basic_expr instead of proto::expr when possible for better compile times. See Proto's Release Notes for details. Add support for sub-domains. Introduce per-domain as_expr and as_child customization points to allow for domain-specific customization of variable capture behavior. The proto::_default transform is also a grammar that matches the expressions the transform knows how to handle. Add proto::_void, a no-op primitive transform that does nothing and returns void. The proto::pass_through transform doesn't strip expression wrappers, fixes #4175. Const-correctness fixes when invoking proto domains. Regex: Fixed issues: #4309, #4215, #4212, #4191, #4132, #4123, #4114, #4036, #4020, #3941, #3902, #3890. Spirit: Spirit V2.4, see the 'What's New' section for details. System: Change system_category and generic_category to functions, to conform to the C++0x FCD. This change may cause compile errors some user code; the fix is add "()" to references to system_category and generic_category, so that they become function calls. Fix problems with symbol visibility for shared libraries. Fixed issues: #4254, #3994, #3474. Thread: Fixes for miscellaneous trac issues (#2501, #4341, #4363, #3760, #3761, #3611, #2955, #4071, #3195, #3097, #2874, #4316, #4317, #4322, #3244, #2747, #4305, #3195, #2704, #2293, #868, #2918, #4238, #3269, #3178, #3195). Fixes for other miscellaneous issues (remove warnings, support newer compilers, etc.) TR1: Fixed VC10 support. std::tr1::result_of always uses the TR1 ResultOf protocol, even on compilers that support the C++0x decltype-based implementation. Type Traits: Added support for rvalue references throughout the library, plus two new traits classes is_rvalue_reference and is_lvalue_reference. Fixes #4407 and #3804. Fixed ticket #3621. uBLAS: New assignment operators to feed in vectors and matrices in many nice ways (#4034). Thank you Nasos New doxygen-based documentation Enable arithmetic operators (+,-,*,/) to work between ublas containers of std::complex and integral types (#3649). Thank you Neal Removed unused variables in functional.hpp (#4377). Thank you Marco New matrix_indirect and vector_indirect views to access elements with a matrix or vector of indices Utility: Added a new template class, boost::initialized<T>, in order to fix #3472. New version of value_initialized<T> no longer calls memset when the compiler has implemented value-initialization completely (#3869). New template boost::tr1_result_of that implements the TR1 ResultOf protocol even if boost::result_of uses the C++0x decltype-based implementation. Uuid: Define BOOST_UUID_NO_TYPE_TRAITS to remove the dependency on Boost.TypeTraits. Stream operator<< handles left, internal, and right manipulators. Added to_string, to_wstring to convert a uuid to a string. Fixed minor bugs in documentation. Wave: See the Changelog for details. Xpressive: Replace non-portable using declarations with typedefs in nested_results. Support user-defined assertions with placeholders for non-local variables. Updated tools Boostbook: Significantly faster. Improved syntax highlighter. Quickbook: Use the cygwin 1.7 API for better path handling. Improved boostbook generation. Tweak the grammar to clean up some edge cases. For more detail see the change log. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4 on 64-bit Suse. Windows: Visual C++ 7.1 SP1, 8.0 SP1, 9.0 SP1 and 10.0. GCC 4.3.3, using Mingw. FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. GCC, with C++0x extensions, 4.3.4, 4.4.3, 4.5 on Red Hat Enterprise Linux. GCC 4.4 on 64 bit Suse. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. Clang from subversion (will be released with LLVM 2.8). OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1, 4.2.1 (Apple build). GCC 4.4 GCC, with C++0x extensions, 4.4 Clang from subversion (will be released with LLVM 2.8). Windows: Visual C++ 7.1 SP, 8.0, 9.0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3, 4.5 on Mingw. GCC, with C++0x extensions, 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V11.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. Thanks to Marshall Clow for organizing the bug sprint and to everyone who took part. [Less]
Posted over 15 years ago
New Libraries Functional/factory: Function objects for dynamic and by-value construction, from Tobias Schwinger. Functional/forward: Function object adapters to address ... [More] the forwarding problem, from Tobias Schwinger. Major Updates Range: Boost.Range has undergone extensive updates that it include all of the features from the recently reviewed Boost.RangeEx, from Neil Groves. Range-based version of the full STL iterator based algorithms. Range adaptors which can be combined with range-based algorithms for unprecedented expressiveness and efficiency. New functions: irange, istream_range, join, combine. Updated Libraries Accumulators: Avoid premature template evaluation in operator overload return types. Array: Added support for SunCC compiler. Added 'fill' member function. Changed exception code to use boost::throw_exception. Asio: Improved performance. Reduced compile times. Reduced the size of generated code. Extended the guarantee that background threads don't call user code to all asynchronous operations (#3923). Changed to use edge-triggered epoll on Linux. Changed to use timerfd for dispatching timers on Linux, when available. Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. Added a bitmask type ip::resolver_query_base::flags as per the TR2 proposal. This type prevents implicit conversion from int to flags, allowing the compiler to catch cases where users incorrectly pass a numeric port number as the service name. Added #define NOMINMAX for all Windows compilers. Users can define BOOST_ASIO_NO_NOMINMAX to suppress this definition (#3901). Fixed a bug where 0-byte asynchronous reads were incorrectly passing an error::eof result to the completion handler (#4023). Changed the io_control() member functions to always call ioctl on the underlying descriptor when modifying blocking mode (#3307). Changed the resolver implementation to longer require the typedefs InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, as neither typedef is part of the documented InternetProtocol requirements. The corresponding typedefs in the ip::tcp, ip::udp and ip::icmp classes have been deprecated. Fixed out-of-band handling for reactors not based on select(). Added new BOOST_ASIO_DISABLE_THREADS macro that allows Asio's threading support to be independently disabled. Minor documentation improvements. Fusion: Added new macros for adapting or defining custom types. See the Changelog for details. Iostreams: Minor fixes (#2505, #3839, #3953, #3723, #3969, #4135). Multi-index Containers: Serialization of non default constructible values is now properly supported through user-provided facilities save_construct_data and load_construct_data. multi_index_container serialization class version has been bumped from 1 to 2. Proto: Minor change in behavior: non-const expression self-assignment creates an assign node. See Proto's Release Notes for details. Minor change to recommended expression extension mechanism: use BOOST_PROTO_EXTENDS_USING_ASSIGN(). See Proto's Release Notes for details. Fix error in invocation of callable monomorphic function objects in Proto transforms. Fix misc const correctness issues, work around fusion bug. Add non-const function call overloads to proto terminals. Add a default constructor to proto::literal<>. Do not use deprecated config macros. Add proto::assert_matches() function and friends to <boost/proto/debug.hpp>. functional::make_expr<> and functional::unpack_expr<> return const-qualified rvalues. Add documentation for Expr and Domain concepts. Random: Put the implementation of random_device in a compiled lib, and added Windows support. Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought it up to date. Spirit: Spirit V2.3, see the 'What's New' section for details. Thread: Uses boost::throw_exception for all exceptions except thread_interrupted Added fix for issue 2742 Optimizations to mutex locks and call_once Unordered: erase_return_void is now quick_erase (#3966). Uuid: Split generators into separate files. Fixed bug in basic_random_generator (#3971). Updated documentation. Wave: See the Changelog for details. Xpressive: Add missing include to <boost/xpressive/regex_error.hpp>. Build System When cross-compiling to GNU targets, static libraries are properly created. Previously, using such libraries resulted in Archive has no index error. The naming of DLL and import libraries with gcc compiler on Windows, both mingw and cygwin, now matches default conventions of those environments. Previously, the naming scheme was the same as for other Windows compilers. Updated Tools Quickbook: Unicode escape characters. Support the UTF-8 byte order mark. Disallow [ in simple markup. Fixes some errors with mismatched punctuation. Add a command line flag (-D) to define macros at the command line. Improved post-processor output. Check that [section] and [endsect] tags are balanced in templates. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4.1 on Ubuntu Linux. GCC 4.4 on 64-bit Suse. Windows: Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP. GCC 4.3.3, using Mingw FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux. GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1 on Intel Leopard. Clang from subversion. Windows: Visual C++ 8,0, 9,0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3 on Mingw. GCC 4.4.3 on Mingw, with and without C++0x extensions. GCC 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. [Less]
Posted over 15 years ago
New Libraries Functional/factory: Function objects for dynamic and by-value construction, from Tobias Schwinger. Functional/forward: Function object adapters to address ... [More] the forwarding problem, from Tobias Schwinger. Major Updates Range: Boost.Range has undergone extensive updates that it include all of the features from the recently reviewed Boost.RangeEx, from Neil Groves. Range-based version of the full STL iterator based algorithms. Range adaptors which can be combined with range-based algorithms for unpresedented expressiveness and efficiency. New functions: irange, istream_range, join, combine. Updated Libraries Accumulators: Avoid premature template evaluation in operator overload return types. Array: Added support for SunCC compiler. Added 'fill' member function. Changed exception code to use boost::throw_exception. Asio: Improved performance. Reduced compile times. Reduced the size of generated code. Extended the guarantee that background threads don't call user code to all asynchronous operations (#3923). Changed to use edge-triggered epoll on Linux. Changed to use timerfd for dispatching timers on Linux, when available. Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. Added a bitmask type ip::resolver_query_base::flags as per the TR2 proposal. This type prevents implicit conversion from int to flags, allowing the compiler to catch cases where users incorrectly pass a numeric port number as the service name. Added #define NOMINMAX for all Windows compilers. Users can define BOOST_ASIO_NO_NOMINMAX to suppress this definition (#3901). Fixed a bug where 0-byte asynchronous reads were incorrectly passing an error::eof result to the completion handler (#4023). Changed the io_control() member functions to always call ioctl on the underlying descriptor when modifying blocking mode (#3307). Changed the resolver implementation to longer require the typedefs InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, as neither typedef is part of the documented InternetProtocol requirements. The corresponding typedefs in the ip::tcp, ip::udp and ip::icmp classes have been deprecated. Fixed out-of-band handling for reactors not based on select(). Added new BOOST_ASIO_DISABLE_THREADS macro that allows Asio's threading support to be independently disabled. Minor documentation improvements. Fusion: Added new macros for adapting or defining custom types. See the Changelog for details. Iostreams: Minor fixes (#2505, #3839, #3953, #3723, #3969, #4135). Multi-index Containers: Serialization of non default constructible values is now properly supported through user-provided facilities save_construct_data and load_construct_data. multi_index_container serialization class version has been bumped from 1 to 2. Proto: Minor change in behavior: non-const expression self-assignment creates an assign node. See Proto's Release Notes for details. Minor change to recommended expression extension mechanism: use BOOST_PROTO_EXTENDS_USING_ASSIGN(). See Proto's Release Notes for details. Fix error in invocation of callable monomorphic function objects in Proto transforms. Fix misc const correctness issues, work around fusion bug. Add non-const function call overloads to proto terminals. Add a default constructor to proto::literal<>. Do not use deprecated config macros. Add proto::assert_matches() function and friends to <boost/proto/debug.hpp>. functional::make_expr<> and functional::unpack_expr<> return const-qualified rvalues. Add documentation for Expr and Domain concepts. Random: Put the implementation of random_device in a compiled lib, and added Windows support. Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought it up to date. Spirit: Spirit V2.3, see the 'What's New' section for details. Thread: Uses boost::throw_exception for all exceptions except thread_interrupted Added fix for issue 2742 Optimizations to mutex locks and call_once Unordered: erase_return_void is now quick_erase (#3966). Uuid: Split generators into separate files. Fixed bug in basic_random_generator (#3971). Updated documentation. Wave: See the Changelog for details. Xpressive: Add missing include to <boost/xpressive/regex_error.hpp>. Build System When cross-compiling to GNU targets, static libraries are properly created. Previously, using such libraries resulted in Archive has no index error. The naming of DLL and import libraries with gcc compiler on Windows, both mingw and cygwin, now matches default conventions of those environments. Previously, the naming scheme was the same as for other Windows compilers. Updated Tools Quickbook: Unicode escape characters. Support the UTF-8 byte order mark. Disallow [ in simple markup. Fixes some errors with mismatched punctuation. Add a command line flag (-D) to define macros at the command line. Improved post-processor output. Check that [section] and [endsect] tags are balanced in templates. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4.1 on Ubuntu Linux. GCC 4.4 on 64-bit Suse. Windows: Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP. GCC 4.3.3, using Mingw FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux. GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1 on Intel Leopard. Clang from subversion. Windows: Visual C++ 8,0, 9,0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3 on Mingw. GCC 4.4.3 on Mingw, with and without C++0x extensions. GCC 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. [Less]
Posted over 15 years ago
New Libraries Functional/factory: Function objects for dynamic and by-value construction, from Tobias Schwinger. Functional/forward: Function object adapters to address ... [More] the forwarding problem, from Tobias Schwinger. Major Updates Range: Boost.Range has undergone extensive updates that it include all of the features from the recently reviewed Boost.RangeEx, from Neil Groves. Range-based version of the full STL iterator based algorithms. Range adaptors which can be combined with range-based algorithms for unprecedented expressiveness and efficiency. New functions: irange, istream_range, join, combine. Updated Libraries Accumulators: Avoid premature template evaluation in operator overload return types. Array: Added support for SunCC compiler. Added 'fill' member function. Changed exception code to use boost::throw_exception. Asio: Improved performance. Reduced compile times. Reduced the size of generated code. Extended the guarantee that background threads don't call user code to all asynchronous operations (#3923). Changed to use edge-triggered epoll on Linux. Changed to use timerfd for dispatching timers on Linux, when available. Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. Added a bitmask type ip::resolver_query_base::flags as per the TR2 proposal. This type prevents implicit conversion from int to flags, allowing the compiler to catch cases where users incorrectly pass a numeric port number as the service name. Added #define NOMINMAX for all Windows compilers. Users can define BOOST_ASIO_NO_NOMINMAX to suppress this definition (#3901). Fixed a bug where 0-byte asynchronous reads were incorrectly passing an error::eof result to the completion handler (#4023). Changed the io_control() member functions to always call ioctl on the underlying descriptor when modifying blocking mode (#3307). Changed the resolver implementation to longer require the typedefs InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, as neither typedef is part of the documented InternetProtocol requirements. The corresponding typedefs in the ip::tcp, ip::udp and ip::icmp classes have been deprecated. Fixed out-of-band handling for reactors not based on select(). Added new BOOST_ASIO_DISABLE_THREADS macro that allows Asio's threading support to be independently disabled. Minor documentation improvements. Fusion: Added new macros for adapting or defining custom types. See the Changelog for details. Iostreams: Minor fixes (#2505, #3839, #3953, #3723, #3969, #4135). Multi-index Containers: Serialization of non default constructible values is now properly supported through user-provided facilities save_construct_data and load_construct_data. multi_index_container serialization class version has been bumped from 1 to 2. Proto: Minor change in behavior: non-const expression self-assignment creates an assign node. See Proto's Release Notes for details. Minor change to recommended expression extension mechanism: use BOOST_PROTO_EXTENDS_USING_ASSIGN(). See Proto's Release Notes for details. Fix error in invocation of callable monomorphic function objects in Proto transforms. Fix misc const correctness issues, work around fusion bug. Add non-const function call overloads to proto terminals. Add a default constructor to proto::literal<>. Do not use deprecated config macros. Add proto::assert_matches() function and friends to <boost/proto/debug.hpp>. functional::make_expr<> and functional::unpack_expr<> return const-qualified rvalues. Add documentation for Expr and Domain concepts. Random: Put the implementation of random_device in a compiled lib, and added Windows support. Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought it up to date. Spirit: Spirit V2.3, see the 'What's New' section for details. Thread: Uses boost::throw_exception for all exceptions except thread_interrupted Added fix for issue 2742 Optimizations to mutex locks and call_once Unordered: erase_return_void is now quick_erase (#3966). Uuid: Split generators into separate files. Fixed bug in basic_random_generator (#3971). Updated documentation. Wave: See the Changelog for details. Xpressive: Add missing include to <boost/xpressive/regex_error.hpp>. Build System When cross-compiling to GNU targets, static libraries are properly created. Previously, using such libraries resulted in Archive has no index error. The naming of DLL and import libraries with gcc compiler on Windows, both mingw and cygwin, now matches default conventions of those environments. Previously, the naming scheme was the same as for other Windows compilers. Updated Tools Quickbook: Unicode escape characters. Support the UTF-8 byte order mark. Disallow [ in simple markup. Fixes some errors with mismatched punctuation. Add a command line flag (-D) to define macros at the command line. Improved post-processor output. Check that [section] and [endsect] tags are balanced in templates. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4.1 on Ubuntu Linux. GCC 4.4 on 64-bit Suse. Windows: Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP. GCC 4.3.3, using Mingw FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux. GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1 on Intel Leopard. Clang from subversion. Windows: Visual C++ 8,0, 9,0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3 on Mingw. GCC 4.4.3 on Mingw, with and without C++0x extensions. GCC 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. [Less]
Posted over 15 years ago
New Libraries Functional/factory: Function objects for dynamic and by-value construction, from Tobias Schwinger. Functional/forward: Function object adapters to address ... [More] the forwarding problem, from Tobias Schwinger. Major Updates Range: Boost.Range has undergone extensive updates that it include all of the features from the recently reviewed Boost.RangeEx, from Neil Groves. Range-based version of the full STL iterator based algorithms. Range adaptors which can be combined with range-based algorithms for unpresedented expressiveness and efficiency. New functions: irange, istream_range, join, combine. Updated Libraries Accumulators: Avoid premature template evaluation in operator overload return types. Array: Added support for SunCC compiler. Added 'fill' member function. Changed exception code to use boost::throw_exception. Asio: Improved performance. Reduced compile times. Reduced the size of generated code. Extended the guarantee that background threads don't call user code to all asynchronous operations (#3923). Changed to use edge-triggered epoll on Linux. Changed to use timerfd for dispatching timers on Linux, when available. Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. Added a bitmask type ip::resolver_query_base::flags as per the TR2 proposal. This type prevents implicit conversion from int to flags, allowing the compiler to catch cases where users incorrectly pass a numeric port number as the service name. Added #define NOMINMAX for all Windows compilers. Users can define BOOST_ASIO_NO_NOMINMAX to suppress this definition (#3901). Fixed a bug where 0-byte asynchronous reads were incorrectly passing an error::eof result to the completion handler (#4023). Changed the io_control() member functions to always call ioctl on the underlying descriptor when modifying blocking mode (#3307). Changed the resolver implementation to longer require the typedefs InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, as neither typedef is part of the documented InternetProtocol requirements. The corresponding typedefs in the ip::tcp, ip::udp and ip::icmp classes have been deprecated. Fixed out-of-band handling for reactors not based on select(). Added new BOOST_ASIO_DISABLE_THREADS macro that allows Asio's threading support to be independently disabled. Minor documentation improvements. Fusion: Added new macros for adapting or defining custom types. See the Changelog for details. Iostreams: Minor fixes (#2505, #3839, #3953, #3723, #3969, #4135). Multi-index Containers: Serialization of non default constructible values is now properly supported through user-provided facilities save_construct_data and load_construct_data. multi_index_container serialization class version has been bumped from 1 to 2. Proto: Minor change in behavior: non-const expression self-assignment creates an assign node. See Proto's Release Notes for details. Minor change to recommended expression extension mechanism: use BOOST_PROTO_EXTENDS_USING_ASSIGN(). See Proto's Release Notes for details. Fix error in invocation of callable monomorphic function objects in Proto transforms. Fix misc const correctness issues, work around fusion bug. Add non-const function call overloads to proto terminals. Add a default constructor to proto::literal<>. Do not use deprecated config macros. Add proto::assert_matches() function and friends to <boost/proto/debug.hpp>. functional::make_expr<> and functional::unpack_expr<> return const-qualified rvalues. Add documentation for Expr and Domain concepts. Random: Put the implementation of random_device in a compiled lib, and added Windows support. Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought it up to date. Spirit: Spirit V2.3, see the 'What's New' section for details. Thread: Uses boost::throw_exception for all exceptions except thread_interrupted Added fix for issue 2742 Optimizations to mutex locks and call_once Unordered: erase_return_void is now quick_erase (#3966). Uuid: Split generators into separate files. Fixed bug in basic_random_generator (#3971). Updated documentation. Wave: See the Changelog for details. Xpressive: Add missing include to <boost/xpressive/regex_error.hpp>. Build System When cross-compiling to GNU targets, static libraries are properly created. Previously, using such libraries resulted in Archive has no index error. The naming of DLL and import libraries with gcc compiler on Windows, both mingw and cygwin, now matches default conventions of those environments. Previously, the naming scheme was the same as for other Windows compilers. Updated Tools Quickbook: Unicode escape characters. Support the UTF-8 byte order mark. Disallow [ in simple markup. Fixes some errors with mismatched punctuation. Add a command line flag (-D) to define macros at the command line. Improved post-processor output. Check that [section] and [endsect] tags are balanced in templates. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4.1 on Ubuntu Linux. GCC 4.4 on 64-bit Suse. Windows: Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP. GCC 4.3.3, using Mingw FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux. GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1 on Intel Leopard. Clang from subversion. Windows: Visual C++ 8,0, 9,0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3 on Mingw. GCC 4.4.3 on Mingw, with and without C++0x extensions. GCC 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. [Less]
Posted over 15 years ago
New Libraries Functional/factory: Function objects for dynamic and by-value construction, from Tobias Schwinger. Functional/forward: Function object adapters to address ... [More] the forwarding problem, from Tobias Schwinger. Major Updates Range: Boost.Range has undergone extensive updates that it include all of the features from the recently reviewed Boost.RangeEx, from Neil Groves. Range-based version of the full STL iterator based algorithms. Range adaptors which can be combined with range-based algorithms for unprecedented expressiveness and efficiency. New functions: irange, istream_range, join, combine. Updated Libraries Accumulators: Avoid premature template evaluation in operator overload return types. Array: Added support for SunCC compiler. Added 'fill' member function. Changed exception code to use boost::throw_exception. Asio: Improved performance. Reduced compile times. Reduced the size of generated code. Extended the guarantee that background threads don't call user code to all asynchronous operations (#3923). Changed to use edge-triggered epoll on Linux. Changed to use timerfd for dispatching timers on Linux, when available. Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. Added a bitmask type ip::resolver_query_base::flags as per the TR2 proposal. This type prevents implicit conversion from int to flags, allowing the compiler to catch cases where users incorrectly pass a numeric port number as the service name. Added #define NOMINMAX for all Windows compilers. Users can define BOOST_ASIO_NO_NOMINMAX to suppress this definition (#3901). Fixed a bug where 0-byte asynchronous reads were incorrectly passing an error::eof result to the completion handler (#4023). Changed the io_control() member functions to always call ioctl on the underlying descriptor when modifying blocking mode (#3307). Changed the resolver implementation to longer require the typedefs InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, as neither typedef is part of the documented InternetProtocol requirements. The corresponding typedefs in the ip::tcp, ip::udp and ip::icmp classes have been deprecated. Fixed out-of-band handling for reactors not based on select(). Added new BOOST_ASIO_DISABLE_THREADS macro that allows Asio's threading support to be independently disabled. Minor documentation improvements. Fusion: Added new macros for adapting or defining custom types. See the Changelog for details. Iostreams: Minor fixes (#2505, #3839, #3953, #3723, #3969, #4135). Multi-index Containers: Serialization of non default constructible values is now properly supported through user-provided facilities save_construct_data and load_construct_data. multi_index_container serialization class version has been bumped from 1 to 2. Proto: Minor change in behavior: non-const expression self-assignment creates an assign node. See Proto's Release Notes for details. Minor change to recommended expression extension mechanism: use BOOST_PROTO_EXTENDS_USING_ASSIGN(). See Proto's Release Notes for details. Fix error in invocation of callable monomorphic function objects in Proto transforms. Fix misc const correctness issues, work around fusion bug. Add non-const function call overloads to proto terminals. Add a default constructor to proto::literal<>. Do not use deprecated config macros. Add proto::assert_matches() function and friends to . functional::make_expr<> and functional::unpack_expr<> return const-qualified rvalues. Add documentation for Expr and Domain concepts. Random: Put the implementation of random_device in a compiled lib, and added Windows support. Rewrote the documentation using Quickbook/Doxygen/Boostbook and brought it up to date. Spirit: Spirit V2.3, see the 'What's New' section for details. Thread: Uses boost::throw_exception for all exceptions except thread_interrupted Added fix for issue 2742 Optimizations to mutex locks and call_once Unordered: erase_return_void is now quick_erase (#3966). Uuid: Split generators into separate files. Fixed bug in basic_random_generator (#3971). Updated documentation. Wave: See the Changelog for details. Xpressive: Add missing include to . Build System When cross-compiling to GNU targets, static libraries are properly created. Previously, using such libraries resulted in Archive has no index error. The naming of DLL and import libraries with gcc compiler on Windows, both mingw and cygwin, now matches default conventions of those environments. Previously, the naming scheme was the same as for other Windows compilers. Updated Tools Quickbook: Unicode escape characters. Support the UTF-8 byte order mark. Disallow [ in simple markup. Fixes some errors with mismatched punctuation. Add a command line flag (-D) to define macros at the command line. Improved post-processor output. Check that [section] and [endsect] tags are balanced in templates. Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. Linux: GCC 4.4.1 on Ubuntu Linux. GCC 4.4 on 64-bit Suse. Windows: Visual C++ 8.0 SP1 and 9.0 SP1 on Windows XP. GCC 4.3.3, using Mingw FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux. Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux. GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux. GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1 on Intel Leopard. Clang from subversion. Windows: Visual C++ 8,0, 9,0 on 32-bit XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 on XP. Visual C++ 10.0 on 64-bit Windows 7. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.3.3 on Mingw. GCC 4.4.3 on Mingw, with and without C++0x extensions. GCC 4.5 on Mingw. AIX: IBM XL C/C++ Enterprise Edition, V10.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.2, 64 bit. GCC 4.2.1 on FreeBSD 8.0, 32 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. [Less]
Posted over 15 years ago
New Libraries Uuid: A universally unique identifier, from Andy Tompkins. Updated Libraries Asio: Added a new HTTP Server 4 ... [More] example illustrating the use of stackless coroutines with Asio. Changed handler allocation and invocation to use boost::addressof to get the address of handler objects, rather than applying operator& directly (#2977). Restricted MSVC buffer debugging workaround to 2008, as it causes a crash with 2010 beta 2 (#3796, #3822). Fixed a problem with the lifetime of handler memory, where Windows needs the OVERLAPPED structure to be valid until both the initiating function call has returned and the completion packet has been delivered. Don't block signals while performing system calls, but instead restart the calls if they are interrupted. Documented the guarantee made by strand objects with respect to order of handler invocation. Changed strands to use a pool of implementations, to make copying of strands cheaper. Ensured that kqueue support is enabled for BSD platforms (#3626). Added a boost_ prefix to the extern "C" thread entry point function (#3809). In getaddrinfo emulation, only check the socket type (SOCK_STREAM or SOCK_DGRAM) if a service name has been specified. This should allow the emulation to work with raw sockets. Added a workaround for some broken Windows firewalls that make a socket appear bound to 0.0.0.0 when it is in fact bound to 127.0.0.1. Applied a fix for reported excessive CPU usage under Solaris (#3670). Added some support for platforms that use older compilers such as g++ 2.95 (#3743). Circular Buffer: Added methods erase_begin(size_type) and erase_end(size_type) with constant complexity for such types of stored elements which do not need an explicit destruction e.g. int or double. Similarly changed implementation of the clear() method and the destructor so their complexity is now constant for such types of stored elements which do not require an explicit destruction (the complexity for other types remains linear). Fusion: The accumulator is the first argument to the functor of fusion::fold and fusion::accumulate (#2355). Added support for associative iterators and views (#3473). Graph: Removed old interface to compressed_sparse_row_graph, making new interface the default. Integer: Reverted Trunk to release branch state (i.e. a "known good state"). Fixed issues: 653, 3084, 3177, 3180, 3568, 3657, 2134. Added long long support to boost::static_log2, boost::static_signed_min, boost::static_signed_max, boost::static_unsigned_minboost::static_unsigned_max, when available. The argument type and the result type of boost::static_signed_min etc are now typedef'd. Formerly, they were hardcoded as unsigned long and int respectively. Please, use the provided typedefs in new code (and update old code as soon as possible). Iostreams: Fixed many outstanding issues. Thanks to Richard Smith for his work on this. (#3612, #3311, #2094, #3010, #2894, #3011, #3352, #3505). For more information see the library release notes. Program.Options: Information about option name added to a few exception classes and various clean ups in exception classes (#3423). Description wordwrapping in presense of default parameters fixed (#2613). Empty value in configuration file is now permitted (#1537). Quotes are no longer stripped from string values (#850). Fix endless loop in case of long default arguments (#689). Fix compile warning caused by usage of boost::any (#2562). Fix memory bug in example/response_file.cpp (#3525). Most compilation warnings were fixed (#3608). Make column width for description text configurable. (#3703). Add general split function: split_unix() (#2561). Enable open config files from given file name (#3264). Additional flag for required options (#2982). Enable case insensitive style for command line (#3498). PropertyMap: Removed old header files (directly in the boost/ directory); they were deprecated since 1.40, replaced by headers in boost/property_map/. Proto: Fix const correctness issues with proto::flatten and friends (#3364). Accomodate recent change to fusion::fold, remove old support for Doxygen and pre-1.35 Fusion (#3553). In binary operations, when one operand has a user-specified domain and the other has the default domain, the user-specified domain trumps. Fix BOOST_PROTO_EXTENDS to work with elaborated types. Work around EDG compiler bug with function types and cv-qualification. Regex: Added support for Functors rather than strings as format expressions. Improved error reporting when throwing exceptions to include better more relevant information. Improved performance and reduced stack usage of recursive expressions. Fixed tickets #2802, #3425, #3507, #3546, #3631, #3632, #3715, #3718, #3763, #3764 Spirit: Spirit V2.2, see the 'What's New' section for details. Unordered: Support instantiating the containers with incomplete value types. Add erase_return_void as a temporary workaround for the current erase which can be inefficient because it has to find the next element to return an iterator (#3693). Add templated find overload for compatible keys. Improved codegear compatibility. Other minor changes, full details in the changelog. Xpressive: match_results no longer relies on undefined behavior in std::list (#3278). Do NOT copy singular iterators (#3538). Eliminate gcc and darwin warnings (#3734). Compilers Tested Boost's primary test compilers are: OS X: GCC 4.0.1 on Intel Leopard. GCC 4.0.1 on PowerPC Tiger. Linux: GCC 4.4.1 on Ubuntu Linux. GCC 4.4 on Debian. Windows: Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP. Visual C++ 9.0 on Windows 2008, 64 bit. GCC 4.3.3, using Mingw FreeBSD: GCC 4.2.1, 32 and 64 bit. Boost's additional test compilers include: Linux: Intel 10.1 on Red Hat Enterprise Linux. Intel 10.1 on 64 bit Red Hat Enterprise Linux. Intel 11.0 on 32 bit Red Hat Enterprise Linux. Intel 11.0 on 64 bit Red Hat Enterprise Linux. Intel 11.1 on 64 bit Red Hat Enterprise Linux. Intel 11.1 on 64 bit Linux Redhat 5.1 Server. Intel 11.1 on Suse Linux 64 bit. GCC 3.4.6, GCC 4.2.4, GCC 4.3.4 and GCC 4.4.2 on Red Hat Enterprise Linux. GCC 4.3.4 and GCC 4.4.2 with C++0x extensions on Red Hat Enterprise Linux. GCC 4.4.1 on 64 bit Linux. GCC 4.4.3 on Debian unstable. QLogic PathScale(TM) Compiler Suite: Version 3.2 on Red Hat Enterprise Linux. OS X: Intel C++ Compiler 10.1, 11.0, 11.1 on Leopard. GCC 4.0.1 on Intel Leopard. GCC 4.0.1 on PowerPC Tiger. Windows: Visual C++ 7.1, 8,0, 9,0 on XP. Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0. Visual C++ 10.0 beta 2. Visual C++ 10.0 on 32-bit Vista. Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.1 (2010). Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit. GCC 4.4.1 on Mingw, with and without C++0x extensions. AIX: IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40. FreeBSD: GCC 4.2.1 on FreeBSD 7.0, 32 bit and 64 bit. Solaris: Sun C++ 5.10 on Solaris 5.10. Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release. [Less]