Update release notes

This commit is contained in:
Richard Hodges
2020-07-02 18:40:31 +02:00
parent 719f1a5505
commit 81b677e7d3

View File

@@ -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] [heading Boost 1.73]
[*API Changes] [*API Changes]