New Libraries:
Atomic:
C++11-style atomic<>, from Helge Bahmann, maintained by Tim Blechmann.
Coroutine:
Coroutine library, from Oliver Kowalke.
Lockfree:
Lockfree data structures, from Tim Blechmann.
Multiprecision:
Extended precision arithmetic types for floating point, integer and rational arithmetic from John Maddock and Christopher Kormanyos.
Odeint:
Solving ordinary differential equations, from Karsten Ahnert and Mario Mulansky.
News
This release contains a fix for ticket 7743, in Boost.Locale. For more details, see the security notice.
More info http://www.boost.org/users/history/version_1_53_0.html
which is considered a security problem
bump PKGREV for the affected header, didn't check yet where this
header is compiled into
(boost-1.53 is out, just added the patch for a possible pullup)
New Libraries
* Context: Context switching library, from Oliver Kowalke.
Updated Libraries
* Algorithm:
- Fixed is_sorted_until ; now matches the c++11 standard behavior on ranges with
duplicate values.
- Added range support for the rest of the search algorithms.
- unhex now uses Boost.Exception to signal bad input.
* Asio:
- Fixed an incompatibility between ip::tcp::iostream and C++11.
- Decorated GCC attribute names with underscores to prevent interaction with
user-defined macros.
- Added missing #include <cctype>, needed for some versions of MinGW.
- Changed to use gcc's atomic builtins on ARM CPUs, when available.
- Changed strand destruction to be a no-op, to allow strand objects to be
destroyed after their associated io_service has been destroyed.
- Added support for some newer versions of glibc which provide the
epoll_create1() function but always fail with ENOSYS.
- Changed the SSL implementation to throw an exception if SSL engine
initialisation fails.
- Fixed another regression in buffered_write_stream.
- Implemented various minor performance improvements, primarily targeted at
Linux x86 and x86-64 platforms.
* Config:
- Deprecated a whole bunch of macros that were c++11 specific, but not named to
show that they were c++11 specific. Made new macros with better names, and
paired the old macros with the new ones. Updated the documentation to list
the deprecated macros.
[more..]
New Libraries
* Algorithm: A collection of useful generic algorithms, from Marshall Clow.
This includes several different searching algorithms, as well as most of the
new algorithms from the C++11 standard library
* Functional/OverloadedFunction: Overload different functions into a single
function object, from Lorenzo Caminiti.
* LocalFunction: Program functions locally, within other functions, directly
within the scope where they are needed, from Lorenzo Caminiti.
* Utility/IdentityType: Wrap types within round parenthesis so they can always
be passed as macro parameters, from Lorenzo Caminiti.
More http://www.boost.org/users/history/version_1_50_0.html
New Libraries
* Container: Standard library containers and extensions
* Locale: Provide localization and Unicode handling tools for C++
Beilis.
* Move: Portable move semantics for C++03 and C++11 compilers
Details: http://www.boost.org/users/history/version_1_48_0.html
New Libraries
* Chrono: Useful time utilities
* Geometry: Geometry Library
* Phoenix: Define small unnamed function objects at the actual call site, and
more
* Ratio: Compile time rational arithmetic
More: http://www.boost.org/users/history/version_1_47_0.html
Asio:
* EV_ONESHOT seems to cause problems on some versions of Mac OS X, with the
io_service destructor getting stuck inside the close() system call. Changed
the kqueue backend to use EV_CLEAR instead.
* Fixed compile failures with some versions of g++ due to the use of anonymous
enums.
* Fixed a bug on kqueue-based platforms, where some system calls that
repeatedly fail with EWOULDBLOCK are not correctly re-registered with kqueue.
* Changed asio::streambuf to ensure that its internal pointers are updated
correctly after the data has been modified using std::streambuf member
functions.
* Fixed a bug that prevented the linger socket option from working on platforms
other than Windows.
Fusion:
* Fix disable_if for Visual C++ 7.1/8.0
Filesystem:
* Fix for STLPort.
* PGI large file support
Graph:
* Bug fixes
Icl:
* Intersects for interval_maps and segment_type/element_type.
* Fixed some ambiguous calls to functions in boost and std namespaces.
* Other bug fixes, and documentation fixes.
Math:
* Several minor bug fixes.
Polygon:
* Disabled 45-degree booleans optimization.
Proto:
* Make display_expr copyable.
* Fix const correctness problem in pass_through.
Property Tree:
* Fix compile error in JSON parser.
Signals2:
* Fix unused parameter warning.
TR1:
* Allow specialization of std::tr1::hash.
* Improved support for Pathscale and Sun compilers.
Unordered:
* Add missing copy constructors and assignment operators when using rvalue
references.
New Libraries
* Icl: Interval Container Library, interval sets and maps and aggregation of
associated values, from Joachim Faulhaber.
Updated Libraries
* Array:
- Added support for cbegin/cend
- Fixed a problem with the Sun compiler
* Asio:
- Fixed a problem on older Linux kernels (where epoll is used without timerfd
support) that prevents timely delivery of deadline_timer handlers, after
the program has been running for some time
* Bind:
- make_adaptable now documented
* Concept Check:
- fixed warnings with self-assignment
* Filesystem:
- Version 3 of the library is now the default.
- IBM vacpp: Workaround for compiler bug affecting iterator_facade
- Verify, clarify, document that <boost/config/user.hpp> can be used to
specify BOOST_FILESYSTEM_VERSIO
- Replaced C-style assert with BOOST_ASSERT.
- Undeprecated unique_path(). Instead, add a note mentioning the workaround
for lack of thread safety and possible change to cwd. unique_path() is just
too convenient to deprecate!
- Cleared several GCC warnings.
- Changed V2 code to use BOOST_THROW_EXCEPTION.
- Windows: Fix status() to report non-symlink reparse point correctly.
- Add symlink_option to recursive_directory_iterator, allowing control over
recursion into directory symlinks. Note that the default is changed to not
recurse into directory symlinks.
- Reference documentation cleanup, including fixing missing and broken links,
and adding missing functions.
- Miscellaneous implementation code cleanup.
* Fusion:
- vector copy constructor now copies sequence members in the same order on different platforms
* Graph:
- Fixed Graphviz output to work on Visual C++ 7.1.
- Replaced assert with BOOST_ASSERT.
- Changed to Boost.Filesystem v3.
More...
* Fixed a problem on kqueue-based platforms where a deadline_timer
may never fire if the io_service is running in a background thread
* Fixed a const-correctness issue that prevented valid uses of
has_service<> from compiling
* Fixed MinGW cross-compilation
* Removed dependency on deprecated Boost.System functions
* Ensured close()/closesocket() failures are correctly propagated
* Added a check for errors returned by
InitializeCriticalSectionAndSpinCount
* Added support for hardware flow control on QNX
* Always use pselect() on HP-UX, if it is available.
* Ensured handler arguments are passed as lvalues
* Fixed Windows build when thread support is disabled
* Fixed a Windows-specific problem where deadline_timer objects with
expiry times set more than 5 minutes in the future may never expire
* Fixed the resolver backend on BSD platforms so that an empty service
name resolves to port number 0, as per the documentation
* Fixed read operations so that they do not accept buffer sequences of
type const_buffers_1
* Redefined Protocol and id to avoid clashing with Objective-C++ keywords
* Fixed a vector reallocation performance issue that can occur when
there are many active deadline_timer objects
* Fixed the kqueue backend so that it compiles on NetBSD
* Fixed the socket io_control() implementation on 64-bit Mac OS X and
BSD platforms
* Fixed a Windows-specific problem where failures from accept() are
incorrectly treated as successes
* Deprecated the separate compilation header <boost/asio/impl/src.cpp>
in favour of <boost/asio/impl/src.hpp>
New Libraries
* Meta State Machine: High-performance expressive UML2 finite state machines,
from Christophe Henry
* Polygon: Booleans/clipping, resizing/offsetting and more for planar polygons
with integral coordinates, from Lucanus Simonson.
Updated Libraries
* Accumulators
* Asio
* Config
* Filesystem
* Foreach
* Hash
* Iostreams
* Math
* MPL
* Multi-index Containers
* Proto
* Regex
* Thread
* TR1
* Type Traits
* uBLAS
* Utility
* Uuid
* Xpressive
New Libraries:
* Functional/factory: Function objects for dynamic and by-value construction.
* Functional/forward: Function object adapters to address the forwarding
problem.
Major Updates:
* Range: Boost.Range has undergone extensive updates that it include all of the
features from the recently reviewed Boost.RangeEx.
* 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
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.
* New Libraries
Property Tree: A tree data structure especially suited to storing
configuration data, from Marcin Kalicinski and Sebastian Redl.
* Updated Libraries
* Build System
A bug preventing "fat" 32-bit + 64-bit builds on OSX has been fixed.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
Lots of changes to list here. As usual, some new libraries have been
added and there have been improvements all around. Of special interest
is that we can now erase most of our local patches because they have
been imported upstream.
here. Based on patches sent by Brook Milligan through private mail
with some minimal changes by me to fix boost-python and builds on
Mac OS X. Tested on NetBSD/amd64 current and Tiger.
This is a fix for a possible DoS when using Boost.Regex in an application.
Note that the fix goes into a header, so all applications that use
Boost.Regex may be affected by the problem and need to be rebuilt.
in PR pkg/36558. Committing it right after the freeze so that we have enough
time to resolve the problems that this will surely cause.
New Libraries
* Foreach Library:
BOOST_FOREACH macro for easily iterating over the elements of a
sequence, from Eric Niebler.
* Statechart Library:
Arbitrarily complex finite state machines can be implemented in
easily readable and maintainable C++ code, from Andreas Huber.
* TR1 Library:
An implementation of the C++ Technical Report on Standard Library
Extensions, from John Maddock.
This library does not itself implement the TR1 components, rather
it's a thin wrapper that will include your standard library's TR1
implementation (if it has one), otherwise it will include the Boost
Library equivalents, and import them into namespace std::tr1. Highlights
include: Reference Wrappers, Smart Pointers, result_of,
Function Object Binders, Polymorphic function wrappers, Type Traits,
Random Number Generators and Distributions, Tuples, Fixed Size Array,
Hash Function Objects, Regular Expressions and
Complex Number Additional Algorithms.
* Typeof Library:
Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
* Xpressive Library:
Regular expressions that can be written as strings or as expression
templates, and that can refer to each other and themselves recursively
with the power of context-free grammars, from Eric Niebler.
Updated Libraries
* Assign Library:
o Support for ptr_map<key,T> via the new function ptr_map_insert()
o Support for initialization of Pointer Containers when the containers
hold pointers to an abstract base class.
* Date_time library:
o Support for new US/Canada timezone rules and other bug fixes.
See Change History for details.
* Filesystem Library:
Major upgrade in preparation for submission to the C++ Standards Committee
for TR2. Changes include:
o Internationalization, provided by class templates basic_path,
basic_filesystem_error, basic_directory_iterator
and basic_directory_entry.
o Simplification of the path interface by eliminating special constructors
to identify native formats.
o Rationalization of predicate function design, including the addition of
several new functions.
o Clearer specification by reference to POSIX, the ISO/IEEE Single Unix
Standard, with provisions for Windows and other operating systems.
o Preservation of existing user code whenever possible.
o More efficient directory iteration.
o Addition of a recursive directory iterator.
* Function Library:
Boost.Function now implements a small buffer optimization, which can
drastically improve the performance when copying or constructing
Boost.Function objects storing small function objects. For instance,
bind(&X:foo, &x, _1, _2) requires no heap allocation when placed into
a Boost.Function object.
* Functional/Hash Library
o Use declarations for standard classes, so that the library doesn't
need to include all of their headers
o Deprecated the <boost/functional/hash/*.hpp> headers.
o Add support for the BOOST_HASH_NO_EXTENSIONS macro, which disables
the extensions to TR1
o Minor improvements to the hash functions for floating point numbers.
* Graph Library:
o edmonds_maximum_cardinality_matching, from Aaron Windsor.
o lengauer_tarjan_dominator_tree, from JongSoo Park.
o compressed_sparse_row_graph, from Jeremiah Willcock and Douglas Gregor
of Indiana University.
o sorted_erdos_renyi_iterator, from Jeremiah Willcock
of Indiana University.
o biconnected_components now supports a visitor and named parameters,
from Janusz Piwowarski.
o adjacency_matrix now models the Bidirectional Graph concept.
o dijkstra_shortest_paths now calls vis.initialize_vertex for each
vertex during initialization.
o Note: the name of the compiled library for the GraphViz reader has
changed to boost_graph (from bgl-viz) to match Boost conventions.
o See the complete revision history for more information.
* MultiArray Library:
Boost.MultiArray now by default provides range-checking for operator[].
Range checking can be disabled by defining the macro BOOST_DISABLE_ASSERTS
before including multi_array.hpp. A bug in multi_array::resize() related
to storage orders was fixed.
* Multi-index Containers Library:
o New random access indices.
o Non key-based indices feature new rearrange facilities.
o This version also includes a number of optimizations and usage
improvements. For a complete list of changes,
see the library release notes.
* Optional Library:
o boost::none_t and boost::none now added to Optional's documentation
o Relational operators now directly support arguments of type 'T'
and 'none_t'
o operator->() now also works with reference types.
o Helper functions make_optional(val), make_optional(cond,val)
and get_optional_value_or(opt,alternative_value) added.
o Constructor taking a boolean condition (as well as a value) added.
o Member function get_value_or(alternative_value) added.
o Incompatbility bug with mpl::apply<> fixed.
o Converting assignment bug with uninitialized lvalues fixed.
* Parameter Library:
o Every ArgumentPack is now a valid MPL Forward Sequence.
o Support for unnamed arguments (those whose keyword is deduced from
their types) is added.
o Support for named and unnamed template arguments is added.
o New overload generation macros solve the forwarding problem directly.
o See also the Python library changes, below.
* Pointer Container Library:
o Support for serialization via Boost.Serialization.
o Exceptions can be disabled by defining the macro
BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header.
This macro is defined by default if BOOST_NO_EXCEPTIONS is defined.
o Additional std::auto_ptr<T> overloads added s.t. one can also pass
std::auto_ptr<T> instead of only T* arguments to member functions.
o transfer() now has weaker requirements s.t. one can transfer objects
from ptr_container<Derived> to ptr_container<Base>,
* Python Library:
o Boost.Python now automatically appends C++ signatures to docstrings.
The new docstring_options.hpp header is available to control the
content of docstrings.
o stl_input_iterator, for turning a Python iterable object into an STL
input iterator, from Eric Niebler.
o Support for void* conversions is added.
o Integrated support for wrapping C++ functions built with the
parameter library; keyword names are automatically known to
docsstrings.
o Enhancements to the API for better embedding support
(boost::python::import(), boost::python::exec()
and boost::python::exec_file()).
* Signals Library:
More improvements to signal invocation performance from Robert Zeh.
* Smart Pointers Library:
o Allocator support as proposed in N1851 (162 Kb PDF).
o pointer_cast and pointer_to_other utilities to allow
pointer-independent code, from Ion Gaztanaga.
* String Algorithm Library:
o lexicographical_compare
o join
o New comparison predicates is_less, is_not_greater.
o Negative indexes support (like Perl) in various algorihtms
(*_head/tail, *_nth).
* Wave Library:
o Wave now correctly recognizes pp-number tokens as mandated by the
C++ Standard, which are converted to C++ tokens right before they are
returned from the library.
o Several new preprocessing hooks have been added. For a complete
description please refer to the related documentation page:
The Context Policy.
o Shared library (dll) support has been added for the generated Wave
libraries.
o The overall error handling has been improved. It is now possible to
recover and continue after an error or a warning was issued.
o Support for optional comment and/or full whitespace preservation
in the generated output stream has been added.
o The Wave library now performs automatic include guard detection to
avoid accessing header files more than once, if appropriate.
o Full interactive mode has been added to the Wave tool. Now the Wave
tool can be used just like Python or Perl for instance to
interactively try out your BOOST_PP macros. Additionally it is now
possible to load and save the current state of an interactive
session (macro tables et.al.).
o The overall performance has been improved by upto 40-60%, depending
on the concrete files to process.
o Support for new pragmas has been added allowing to control certain
library features from inside the preprocessed sources (partial
output redirection, control of generated whitespace and #line
directives).
o Optional support for #pragma message "..." has been added.
o This version also includes a number of bug fixes and usage
improvements. For a complete list of changes, see the libraries
change log.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
Any Library: Cast to reference types introduced in 1.33.0 is now documented on
any_cast documentation page.
Config Library: Don't undef BOOST_LIB_TOOLSET after use.
Boost.Python:
* The build now assumes Python 2.4 by default, rather than 2.2
* Support Python that's built without Unicode support
* Support for wrapping classes with overloaded address-of (&) operators
Smart Pointer Library: Fixed problems under Metrowerks CodeWarrior on PowerPC
(Mac OS X) with inlining on, GNU GCC on PowerPC 64.
Regex Library: Fixed the supplied makefiles, and other small compiler specific
changes. Refer to the regex history page for more information on these and
other small changes.
Iostreams Library: Improved the interface for accessing a chain's components,
added is_open members to the file and file descriptor devices, fixed
memory-mapped files on Windows, and made minor changes to the documentation.
Functional/Hash Library: Fixed the points example.
Multi-index Containers Library: Fixed a problem with multithreaded code, and
other minor changes. Refer to the library release notes for further details.
Graph Library:
* Fixed a problem with the relaxed heap on x86 Linux (fixes bug in
dijkstra_shortest_paths).
* Fixed problems with cuthill_mckee_ordering and king_ordering producing no
results.
* Added color_map parameter to dijkstra_shortest_paths.
Signals Library: Fixed problems with the use of Signals across shared library
boundaries.
Thread library: read_write_mutex has been removed due to problems with
deadlocks. Wave library (V1.2.1) Fixed a couple of problems, refer to the
change log for further details.
(a) bjam should be consistent with the rest of the world, the OS is
called DragonFly, not DragonFlyBSD. It might be _annoying_, but it is
a fact of live and no spelling fault can avoid it.
(b) disable the compiler thread support checks, they don't really work
and are not needed anyway.
(c) DragonFly has wchar and ctype functions, so use them.
Bump revisions of boost-build (bjam), boost-headers (well, they changed)
and boost-libs.
New Libraries
* Iostreams Library: Framework for defining streams, stream
buffers and i/o filters, from Jonathan Turkanis.
* Functional/Hash Library: A TR1 hash function object that can be
extended to hash user defined types, from Daniel James.
* Parameter Library: Write functions that accept arguments by
name: especially useful when a function has more than one
argument with a useful default value, since named arguments can
be passed in any order.
* Pointer Container Library: Containers for storing heap-allocated
polymorphic objects to ease OO-programming, from Thorsten Ottosen.
* Wave: Standards conformant implementation of the mandated
C99/C++ preprocessor functionality packed behind an easy to use
iterator interface, from Hartmut Kaiser.
Updated Libraries
* Assignment Library: Support for Pointer Container Library and
new efficient functions ref_list_of() and cref_list_of() for
generating anonymous ranges.
* Bind Library: Bind expressions now support comparisons and
negation. Example: bind(&X::name, _1) < bind(&X::name, _2).
* Date-Time Library:
o Added local time and time zone classes.
o Added format-based Input/Output facets.
o For a complete list of changes, see the library change history.
* Graph Library: Introduced several new algorithms and improved
existing algorithms:
o Experimental Python bindings, from Doug Gregor and Indiana
University.
o floyd_warshall_all_pairs_shortest_paths, from Lauren Foutz
and Scott Hill.
o astar_search, from Kristopher Beevers and Jufeng Peng.
o fruchterman_reingold_force_directed_layout, from Doug
Gregor and Indiana University.
o biconnected_components and articulation_points, from
Jeremy Siek, Janusz Piwowarski, and Doug Gregor.
o sequential_vertex_coloring has been updated, tested, and
documented.
o gursoy_atun_layout, from Jeremiah Willcock and Doug Gregor
of Indiana University.
o king_ordering, from D. Kevin McGrath of Indiana University.
o cuthill_mckee ordering has been recast as an invocation of
breadth_first_search and now supports graphs with multiple
components.
o dijkstra_shortest_paths now uses a relaxed heap as
its priority queue, improving its complexity to O(V log V) and
improving real-world performance for larger graphs.
o read_graphviz now has a new, Spirit-based parser that
works for all graph types and supports arbitrary
properties on the graph, from Ron Garcia. The old,
Bison-based GraphViz reader has been deprecated and will
be removed in a future Boost release. write_graphviz also
supports dynamic properties.
o subgraph: get_property now refers to the subgraph
property, not the root graph's property.
o See the history for additional changes and bug fixes.
* Multi-index Containers Library:
o New hashed indices.
o Added serialization support.
o For a complete list of changes, see the library release notes.
* Program Options Library:
o Option descriptions are now printed with word wrapping.
o Command line parser can bypass unregistered options,
instead of throwing.
o Removed support for "implicit" (optional) values.
o New customization method
'command_line_parser::extra_style_parser'. Unlike
'additional_parser', allows the user to parse several
tokens and return a vector of options, not just a single
option.
o Work with disabled exceptions.
* Property Map Library: Introduced the dynamic properties class,
which provides dynamically-typed access to a set of property maps.
* Random Number Library: improved initialization for
mersenne_twister, algorithm by Makoto Matsumoto and Takuji
Nishimura, implemented for Boost by Jens Maurer.
Note: All test vectors for mersenne_twisters constructed or
seeded without parameters or with a single unsigned int parameter
become invalid.
* Range Library: Minor addition of convenience functions to
iterator range like front(), back() and operator[]().
* Regex Library:
o Rewritten front end parser now supports (?imsx-imsx)
constructs, plus lookbehind assertions and conditional
expressions.
o Thin wrapper classes improve integration with MFC/ATL code.
o Full (optional) Unicode support via the ICU library.
Refer to the regex history page for more information on these
and other small changes.
* Serialization Library:
o DLL version.
o Auto-linking.
o Serialization of variants.
o Improved seialization of shared pointers.
* Signals Library: added slot blocking/unblocking, from Frantz
Maerten. Huge improvements to signal invocation performance from
Robert Zeh.
This update has been tested on NetBSD 2.0.2, 3.0_BETA and current.
ABI is consistent with dependents. (This works around the fact that the
sonames of Boost libraries do not change between ABI-incompatible
versions, or in other words: they don't have major version numbers.)
- Drop devel/boost and devel/boost-thread.
- Add devel/boost-docs which includes all the documentation related to Boost
(previously included in devel/boost).
- Add devel/boost-build which includes bjam, the Boost.Build framework.
- Add devel/boost-headers which includes all the header files needed at build
time by programs using Boost (previously included in devel/boost).
- Add devel/boost-libs which includes all the binary libraries needed at build
and run time by programs using Boost (previously included in devel/boost and
devel/thread). All of them are multithreaded, to make things easier.
- devel/boost-python includes the Boost Python library (as it did before), but
now works, given that everything is threaded again.
- Drop our thread_user.hpp customization. Avoids some build failures that
appeared when the previous boost-thread package was not installed.
- Use static PLISTs.
- Install unversioned files. Makes things *a lot* easier when building stuff
outside pkgsrc.
- Add meta-pkgs/boost, a meta package that depends on all of the above.
Thanks go to jlam@ and tv@ for their comments.
While here, update to 1.32.0:
New Toolset Names
The names of some the Boost.Build toolsets have been changed to remove the "."
(dot) character and to fix some other naming inconsistencies. For example,
vc7.1 toolset was renamed to become vc-7_1. Please refer to the Supported
Toolsets section of the installation guide for the complete list of the current
toolset names. This change was made as a part of the effort to make the Boost
distribution compatible with ISO 9660 level 2 requirements.
New Libraries
* Assignment Library: Filling containers with constant or generated data
has never been easier, from Thorsten Ottosen.
* Minmax Library: Standard library extensions for simultaneous min/max and
min/max element computations, from Hervé Brönnimann.
* Multi-index Containers Library: Containers with multiple STL-compatible
access interfaces, from Joaquín M López Muñoz.
* Numeric Conversion Library: Optimized policy-based numeric conversions,
from Fernando Cacciola.
* Program Options Library: Access to configuration data given on command
line, in config files and other sources, from Vladimir Prus.
* Range Library: A new infrastructure for generic algorithms that builds
on top of the new iterator concepts, from Thorsten Ottosen.
* Serialization Library: Serialization/de-serialization of arbitrary C++
data structures to various formats including text, binary, and xml, from
Robert Ramey.
* String Algorithms Library: Collection of string related algorithms for
case conversion, trimming, find/replace operations and more, from Pavol
Droba.
* Tribool: 3-state boolean type library, from Doug Gregor.
Updated Libraries
* Compose: This deprecated library has been removed.
* Graph:
o Added bundled properties to the adjacency_list and adjacency_matrix
class templates, greatly simplifying the introduction of internal
vertex and edge properties.
o The LEDA graph adaptors have been ported to LEDA 4.5.
o Added algorithms for betweenness centrality and betweenness
centrality clustering.
o Added circle layout and undirected spring layout algorithms.
* MPL Library:
o Updated to use the Boost Software License.
o New documentation, including a complete reference manual.
o Major interface changes and improvements, many of which are not
backward compatible. Please refer to the 1.32 changelog for the
detailed information about upgrading to the new version.
* Python Library:
o Updated to use the Boost Software License.
o A new, better method of wrapping classes with virtual functions
has been implemented.
o Support for the new Python Bool type, thanks to Daniel Holth.
o Support for upcoming GCC symbol export control features have been
folded in, thanks to Niall Douglas.
o Improved support for std::auto_ptr-like types.
o Components used by other libraries have been moved out of
python/detail and into boost/detail to improve dependency
relationships.
o Miscellaneous bug fixes and compiler workarounds.
* Signals Library: Introduced deterministic slot ordering, permitting
slots to be connected at the beginning or end of slot groups or the slot
list itself. Combiners may safely have state and are accessible from the
signal.
* Utility: class template result_of added.
* Test Library:
o namespace names gets shorten; old one still supported till next
release
o added proper encoding of XML PCDATA
o support for wide string comparison implemented
For complete list of changes see Test Library release notes.
Regression tests
This release has been extensively tested on a variety of different compilers
and platforms. It is known to contain no regressions against the previous
reference release on the compilers and configurations tested. Please refer to
the corresponding regression reports to see how well your compiler performs on
the new Boost codebase.