|
7 | 7 |
|
8 | 8 | [section:history Revision History]
|
9 | 9 |
|
| 10 | +[heading Asio 1.10.1] |
| 11 | + |
| 12 | +* Implemented a limited port to Windows Runtime. |
| 13 | + |
| 14 | + This change adds limited support for using Asio with the Windows |
| 15 | + Runtime. It requires that the language extensions be enabled. Due to the |
| 16 | + restricted facilities exposed by the Windows Runtime API, the port comes |
| 17 | + with the following caveats: |
| 18 | + |
| 19 | + * The core facilities such as the `io_service`, `strand`, buffers, composed |
| 20 | + operations, timers, etc., should all work as normal. |
| 21 | + |
| 22 | + * For sockets, only client-side TCP is supported. |
| 23 | + |
| 24 | + * Explicit binding of a client-side TCP socket is not supported. |
| 25 | + |
| 26 | + * The `cancel()` function is not supported for sockets. Asynchronous |
| 27 | + operations may only be cancelled by closing the socket. |
| 28 | + |
| 29 | + * Operations that use `null_buffers` are not supported. |
| 30 | + |
| 31 | + * Only `tcp::no_delay` and `socket_base::keep_alive` options are supported. |
| 32 | + |
| 33 | + * Resolvers do not support service names, only numbers. I.e. you must |
| 34 | + use "80" rather than "http". |
| 35 | + |
| 36 | + * Most resolver query flags have no effect. |
| 37 | + |
| 38 | +* Extended the ability to use Asio without Boost to include Microsoft Visual |
| 39 | + Studio 2012. |
| 40 | + |
| 41 | + When using a C++11 compiler, most of Asio may now be used without a |
| 42 | + dependency on Boost header files or libraries. To use Asio in this way, |
| 43 | + define `ASIO_STANDALONE` on your compiler command line or as part of the |
| 44 | + project options. |
| 45 | + |
| 46 | + The standalone configuration has been tested for the following platforms and |
| 47 | + compilers: |
| 48 | + |
| 49 | + * Microsoft Visual Studio 2012 |
| 50 | + |
| 51 | + * Linux with g++ 4.7 or 4.8 (requires [^-std=c++11]) |
| 52 | + |
| 53 | + * Mac OS X with clang++ / Xcode 4.6 (requires [^-std=c++11 -stdlib=libc++]) |
| 54 | + |
| 55 | +* Fixed a regression (introduced in 1.10.0) where, on some platforms, errors |
| 56 | + from `async_connect` were not correctly propagated through to the completion |
| 57 | + handler. |
| 58 | + |
| 59 | +* Fixed a Windows-specific regression (introduced in 1.10.0) that occurs when |
| 60 | + multiple threads are running an `io_service`. When the bug occurs, the result |
| 61 | + of an asynchronous operation (error and bytes tranferred) is incorrectly |
| 62 | + discarded and zero values used instead. For TCP sockets this results in |
| 63 | + spurious end-of-file notifications. |
| 64 | + |
| 65 | +* Fixed a bug in handler tracking, where it was not correctly printing out some |
| 66 | + handler IDs. |
| 67 | + |
| 68 | +* Fixed the comparison used to test for successful synchronous accept |
| 69 | + operations so that it works correctly with unsigned socket descriptors. |
| 70 | + |
| 71 | +* Ensured the signal number is correctly passed to the completion handler when |
| 72 | + starting an `async_wait` on a signal that is already raised. |
| 73 | + |
| 74 | +* Suppressed a g++ 4.8+ warning about unused typedefs. |
| 75 | + |
| 76 | +* Enabled the move optimisation for handlers that use the default invocation |
| 77 | + hook. |
| 78 | + |
| 79 | +* Clarified that programs must not issue overlapping `async_write_at` |
| 80 | + operations. |
| 81 | + |
| 82 | +* Changed the Windows `HANDLE` backend to treat `ERROR_MORE_DATA` as a |
| 83 | + non-fatal error when returned by `GetOverlappedResult` for a synchronous |
| 84 | + read. |
| 85 | + |
| 86 | +* Visual C++ language extensions use `generic` as a keyword. Added a |
| 87 | + workaround that renames the namespace to `cpp_generic` when those language |
| 88 | + extensions are in effect. |
| 89 | + |
| 90 | +* Fixed some asynchronous operations that missed out on getting `async_result` |
| 91 | + support in 1.10.0. In particular, the buffered stream templates have been |
| 92 | + updated so that they adhere to current handler patterns. |
| 93 | + |
| 94 | +* Enabled move support for Microsoft Visual Studio 2012. |
| 95 | + |
| 96 | +* Added `use_future` support for Microsoft Visual Studio 2012. |
| 97 | + |
| 98 | +* Removed a use of `std::min` in the Windows IOCP backend to avoid a |
| 99 | + dependency on the `<algorithm>` header. |
| 100 | + |
| 101 | +* Eliminated some unnecessary handler copies. |
| 102 | + |
| 103 | +* Fixed various minor and cosmetic issues in code and documentation. |
| 104 | + |
10 | 105 | [heading Asio 1.10.0]
|
11 | 106 |
|
12 | 107 | * Added new traits classes, `handler_type` and `async_result`, that allow the
|
|
66 | 161 | directory for C++11-specific examples. A limited subset of the C++03
|
67 | 162 | examples have been converted to their C++11 equivalents.
|
68 | 163 |
|
| 164 | +* Add the ability to use Asio without Boost, for a limited set of platforms. |
| 165 | + |
| 166 | + When using a C++11 compiler, most of Asio may now be used without a |
| 167 | + dependency on Boost header files or libraries. To use Asio in this way, |
| 168 | + define `ASIO_STANDALONE` on your compiler command line or as part of the |
| 169 | + project options. |
| 170 | + |
| 171 | + The standalone configuration has currently been tested for the following |
| 172 | + platforms and compilers: |
| 173 | + |
| 174 | + * Linux with g++ 4.7 (requires [^-std=c++11]) |
| 175 | + |
| 176 | + * Mac OS X with clang++ / Xcode 4.6 (requires [^-std=c++11 -stdlib=libc++]) |
| 177 | + |
69 | 178 | * Various SSL enhancements. Thanks go to Nick Jones, on whose work these changes
|
70 | 179 | are based.
|
71 | 180 |
|
|
0 commit comments