head 1.4; access; symbols pkgsrc-2026Q1:1.4.0.50 pkgsrc-2026Q1-base:1.4 pkgsrc-2025Q4:1.4.0.48 pkgsrc-2025Q4-base:1.4 pkgsrc-2025Q3:1.4.0.46 pkgsrc-2025Q3-base:1.4 pkgsrc-2025Q2:1.4.0.44 pkgsrc-2025Q2-base:1.4 pkgsrc-2025Q1:1.4.0.42 pkgsrc-2025Q1-base:1.4 pkgsrc-2024Q4:1.4.0.40 pkgsrc-2024Q4-base:1.4 pkgsrc-2024Q3:1.4.0.38 pkgsrc-2024Q3-base:1.4 pkgsrc-2024Q2:1.4.0.36 pkgsrc-2024Q2-base:1.4 pkgsrc-2024Q1:1.4.0.34 pkgsrc-2024Q1-base:1.4 pkgsrc-2023Q4:1.4.0.32 pkgsrc-2023Q4-base:1.4 pkgsrc-2023Q3:1.4.0.30 pkgsrc-2023Q3-base:1.4 pkgsrc-2023Q2:1.4.0.28 pkgsrc-2023Q2-base:1.4 pkgsrc-2023Q1:1.4.0.26 pkgsrc-2023Q1-base:1.4 pkgsrc-2022Q4:1.4.0.24 pkgsrc-2022Q4-base:1.4 pkgsrc-2022Q3:1.4.0.22 pkgsrc-2022Q3-base:1.4 pkgsrc-2022Q2:1.4.0.20 pkgsrc-2022Q2-base:1.4 pkgsrc-2022Q1:1.4.0.18 pkgsrc-2022Q1-base:1.4 pkgsrc-2021Q4:1.4.0.16 pkgsrc-2021Q4-base:1.4 pkgsrc-2021Q3:1.4.0.14 pkgsrc-2021Q3-base:1.4 pkgsrc-2021Q2:1.4.0.12 pkgsrc-2021Q2-base:1.4 pkgsrc-2021Q1:1.4.0.10 pkgsrc-2021Q1-base:1.4 pkgsrc-2020Q4:1.4.0.8 pkgsrc-2020Q4-base:1.4 pkgsrc-2020Q3:1.4.0.6 pkgsrc-2020Q3-base:1.4 pkgsrc-2020Q2:1.4.0.4 pkgsrc-2020Q2-base:1.4 pkgsrc-2020Q1:1.4.0.2 pkgsrc-2020Q1-base:1.4 pkgsrc-2019Q4:1.3.0.6 pkgsrc-2019Q4-base:1.3 pkgsrc-2019Q3:1.3.0.2 pkgsrc-2019Q3-base:1.3 pkgsrc-2019Q2:1.2.0.10 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.8 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.6 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.4 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.2 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.1.0.8 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.6 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.4 pkgsrc-2017Q3-base:1.1; locks; strict; comment @# @; 1.4 date 2020.01.12.10.10.04; author adam; state Exp; branches; next 1.3; commitid HxuNCpbNGX8JZnSB; 1.3 date 2019.07.01.04.00.10; author ryoon; state Exp; branches; next 1.2; commitid JNlNXkg51FGGeitB; 1.2 date 2018.04.29.20.41.11; author adam; state Exp; branches; next 1.1; commitid c7MgntSspmedwnAA; 1.1 date 2017.08.24.19.31.32; author adam; state Exp; branches; next ; commitid AVEs6z306EA87v4A; desc @@ 1.4 log @boost: updated to 1.72.0 Version 1.72.0 Asio: Changed the async_initiate helper function to automatically deduce its return type, for C++11 or later. Changed all asynchronous operations to use automatically deduced return types, for C++14 or later. Introduced concepts to support async_initiate. Added the nested template type rebind_executor to all I/O object types. Changed the initiation function objects to report their associated I/O executor via the nested type executor_type and member function get_executor(). Added the default_completion_token trait, giving I/O executor types an associated default completion token type for use with asynchronous operations. This trait is specialised for the use_awaitable completion token, for example, to allow asynchronous operations to be used as follows: co_await socket.async_connect(my_endpoint). Added missing async_initiate to the Windows-specific I/O objects' asynchronous operations. Ensured that the executor type is propagated to newly accepted sockets. Changed to require that Protocol copy and move operations never throw. Changed to require that Endpoint default constructor and move operations never throw. Added the noexcept qualifier to protocol accessors. Added the noexcept qualifier to socket move constructors. Fixed issues associated with opening serial ports on Windows: Use the correct constant to initialise the RTS control flag. Specify a default baud rate (9600). Fixed a lost "outstanding work count" that can occur when an asynchronous accept operation is automatically restarted. Consult the Revision History for further details. Atomic: Added a workaround for __float128 not being considered as a floating point type by some versions of libstdc++. Improved compatibility with clang-win compiler. Beast: This is a maintenance update containing bug fixes, and updates to use the new features delivered in Boost.Asio. We'd love to know how you or your company use Beast, consider adding an entry to the Companies and Individuals Using Beast list. See the full Release Notes for a complete list of changes. Circular Buffer: Fix: max_size() now takes the allocator's max_size() into account. (Glen Fernandes) Context: architecture s390x supported execution_context removed Endian: Made endian_reverse, conditional_reverse and *_to_* constexpr on GCC and Clang Added convenience load and store functions Added floating point convenience typedefs Added a non-const overload of data(); changed its return type to unsigned char* Added __int128 support to endian_reverse when available Added a convenience header boost/endian.hpp Filesystem: Extracted filesystem_error to exception.hpp; file_status and associated enums and functions to file_status.hpp; directory_entry, directory_iterator and recursive_directory_iterator to directory.hpp. Deprecated: For backward compatibility operations.hpp still includes the new headers exception.hpp, file_status.hpp and directory.hpp, unless BOOST_FILESYSTEM_NO_DEPRECATED macro is defined. These implicit includes are considered deprecated and will be removed in a future release. Users are encouraged to include the new headers directly or include filesystem.hpp. The filesystem_error exception is now implemented in the compiled library of Boost.Filesystem. Users may need to add linking with Boost.Filesystem library in their projects. On POSIX.1-2008 platforms, use utimensat instead of utime. utime is declared obsolete in POSIX.1-2008 and can be disabled e.g. in uClibc-ng. directory_iterator is now left in the end state on memory allocation errors. In directory_iterator on POSIX systems, support for readdir/readdir_r has been reworked to avoid memory allocations for dirent structures when readdir is used. This reduces memory consumption and eliminates the possibility of buffer overruns in case if readdir produces a very long directory name. On Windows, use Boost.WinAPI to select the target Windows version. New: Added directory_options enum, which reflects the same named enum from C++20. The enum is supported in directory_iterator and recursive_directory_iterator to customize iteration behavior. In particular, the iterators now support skipping directories that can't be opened due to insufficient permissions. The symlink_option enum is now deprecated and should be replaced with directory_options. By default, recursive_directory_iterator is now reset to the end state in case of errors, as required by C++20. New: Added directory_options::pop_on_error option, which configures recursive_directory_iterator so that it attempts to recover from iteration errors by repeatedly invoking pop() until it succeeds or the end state is reached. New: Added directory_options::skip_dangling_symlinks option, which configures recursive_directory_iterator so that it doesn't follow dangling directory symlinks and continues iteration instead of reporting an error. Deprecated: The following members of recursive_directory_iterator are now marked as deprecated: level(), no_push_pending(), no_push_request(), no_push(). Users are advised to replace their use with the standard counterparts: depth(), recursion_pending(), disable_recursion_pending(). Note that recursion_pending() has the opposite meaning compared to no_push_pending() and no_push_request(). Deprecated methods will be removed in a future release. Fixed path::lexically_relative (and any dependent algorithms) to correctly handle empty, dot and dot-dot path elements in its argument. The behavior is made closer to C++17 std::path::lexically_relative in that empty and dot path elements are ignored and dot-dot path elements are accounted by decreasing the number of dot-dot path elements to generate in the resulting relative path. Functional/Factory: Glen Fernandes rewrote the implementations of factory and value_factory to provide the following features: Support r-value arguments when possible Support arbitrary number of arguments via variadic templates when possible Support allocators that are final Support allocators that use fancy pointers Support for disabled exceptions (BOOST_NO_EXCEPTIONS) Improved compilation times The following features have been removed: Increasing limits for C++03 compilers through BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY Using boost::none_t in place of void through BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T GIL: Added GSoC 2019: Lanczos resampling for image down scaling. GSoC 2019: Methods for binary thresholding, inverted binary thresholding and truncation thresholding. GSoC 2019: Otsu thresholding method. GSoC 2019: Adaptive thresholding using mean or gaussian-weighted sum of the neighbourhood area. GSoC 2019: Harris response calculation (corner detector without non-maximum filtering). GSoC 2019: Hessian corner detector. GSoC 2019: Types for defining 2D kernel, kernel_2d and kernel_2d_fixed, in Numeric extension. GSoC 2019: Implementation of 2D convolution as new function convolve_2d. GSoC 2019: Box filtering using the average filter. GSoC 2019: Blur function based on normalized mean filter. GSoC 2019: Sobel and Scharr operators. GSoC 2019: Median filter to remove noise from image. Continued adding new test cases and significantly improved overall test coverage. Documented purpose of cached_location_t. Function convolve_1d in Numeric extension for convenient use of convolve_rows and convolve_cols. Function extend_boundary in Numeric extension to perform image boundary extension. Project release notes maintained in Markdown file RELEASES.md. Changed Move all tests, core features and extensions, inside test/ directory. Removed Replace Boost.MPL with Boost.MP11. Removed use of Boost.TypeTraits. Dropped support for GCC <= 4.8. Remove include/boost/gil/version.hpp file as unused. Fixed Undetermined value of default-initialized channel and pixel objects. Undefined behaviour due to std::is_trivially_default_constructible specializations. Crash when reading PNG files with an invalid header. Applied the Rule of Three for numerous types. Removed uses of deprecated implicit definition of defaulted copy assignment operator or copy constructor. Histogram: Several new features and performance improvements, some bug-fixes See the full Release Notes for a complete list of changes Log: Improved compatibility with clang-win compiler. MPI: Documentation clarifications. Fixed scatterv bug when using explicit input buffer offsets. Enable usage of MPI_Probe and friend with Intel MPI >= 2019.4 Symbol visibility on Windows Math: Added Hypergeometric functions 1F0, 0F1, 2F0, 1F1 and pFq. Added Jacobi polynomial (and derivatives) evaluation. Added Gegenbauer polynomial (and derivatives) evaluation. Added Cardinal B-Splines (and derivatives) as polynomial functions in their own right. Added Cardinal Trigonometric Interpolation. Added new statistics sub-section. Added One Sample Student's T Test. Added Anderson Darling test for normality. Added Ljung Box test for auto-correlation. Added Runs test for random sequences. The headers boost/math/tools/univariate_statistics.hpp and boost/math/tools/bivariate_statistics.hpp, have been deprecated in favor of boost/math/statistics/univariate_statistics.hpp and boost/math/statistics/bivariate_statistics.hpp. Added The Empirical CDF distribution. Reworked the Sterling approximation used by multiprecision gamma functions to be applicable to all the function that use the Lanczos approximation at regular precision. Also extended Lanczos approximations up to 100 decimal digit precision. Multiprecision: Big constexpr update allows cpp_int and float128 arithmetic to be fully constexpr with gcc and clang 9 or later, or any compiler supporting std::is_constant_evaluated(). Fix bug in variable precision mpf_float which causes it to go into a tailspin trying to select the correct precision - see https://github.com/boostorg/multiprecision/issues/164. Outcome: Enhancements: Standalone outcome is now make install-able, and cmake find_package() can find it. Note that you must separately install and find_package() Outcome's dependency, quickcpplib, else find_package() of Outcome will fail. The git submodule mechanism used by standalone Outcome of specifying dependent libraries has been replaced with a cmake superbuild of dependencies mechanism instead. Upon cmake configure, an internal copy of quickcpplib will be git cloned, built and installed into the build directory from where an internal find_package() uses it. This breaks the use of the unconfigured Outcome repo as an implementation of Outcome, one must now do one of: 1. Add Outcome as subdirectory to cmake build. 2. Use cmake superbuild (i.e. ExternalProject_Add()) to build and install Outcome into a local installation. 3. Use one of the single header editions. For standalone Outcome, the current compiler is now checked for whether it will compile code containing C++ Concepts, and if it does, all cmake consumers of Outcome will enable C++ Concepts. Set the cmake variable CXX_CONCEPTS_FLAGS to an empty string to prevent auto detection and enabling of C++ Concepts support occurring. OUTCOME_TRY operation now hints to the compiler that operation will be successful. [P1886 Error speed benchmarking](https://wg21.link/P1886) showed that there is considerable gain in very small functions by hinting to the compiler whether the expression is expected to be successful or not. OUTCOME_TRY previously did not hint to the compiler at all, but now it does. A new suite of macros OUTCOME_TRY_FAILURE_LIKELY hint to the compiler that failure is expected. If you wish to return to the previously unhinted behaviour, define OUTCOME_TRY_LIKELY(expr) to (!!expr). Support for C++ Coroutines has been added. This comes in two parts, firstly there is now an OUTCOME_CO_TRY() operation suitable for performing the TRY operation from within a C++ Coroutine. Secondly, in the header outcome/coroutine_support.hpp there are implementations of eager and lazy which let you more naturally and efficiently use basic_result or basic_outcome from within C++ Coroutines -- specifically, if the result or outcome will construct from an exception pointer, exceptions thrown in the coroutine return an errored or excepted result with the thrown exception instead of throwing the exception through the coroutine machinery (which in current compilers, has a high likelihood of blowing up the program). Both eager and lazy can accept any T as well. Both have been tested and found working on VS2019 and clang 9. make_error_code() and make_exception_ptr() are now additionally considered for compatible copy and move conversions for basic_result<>. This lets you construct a basic_result into a basic_result, where E is a custom type which has implemented the ADL discovered free function error_code make_error_code(E), but is otherwise unrelated to error_code. The same availability applies for exception_ptr with make_exception_ptr() being the ADL discovered free function. basic_outcome<> has less support for this than basic_result<> in order to keep constructor count down, but it will accept via this mechanism conversions from basic_result<> and failure_type<>. Bug fixes: The detection of [[nodiscard]] support in the compiler was very mildly broken. PolyCollection: Maintenance work. Preprocessor: Topic added which discusses emptiness Support for the C++20 __VA_OPT__ construct BOOST_PP_VARIADIC_HAS_OPT whether __VA_OPT__ is supported at the C++20 level BOOST_PP_CHECK_EMPTY test for emptiness using __VA_OPT__ at the C++20 level BOOST_PP_VA_OPT more flexible alternative to __VA_OPT__ at the C++20 level Smart Pointers: Implemented allocate_unique for scalars and arrays. (Glen Fernandes) Test: Boost.test v3.12 see the Changes log for more details. New feature: Support for C++17 std::string_view has been added. Better diagnostic on boost::exception and no rtti mode (thanks to Mikhail Pilin / [pull_request 234]) VMD: BOOST_VMD_IS_EMPTY updated to use __VA_OPT__ at the C++20 level has 100% reliability @ text @$NetBSD$ --- boost/test/impl/execution_monitor.ipp.orig 2019-12-10 00:20:00.000000000 +0000 +++ boost/test/impl/execution_monitor.ipp @@@@ -171,7 +171,8 @@@@ namespace { void _set_se_translator( voi # if defined(SIGPOLL) && !defined(__CYGWIN__) && \ !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) && \ !defined(__NetBSD__) && \ - !defined(__QNXNTO__) + !defined(__QNXNTO__) && \ + !defined(__DragonFly__) # define BOOST_TEST_CATCH_SIGPOLL # endif @ 1.3 log @Update to 1.70.0 Changelog: New Libraries Outcome: A set of tools for reporting and handling function failures in contexts where directly using C++ exception handling is unsuitable, from Niall Douglas. Histogram: Fast and extensible multi-dimensional histograms with convenient interface for C++14, from Hans Dembinski. Updated Libraries Asio: This release includes a number of new features, bug fixes, performance enhancements, and documentation improvements. Notable changes include: Added the ability to use custom I/O executors with I/O objects (such as sockets). Added a new async_result form with an initiate static member function. Updated the Coroutines TS support and promoted it to the asio namespace. Added a new DynamicBuffer_v2 concept which is CopyConstructible. Added a new async_compose function that simplifies the implementation of user-defined asynchronous operations. Added a make_strand helper function. Relaxed the completion condition type requirements to only require move-constructibility rather than copy-constructibility. Added a constructor for local::basic_endpoint that takes a string_view. Added the noexcept qualifier to various functions. Added a new BOOST_ASIO_DISABLE_VISIBILITY configuration #define. Enabled recycling of the memory used to type-erase a function object with the polymorphic executor. Changed receive operations to return the correct number of bytes transferred when truncation (error::message_size) occurs on a datagram-oriented socket. Fixed calculation of absolute timeout when the backend uses pthread_cond_timedwait. Changed the range-based asynchronous connect operation to deduce the EndpointSequence iterator type. Fixed buffer_sequence_begin and buffer_sequence_end to prevent implicit conversion. Ensured SSL handshake errors are propagated to the peer before the local operation completes. Suppressed the eof error on SSL shutdown as it actually indicates success. Added a fallback error code for when we OpenSSL produces an SSL_ERROR_SYSCALL result without an associated error. Changed composed asynchronous read and write operations to move buffer sequence objects. Fixed a macOS-specific warning about the deprecation of OSMemoryBarrier. Fixed compile errors that occur when using the composed read and write operations with MSVC 11.0. Improved dispatch, post and defer documentation. Fixed a Windows-specific memory leak that may occur when system_executor is used. Consult the Revision History for further details. Beast: BIG Update!!! Some APIs have changed. The reference shows a star ★ next to each new item. Beast needs your help! Tell Us how you or your company use Beast Please report any bugs, feature requests, or general feedback Join the C++ Slack Workspace for free and chat with us in the #beast and #boost channels Don't forget to star the repository ⭐! More tutorials, code like the pros! Networking Refresher teaches you from the ground up. Updated Asynchronous Echo example Updated Detect SSL composed operation tutorial websocket-chat-multi threaded chat server with a JavaScript browser client basic_stream and tcp_stream offer: Timeouts: async_read_some, async_write_some complete with error::timeout on expiration! Traffic-shaping policies simple and unlimited, or a user-defined RatePolicy! Put the strand directly on the socket using P1322R0, no more bind_executor at call sites! Base classes async_base and stable_async_base and handle all composed operation boilerplate for you. ssl_stream provides a movable, assignable SSL stream with a flat write optimization. All asynchronous operations use Asio's async_initiate for efficient integration with Coroutines TS. ⚡ faster compilation, define BOOST_BEAST_SEPARATE_COMPILATION and #include in one of your .cpp files! See the full Release Notes for a complete list of changes. Context: #91: cleanup of stack if creating ucontext fails #97: add missing BOST_CONTEXT_DECL in stack_context #98: fix jump_i386_sysv_macho writing garbage to the x87 control word Coroutine2: #28: don't crash on pthread_cancel DLL: New macro BOOST_DLL_USE_STD_FS. Define it to 1 to make the Boost.DLL use C++17's std::filesystem::path, std::system_error and std::error_code (#21). Note that exception types change from boost::system::system_error to std::system_error, so make sure to update catches. Significant rewrite of the dynamic loadable detection and decoration logic. More precise errors are now reported in case of loading failures. Added shared_library::decorate() function that returns a decorated path to the library without doing any platform related queries and detections. Prefer using shared_library::load and shared_library constructors for better results (many thanks to Loïc Touraine for the work PR#23). CI hardening, docs updates, typos fixes, cleanups and mg #196: fix high contention on remote_ready_splk_ Filesystem: Fixed a few instances of dereferencing std::string::end() in path implementation. Fixed program termination in case of out of memory condition in directory iteratorsnce to error_code. (#58) Fixed possible linking errors caused by missing definitions of static members of path. (#12759) Fixed possible use of uninitialized data in directory iterator increment operation on Linux. Added support fortatus query overloads for directory_entry. This avoids a relatively expensive OS query when file status is requested for a result of dereferencing a directory iterator. (PR#55) Reworked current_path and read_symlink implementation to avoid possiblfilesystems. The functions now have an internal limit of the path size they will accept from the OS, which is currently 16 MiB. Increased the size of the internal buffer used by copy_file. Integer: Added Extended Euclidean Algorithm and Modular Multiplicative Inverse function. (Nick Thompson, PR#11) Log: New features: Added support for generating another log file name before collecting the file in the text file sink backend. This allows to combine appending to aexisting log file with timestamps and file counters in log filenames, and, consequently, file collection in general. See changelog for more details. Math: New features: Add Lanczos smoothing derivatives Move numols/ to boost/math/differentiation/finite_difference.hpp. Add mean, variance, skewness, kurtosis, median, Gini coefficient, and median absolute deviation to tools/univariate_statistics.hpp. Add correlation coefficients and covariand absolute Gini coefficient, Hoyer sparsity, oracle SNR, and the M[sub 2]M[sub 4] SNR estimator to tools/signal_statistics.hpp. Add total variation, l0, l1, l2, and sup norms, as well as corresponding distance functions to tools/norms.hpp. for polynomials, support complex coefficients, add .prime() and .integrate() methods. Add quadratic_roots to tools/roots.hpp. Add support for complex-valued functions to Newton's method in roots.hpp. Add Catmull-Rom inted mp_invoke to mp_invoke_q Added mp_similar Added mp_set_union, mp_set_intersection, mp_set_difference Added mp_not_fn Added mp_transform_first, mp_transform_second, mp_transform_third Added mp_filter Addedp_valid_q Added mp_back, mp_pop_back Multi-index Containers: size_type and difference_type are now defined as the allocator's same-named types. This will not make any difference in the vast majority of cases, but allows for some degreevia user-defined allocator types (see issue #17 for motivation). For the moment being, this change is not documented in the reference section (i.e., it has semi-official status). Maintenance work. Multiprecision: Fix various conversioncheck for compatibility with Boost.Optional. Prevent instantiation of std::numeric_limits on any old type when checking for convertibility. See #98. Update variable precision code to account for arbitrary precision integers. See #103. lization archives. Fix bug in fixed precision iostream formatting in mpf_float and mpfr_float. See #113. Add more overloads for special functions which are better handled natively by MPFR. Fixed bug in generic exp implementation wh. Fixed generic conversion from float to integer to avoid undefined behaviour. See #110. PolyCollection: Improved handling of stateful allocators and allocator propagation traits, after an error reported by Billy O'Neal (PR#9). ug with an internal cache structure. Spirit: Removed use of deprecated boost/detail/iterator.hpp header. PR#432 X3 Integer parsers should now handle user defined types. PR#429 Note: The check_overflow trait defan std::numeric_limits::is_bounded instead of boost::integer_traits::is_integral. Removed sequence into plain parsing. Now it triggers a compile time error instead of silently parsing the the sequence and taking the last value as a resulte_rule instantiation with BOOST_SPIRIT_INSTANTIATE when: A rule has no attribute. PR#455 An actual attribute is not of type a rule was declared with. PR#456 #457 A huge thanks goes out to Xeverous for reporting Fixed unneded attribute synthesization and no-transformation attribute reference pass-through in rules. #444 PR#449 PR#452 Removed broken 1.0#INF parser. It was poorly documented and never worked. #415 PR#458 #8699 The undocumenoved due to bugs PR#449 and to simplify attribute transformation. PR#460 If you were using it to workaround bugs in attribute transformation - they should not be needed anymore as of this release. The integer value parser now respe10 value. PR#469 Fixed underflow check for a (Min % Base) == 0 corner case. PR#469 Fixed an output value on overflow of IgnoreOverflowDigits=true integer parser. PR#470 Container attribute elements were copyied, but notial handling of references in transform_attribute was removed. PR#480 V2 Macro name collisions and namespace conflicts with Boost.Endian were fixed. PR#349 PR#482 utree Fixed UB in tag getter due to left shi Fixed double-conversion (spirit::string -> std::string -> spirit::string). PR#462 Qi Added static asserts for rule skipper type problems. PR#427 The check_overflow trait default implementation now reoost::integer_traits::is_integral PR#429 Integer parsers should now handle user defined types. PR#429 Note: The check_overflow trait default implementation now relies on std::numeric_limits::is_bounded instead of boosl. Removed broken 1.0#INF parser. It was poorly documented and never worked. #415 PR#458 #8699 The undocumented make_attribute trait was merged into transform_attribute trait. PR#471 The pre_transform, post_tility functions were removed in favor of directly using pre/post/fail of the transform trait. PR#467 The integer value parser now respects std::numeric_limits::digits10 value. PR#469 Fixed underflow check for a (Min % B Fixed an output value on overflow of IgnoreOverflowDigits=true integer parser. PR#470 Special handling of references in transform_attribute was removed. PR#480 Lex Fixed UB in default constructor of ken type. PR#420 Classic: Fixed position_iterator forming reference to local when the underlying iterator dereference operator returns a non-reference type. PR#422 #9737 Stacktrace: Build fix for iOS 32-bit ARM (many thanksng the fix PR#70) Fixed multiple typos, warnings and updated the docs. Test: Boost.test v3.10 see the Changes log for more details. Breaking changes: Boost.Test minimal.hpp is now showing a deprecation warning, omparison may fail tests that were silently not using the floating point comparison logic prior to this release, Internal API change to unit_test_log_formatter, see detailed change log, New feature: Floating point compariso non-floating point and arithmetic operands: expressions like BOOST_TEST(3.0001 == 3) now use floating point support of Boost.Test, Custom datasets are not required to declare the sample type field anymore, Extending template test riadic definition, Windows support for timed tests, Timed test on test-suites, Removed dependency to Boost.Timer, New macro BOOST_TEST_INFO_SCOPE for scoped context declaration, Improved BOOST_TE and pull requests: Trac tickets: #7397, #9434, #13106, #13418 GitHub Issues: #133, #138, #141, #157, #160, #174, #176, #177, #180, #181, #194, #196, #198, #199, #202, #203, #204 GitHub Pull Requests: PR#171, PR#172, PR PR#195, PR#195, PR#197, PR#205 TypeIndex: Support for the GHS C++ compiler added (many thanks to Brandon Castellano for providing the patch PR#28) Optimized string and type comparisons (many thanks to Andrey Semashev for providing the-win compilation (many thanks to Peter Dimov for providing the patch PR#25) CI hardening. TypeTraits: Added is_bounded_array and is_unbounded_array (Glen Fernandes). Added copy_reference and copy_cv_ref (Glen Fernandes). /clr option. Misc compiler compatibility fixes. Variant: Many cleanups and internal improvements, many thanks to Nikita Kniazev (PR#55, PR#56, PR#57) and Louis Dionne (PR#51) CI hardening. uBlas: Addition of tensorassoy PR#65) Addition of basic OpenCL support (many thanks to Fady Essam PR#59) Integration of basic benchmark suite (many thanks to Stefan Seefeld PR#57) CI integration and hardening Compilers Tested Boost's primary test compileang: 3.0, 4.0.1, 6.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 Clang, C++17: 5.0.2, 6.0.17, 4.5.3, 4.6.3, 5.4.0, 8.0.1 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1 GCC, C++17: 7.3.0, 8.0.1 Intel, C++14: 18.0 OS X: , 9.1.0, 10.0.0 Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0 Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0 Apple Clang, C++17: 9.1.0, 10.0.0 Apple Clang, C++1z: 9.0.0 Apple Clang, C++2a: 10.0.0 Windows: GCC: 3.4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 GCC, C++17: 7.1.0, 7.2.0, 7.3.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Fr Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3..0.0, 8.0.0 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0 Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1 GCC, C++0x: 4.4.7 G9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1 GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0 GCC, C++17: 7.3.0, 8.0.1 Intel, C++14: 18.0 OS X: Apple Clang: 9.0.0, 9.1.0, 10.0.0 Apple Clang, C++11: 9.0.0, 9ang, C++14: 9.0.0, 9.1.0, 10.0.0 Apple Clang, C++17: 9.1.0, 10.0.0 Apple Clang, C++1z: 9.0.0 Apple Clang, C++2a: 10.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11 GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 GCC, C++17: 7.1.0, 7.2.0, 7.3.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 FreeBSD: Clang: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 @ text @d1 1 a1 1 $NetBSD: patch-boost_test_impl_execution__monitor.ipp,v 1.2 2018/04/29 20:41:11 adam Exp $ d3 1 a3 1 --- boost/test/impl/execution_monitor.ipp.orig 2019-04-09 19:36:35.000000000 +0000 a14 19 @@@@ -391,14 +392,18 @@@@ system_signal_exception::report() const report_error( execution_exception::system_error, "signal: the expiration of a timer set by timer_settimer()" ); break; +#if defined(SI_ASYNCIO) case SI_ASYNCIO: report_error( execution_exception::system_error, "signal: generated by the completion of an asynchronous I/O request" ); break; +#endif +#if defined(SI_MESGQ) case SI_MESGQ: report_error( execution_exception::system_error, "signal: generated by the the arrival of a message on an empty message queue" ); break; +#endif default: break; } @ 1.2 log @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 specialization, the default constructor is now trivial if T's default constructor is. The internal implementation of atomic 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, 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 + 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 @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- boost/test/impl/execution_monitor.ipp.orig 2018-04-11 13:49:08.000000000 +0000 d5 1 a5 1 @@@@ -167,7 +167,8 @@@@ namespace { void _set_se_translator( voi d15 1 a15 9 @@@@ -366,6 +367,7 @@@@ system_signal_exception::report() const if( !m_sig_info ) return; // no error actually occur? +#if !defined(__DragonFly__) switch( m_sig_info->si_code ) { #ifdef __VXWORKS__ // a bit of a hack to adapt code to small m_sig_info VxWorks uses @@@@ -386,14 +388,18 @@@@ system_signal_exception::report() const a33 8 @@@@ -612,6 +618,7 @@@@ system_signal_exception::report() const report_error( execution_exception::system_error, "unrecognized signal %d", m_sig_info->si_signo ); } +#endif /* !__DragonFly__ */ } //____________________________________________________________________________// @ 1.1 log @Version 1.65.0 New Libraries: PolyCollection, Stacktrace. Updated Libraries: Asio, Context, Config, Core, Coroutine2, DLL, Fiber, Fusion, Geometry, Hash, Log, Phoenix, Predef, Program Options, Python, Smart Pointers, Test, TypeIndex, Unordered, Utility, Variant. @ text @d3 1 a3 1 --- boost/test/impl/execution_monitor.ipp.orig 2017-08-19 16:49:49.000000000 +0000 d5 1 a5 1 @@@@ -163,7 +163,8 @@@@ namespace { void _set_se_translator( voi d15 1 a15 1 @@@@ -362,6 +363,7 @@@@ system_signal_exception::report() const d21 3 a23 3 case SI_USER: report_error( execution_exception::system_error, @@@@ -376,14 +378,18 @@@@ system_signal_exception::report() const d42 1 a42 1 @@@@ -602,6 +608,7 @@@@ system_signal_exception::report() const @