Posted
over 13 years
ago
New Libraries
Heap:
Priority queue data
structures, from Tim Blechmann.
Updated Libraries
Asio:
... [More]
Added a new class template basic_waitable_timer
based around the C++11 clock type requirements. It may be used with
the clocks from the C++11 <chrono>
library facility or, if those are not available, Boost.Chrono. The
typedefs high_resolution_timer,
steady_timer and
system_timer may
be used to create timer objects for the standard clock types.
Added a new windows::object_handle
class for performing waits on Windows kernel objects. Thanks go to
Boris Schaeling for contributing substantially to the development
of this feature.
On Linux, connect() can return EAGAIN in certain circumstances.
Remapped this to another error so that it doesn't look like a non-blocking
operation (#6048).
Fixed a compile error on NetBSD (#6098).
Fixed deadlock on Mac OS X (#6275).
Fixed a regression in buffered_write_stream
(#6310).
Fixed a non-paged pool "leak" on Windows when an io_service is repeatedly run without
anything to do (#6321).
Reverted earlier change to allow some speculative operations to be
performed without holding the lock, as it introduced a race condition
in some multithreaded scenarios.
Fixed a bug where the second buffer in an array of two buffers may
be ignored if the first buffer is empty.
Chrono:
Bug Fixes:
#6092
Input from non integral durations makes the compiler fail.
#6093
[1/3]second fails as valid duration input.
#6113
duplicate symbol when BOOST_CHRONO_HEADER_ONLY is defined.
#6243
Sandia-pgi-11.9: more than one instance of overloaded function
"min" matches.
#6257
process_cpu_clock::now() on linux gives time_points 1/1000
times.
Container:
Fixed bugs #6499,
#6336,
#6335,
#6287,
#6205,
#4383.
Added allocator_traits
support for both C++11 and C++03 compilers through an internal allocator_traits clone.
Filesystem:
Fix #3714,
Added test cases and fixes for class path errors when assignment
or append used self or portion of self as source.
Fix #4889,
#6320,
Locale codecvt_facet not thread safe on Windows. Move Windows, Mac
OS X, locale and codecvt facet back to namespace scope. POSIX except
OS X uses local static initialization (IE lazy) to ensure exceptions
are catchable if environmental variables are misconfigured and to
avoid use of locale("") if not actually used.
Fix #5652,
recursive_directory_iterator fails on cyclic symbolic links. Thanks
to Daniel Aarno for the patch.
Fix #5653,
recursive_directory_iterator(error_code) can still throw filesystem_error.
Fix #5900,
directory_iterator access violation on Windows if error is thrown.
Thanks to Andreas Eckleder for the patch.
Fix #5900
comment 2, a bug in director_iterator construction with error_code
argument that caused increment to be called without the ec argument
being passed.
Fix #5989
by cleaning up test suite path_test.cpp code even though the ticket
itself was not a defect, and clarifying docs; iteration over a path
yields generic format.
Fix #5592,
Change Windows codecvt processing from CP_THREAD_ACP to CP_ACP.
Operations function fixes for PGI compiler, thanks to Noel Belcourt.
Relax permissions test to reflect reality, particularly on the Sandia
test platforms.
Geometry:
Fixed bugs
Distance for multi-geometries ignored specified distance strategy.
In difference for polygon/multi_polygon (reported 2011/10/24
on GGL-list).
Raise exception for calculation of distances of multi-geometrie(s)
where one of them is empty
Multi DSV did not correctly use settings.
Self-intersections could sometimes be missed (introduced in
1.48).
Convex hull crashed on empty range (e.g. empty multi point).
Solved tickets
#6028
Documentation: closure.
#6178
Missing headerfile.
#6021
convex hull of multipoint.
Additional functionality
Support for line/polygon intersections and differences
Support for convert of segment/box of different point types
Support for append for multi point
Scalar functions (distance, area, length, perimeter) now throw
an empty_input_exception on empty input
Documentation
Updated support status
Internal changes
Updates in specializations/not_implemented for distance/convert/assign/area
Move of wkt/dsv to io folder, making domains redundant
Strategy concepts assigned to zero to avoid clang warnings
(patched by Vishnu)
Graph:
Fixed bugs #5881,
#6033,
#6061,
#6137,
#6246,
#6239,
#6293,
#6306,
#6313
and #6371,
plus others not in Trac.
Re-enabled LEDA graph support (thanks to Jens Muller for the patch).
Added documentation for edge_predecessor_recorder.
Icl:
Fixed tickets #6095
and #6210.
Added move semantics for constructors, assignment operators and binary
operators.
Interprocess:
Fixed bugs #6531,
#6412,
#6398,
#6340,
#6319,
#6287,
#6265,
#6233,
#6147,
#6134,
#6058,
#6054,
#5772,
#5738,
#5622,
#5552,
#5518,
#4655,
#4452,
#4383,
#4297.
Fixed timed functions in mutex implementations to fulfill POSIX requirements:
Under no circumstance shall the function fail with a timeout
if the mutex can be locked immediately. The validity of the abs_timeout
parameter need not be checked if the mutex can be locked immediately.
Intrusive:
Fixed bugs #6347,
#6223,
#6153.
Lexical cast:
Fixed bugs and warnings: #6127,
#6132,
#6159,
#6182,
#6186,
#6193,
#6264,
#6290,
#6298,
#6400.
Better performance and less memory usage for boost::container::basic_string
conversions.
Locale:
Fixed incorrect use of MultiByteToWideChar
in detection of invalid input sequences.
Move:
Fixed bugs #6417,
#6183,
#6185,
#6395,
#6396,
PropertyTree:
Fixes for bugs #4840,
#5259,
#5281,
#5944,
#5757,
#5710,
and #5307.
Spirit:
Spirit V2.5.2, see the 'What's
New' section for details.
Thread:
Fixed Bugs:
#2309
Lack of g++ symbol visibility support in Boost.Thread.
#2639
documentation should be extended(defer_lock, try_to_lock, ...).
#3639
Boost.Thread doesn't build with Sun-5.9 on Linux.
#3762
Thread can't be compiled with winscw (Codewarrior by Nokia).
#3885
document about mix usage of boost.thread and native thread
api.
#3975
Incorrect precondition for promise::set_wait_callback().
#4048
thread::id formatting involves locale
#4315
gcc 4.4 Warning: inline ... declared as dllimport: attribute
ignored.
#4480
OpenVMS patches for compiler issues workarounds.
#4819
boost.thread's documentation misprints.
#5040
future.hpp in boost::thread does not compile with /clr.
#5423
thread issues with C++0x.
#5502
race condition between shared_mutex timed_lock and lock_shared.
#5594
boost::shared_mutex not fully compatible with Windows CE.
#5617
boost::thread::id copy ctor.
#5739
set-but-not-used warnings with gcc-4.6.
#5826
threads.cpp: resource leak on threads creation failure.
#5839
thread.cpp: ThreadProxy leaks on exceptions.
#5859
win32 shared_mutex constructor leaks on exceptions.
#6100
Compute hardware_concurrency() using get_nprocs() on GLIBC
systems.
#6141
Compilation error when boost.thread and boost.move are used
together.
#6168
recursive_mutex is using wrong config symbol (possible typo).
#6175
Compile error with SunStudio.
#6200
patch to have condition_variable and mutex error better handle
EINTR.
#6207
shared_lock swap compiler error on clang 3.0 c++11.
#6208
try_lock_wrapper swap compiler error on clang 3.0 c++11.
Unordered:
On compilers without rvalue references, the containers are no longer
movable by default, as move emulation was causing some odd quirks
(#6167,
#6311).
Define BOOST_UNORDERED_USE_MOVE
to make them movable - Boost.Move is still used for elements regardless.
Fix sequence point warning (#6370).
Better support for C++11 compilers using older standard libraries.
Uuid:
fixed #6258
fixed #5325
(sha1 implementation handles messages as long as the specification)
progress on #6118
(there are fewer warnings)
Compilers Tested
Boost's primary test compilers are:
Linux:
Intel: 11.1
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.2, 4.6.2
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
OS X:
Intel: 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 8.0, 9.0, 10.0
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1, 4.7.0
FreeBSD:
GCC 4.2.1, 32 and 64 bit.
QNX:
QCC, C++0x mode: 4.4.2, 4.6.1, 4.6.2
Boost's additional test compilers include:
Linux:
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.6.2
GCC, C++0x mode: 4.3.4, 4.4.4, 4.5.2
pgCC: 11.9
Intel: 10.1, 11.1, 12.0
PathScale: 4.0.8
Visual Age 10.1
OS X:
Clang from subversion
Intel 11.1, 12.0
GCC: 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 8.0, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.4.0, 4.5.2
GCC, C++0x mode, mingw: 4.5.2
GCC, mingw 64-bit: 4.4.7, 4.5.4, 4.6.1
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
FreeBSD:
GCC 4.2.1, 32 and 64 bit
Solaris:
Sun 5.10
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
over 13 years
ago
New Libraries
Heap:
Priority queue data
structures, from Tim Blechmann.
Updated Libraries
Asio:
... [More]
Added a new class template basic_waitable_timer
based around the C++11 clock type requirements. It may be used with
the clocks from the C++11 <chrono>
library facility or, if those are not available, Boost.Chrono. The
typedefs high_resolution_timer,
steady_timer and
system_timer may
be used to create timer objects for the standard clock types.
Added a new windows::object_handle
class for performing waits on Windows kernel objects. Thanks go to
Boris Schaeling for contributing substantially to the development
of this feature.
On Linux, connect() can return EAGAIN in certain circumstances.
Remapped this to another error so that it doesn't look like a non-blocking
operation (#6048).
Fixed a compile error on NetBSD (#6098).
Fixed deadlock on Mac OS X (#6275).
Fixed a regression in buffered_write_stream
(#6310).
Fixed a non-paged pool "leak" on Windows when an io_service is repeatedly run without
anything to do (#6321).
Reverted earlier change to allow some speculative operations to be
performed without holding the lock, as it introduced a race condition
in some multithreaded scenarios.
Fixed a bug where the second buffer in an array of two buffers may
be ignored if the first buffer is empty.
Chrono:
Bug Fixes:
#6092
Input from non integral durations makes the compiler fail.
#6093
[1/3]second fails as valid duration input.
#6113
duplicate symbol when BOOST_CHRONO_HEADER_ONLY is defined.
#6243
Sandia-pgi-11.9: more than one instance of overloaded function
"min" matches.
#6257
process_cpu_clock::now() on linux gives time_points 1/1000
times.
Container:
Fixed bugs #6499,
#6336,
#6335,
#6287,
#6205,
#4383.
Added allocator_traits
support for both C++11 and C++03 compilers through an internal allocator_traits clone.
Filesystem:
Fix #3714,
Added test cases and fixes for class path errors when assignment
or append used self or portion of self as source.
Fix #4889,
#6320,
Locale codecvt_facet not thread safe on Windows. Move Windows, Mac
OS X, locale and codecvt facet back to namespace scope. POSIX except
OS X uses local static initialization (IE lazy) to ensure exceptions
are catchable if environmental variables are misconfigured and to
avoid use of locale("") if not actually used.
Fix #5652,
recursive_directory_iterator fails on cyclic symbolic links. Thanks
to Daniel Aarno for the patch.
Fix #5653,
recursive_directory_iterator(error_code) can still throw filesystem_error.
Fix #5900,
directory_iterator access violation on Windows if error is thrown.
Thanks to Andreas Eckleder for the patch.
Fix #5900
comment 2, a bug in director_iterator construction with error_code
argument that caused increment to be called without the ec argument
being passed.
Fix #5989
by cleaning up test suite path_test.cpp code even though the ticket
itself was not a defect, and clarifying docs; iteration over a path
yields generic format.
Fix #5592,
Change Windows codecvt processing from CP_THREAD_ACP to CP_ACP.
Operations function fixes for PGI compiler, thanks to Noel Belcourt.
Relax permissions test to reflect reality, particularly on the Sandia
test platforms.
Foreach:
Fix for #6131
Geometry:
Fixed bugs
Distance for multi-geometries ignored specified distance strategy.
In difference for polygon/multi_polygon (reported 2011/10/24
on GGL-list).
Raise exception for calculation of distances of multi-geometrie(s)
where one of them is empty
Multi DSV did not correctly use settings.
Self-intersections could sometimes be missed (introduced in
1.48).
Convex hull crashed on empty range (e.g. empty multi point).
Solved tickets
#6028
Documentation: closure.
#6178
Missing headerfile.
#6021
convex hull of multipoint.
Additional functionality
Support for line/polygon intersections and differences
Support for convert of segment/box of different point types
Support for append for multi point
Scalar functions (distance, area, length, perimeter) now throw
an empty_input_exception on empty input
Documentation
Updated support status
Internal changes
Updates in specializations/not_implemented for distance/convert/assign/area
Move of wkt/dsv to io folder, making domains redundant
Strategy concepts assigned to zero to avoid clang warnings
(patched by Vishnu)
Graph:
Fixed bugs #5881,
#6033,
#6061,
#6137,
#6246,
#6239,
#6293,
#6306,
#6313
and #6371,
plus others not in Trac.
Re-enabled LEDA graph support (thanks to Jens Muller for the patch).
Added documentation for edge_predecessor_recorder.
Icl:
Fixed tickets #6095
and #6210.
Added move semantics for constructors, assignment operators and binary
operators.
Interprocess:
Fixed bugs #6531,
#6412,
#6398,
#6340,
#6319,
#6287,
#6265,
#6233,
#6147,
#6134,
#6058,
#6054,
#5772,
#5738,
#5622,
#5552,
#5518,
#4655,
#4452,
#4383,
#4297.
Fixed timed functions in mutex implementations to fulfill POSIX requirements:
Under no circumstance shall the function fail with a timeout
if the mutex can be locked immediately. The validity of the abs_timeout
parameter need not be checked if the mutex can be locked immediately.
Intrusive:
Fixed bugs #6347,
#6223,
#6153.
Lexical cast:
Fixed bugs and warnings: #6127,
#6132,
#6159,
#6182,
#6186,
#6193,
#6264,
#6290,
#6298,
#6400.
Better performance and less memory usage for boost::container::basic_string
conversions.
Locale:
Fixed incorrect use of MultiByteToWideChar
in detection of invalid input sequences.
Move:
Fixed bugs #6417,
#6183,
#6185,
#6395,
#6396,
PropertyTree:
Fixes for bugs #4840,
#5259,
#5281,
#5944,
#5757,
#5710,
and #5307.
Proto:
Force some functions to be inline, fixes #5735.
Add user documentation for per-domain as_expr
and as_child; other
doc tweaks.
Fix some buggy and over-complicated example programs.
Add some missing copyright notices.
Spirit:
Spirit V2.5.2, see the 'What's
New' section for details.
Thread:
Fixed Bugs:
#2309
Lack of g++ symbol visibility support in Boost.Thread.
#2639
documentation should be extended(defer_lock, try_to_lock, ...).
#3639
Boost.Thread doesn't build with Sun-5.9 on Linux.
#3762
Thread can't be compiled with winscw (Codewarrior by Nokia).
#3885
document about mix usage of boost.thread and native thread
api.
#3975
Incorrect precondition for promise::set_wait_callback().
#4048
thread::id formatting involves locale
#4315
gcc 4.4 Warning: inline ... declared as dllimport: attribute
ignored.
#4480
OpenVMS patches for compiler issues workarounds.
#4819
boost.thread's documentation misprints.
#5040
future.hpp in boost::thread does not compile with /clr.
#5423
thread issues with C++0x.
#5502
race condition between shared_mutex timed_lock and lock_shared.
#5594
boost::shared_mutex not fully compatible with Windows CE.
#5617
boost::thread::id copy ctor.
#5739
set-but-not-used warnings with gcc-4.6.
#5826
threads.cpp: resource leak on threads creation failure.
#5839
thread.cpp: ThreadProxy leaks on exceptions.
#5859
win32 shared_mutex constructor leaks on exceptions.
#6100
Compute hardware_concurrency() using get_nprocs() on GLIBC
systems.
#6141
Compilation error when boost.thread and boost.move are used
together.
#6168
recursive_mutex is using wrong config symbol (possible typo).
#6175
Compile error with SunStudio.
#6200
patch to have condition_variable and mutex error better handle
EINTR.
#6207
shared_lock swap compiler error on clang 3.0 c++11.
#6208
try_lock_wrapper swap compiler error on clang 3.0 c++11.
Unordered:
On compilers without rvalue references, the containers are no longer
movable by default, as move emulation was causing some odd quirks
(#6167,
#6311).
Define BOOST_UNORDERED_USE_MOVE
to make them movable - Boost.Move is still used for elements regardless.
Fix sequence point warning (#6370).
Better support for C++11 compilers using older standard libraries.
Uuid:
fixed #6258
fixed #5325
(sha1 implementation handles messages as long as the specification)
progress on #6118
(there are fewer warnings)
xpressive:
Eliminate some unused variable warnings on gcc.
Compilers Tested
Boost's primary test compilers are:
Linux:
Intel: 11.1
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.2, 4.6.2
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
OS X:
Intel: 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 8.0, 9.0, 10.0
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1, 4.7.0
FreeBSD:
GCC 4.2.1, 32 and 64 bit.
QNX:
QCC, C++0x mode: 4.4.2, 4.6.1, 4.6.2
Boost's additional test compilers include:
Linux:
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.6.2
GCC, C++0x mode: 4.3.4, 4.4.4, 4.5.2
pgCC: 11.9
Intel: 10.1, 11.1, 12.0
PathScale: 4.0.8
Visual Age 10.1
OS X:
Clang from subversion
Intel 11.1, 12.0
GCC: 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 8.0, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.4.0, 4.5.2
GCC, C++0x mode, mingw: 4.5.2
GCC, mingw 64-bit: 4.4.7, 4.5.4, 4.6.1
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
FreeBSD:
GCC 4.2.1, 32 and 64 bit
Solaris:
Sun 5.10
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
over 13 years
ago
New Libraries
Container:
Standard
library containers and extensions, from Ion Gaztañaga.
Locale:
Provide localization
and Unicode
... [More]
handling tools for C++, from Artyom Beilis.
Move:
Portable move semantics
for C++03 and C++11 compilers, from Ion Gaztañaga.
Updated Libraries
Asio:
Implemented various performance improvements, including:
Using thread-local operation queues in single-threaded use
cases (i.e. when concurrency_hint
is 1) to eliminate a lock/unlock pair.
Allowing some epoll_reactor
speculative operations to be performed without holding the
lock.
Improving locality of reference by performing an epoll_reactor's I/O operation
immediately before the corresponding handler is called. Also
improves scalability across CPUs.
Specialising asynchronous read and write operations for buffer
sequences that are arrays (boost::array
or std::array) of exactly two buffers.
Fixed compile error in regex overload of async_read_until
(#5688).
Fixed Windows-specific compile error by explicitly specifying the
signal()
function from the global namespace (#5722).
Changed deadline_timer
implementation to not read clock unless the timer heap is non-empty.
Changed SSL buffer sizes to be large enough to hold a complete TLS
record (#5854).
Fixed synchronous null_buffers
operations so that they obey the user's non-blocking setting (#5756).
Changed to set fd_set
size at runtime when using Windows.
Disabled MSVC warning due to const qualifier being applied to function
type.
Fixed crash that occurs when using Intel C++ compiler (#5763).
Changed OpenSSL initialisation to support all available algorithms.
Fixed SSL error mapping when session is gracefully shut down.
Added some latency test programs.
Clarified that a read operation ends when the buffer is full (#5999).
Fixed exception safety issue in epoll_reactor
initialisation (#6006).
Made number of strand implementations configurable via BOOST_ASIO_STRAND_IMPLEMENTATIONS
macro.
Added support for BOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION
flag which switches strand allocation to use a round-robin approach
rather than hashing.
Fixed potential strand starvation issue that can occur when strand.post()
is used.
Chrono:
#5979
Added chrono rounding utilities as defined by Howard Hinnant here.
#5978
Add BOOST_CHRONO_HAS_PROCESS_CLOCKS to know if process clocks are
available.
#5998
Make possible to disable hybrid error handling.
#5906
Take in account the constexpr as defined in the standard.
#5907
Take in account noexcept for compilers supporting it.
Fixed some bugs.
See the History
for more details.
Config:
Add BOOST_NO_DECLTYPE_N3276
config macro. (See N3276.)
Fusion:
Make single_view
a random access fusion sequence.
Remove bogus compile-time asserts from fusion::distance.
Cleaner implementation of segmented Fusion.
Geometry:
Bugfixes:
Robustness issue, in some circumstances the union failed to
output. Fixed.
Robustness issue, in some circumstances the calculated intersection
point was outside the segment. Fixed.
Concept issue, cartesian intersect didn't understand segments
other than the provided one. Fixed.
Sometimes self-intersections in linestrings were missed. Fixed.
The fusion coordinate system was not registered correctly.
Fixed.
Solved tickets:
#5726
(Segment intersection algorithm still assumes 'first', 'second'
members)
#5744
(mistake fusion adapt example)
#5748
(need include <boost/foreach.hpp>)
#5954
(distance_pythagoras skips sqrt() step)
Improvements on algorithms:
Checking self-intersections is now not done automatically,
this can blast performance.
Besides that, checking self-intersections is made faster.
Intersections now avoid outputting duplicate points. So they
output the minimal set.
Additional algorithms:
covered_by: within is defined as "within, not on boundary".
covered_by is "within or on boundary"
Additional functionality:
within: strategies can now be specified for within<point,
box> and within<box, box>
convert: a much broader range of conversions is supported
assign: idem, (currently partly) synonym for convert (but reversed
arguments)
Additional coordinate types:
Basic support for Boost.Rational
Graph:
Fixed bugs #5185,
#5506,
#5813
and #5919.
Various other bug fixes not in Trac.
Changed edge_descriptor type for reverse_graph to a new data type
to avoid ambiguities with the edge_descriptor of the underlying graph.
Interprocess:
Fixed bugs #2796,
#4031,
#4251,
#4452,
#4895,
#5077,
#5120,
#5123,
#5230,
#5197,
#5287,
#5294,
#5306,
#5308,
#5392,
#5409,
Added support to customize offset_ptr and allow creating custom managed
segments that might be shared between 32 and 64 bit processes.
Shared memory in windows has again filesystem lifetime: kernel bootstamp
and WMI use to get a reliable timestamp was causing a lot of trouble.
Intrusive:
Fixed bugs #4797,
#5165,
#5183,
#5191.
Lexical cast:
Added code to work with Inf and NaN values on any platform (#5689).
New Quickbook documentation (#5723).
Better performance and less memory usage for many combinations of
Source and Target types.
Better performance for C locale.
Math:
Added new series evaluation methods to the cyclic Bessel I, J, K
and Y functions. Also taken great care to avoid spurious over and
underflow of these functions. Fixes issue #5560.
Added an example of using Inverse Chi-Squared distribution for Bayesian
statistics, provided by Thomas Mang.
Added tests to use improved version of lexical_cast which handles
C99 nonfinites without using global facets.
Corrected wrong out-of-bound uniform distribution CDF complement
values #5733.
Enabled long double support on OpenBSD (issue #6014).
Changed nextafter and related functions to behave in the same way
as other implementations - so that nextafter(+INF, 0) is a finite
value (issue #5832).
Changed tuple include configuration to fix issue when using in conjunction
with Boost.Tr1 (issue #5934).
Changed class eps_tolerance to behave correctly when both ends of
the range are zero (issue #6001).
Fixed missing include guards on prime.hpp (issue #5927).
Removed unused/undocumented constants from constants.hpp (issue
#5982).
Fixed missing std:: prefix in nonfinite_num_facets.hpp (issue #5914).
Minor patches for Cray compiler compatibility.
MSM:
eUML: added easier event reprocessing: process(event_) and reprocess()
Rewrite of internal transition tables. There were a few bugs (failing
recursivity in internal transition tables of sub-sub machines) and
a missing feature (unused internal transition table of the main state
machine).
Bugfixes
Reverted favor_compile_time policy to Boost 1.46 state
none event now is convertible from any other event
eUML and pseudo exit states
Fixed not working Flag_AND
Fixed rare bugs causing multiple processing of the same event
in a submachine whose transition table contains this event
and a base event of it.
gcc warnings about unused variables
Breaking change: the new internal transition table feature causes
a minor breaking change. In a submachine, the "Fsm" template
parameter for guards / actions of an internal table declared using
internal_transition_table now is the submachine, not the higher-level
state machine. Internal transitions declared using internal rows
in the higher-level state machine keep their behavior (the "Fsm"
parameter is the higher-level state machine). To sum up, the internal
transition "Fsm" parameter is the closest state machine
containing this transition.
Numeric.Conversion:
Added numeric_cast_traits; see 'numeric_cast_traits'
for details.
Proto:
Breaking Change: Reduce numbers
of operator overloads by using rvalue references on compilers that
support them. Any user code that defines additional operator overloads
on Proto expressions could potentially be rendered ambiguous by this
change. The solution is to use a grammar to disable Proto's operators
that are made ambiguous by any user-defined operators.
Move definitions of Proto tag types into an ADL-blocking namespace.
Add second template parameter to proto::siwtch_
to control dispatching to cases.
Allow dependent domains to be specified with BOOST_PROTO_EXTENDS
and BOOST_PROTO_BASIC_EXTENDS.
Regex:
Fixed issues: #698,
#5835,
#5958,
#5736.
Spirit:
Spirit V2.5.1, see the 'What's
New' section for details.
TypeTraits:
Extension to support operator
detection.
Unordered:
Improved support for the C++11 standard - breaking change to equality
and emplace.
Use Boost.Move to implement move semantics.
See the change
log for full details.
Wave:
See the Changelog for details.
Compilers Tested
Boost's primary test compilers are:
Linux:
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.1, 4.5.2, 4.6
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
Intel 11.1
OS X:
Intel 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 8.0, 9.0, 10.0
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1
FreeBSD:
GCC 4.2.1, 32 and 64 bit.
QNX:
QCC 4.4.2
QCC, C++0x mode: 4.4.2, 4.6.1
Boost's additional test compilers include:
Linux:
Clang from subversion, with libc++ and GNU libstdc++
LLVM Clang 2.8 x
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.5.4, 4.6.1, 4.6.2
GCC, C++0x mode: 4.3.4, 4.4.3, 4.4.4, 4.5.2
pgCC: 11.2 x
Intel: 10.1, 11.1, 12.0
PathScale: 4.0.8
Visual Age 10.1
OS X:
Clang from subversion, with libc++ and GNU libstdc++.
Intel 11.1.
GCC: 4.2.1, 4.4.4.
GCC, C++0x mode: 4.4.4.
Windows:
Visual C++ 8.0, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.4.0, 4.4.7, 4.5.2, 4.5.4, 4.6.1
GCC, C++0x mode, mingw: 4.5.2
GCC, mingw 64-bit: 4.7.0
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
FreeBSD:
GCC 4.2.1, 32 and 64 bit.
Solaris:
Sun 5.10
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
over 13 years
ago
New Libraries
Container:
Standard
library containers and extensions, from Ion Gaztañaga.
Locale:
Provide localization
and Unicode
... [More]
handling tools for C++, from Artyom Beilis.
Move:
Portable move semantics
for C++03 and C++11 compilers, from Ion Gaztañaga.
Updated Libraries
Asio:
Implemented various performance improvements, including:
Using thread-local operation queues in single-threaded use
cases (i.e. when concurrency_hint
is 1) to eliminate a lock/unlock pair.
Allowing some epoll_reactor
speculative operations to be performed without holding the
lock.
Improving locality of reference by performing an epoll_reactor's I/O operation
immediately before the corresponding handler is called. Also
improves scalability across CPUs.
Specialising asynchronous read and write operations for buffer
sequences that are arrays (boost::array
or std::array) of exactly two buffers.
Fixed compile error in regex overload of async_read_until
(#5688).
Fixed Windows-specific compile error by explicitly specifying the
signal()
function from the global namespace (#5722).
Changed deadline_timer
implementation to not read clock unless the timer heap is non-empty.
Changed SSL buffer sizes to be large enough to hold a complete TLS
record (#5854).
Fixed synchronous null_buffers
operations so that they obey the user's non-blocking setting (#5756).
Changed to set fd_set
size at runtime when using Windows.
Disabled MSVC warning due to const qualifier being applied to function
type.
Fixed crash that occurs when using Intel C++ compiler (#5763).
Changed OpenSSL initialisation to support all available algorithms.
Fixed SSL error mapping when session is gracefully shut down.
Added some latency test programs.
Clarified that a read operation ends when the buffer is full (#5999).
Fixed exception safety issue in epoll_reactor
initialisation (#6006).
Made number of strand implementations configurable via BOOST_ASIO_STRAND_IMPLEMENTATIONS
macro.
Added support for BOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION
flag which switches strand allocation to use a round-robin approach
rather than hashing.
Fixed potential strand starvation issue that can occur when strand.post()
is used.
Chrono:
#5979
Added chrono rounding utilities as defined by Howard Hinnant here.
#5978
Add BOOST_CHRONO_HAS_PROCESS_CLOCKS to know if process clocks are
available.
#5998
Make possible to disable hybrid error handling.
#5906
Take in account the constexpr as defined in the standard.
#5907
Take in account noexcept for compilers supporting it.
Fixed some bugs.
See the History
for more details.
Config:
Add BOOST_NO_DECLTYPE_N3276
config macro. (See N3276.)
Fusion:
Make single_view
a random access fusion sequence.
Remove bogus compile-time asserts from fusion::distance.
Cleaner implementation of segmented Fusion.
Geometry:
Bugfixes:
Robustness issue, in some circumstances the union failed to
output. Fixed.
Robustness issue, in some circumstances the calculated intersection
point was outside the segment. Fixed.
Concept issue, cartesian intersect didn't understand segments
other than the provided one. Fixed.
Sometimes self-intersections in linestrings were missed. Fixed.
The fusion coordinate system was not registered correctly.
Fixed.
Solved tickets:
#5726
(Segment intersection algorithm still assumes 'first', 'second'
members)
#5744
(mistake fusion adapt example)
#5748
(need include <boost/foreach.hpp>)
#5954
(distance_pythagoras skips sqrt() step)
Improvements on algorithms:
Checking self-intersections is now not done automatically,
this can blast performance.
Besides that, checking self-intersections is made faster.
Intersections now avoid outputting duplicate points. So they
output the minimal set.
Additional algorithms:
covered_by: within is defined as "within, not on boundary".
covered_by is "within or on boundary"
Additional functionality:
within: strategies can now be specified for within<point,
box> and within<box, box>
convert: a much broader range of conversions is supported
assign: idem, (currently partly) synonym for convert (but reversed
arguments)
Additional coordinate types:
Basic support for Boost.Rational
Graph:
Fixed bugs #5185,
#5506,
#5813
and #5919.
Various other bug fixes not in Trac.
Changed edge_descriptor type for reverse_graph to a new data type
to avoid ambiguities with the edge_descriptor of the underlying graph.
Interprocess:
Fixed bugs #2796,
#4031,
#4251,
#4452,
#4895,
#5077,
#5120,
#5123,
#5230,
#5197,
#5287,
#5294,
#5306,
#5308,
#5392,
#5409,
Added support to customize offset_ptr and allow creating custom managed
segments that might be shared between 32 and 64 bit processes.
Shared memory in windows has again filesystem lifetime: kernel bootstamp
and WMI use to get a reliable timestamp was causing a lot of trouble.
Intrusive:
Fixed bugs #4797,
#5165,
#5183,
#5191.
Lexical cast:
Added code to work with Inf and NaN values on any platform (#5689).
New Quickbook documentation (#5723).
Better performance and less memory usage for many combinations of
Source and Target types.
Better performance for C locale.
Math:
Added new series evaluation methods to the cyclic Bessel I, J, K
and Y functions. Also taken great care to avoid spurious over and
underflow of these functions. Fixes issue #5560.
Added an example of using Inverse Chi-Squared distribution for Bayesian
statistics, provided by Thomas Mang.
Added tests to use improved version of lexical_cast which handles
C99 nonfinites without using global facets.
Corrected wrong out-of-bound uniform distribution CDF complement
values #5733.
Enabled long double support on OpenBSD (issue #6014).
Changed nextafter and related functions to behave in the same way
as other implementations - so that nextafter(+INF, 0) is a finite
value (issue #5832).
Changed tuple include configuration to fix issue when using in conjunction
with Boost.Tr1 (issue #5934).
Changed class eps_tolerance to behave correctly when both ends of
the range are zero (issue #6001).
Fixed missing include guards on prime.hpp (issue #5927).
Removed unused/undocumented constants from constants.hpp (issue
#5982).
Fixed missing std:: prefix in nonfinite_num_facets.hpp (issue #5914).
Minor patches for Cray compiler compatibility.
MSM:
eUML: added easier event reprocessing: process(event_) and reprocess()
Rewrite of internal transition tables. There were a few bugs (failing
recursivity in internal transition tables of sub-sub machines) and
a missing feature (unused internal transition table of the main state
machine).
Bugfixes
Reverted favor_compile_time policy to Boost 1.46 state
none event now is convertible from any other event
eUML and pseudo exit states
Fixed not working Flag_AND
Fixed rare bugs causing multiple processing of the same event
in a submachine whose transition table contains this event
and a base event of it.
gcc warnings about unused variables
Breaking change: the new internal transition table feature causes
a minor breaking change. In a submachine, the "Fsm" template
parameter for guards / actions of an internal table declared using
internal_transition_table now is the submachine, not the higher-level
state machine. Internal transitions declared using internal rows
in the higher-level state machine keep their behavior (the "Fsm"
parameter is the higher-level state machine). To sum up, the internal
transition "Fsm" parameter is the closest state machine
containing this transition.
Numeric.Conversion:
Added numeric_cast_traits; see 'numeric_cast_traits'
for details.
Proto:
Breaking Change: Reduce numbers
of operator overloads by using rvalue references on compilers that
support them. Any user code that defines additional operator overloads
on Proto expressions could potentially be rendered ambiguous by this
change. The solution is to use a grammar to disable Proto's operators
that are made ambiguous by any user-defined operators.
Move definitions of Proto tag types into an ADL-blocking namespace.
Add second template parameter to proto::siwtch_
to control dispatching to cases.
Allow dependent domains to be specified with BOOST_PROTO_EXTENDS
and BOOST_PROTO_BASIC_EXTENDS.
Regex:
Fixed issues: #698,
#5835,
#5958,
#5736.
Spirit:
Spirit V2.5.1, see the 'What's
New' section for details.
TypeTraits:
Extension to support operator
detection.
Unordered:
Improved support for the C++11 standard - breaking change to equality
and emplace.
Use Boost.Move to implement move semantics.
See the change
log for full details.
Wave:
See the Changelog for details.
Compilers Tested
Boost's primary test compilers are:
Linux:
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.1, 4.5.2, 4.6
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
Intel 11.1
OS X:
Intel 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 8.0, 9.0, 10.0
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1
FreeBSD:
GCC 4.2.1, 32 and 64 bit.
QNX:
QCC 4.4.2
QCC, C++0x mode: 4.4.2, 4.6.1
Boost's additional test compilers include:
Linux:
Clang from subversion, with libc++ and GNU libstdc++
LLVM Clang 2.8 x
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.5.4, 4.6.1, 4.6.2
GCC, C++0x mode: 4.3.4, 4.4.3, 4.4.4, 4.5.2
pgCC: 11.2 x
Intel: 10.1, 11.1, 12.0
PathScale: 4.0.8
Visual Age 10.1
OS X:
Clang from subversion, with libc++ and GNU libstdc++.
Intel 11.1.
GCC: 4.2.1, 4.4.4.
GCC, C++0x mode: 4.4.4.
Windows:
Visual C++ 8.0, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.4.0, 4.4.7, 4.5.2, 4.5.4, 4.6.1
GCC, C++0x mode, mingw: 4.5.2
GCC, mingw 64-bit: 4.7.0
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
FreeBSD:
GCC 4.2.1, 32 and 64 bit.
Solaris:
Sun 5.10
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
over 13 years
ago
|
Posted
about 14 years
ago
New Libraries
Chrono:
Useful time
utilities, from Vicente J. Botet Escribá.
Geometry:
Geometry
Library, from Barend Gehrels, Bruno Lalande and
... [More]
Mateusz Loskot.
Phoenix:
Define small
unnamed function objects at the actual call site, and more, from Joel de
Guzman, Dan Marsden and Thomas Heller.
Ratio:
Compile time rational
arithmetic, from Vicente J. Botet Escribá.
Updated Libraries
Accumulators:
New statistical accumulators: sum_kahan,
sum_of_weights_kahan,
sum_of_variates_kahan.
Asio:
Many new features and improvements:
Signal handling.
A debugging aid for asynchronous programs.
Timeouts on socket iostreams.
Composed connect operations.
Rewritten SSL implementation.
C++0x move support.
Compatibility with POSIX fork().
... and much more. See the Revision
History in the Boost.Asio documentation for more details.
Tickets addressed: #2879,
#3238,
#3297,
#3307,
#3702,
#3741,
#3900,
#3905,
#3939,
#3958,
#4162,
#4971,
#5124,
#5128,
#5418,
#5453.
Config:
Fixed bug #1988
DateTime:
Fixed bugs #4920,
#3651,
#4845,
#4475,
#4952,
#5345,
#5250,
#4798,
#4754,
#4411,
#5126,
#4780,
#2475,
#1674.
Dynamic Bitset:
Fixed bug #5439
Foreach:
Use rvalue refs on supporting compilers for const rvalue detection.
Function:
Bug fixes: #3410,
#3618,
#3912,
#4073,
#4325,
#4717,
#4765.
Function Types:
Bug fixes: #1653,
#3162.
Graph:
Bug fixes.
Remove deprecated function kolmogorov_max_flow,
use boykov_kolmogorov_max_flow
instead.
Removed <boost/graph/detail/is_same.hpp> header since its functionality
is in Boost.Type_Traits.
Iostreams:
Support filesystem v3 paths (#4485).
Fix a memory leak in chain
(#4922).
Iterator:
Add function_input_iterator
(#2893).
Bug fixes: #1427,
#1517,
#3434.
Lexical cast:
Better performance and less memory usage for many combinations of
Source and Target types (#5564,
#5417,
#4397,
#5350,
#5576).
Documentation updated (#5576,
#5494).
Logic:
Bug fixes: #3093,
#3600.
Math:
Added changesign function to sign.hpp to facilitate addition of nonfinite
facets.
Addition of nonfinite facets from Johan Rade, with tests, examples
of use for C99 format infinity and NaN, and documentation.
Added tests and documentation of changesign from Johan Rade.
Meta State Machine:
Added a stop()
method in the back-end.
Added partial support for Boost.Phoenix
functors in eUML.
Added the possibility to choose
when state switching occurs.
Bugfixes:
#5117,
#5253,
#5533,
#5573.
gcc warnings about unused variables.
better implementation of favor_compile_time
back-end policy.
bug with eUML and state construction.
incorrect eUML event and state macros.
incorrect event type passed to a direct entry state's on_entry
action.
more examples.
MultiIndex:
Fixed an ADL problem in composite_key_compare
related with Boost.Ref.
Maintenance fixes.
Proto:
Pre-preprocessed for better compile times.
Default preprocessor limits raised:
Max expression arity (BOOST_PROTO_MAX_ARITY)
bumped from 5 to 10.
Max function call arity (BOOST_PROTO_MAX_FUNCTION_CALL_ARITY)
bumped from 5 to 10.
Max logical operator arity (BOOST_PROTO_MAX_LOGICAL_ARITY)
bumped from 8 to 10.
Better integration of proto::basic_expr
to avoid accidental needless instantiations of proto::expr.
Random:
Synchronized with the new standard.
Many new distributions added: chi_squared_distribution,
negative_binomial_distribution,
fisher_f_distribution,
student_t_distribution,
weibull_distribution,
extreme_value_distribution,
discrete_distribution,
piecewise_constant_distribution,
piecewise_liear_distribution
Renamed uniform_int
and uniform_real
to uniform_int_distribution
and uniform_real_distribution.
Added members to all distributions: param_type,
param, stream
operators, comparison operators, min
and max.
Allow distributions to be used directly with generators without
use of variate_generator.
Changed the meaning of the parameters of geometric_distribution
and lognormal_distribution.
Added a second parameter to gamma_distribution.
Added seed_seq
and added the corresponding constructors and seed overloads the generators.
Added generate_canonical.
Renamed the engine tempates. e.g. mersenne_twister
becomes mersenne_twister_engine.
New engine adapter independent_bits_engine.
Added new predefined engine typedefs: mt19937_64,
ranlux[24|48][_base],
knuth_b.
Updated seeding algorithms.
Added discard
Use unsigned types instead of signed types in all the predefined
engines.
Bug fixes:
linear_congruential_engine
could assert because the modular arithmetic was not implemented
in all cases. shuffle_output,
now called shuffle_order_engine,
could cause integer overflow. These cases were not triggered
by any predefined engines.
uniform_small_int
now actually behaves as documented.
New efficient algorithms for binomial_distribution
and poisson_distribution.
Moved all features into namespace
boost::random
Backwards compatibility issues:
The seeding algorithms have changed. This was unavoidable for
compatibility with the standard. Not to mention that some of
the existing algorithms were weird and inconsistent.
Seeding with an integer: The behaviour should be unchanged
for most generators except lagged_fibonacci
and subtract_with_carry
(and thus ranlux).
Seeding a generator with another generator: This has
been enabled by making all all generators models of
SeedSeq.
Therefore, if you seed a Boost.Random generator with
a non Boost.Random generator, your code will no longer
compile. The algorithm has changed, so code using this
seeding method will yield different values.
Seeding a generator from a pair of iterators: This implicitly
assumed that the elements were 32-bit integers in some
places, but not everywhere. I've added this requirement
everywhere and updated the algorithms accordingly. The
behaviour of generators with a value_type
no more than 32 bits should be unchanged.
Renaming:
Whenever a class was renamed, there is a wrapper with
the old name. There are also using declarations in namespace
boost for everything that was moved.
The names of a few accessors in the distributions changed.
Both the old and the new names are allowed.
geometric_distribution
and lognormal_distribution:
The behaviour is different at runtime. boost::geometric_distribution
and boost::lognormal_distribution provide
the old behaviour, boost::random::geometric_distribution
and boost::random::lognormal_distribution provide
the new behaviour.
Streaming: gamma_distribution has a new parameter, thus text
saved with the old version will not readable by the new version.
variate_generator
is now a simple pass through wrapper. Code that assumes that
it will adjust the generator's result type to match the distribution
will no longer work. This is not an issue with any of the distributions
provided by Boost.Random.
Return types: The result_types
of some generators have changed slightly. Some signed types
have changed to unsigned to match the standard.
has_fixed_range:
This is now always false, as it doesn't appear to be very useful
and is excessively cumbersome. Anything that was accessing
const_min and
const_max without
first checking has_fixed_range
was incorrect to begin with.
Range:
Fixed the end position irange
when step size is greater than 1 (#5544).
Spirit:
Spirit V2.5, see the 'What's
New' section for details.
Tokenizer:
Fixed bug #4649.
Utility:
Bug fixes: #4432.
Uuid:
Fixed tickets: (#5570,
#4601,
#4991,
#5145,
#5235).
Wave:
Wave V2.3.0, see the Changelog
for details.
Updated Tools
BoostBook:
Handle doxygen tags: \see, tparam,
ref (for classes
only).
Support note for classes as well as functions.
Quickbook:
Generate consistent ids for headings.
Improved unicode support for windows.
Warn about windows paths, as they aren't portable.
Reverse deprecation of [br].
Support date ranges and comma seperated clauses in copyright attributes.
Improved delimeter checking for simple markup (e.g. *bold*).
Pass-thru comments in code snippets.
__FILENAME__ macro now generates relative paths.
Allow quickbook escapes inside comments in syntax highlighted code.
Compilers Tested
Boost's primary test compilers are:
Linux:
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2,
4.6.0, 4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
Intel 12.0
OS X:
Apple Clang 2.1
Intel 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
GCC, mingw: 4.4.0
FreeBSD:
GCC 4.2.1, 64 bit
QNX:
QCC
Boost's additional test compilers include:
Linux:
Clang from subversion, with GNU libstdc++.
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0,
4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
pgCC: 11.2
Intel: 10.1, 11.0, 11.1, 12.0
PathScale: 3.2
OS X:
Clang from subversion, with GNU libstdc++.
Intel 11.1
GCC: 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.5.2
GCC, C++0x mode, mingw: 4.5.2
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
about 14 years
ago
New Libraries
Chrono:
Useful time
utilities, from Vicente J. Botet Escribá.
Geometry:
Geometry
Library, from Barend Gehrels, Bruno Lalande and
... [More]
Mateusz Loskot.
Phoenix:
Define small
unnamed function objects at the actual call site, and more, from Joel de
Guzman, Dan Marsden and Thomas Heller.
Ratio:
Compile time rational
arithmetic, from Vicente J. Botet Escribá.
Updated Libraries
Accumulators:
New statistical accumulators: sum_kahan,
sum_of_weights_kahan,
sum_of_variates_kahan.
Asio:
Many new features and improvements:
Signal handling.
A debugging aid for asynchronous programs.
Timeouts on socket iostreams.
Composed connect operations.
Rewritten SSL implementation.
C++0x move support.
Compatibility with POSIX fork().
... and much more. See the Revision
History in the Boost.Asio documentation for more details.
Tickets addressed: #2879,
#3238,
#3297,
#3307,
#3702,
#3741,
#3900,
#3905,
#3939,
#3958,
#4162,
#4971,
#5124,
#5128,
#5418,
#5453.
Config:
Fixed bug #1988
DateTime:
Fixed bugs #4920,
#3651,
#4845,
#4475,
#4952,
#5345,
#5250,
#4798,
#4754,
#4411,
#5126,
#4780,
#2475,
#1674.
Dynamic Bitset:
Fixed bug #5439
Foreach:
Use rvalue refs on supporting compilers for const rvalue detection.
Function:
Bug fixes: #3410,
#3618,
#3912,
#4073,
#4325,
#4717,
#4765.
Function Types:
Bug fixes: #1653,
#3162.
Graph:
Bug fixes.
Remove deprecated function kolmogorov_max_flow,
use boykov_kolmogorov_max_flow
instead.
Removed <boost/graph/detail/is_same.hpp> header since its functionality
is in Boost.Type_Traits.
Iostreams:
Support filesystem v3 paths (#4485).
Fix a memory leak in chain
(#4922).
Iterator:
Add function_input_iterator
(#2893).
Bug fixes: #1427,
#1517,
#3434.
Lexical cast:
Better performance and less memory usage for many combinations of
Source and Target types (#5564,
#5417,
#4397,
#5350,
#5576).
Documentation updated (#5576,
#5494).
Logic:
Bug fixes: #3093,
#3600.
Math:
Added changesign function to sign.hpp to facilitate addition of nonfinite
facets.
Addition of nonfinite facets from Johan Rade, with tests, examples
of use for C99 format infinity and NaN, and documentation.
Added tests and documentation of changesign from Johan Rade.
Meta State Machine:
Added a stop()
method in the back-end.
Added partial support for Boost.Phoenix
functors in eUML.
Added the possibility to choose
when state switching occurs.
Bugfixes:
#5117,
#5253,
#5533,
#5573.
gcc warnings about unused variables.
better implementation of favor_compile_time
back-end policy.
bug with eUML and state construction.
incorrect eUML event and state macros.
incorrect event type passed to a direct entry state's on_entry
action.
more examples.
MultiIndex:
Fixed an ADL problem in composite_key_compare
related with Boost.Ref.
Maintenance fixes.
Proto:
Pre-preprocessed for better compile times.
Default preprocessor limits raised:
Max expression arity (BOOST_PROTO_MAX_ARITY)
bumped from 5 to 10.
Max function call arity (BOOST_PROTO_MAX_FUNCTION_CALL_ARITY)
bumped from 5 to 10.
Max logical operator arity (BOOST_PROTO_MAX_LOGICAL_ARITY)
bumped from 8 to 10.
Better integration of proto::basic_expr
to avoid accidental needless instantiations of proto::expr.
Random:
Synchronized with the new standard.
Many new distributions added: chi_squared_distribution,
negative_binomial_distribution,
fisher_f_distribution,
student_t_distribution,
weibull_distribution,
extreme_value_distribution,
discrete_distribution,
piecewise_constant_distribution,
piecewise_liear_distribution
Renamed uniform_int
and uniform_real
to uniform_int_distribution
and uniform_real_distribution.
Added members to all distributions: param_type,
param, stream
operators, comparison operators, min
and max.
Allow distributions to be used directly with generators without
use of variate_generator.
Changed the meaning of the parameters of geometric_distribution
and lognormal_distribution.
Added a second parameter to gamma_distribution.
Added seed_seq
and added the corresponding constructors and seed overloads the generators.
Added generate_canonical.
Renamed the engine tempates. e.g. mersenne_twister
becomes mersenne_twister_engine.
New engine adapter independent_bits_engine.
Added new predefined engine typedefs: mt19937_64,
ranlux[24|48][_base],
knuth_b.
Updated seeding algorithms.
Added discard
Use unsigned types instead of signed types in all the predefined
engines.
Bug fixes:
linear_congruential_engine
could assert because the modular arithmetic was not implemented
in all cases. shuffle_output,
now called shuffle_order_engine,
could cause integer overflow. These cases were not triggered
by any predefined engines.
uniform_small_int
now actually behaves as documented.
New efficient algorithms for binomial_distribution
and poisson_distribution.
Moved all features into namespace
boost::random
Backwards compatibility issues:
The seeding algorithms have changed. This was unavoidable for
compatibility with the standard. Not to mention that some of
the existing algorithms were weird and inconsistent.
Seeding with an integer: The behaviour should be unchanged
for most generators except lagged_fibonacci
and subtract_with_carry
(and thus ranlux).
Seeding a generator with another generator: This has
been enabled by making all all generators models of
SeedSeq.
Therefore, if you seed a Boost.Random generator with
a non Boost.Random generator, your code will no longer
compile. The algorithm has changed, so code using this
seeding method will yield different values.
Seeding a generator from a pair of iterators: This implicitly
assumed that the elements were 32-bit integers in some
places, but not everywhere. I've added this requirement
everywhere and updated the algorithms accordingly. The
behaviour of generators with a value_type
no more than 32 bits should be unchanged.
Renaming:
Whenever a class was renamed, there is a wrapper with
the old name. There are also using declarations in namespace
boost for everything that was moved.
The names of a few accessors in the distributions changed.
Both the old and the new names are allowed.
geometric_distribution
and lognormal_distribution:
The behaviour is different at runtime. boost::geometric_distribution
and boost::lognormal_distribution provide
the old behaviour, boost::random::geometric_distribution
and boost::random::lognormal_distribution provide
the new behaviour.
Streaming: gamma_distribution has a new parameter, thus text
saved with the old version will not readable by the new version.
variate_generator
is now a simple pass through wrapper. Code that assumes that
it will adjust the generator's result type to match the distribution
will no longer work. This is not an issue with any of the distributions
provided by Boost.Random.
Return types: The result_types
of some generators have changed slightly. Some signed types
have changed to unsigned to match the standard.
has_fixed_range:
This is now always false, as it doesn't appear to be very useful
and is excessively cumbersome. Anything that was accessing
const_min and
const_max without
first checking has_fixed_range
was incorrect to begin with.
Range:
Fixed the end position irange
when step size is greater than 1 (#5544).
Spirit:
Spirit V2.5, see the 'What's
New' section for details.
Tokenizer:
Fixed bug #4649.
Utility:
Bug fixes: #4432.
Uuid:
Fixed tickets: (#5570,
#4601,
#4991,
#5145,
#5235).
Wave:
Wave V2.3.0, see the Changelog
for details.
Updated Tools
BoostBook:
Handle doxygen tags: \see, tparam,
ref (for classes
only).
Support note for classes as well as functions.
Quickbook:
Generate consistent ids for headings.
Improved unicode support for windows.
Warn about windows paths, as they aren't portable.
Reverse deprecation of [br].
Support date ranges and comma seperated clauses in copyright attributes.
Improved delimeter checking for simple markup (e.g. *bold*).
Pass-thru comments in code snippets.
__FILENAME__ macro now generates relative paths.
Allow quickbook escapes inside comments in syntax highlighted code.
Compilers Tested
Boost's primary test compilers are:
Linux:
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2,
4.6.0, 4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
Intel 12.0
OS X:
Apple Clang 2.1
Intel 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
GCC, mingw: 4.4.0
FreeBSD:
GCC 4.2.1, 64 bit
QNX:
QCC
Boost's additional test compilers include:
Linux:
Clang from subversion, with GNU libstdc++.
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0,
4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
pgCC: 11.2
Intel: 10.1, 11.0, 11.1, 12.0
PathScale: 3.2
OS X:
Clang from subversion, with GNU libstdc++.
Intel 11.1
GCC: 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.5.2
GCC, C++0x mode, mingw: 4.5.2
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
about 14 years
ago
New Libraries
Chrono:
Useful time
utilities, from Vicente J. Botet Escribá.
Geometry:
Geometry
Library, from Barend Gehrels, Bruno Lalande and
... [More]
Mateusz Loskot.
Phoenix:
Define small
unnamed function objects at the actual call site, and more, from Joel de
Guzman, Dan Marsden and Thomas Heller.
Ratio:
Compile time rational
arithmetic, from Vicente J. Botet Escribá.
Updated Libraries
Accumulators:
New statistical accumulators: sum_kahan,
sum_of_weights_kahan,
sum_of_variates_kahan.
Asio:
Many new features and improvements:
Signal handling.
A debugging aid for asynchronous programs.
Timeouts on socket iostreams.
Composed connect operations.
Rewritten SSL implementation.
C++0x move support.
Compatibility with POSIX fork().
... and much more. See the Revision
History in the Boost.Asio documentation for more details.
Tickets addressed: #2879,
#3238,
#3297,
#3307,
#3702,
#3741,
#3900,
#3905,
#3939,
#3958,
#4162,
#4971,
#5124,
#5128,
#5418,
#5453.
Config:
Fixed bug #1988
DateTime:
Fixed bugs #4920,
#3651,
#4845,
#4475,
#4952,
#5345,
#5250,
#4798,
#4754,
#4411,
#5126,
#4780,
#2475,
#1674.
Dynamic Bitset:
Fixed bug #5439
Foreach:
Use rvalue refs on supporting compilers for const rvalue detection.
Function:
Bug fixes: #3410,
#3618,
#3912,
#4073,
#4325,
#4717,
#4765.
Function Types:
Bug fixes: #1653,
#3162.
Graph:
Bug fixes.
Remove deprecated function kolmogorov_max_flow,
use boykov_kolmogorov_max_flow
instead.
Removed <boost/graph/detail/is_same.hpp> header since its functionality
is in Boost.Type_Traits.
Iostreams:
Support filesystem v3 paths (#4485).
Fix a memory leak in chain
(#4922).
Iterator:
Add function_input_iterator
(#2893).
Bug fixes: #1427,
#1517,
#3434.
Lexical cast:
Better performance and less memory usage for many combinations of
Source and Target types (#5564,
#5417,
#4397,
#5350,
#5576).
Documentation updated (#5576,
#5494).
Logic:
Bug fixes: #3093,
#3600.
Math:
Added changesign function to sign.hpp to facilitate addition of nonfinite
facets.
Addition of nonfinite facets from Johan Rade, with tests, examples
of use for C99 format infinity and NaN, and documentation.
Added tests and documentation of changesign from Johan Rade.
Meta State Machine:
Added a stop()
method in the back-end.
Added partial support for Boost.Phoenix
functors in eUML.
Added the possibility to choose
when state switching occurs.
Bugfixes:
#5117,
#5253,
#5533,
#5573.
gcc warnings about unused variables.
better implementation of favor_compile_time
back-end policy.
bug with eUML and state construction.
incorrect eUML event and state macros.
incorrect event type passed to a direct entry state's on_entry
action.
more examples.
MultiIndex:
Fixed an ADL problem in composite_key_compare
related with Boost.Ref.
Maintenance fixes.
Proto:
Pre-preprocessed for better compile times.
Default preprocessor limits raised:
Max expression arity (BOOST_PROTO_MAX_ARITY)
bumped from 5 to 10.
Max function call arity (BOOST_PROTO_MAX_FUNCTION_CALL_ARITY)
bumped from 5 to 10.
Max logical operator arity (BOOST_PROTO_MAX_LOGICAL_ARITY)
bumped from 8 to 10.
Better integration of proto::basic_expr
to avoid accidental needless instantiations of proto::expr.
Random:
Synchronized with the new standard.
Many new distributions added: chi_squared_distribution,
negative_binomial_distribution,
fisher_f_distribution,
student_t_distribution,
weibull_distribution,
extreme_value_distribution,
discrete_distribution,
piecewise_constant_distribution,
piecewise_liear_distribution
Renamed uniform_int
and uniform_real
to uniform_int_distribution
and uniform_real_distribution.
Added members to all distributions: param_type,
param, stream
operators, comparison operators, min
and max.
Allow distributions to be used directly with generators without
use of variate_generator.
Changed the meaning of the parameters of geometric_distribution
and lognormal_distribution.
Added a second parameter to gamma_distribution.
Added seed_seq
and added the corresponding constructors and seed overloads the generators.
Added generate_canonical.
Renamed the engine tempates. e.g. mersenne_twister
becomes mersenne_twister_engine.
New engine adapter independent_bits_engine.
Added new predefined engine typedefs: mt19937_64,
ranlux[24|48][_base],
knuth_b.
Updated seeding algorithms.
Added discard
Use unsigned types instead of signed types in all the predefined
engines.
Bug fixes:
linear_congruential_engine
could assert because the modular arithmetic was not implemented
in all cases. shuffle_output,
now called shuffle_order_engine,
could cause integer overflow. These cases were not triggered
by any predefined engines.
uniform_small_int
now actually behaves as documented.
New efficient algorithms for binomial_distribution
and poisson_distribution.
Moved all features into namespace
boost::random
Backwards compatibility issues:
The seeding algorithms have changed. This was unavoidable for
compatibility with the standard. Not to mention that some of
the existing algorithms were weird and inconsistent.
Seeding with an integer: The behaviour should be unchanged
for most generators except lagged_fibonacci
and subtract_with_carry
(and thus ranlux).
Seeding a generator with another generator: This has
been enabled by making all all generators models of
SeedSeq.
Therefore, if you seed a Boost.Random generator with
a non Boost.Random generator, your code will no longer
compile. The algorithm has changed, so code using this
seeding method will yield different values.
Seeding a generator from a pair of iterators: This implicitly
assumed that the elements were 32-bit integers in some
places, but not everywhere. I've added this requirement
everywhere and updated the algorithms accordingly. The
behaviour of generators with a value_type
no more than 32 bits should be unchanged.
Renaming:
Whenever a class was renamed, there is a wrapper with
the old name. There are also using declarations in namespace
boost for everything that was moved.
The names of a few accessors in the distributions changed.
Both the old and the new names are allowed.
geometric_distribution
and lognormal_distribution:
The behaviour is different at runtime. boost::geometric_distribution
and boost::lognormal_distribution provide
the old behaviour, boost::random::geometric_distribution
and boost::random::lognormal_distribution provide
the new behaviour.
Streaming: gamma_distribution has a new parameter, thus text
saved with the old version will not readable by the new version.
variate_generator
is now a simple pass through wrapper. Code that assumes that
it will adjust the generator's result type to match the distribution
will no longer work. This is not an issue with any of the distributions
provided by Boost.Random.
Return types: The result_types
of some generators have changed slightly. Some signed types
have changed to unsigned to match the standard.
has_fixed_range:
This is now always false, as it doesn't appear to be very useful
and is excessively cumbersome. Anything that was accessing
const_min and
const_max without
first checking has_fixed_range
was incorrect to begin with.
Range:
Fixed the end position irange
when step size is greater than 1 (#5544).
Spirit:
Spirit V2.5, see the 'What's
New' section for details.
Tokenizer:
Fixed bug #4649.
Utility:
Bug fixes: #4432.
Uuid:
Fixed tickets: (#5570,
#4601,
#4991,
#5145,
#5235).
Wave:
Wave V2.3.0, see the Changelog
for details.
Build System
The official name of Boost.Build executable was changed to b2. The bootstrap scripts create a copy
with the old name bjam
to prevent third-party build scripts from failing.
Updated Tools
BoostBook:
Handle doxygen tags: \see, tparam,
ref (for classes
only).
Support note for classes as well as functions.
Quickbook:
Generate consistent ids for headings.
Improved unicode support for windows.
Warn about windows paths, as they aren't portable.
Reverse deprecation of [br].
Support date ranges and comma seperated clauses in copyright attributes.
Improved delimeter checking for simple markup (e.g. *bold*).
Pass-thru comments in code snippets.
__FILENAME__ macro now generates relative paths.
Allow quickbook escapes inside comments in syntax highlighted code.
Compilers Tested
Boost's primary test compilers are:
Linux:
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2,
4.6.0, 4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
Intel 12.0
OS X:
Apple Clang 2.1
Intel 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
GCC, mingw: 4.4.0
FreeBSD:
GCC 4.2.1, 64 bit
QNX:
QCC
Boost's additional test compilers include:
Linux:
Clang from subversion, with GNU libstdc++.
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0,
4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
pgCC: 11.2
Intel: 10.1, 11.0, 11.1, 12.0
PathScale: 3.2
OS X:
Clang from subversion, with GNU libstdc++.
Intel 11.1
GCC: 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.5.2
GCC, C++0x mode, mingw: 4.5.2
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
about 14 years
ago
New Libraries
Chrono:
Useful time
utilities, from Vicente J. Botet Escribá.
Geometry:
Geometry
Library, from Barend Gehrels, Bruno Lalande and
... [More]
Mateusz Loskot.
Phoenix:
Define small
unnamed function objects at the actual call site, and more, from Joel de
Guzman, Dan Marsden and Thomas Heller.
Ratio:
Compile time rational
arithmetic, from Vicente J. Botet Escribá.
Updated Libraries
Accumulators:
New statistical accumulators: sum_kahan,
sum_of_weights_kahan,
sum_of_variates_kahan.
Asio:
Many new features and improvements:
Signal handling.
A debugging aid for asynchronous programs.
Timeouts on socket iostreams.
Composed connect operations.
Rewritten SSL implementation.
C++0x move support.
Compatibility with POSIX fork().
... and much more. See the Revision
History in the Boost.Asio documentation for more details.
Tickets addressed: #2879,
#3238,
#3297,
#3307,
#3702,
#3741,
#3900,
#3905,
#3939,
#3958,
#4162,
#4971,
#5124,
#5128,
#5418,
#5453.
Config:
Fixed bug #1988
DateTime:
Fixed bugs #4920,
#3651,
#4845,
#4475,
#4952,
#5345,
#5250,
#4798,
#4754,
#4411,
#5126,
#4780,
#2475,
#1674.
Dynamic Bitset:
Fixed bug #5439
Foreach:
Use rvalue refs on supporting compilers for const rvalue detection.
Function:
Bug fixes: #3410,
#3618,
#3912,
#4073,
#4325,
#4717,
#4765.
Function Types:
Bug fixes: #1653,
#3162.
Graph:
Bug fixes.
Remove deprecated function kolmogorov_max_flow,
use boykov_kolmogorov_max_flow
instead.
Removed <boost/graph/detail/is_same.hpp> header since its functionality
is in Boost.Type_Traits.
Iostreams:
Support filesystem v3 paths (#4485).
Fix a memory leak in chain
(#4922).
Iterator:
Add function_input_iterator
(#2893).
Bug fixes: #1427,
#1517,
#3434.
Lexical cast:
Better performance and less memory usage for many combinations of
Source and Target types (#5564,
#5417,
#4397,
#5350,
#5576).
Documentation updated (#5576,
#5494).
Logic:
Bug fixes: #3093,
#3600.
Math:
Added changesign function to sign.hpp to facilitate addition of nonfinite
facets.
Addition of nonfinite facets from Johan Rade, with tests, examples
of use for C99 format infinity and NaN, and documentation.
Added tests and documentation of changesign from Johan Rade.
Meta State Machine:
Added a stop()
method in the back-end.
Added partial support for Boost.Phoenix
functors in eUML.
Added the possibility to choose
when state switching occurs.
Bugfixes:
#5117,
#5253,
#5533,
#5573.
gcc warnings about unused variables.
better implementation of favor_compile_time
back-end policy.
bug with eUML and state construction.
incorrect eUML event and state macros.
incorrect event type passed to a direct entry state's on_entry
action.
more examples.
MultiIndex:
Fixed an ADL problem in composite_key_compare
related with Boost.Ref.
Maintenance fixes.
Proto:
Pre-preprocessed for better compile times.
Default preprocessor limits raised:
Max expression arity (BOOST_PROTO_MAX_ARITY)
bumped from 5 to 10.
Max function call arity (BOOST_PROTO_MAX_FUNCTION_CALL_ARITY)
bumped from 5 to 10.
Max logical operator arity (BOOST_PROTO_MAX_LOGICAL_ARITY)
bumped from 8 to 10.
Better integration of proto::basic_expr
to avoid accidental needless instantiations of proto::expr.
Random:
Synchronized with the new standard.
Many new distributions added: chi_squared_distribution,
negative_binomial_distribution,
fisher_f_distribution,
student_t_distribution,
weibull_distribution,
extreme_value_distribution,
discrete_distribution,
piecewise_constant_distribution,
piecewise_liear_distribution
Renamed uniform_int
and uniform_real
to uniform_int_distribution
and uniform_real_distribution.
Added members to all distributions: param_type,
param, stream
operators, comparison operators, min
and max.
Allow distributions to be used directly with generators without
use of variate_generator.
Changed the meaning of the parameters of geometric_distribution
and lognormal_distribution.
Added a second parameter to gamma_distribution.
Added seed_seq
and added the corresponding constructors and seed overloads the generators.
Added generate_canonical.
Renamed the engine tempates. e.g. mersenne_twister
becomes mersenne_twister_engine.
New engine adapter independent_bits_engine.
Added new predefined engine typedefs: mt19937_64,
ranlux[24|48][_base],
knuth_b.
Updated seeding algorithms.
Added discard
Use unsigned types instead of signed types in all the predefined
engines.
Bug fixes:
linear_congruential_engine
could assert because the modular arithmetic was not implemented
in all cases. shuffle_output,
now called shuffle_order_engine,
could cause integer overflow. These cases were not triggered
by any predefined engines.
uniform_small_int
now actually behaves as documented.
New efficient algorithms for binomial_distribution
and poisson_distribution.
Moved all features into namespace
boost::random
Backwards compatibility issues:
The seeding algorithms have changed. This was unavoidable for
compatibility with the standard. Not to mention that some of
the existing algorithms were weird and inconsistent.
Seeding with an integer: The behaviour should be unchanged
for most generators except lagged_fibonacci
and subtract_with_carry
(and thus ranlux).
Seeding a generator with another generator: This has
been enabled by making all all generators models of
SeedSeq.
Therefore, if you seed a Boost.Random generator with
a non Boost.Random generator, your code will no longer
compile. The algorithm has changed, so code using this
seeding method will yield different values.
Seeding a generator from a pair of iterators: This implicitly
assumed that the elements were 32-bit integers in some
places, but not everywhere. I've added this requirement
everywhere and updated the algorithms accordingly. The
behaviour of generators with a value_type
no more than 32 bits should be unchanged.
Renaming:
Whenever a class was renamed, there is a wrapper with
the old name. There are also using declarations in namespace
boost for everything that was moved.
The names of a few accessors in the distributions changed.
Both the old and the new names are allowed.
geometric_distribution
and lognormal_distribution:
The behaviour is different at runtime. boost::geometric_distribution
and boost::lognormal_distribution provide
the old behaviour, boost::random::geometric_distribution
and boost::random::lognormal_distribution provide
the new behaviour.
Streaming: gamma_distribution has a new parameter, thus text
saved with the old version will not readable by the new version.
variate_generator
is now a simple pass through wrapper. Code that assumes that
it will adjust the generator's result type to match the distribution
will no longer work. This is not an issue with any of the distributions
provided by Boost.Random.
Return types: The result_types
of some generators have changed slightly. Some signed types
have changed to unsigned to match the standard.
has_fixed_range:
This is now always false, as it doesn't appear to be very useful
and is excessively cumbersome. Anything that was accessing
const_min and
const_max without
first checking has_fixed_range
was incorrect to begin with.
Range:
Fixed the end position irange
when step size is greater than 1 (#5544).
Spirit:
Spirit V2.5, see the 'What's
New' section for details.
Tokenizer:
Fixed bug #4649.
Utility:
Bug fixes: #4432.
Uuid:
Fixed tickets: (#5570,
#4601,
#4991,
#5145,
#5235).
Wave:
Wave V2.3.0, see the Changelog
for details.
Build System
The official name of Boost.Build executable was changed to b2. The bootstrap scripts create a copy
with the old name bjam
to prevent third-party build scripts from failing.
Updated Tools
BoostBook:
Handle doxygen tags: \see, tparam,
ref (for classes
only).
Support note for classes as well as functions.
Quickbook:
Generate consistent ids for headings.
Improved unicode support for windows.
Warn about windows paths, as they aren't portable.
Reverse deprecation of [br].
Support date ranges and comma seperated clauses in copyright attributes.
Improved delimeter checking for simple markup (e.g. *bold*).
Pass-thru comments in code snippets.
__FILENAME__ macro now generates relative paths.
Allow quickbook escapes inside comments in syntax highlighted code.
Compilers Tested
Boost's primary test compilers are:
Linux:
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2,
4.6.0, 4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
Intel 12.0
OS X:
Apple Clang 2.1
Intel 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
GCC, mingw: 4.4.0
FreeBSD:
GCC 4.2.1, 64 bit
QNX:
QCC
Boost's additional test compilers include:
Linux:
Clang from subversion, with GNU libstdc++.
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0,
4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
pgCC: 11.2
Intel: 10.1, 11.0, 11.1, 12.0
PathScale: 3.2
OS X:
Clang from subversion, with GNU libstdc++.
Intel 11.1
GCC: 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.5.2
GCC, C++0x mode, mingw: 4.5.2
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|
Posted
about 14 years
ago
New Libraries
Chrono:
Useful time
utilities, from Vicente J. Botet Escribá.
Geometry:
Geometry
Library, from Barend Gehrels, Bruno
... [More]
Lalande and Mateusz Loskot.
Phoenix:
Define small
unnamed function objects at the actual call site, and more, from Joel de
Guzman, Dan Marsden and Thomas Heller.
Ratio:
Compile time rational
arithmetic, from Vicente J. Botet Escribá.
Updated Libraries
Accumulators:
New statistical accumulators: sum_kahan,
sum_of_weights_kahan,
sum_of_variates_kahan.
Asio:
Many new features and improvements:
Signal handling.
A debugging aid for asynchronous programs.
Timeouts on socket iostreams.
Composed connect operations.
Rewritten SSL implementation.
C++0x move support.
Compatibility with POSIX fork().
... and much more. See the Revision
History in the Boost.Asio documentation for more details.
Tickets addressed: #2879,
#3238,
#3297,
#3307,
#3702,
#3741,
#3900,
#3905,
#3939,
#3958,
#4162,
#4971,
#5124,
#5128,
#5418,
#5453.
Config:
Fixed bug #1988
DateTime:
Fixed bugs #4920,
#3651,
#4845,
#4475,
#4952,
#5345,
#5250,
#4798,
#4754,
#4411,
#5126,
#4780,
#2475,
#1674.
Dynamic Bitset:
Fixed bug #5439
Foreach:
Use rvalue refs on supporting compilers for const rvalue detection.
Function:
Bug fixes: #3410,
#3618,
#3912,
#4073,
#4325,
#4717,
#4765.
Function Types:
Bug fixes: #1653,
#3162.
Graph:
Bug fixes.
Remove deprecated function kolmogorov_max_flow,
use boykov_kolmogorov_max_flow
instead.
Removed <boost/graph/detail/is_same.hpp> header since its functionality
is in Boost.Type_Traits.
Iostreams:
Support filesystem v3 paths (#4485).
Fix a memory leak in chain
(#4922).
Iterator:
Add function_input_iterator
(#2893).
Bug fixes: #1427,
#1517,
#3434.
Lexical cast:
Better performance and less memory usage for many combinations of
Source and Target types (#5564,
#5417,
#4397,
#5350,
#5576).
Documentation updated (#5576,
#5494).
Logic:
Bug fixes: #3093,
#3600.
Math:
Added changesign function to sign.hpp to facilitate addition of nonfinite
facets.
Addition of nonfinite facets from Johan Rade, with tests, examples
of use for C99 format infinity and NaN, and documentation.
Added tests and documentation of changesign from Johan Rade.
Meta State Machine:
Added a stop()
method in the back-end.
Added partial support for Boost.Phoenix
functors in eUML.
Added the possibility to choose
when state switching occurs.
Bugfixes:
#5117,
#5253,
#5533,
#5573.
gcc warnings about unused variables.
better implementation of favor_compile_time
back-end policy.
bug with eUML and state construction.
incorrect eUML event and state macros.
incorrect event type passed to a direct entry state's on_entry
action.
more examples.
MultiIndex:
Fixed an ADL problem in composite_key_compare
related with Boost.Ref.
Maintenance fixes.
Proto:
Pre-preprocessed for better compile times.
Default preprocessor limits raised:
Max expression arity (BOOST_PROTO_MAX_ARITY)
bumped from 5 to 10.
Max function call arity (BOOST_PROTO_MAX_FUNCTION_CALL_ARITY)
bumped from 5 to 10.
Max logical operator arity (BOOST_PROTO_MAX_LOGICAL_ARITY)
bumped from 8 to 10.
Better integration of proto::basic_expr
to avoid accidental needless instantiations of proto::expr.
Random:
Synchronized with the new standard.
Many new distributions added: chi_squared_distribution,
negative_binomial_distribution,
fisher_f_distribution,
student_t_distribution,
weibull_distribution,
extreme_value_distribution,
discrete_distribution,
piecewise_constant_distribution,
piecewise_liear_distribution
Renamed uniform_int
and uniform_real
to uniform_int_distribution
and uniform_real_distribution.
Added members to all distributions: param_type,
param, stream
operators, comparison operators, min
and max.
Allow distributions to be used directly with generators without
use of variate_generator.
Changed the meaning of the parameters of geometric_distribution
and lognormal_distribution.
Added a second parameter to gamma_distribution.
Added seed_seq
and added the corresponding constructors and seed overloads the generators.
Added generate_canonical.
Renamed the engine tempates. e.g. mersenne_twister
becomes mersenne_twister_engine.
New engine adapter independent_bits_engine.
Added new predefined engine typedefs: mt19937_64,
ranlux[24|48][_base],
knuth_b.
Updated seeding algorithms.
Added discard
Use unsigned types instead of signed types in all the predefined
engines.
Bug fixes:
linear_congruential_engine
could assert because the modular arithmetic was not implemented
in all cases. shuffle_output,
now called shuffle_order_engine,
could cause integer overflow. These cases were not triggered
by any predefined engines.
uniform_small_int
now actually behaves as documented.
New efficient algorithms for binomial_distribution
and poisson_distribution.
Moved all features into namespace
boost::random
Backwards compatibility issues:
The seeding algorithms have changed. This was unavoidable for
compatibility with the standard. Not to mention that some of
the existing algorithms were weird and inconsistent.
Seeding with an integer: The behaviour should be unchanged
for most generators except lagged_fibonacci
and subtract_with_carry
(and thus ranlux).
Seeding a generator with another generator: This has
been enabled by making all all generators models of
SeedSeq.
Therefore, if you seed a Boost.Random generator with
a non Boost.Random generator, your code will no longer
compile. The algorithm has changed, so code using this
seeding method will yield different values.
Seeding a generator from a pair of iterators: This implicitly
assumed that the elements were 32-bit integers in some
places, but not everywhere. I've added this requirement
everywhere and updated the algorithms accordingly. The
behaviour of generators with a value_type
no more than 32 bits should be unchanged.
Renaming:
Whenever a class was renamed, there is a wrapper with
the old name. There are also using declarations in namespace
boost for everything that was moved.
The names of a few accessors in the distributions changed.
Both the old and the new names are allowed.
geometric_distribution
and lognormal_distribution:
The behaviour is different at runtime. boost::geometric_distribution
and boost::lognormal_distribution provide
the old behaviour, boost::random::geometric_distribution
and boost::random::lognormal_distribution provide
the new behaviour.
Streaming: gamma_distribution has a new parameter, thus text
saved with the old version will not readable by the new version.
variate_generator
is now a simple pass through wrapper. Code that assumes that
it will adjust the generator's result type to match the distribution
will no longer work. This is not an issue with any of the distributions
provided by Boost.Random.
Return types: The result_types
of some generators have changed slightly. Some signed types
have changed to unsigned to match the standard.
has_fixed_range:
This is now always false, as it doesn't appear to be very useful
and is excessively cumbersome. Anything that was accessing
const_min and
const_max without
first checking has_fixed_range
was incorrect to begin with.
Range:
Fixed the end position irange
when step size is greater than 1 (#5544).
Spirit:
Spirit V2.5, see the 'What's
New' section for details.
Tokenizer:
Fixed bug #4649.
Utility:
Bug fixes: #4432.
Uuid:
Fixed tickets: (#5570,
#4601,
#4991,
#5145,
#5235).
Wave:
Wave V2.3.0, see the Changelog
for details.
Build System
The official name of Boost.Build executable was changed to b2. The bootstrap scripts create a copy
with the old name bjam
to prevent third-party build scripts from failing.
Updated Tools
BoostBook:
Handle doxygen tags: \see, tparam,
ref (for classes
only).
Support note for classes as well as functions.
Quickbook:
Generate consistent ids for headings.
Improved unicode support for windows.
Warn about windows paths, as they aren't portable.
Reverse deprecation of [br].
Support date ranges and comma seperated clauses in copyright attributes.
Improved delimeter checking for simple markup (e.g. *bold*).
Pass-thru comments in code snippets.
__FILENAME__ macro now generates relative paths.
Allow quickbook escapes inside comments in syntax highlighted code.
Compilers Tested
Boost's primary test compilers are:
Linux:
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2,
4.6.0, 4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
Intel 12.0
OS X:
Apple Clang 2.1
Intel 11.1
GCC: 4.2.1, 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
GCC, mingw: 4.4.0
FreeBSD:
GCC 4.2.1, 64 bit
QNX:
QCC
Boost's additional test compilers include:
Linux:
Clang from subversion, with GNU libstdc++.
LLVM Clang 2.8
GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0,
4.6.1
GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
pgCC: 11.2
Intel: 10.1, 11.0, 11.1, 12.0
PathScale: 3.2
OS X:
Clang from subversion, with GNU libstdc++.
Intel 11.1
GCC: 4.4.4
GCC, C++0x mode: 4.4.4
Windows:
Visual C++ 7.1, 9.0, 10.0
Visual C++ with STLport: 9.0
Visual C++, Windows Mobile 5, with STLport: 9.0
GCC, mingw: 4.5.2
GCC, C++0x mode, mingw: 4.5.2
AIX:
IBM XL C/C++ Enterprise Edition, V11.1.0.0
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James
and Vladimir Prus managed this release.
[Less]
|