From 81b677e7d3e944849088c2618430c647c05ee927 Mon Sep 17 00:00:00 2001 From: Richard Hodges Date: Thu, 2 Jul 2020 18:40:31 +0200 Subject: [PATCH] Update release notes --- doc/qbk/release_notes.qbk | 86 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/doc/qbk/release_notes.qbk b/doc/qbk/release_notes.qbk index 022f9a80..530efd1f 100644 --- a/doc/qbk/release_notes.qbk +++ b/doc/qbk/release_notes.qbk @@ -11,6 +11,92 @@ [/-----------------------------------------------------------------------------] +[heading Boost 1.74] + +[*API Changes] + +* The API to Asio has undergone changes. Please refer to the Asio release notes for details. + +* Beast has been updated to track and respect developer choices in the use of Asio. In particular: + * Define `BOOST_ASIO_NO_DEPRECATED` to disallow deprecated invocation and allocation hooks. + * Define `BOOST_ASIO_NO_TS_EXECUTORS` to ensure that executors conform to the + [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r11.html Standard Executors] proposal. + * Define `BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT` to select + [@https://cplusplus.github.io/networking-ts/draft.pdf Networking TS] style executors by default. + If this macro is not defined, Asio default executors will be the + [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r11.html Standard Executors] implementation. + +* [issue 1897] Parser `body_limit` is optional (API Change) + ['Actions Required] + * The signature of `basic_parser<>::body_limit(n)` has changed. It now accepts an + optional `std::uint64_t`. The caller may indicate that no body limit is required + by calling `body_limit(boost::none)``. The default limits remain in place in order + to maintain 'safe by default' behaviour. + +* [issue 1934] Remove deprecated interfaces (API Change) + ['Actions Required] + * The macro `BOOST_BEAST_NO_DEPRECATED` will no longer be noticed by Beast. The only way to + enable deprecated functionality is now the macro `BOOST_BEAST_ALLOW_DEPRECATED` which is + undefined by default. That is, all deprecated behaviour is disabled by default. + * The following deprecated functions have been removed: + - `websocket::async_accept_ex` + - `websocket::async_handshake_ex` + - `websocket::accept_ex` + - `websocket::handshake_ex` + Programs still using these names should be refactored to use the `decorator` feature and + the remaining handshake and accept functions. + * `websocket::role_type` has been removed. Users should use `beast::role_type` instead. + * `handler_ptr` has been removed. Users should use `net::bind_handler` and/or + `bind_front_handler` instead. + * Code that depends on `mutable_data_type` should be refactored to use + `mutable_buffers_type`. Classes affected are: + - `buffers_adaptor` + - `flat_buffer` + - `flat_static_buffer` + - `multi_buffer` + - `static_buffer` + * The `reset` function has been removed from `flat_static_buffer`. Use the + `clear` function instead. + * The `core/type_traits.hpp` public header has been removed and along with it + the type trait `is_completion_handler`. Beast uses the CompletionHandler correctness + checks provided by Asio. In a c++20 environment, these convert to concept checks. + * The error code enum `invalid_code_lenths` (sic) was a synonym of `invalid_code_lengths`. + Affected programs should be modified to use `invalid_code_lengths`. + * The file `core/buffers_adapter.hpp` has been removed along with the deprecated + alias typename `buffers_adapter`. Affected programs should use + ` core/buffers_adapator.hpp` and the type `buffers_adaptor`. + +* [issue 1956] Deprecate `string_param` (API Change) + ['Actions Required] + `string_param`, which was previously the argument type when setting field values + has been replaced by `string_view`. Because of this, it is no longer possible to + set message field values directly as integrals. + Users are requied to convert numeric arguments to a string type prior to calling + `fields::set` et. al. + Beast provides the non-allocating `to_static_string()` function for this purpose. + To set Content-Length field manually, call `message::content_length`. + +[*Fixes] + +* [issue 1913] Fix standalone compilation error with `std::string_view` +* [issue 1925] [issue 1916] Fix compile errors on Visual Studio with /std:c++latest +* [issue 1924] Fix c++20 deprecation warning in `span_body` +* [issue 1920] Fix use `buffered_read_stream` with `use_awaitable` +* [issue 1918] Fix `async_detect_ssl` with `use_awaitable` +* [issue 1944] Fix `FILE` namespace qualification +* [issue 1942] Fix http read `bytes_transferred` +* [issue 1943] Fix `basic_stream` `expires_after` +* [issue 1980] Fix `max` compile error +* [issue 1949] `iless` and `iequal` take part in Heterogeneous Lookup + +[*Miscellaneous] + +* [issue 1907] OpenSSL 1.0.2 or later is required when using SSL/TLS streams. + This is a requirement inherited from Boost.Asio. + +* Additional tests have been added to ensure correct integration with C++20 + coroutines when avaialable. + [heading Boost 1.73] [*API Changes]