in constant expressions; according to the GCC bug report this was fixed in
4.0.3 but still happens with NetBSD's 4.1.2:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23437
Fixes build of boost-python; found in one of the latest bulk build reports.
- Correctly use threads.
- Use the correct tool set.
- Make libraries (Boost.Test) with undefined symbols build correctly.
- Change the installed library names so that they match other systems
(thus avoiding manual PLIST substitutions). There is a hack here,
though, to let the dylib stuff kick in...
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.
infrastructure only uses them under Linux and OpenBSD (eww, hardcoded
logic based on OS names).
Aside making installations more consistent across systems, this lets
Boost work correctly on the systems where sonames were previously used.
Otherwise, they are unable to find the correct libraries at runtime and
we get PLIST errors (more files installed than expected). The problem
exposes itself when building software that needs Boost (e.g. monotone).
This also means that we can't rename the installed libraries any more as
we were doing until now, because programs linked against them will be
looking for their respective sonames. Therefore, keep the default names
produced by a --layout=system build.
Bump PKGREVISION of boost, boost-libs and boost-python to 1.
- 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.