Commit graph

16 commits

Author SHA1 Message Date
adam
d6df5a7063 boost: updated to 1.67.0
Version 1.67.0:
New Libraries:
- Contract: Contract programming for C++.
- HOF: Higher-order functions for C++.

Updated Libraries:
- Asio:
Added missing const qualifier to basic_socket_acceptor::get_option.
Worked around a parsing error that occurs with some versions of gcc.
Fixed broken code samples in tutorial.
Added new experimental features. (Note that "experimental" features may be changed without notice in subsequent releases.)
Added experimental::detached completion token.
Added experimental::redirect_error completion token.
Added experimental::co_spawn facility for integration with the coroutines technical specification.
Updated timeout examples to use latest features.
Used asio::steady_timer rather than asio::deadline_timer.
Used asio::dynamic_buffer rather than asio::streambuf.
Used timed asio::io_context::run_for() function for blocking clients.
Added example showing a custom completion token for blocking with timeouts.
Fixed unit tests to compile when BOOST_ASIO_NO_DEPRECATED is defined.
Changed socket iostreams to use chrono by default, to fix compatibility with the Networking TS. Define BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM to enable the old Boost.Date_Time interface in basic_socket_streambuf and basic_socket_iostream.
Updated examples to use chrono rather than Boost.Date_Time.
Fixed an incorrect member function detector in the is_dynamic_buffer trait.
Fixed an async_result incompatibility with deprecated handler_type.
Added a missing move optimisation in the SSL stream implementation.
Fixed incorrect basic_resolver_results::value_type typedef.
Fixed a compile error with some OpenSSL versions when SSL_OP_NO_COMPRESSION is defined.
Changed add_certificate_authority to process multiple certificates in a bundle.
Eliminated deprecation warning with MSVC by using std::invoke_result rather than std::result_of.
Changed to use std::string_view for C++17 or later, and std::experimental::string_view for C++14. Define the preprocessor macro BOOST_ASIO_DISABLE_STD_STRING_VIEW to force the use of std::experimental::string_view (assuming it is available) when compiling in C++17 mode.
Ensured DynamicBuffer template arguments are decayed before using in enable_if tests.
Changed documentation to distinguish legacy completion handlers (which are still required to be CopyConstructible) from new MoveConstructible handlers.
Suppressed a discarded return value warning in the buffer debugging support.
Fixed basic_yield_context to work with completion signatures containing reference parameters.
Ensured that stackful coroutines launched using spawn() correctly store decayed copies of their function and handler arguments.
Fixed some compatibility issues with Android.
Added cross-compilation support to Jamfiles.
Fixed some minor portability issues in examples.

- Atomic:
Breaking change: Changed the result of the (op)_and_test operations added in Boost 1.66 to the opposite - the functions now return true if the operation result is non-zero. This is consistent with other test methods in Boost.Atomic and the C++ standard library. Users can define BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST when compiling their code to emit warnings on every use of the changed functions. This way users can locate the code that needs to be updated.
Update for C++2a. On C++11 compilers that support scoped enums, the memory_order enumeration is now scoped and contains constants with shorter names like acquire, release or seq_cst (i.e. users can use memory_order::acquire instead of memory_order_acquire). The old constants are also provided for backward compatibility. (P0439R0)
Update for C++2a. Added experimental support for atomic operations on floating point types. In addition to general operations, add, sub, negate operations and their fetch_(op) and opaque_(op) versions are supported. Lock-free property can be tested with the new macros BOOST_ATOMIC_FLOAT/DOUBLE/LONG_DOUBLE_LOCK_FREE. The support for floating point types is optional and can be disabled by defining BOOST_ATOMIC_NO_FLOATING_POINT. (P0020R6)
Added new experimental operations:
negate_and_test and complement_and_test which perform negation or bitwise complement and return true if the result is not zero.
add, sub, negate, bitwise_and, bitwise_or, bitwise_xor, bitwise_complement operations which perform the operation and return its result.
For generic atomic<T> specialization, the default constructor is now trivial if T's default constructor is.
The internal implementation of atomic<T> has been updated to avoid undefined behavior that stems from signed integer overflows. As required by the C++ standard, the library uses two's complement representation of signed integers internally and accroding rules of overflow. Currently, the library requires the native signed integer types to also use two's complement representation (but no defined overflow semantics).
Improved Clang support. In particular, fixed DCAS not being lock-free and fixed possible incorrect code generated on 32-bit x86.
Improved MinGW support. For gcc versions up to 4.6, fixed compilation of DCAS on x86.
In x86 PIE code, asm blocks now preserve ebx value.

- Beast:
This version fixes significant defects in websocket::stream which can lead to asserts or undefined behavior. Users are encouraged to update to the latest Boost release.
For a complete list of changes, please view the official Release Notes.

- ContainerHash:
Extracted from the functional module to break a dependency cycle.
Moved headers to new location to reflect name change, the old include paths will still work.
Added support for std::string_view, std::error_code, std::error_condition, std::optional, std::variant, std::monostate where available.
Added explicit support for vector<bool>, so that it will work with libc++.
More detail in the library change log.

- Context:
fix i386/macho routines to correctly return transfer_t in EAX/EDX
__sanitizer_finish_switch_fiber should be called directly after context switch
Clang on Windows : error: No best alternative for libs/context/build/asm_sources
fixing C2492 for execution_context (v1)
known bug: including all.hpp + <context-impl>ucontext/winfib causes error 'forced_unwind: is not a member of boost::context::detail'

More info https://www.boost.org/users/history/version_1_67_0.html
2018-04-29 20:41:11 +00:00
adam
9073bc07d0 Changes 1.56.0:
Modularization
Boost version control has migrated to a system using git submodules. This shouldn't make too much of a difference to users, although the directory structure is now a bit different.

Parts of some libraries have been moved into different modules, and several new modules have been extracted from existing code. All header paths should remain the same. The new modules are:

Assert:
Customizable assert macros. Maintained by Peter Dimov.
Core:
Core utilities used by other libraries, with minimal dependencies. Maintained by Peter Dimov, Glen Fernandes and Andrey Semashev.
Lexical_Cast:
General literal text conversions, such as an int represented a string, or vice-versa, from Kevlin Henney.
Throw_Exception:
A common infrastructure for throwing exceptions from Boost libraries, from Emil Dotchevski.
Winapi:
Windows API declarations without <windows.h>, for internal Boost use.
New Libraries
Align:
Memory alignment functions, allocators, and adaptors, from Glen Fernandes.
Type_Index:
Runtime/Compile time copyable type info, from Antony Polukhin.
2014-08-13 10:56:35 +00:00
asau
e1ab7079b6 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-31 11:16:30 +00:00
adam
967857908e Changes 1.47.0:
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
2011-10-11 10:02:07 +00:00
adam
015cb6a9fa Changes 1.45.0:
* 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>
2010-11-26 20:46:59 +00:00
adam
f3d93df37e Changes 1.44.0:
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
2010-08-26 17:40:58 +00:00
joerg
3d8ef5a52d Second round of explicit pax dependencies. As reminded by tnn@,
many packages used to use ${PAX}. Use the common way of directly calling
pax, it is created as tool after all.
2008-05-26 02:13:14 +00:00
heinz
8cb83aff16 Added support for installationt to DESTDIR. 2008-02-05 22:52:01 +00:00
heinz
791d2a6335 Let pax do the work of removing original files (*.orig). 2008-02-05 22:50:40 +00:00
heinz
5157bee58d Prevent check-interpreter.mk from complaining about missing python and
bash interpreters.
2008-02-05 22:44:18 +00:00
jmmv
106f6e10a5 Update boost to 1.34.1. This is based on the patches provided by Brook Milligan
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.
2008-01-04 19:58:39 +00:00
jmmv
43c34447ad Fix multiple PLIST problems; dunno how I did not spot them before...
Bump PKGREVISION to 2.
2007-06-09 07:42:23 +00:00
jmmv
ce7d44f45f Make this package install the Boost.Build (v2) framework instead of the
bjam utility.  The latter is now provided in the boost-jam package, as the
Boost.Build packaging guidelines describe.
2007-06-02 17:50:28 +00:00
jmmv
38913fffe5 Update boost* to 1.33.1:
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.
2006-01-20 20:40:18 +00:00
joerg
3fa608eeb8 Fix build of boost on DragonFly.
(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.
2006-01-12 22:48:46 +00:00
jmmv
09753597b2 Complete rework of the Boost packages:
- 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.
2005-02-26 22:48:34 +00:00