Skip to content

Commit

Permalink
Update version for Swoole 4.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
twose committed Mar 5, 2019
1 parent 2442ba8 commit c64e9ae
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 51 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PROJECT(libswoole)

ENABLE_LANGUAGE(ASM)
SET(SWOOLE_VERSION 4.2.13)
SET(SWOOLE_VERSION 4.3.0)
SET(SWOOLE_CLFLAGS pthread rt dl ssl crypt crypto nghttp2)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
Expand Down
4 changes: 2 additions & 2 deletions include/swoole.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ int clock_gettime(clock_id_t which_clock, struct timespec *t);
#define SWOOLE_MAJOR_VERSION 4
#define SWOOLE_MINOR_VERSION 3
#define SWOOLE_RELEASE_VERSION 0
#define SWOOLE_EXTRA_VERSION "alpha"
#define SWOOLE_VERSION "4.3.0-alpha"
#define SWOOLE_EXTRA_VERSION ""
#define SWOOLE_VERSION "4.3.0"
#define SWOOLE_VERSION_ID 40300
#define SWOOLE_BUG_REPORT \
"A bug occurred in Swoole-v" SWOOLE_VERSION ", please report it.\n"\
Expand Down
125 changes: 77 additions & 48 deletions package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@
<email>[email protected]</email>
<active>yes</active>
</developer>
<date>2019-02-27</date>
<time>18:00:00</time>
<date>2019-03-05</date>
<time>22:00:00</time>
<version>
<release>4.2.13</release>
<release>4.3.0</release>
<api>4.0</api>
</version>
<stability>
Expand All @@ -48,59 +48,78 @@
</stability>
<license uri="http://www.apache.org/licenses/LICENSE-2.0.html">Apache2.0</license>
<notes>
Fixed (incompatible changes to be noted)
New Features
---
* Fixed a problem with Redis subscribe API design issues that caused duplicate subscriptions and subscription messages to be lost (see: [Subscription Mode Documentation](https://wiki.swoole.com/wiki/page/1041.html)) (#2305) (@windrunner414)
* After using coroutine, you can no longer use the traditional connection multiplexing method such as `pconnect`, otherwise it will generate the problem of multi-coroutine handle the same Socket at the same time (7b1e786) (@shiguangqi)
+ `Co::getContext` to get the coroutine context object ([RFC-1018](https://github.com/swoole/rfc-chinese/issues/45)) (@twose)
+ `Co::getPcid` to get the parent coroutine ID ([RFC-1017](https://github.com/swoole/rfc-chinese/issues/41)) (@twose)
+ `Co::exists` to know if a coroutine exists (@twose)
+ Runtime Coroutine Hook supports `stream_select` (#2358) (@matyhtf)
+ `max_wait_time` configuration support in BASE mode (#2282) (@shiguangqi)
+ Support for one-way delivery tasks in the `Master/Manager/User` process ([RFC-1015](https://github.com/swoole/rfc-chinese/issues/38)) (@matyhtf)
+ `Co\Socket` has two new APIs `recvAll` and `sendAll` to ensure complete receive/send data until completion or error (3700cbb) (@twose)
+ `Process` supports the coroutine mode, please refer to ([Use Coroutine in Process](https://wiki.swoole.com/wiki/page/p-process_coro.html))
+ `Process->exportSocket` to export `Co\Socket` object (91d3621) (@matyhtf)
+ Added `Server->getCallback` method to get the callback function of the specified name of the Server (@matyhtf)

Enhancement
---
+ Coroutine client re-supports full duplex (#2350) (@twosee)
+ Support for secure cross-coroutine socket close (#2327) (@twosee)
+ [RFC-1015](https://github.com/swoole/rfc-chinese/issues/38): Non-Worker Process Allows One-Way Delivery Task (222043a) (@matyhtf)
+ `swoole_strerror` supports automatic convert system error code and Swoole error code to text, no need to specify parameters (c92f444) (@twosee)
+ GDB trace tool supports viewing timer and reactor and hashmap information (2beb563) (@shiguangqi)
+ When MOVED and ASK errors occurred when using Redis cluster, it will be automatically transferred to the corresponding server (#2299) (@windrunner414)
+ Underlying code optimization, reducing memory copy when receiving packages (@matyhtf)
+ Now calling `Co\Socket->close()` will immediately close the fd instead of waiting for the object to be destructed, after closed, use any other API will return a BADF error (consistent with the system API) (7a61963) (@Twosee)
+ Some illegal parameters no longer cause fatal errors but generate a warning, because external parameters are sometimes uncontrollable and there is a certain risk (cd432d3) (@twosee)
+ API compatibility enhancement after use coroutine mode (consistent with sync mode) (36687e8) (@matyhtf)
+ Now swoole\src can be used as a C\C++ library at the same time (libswoole)
* The default max number of connections is 100K (instead of 10K) now. If the system configuration is less than this number, use the system configuration first (3d2e387) (@twose)
* Optimize the code for the `Timer` module, which now runs faster and accepts any number of arguments (#2347) (@twose)
* `Co::stats` will show more information such as the number of events, the number of registered signals, the number of AIO tasks, etc. (@matyhtf)
* `Co::getBackTrace` with no params is equivalent to `debug_backtrace` (@twose)
* `Co::listCoroutines` is renamed to `Co::list`, but the original name is still reserved as an alias (Backward compatibility) (@twose)
* `Table::exist`, `Server::exist` are renamed to `exists`, but the original name is still reserved as aliases (Backward compatibility) (@twose)
* Redis will automatically authenticate and select the corresponding database when it is automatically reconnected. Add API: `getOptions`, `getAuth`, `getDBNum` (#2303) (fdac8a3) (@windrunner414 &amp; @twose)
* The default Socket buffer size on FreeBSD should be 2M (750a29c) (@twose)
* `Server->stats` will show `worker_dispatch_count` which can get the number of requests submitted by the master to the current process. The number of requests in the queue can be got by `worker_dispatch_count - worker_request_count` (a353808) (@matyhtf)
* Remove `Nghttp2` dependencies, no longer need to install it, configuring compilation parameters to open
* Coroutines now have no max nesting level limitation (there are no real nesting relations between coroutines) (5458cbc) (@twose)
* When the coroutine reaches the max limitation, the HTTP server will return a 503 error indicating that the service is temporarily unavailable (ebd377f) (@twose)
* `defer` will now accept a parameter whose value is the return value at the end of the coroutine ([example](https://github.com/swoole/swoole-src/commit/ef978b3b432615b0f392958145d999f4e66584eb)) (@twose)

Fixed
---
* Fixed a possible coredump problem when there were a large number of objects before the extension load (4ddeedb) (@twosee)
* Fixed coredump caused by attempting to clear the uninitialized DNS cache (#2288) (@mabu233)
* When `task_enable_coroutine` is enabled, incorrectly calling `Server->finish` will trigger a fatal error (156ede6) (@twosee)
* The php.ini configuration now displays `On` and `Off` correctly (instead of 0 and 1) (fe25982) (@twosee)
* Fixed the `Co::getaddrinfo` parameter parser bug (#2273) (@mabu233)
* Fixed fd error when using dispatch_func in UDP mode (#2306) (@mabu233)
* Fixed the bug that dispatch_func does not work when specifying the function name, optimization for reducing memory copy (2bc49e4) (@twosee)
* PHP warnings will no longer be triggered when the task expires (but the underlying log warning of swoole) (54eee5e) (@matyhtf)
* Fixed enable coroutine states after process restarts (#2310)
* Fixed the user process id property (#2313) (@junwei-qu)
* Fixed the bug caused by incorrectly using the asynchronous API in the onStart callback in BASE mode (#2308) (@matyhtf)
* Fixed incorrect manager_id in BASE mode (e18e013) (@matyhtf)
* Fixed mmap using SEEK_END offset error (#2314) (@junwei-qu)
* Fixed getSocket memory leak (ec8c4b2) (@twosee)
* Optimized stream mode (47e0e9e) (@matyhtf)
* Fixed BUG caused by connection multiplexing in sync client with KEEP mode under certain conditions (4c5728b) (@matyhtf)
* Fixed an issue with `Atomic` multiple `wait` and `wakeup` overflows on MacOS (fbccb25) (@twosee)
* Fixed the problem of opening the static_handler directory traversal attack risk, this is a convenient debugging feature, please do not use for production (#2323) (@windrunner414)
* Fixed unchecked return value of futex_wait system call (#2351) (@junwei-qu)
* Fixed bugs in Redis::ZAdd API parsing parameters, and fix other potential type conversion problems (#2321) (21e0497) (a0e612f) (00134cf) (f5a331e) (5f87f17) (a15f094) (67f3285) (808f578) (d118fe3) (5294473) (48f6790) (0105c7f) (ba6c8b4) (@matyhtf)
* Fixed a third-party hook failure that could result from not using function pointers when sending data (89ba2da) (@matyhtf)
* Fixed a memory leak in the Timer::tick method when passing arguments (7e15141) (@mabu233)
* Fixed user process does not exit automatically (2901ce0) (@matyhtf)
* Fixed read operation timeout config (a990540) (@shiguangqi)
* Fixed the problem that the parameter timeout time does not take effect after the `Co\Client` open the package length check (#2346) (@twosee)
* Server is no longer in the control of `buffer_output_size` in BASE mode, only limited by `socket_buffer_size` (#2326) (@matyhtf)
* Fixed compilation error under FREEBSD (#2325) (@matyhtf)
* Compatibility: When the Mysql escape method fails, it will return an empty string instead of FALSE
* Fixed error when the task method passed a null argument (#2366) (@twose)
* Fixed Http client send big data incomplete (#2360) (@twose)
* Fixed the bug that unprocessed data in the buffer was lost when the TCP client used the eof protocol (a59ae39) (@twose)
* Fixed async security of Server Reload (022f859) (@matyhtf)
* Fixed the index value of the connection iterator (b066146) (@twose)
* Fixed the bug that Set-Cookie special characters are too long to be outputed (#2368) (@mabu233 &amp; @twose)
* Fixed the bug that Http client did not decode the cookie (duplicated encode when sent) (069ca5d) (@twose)
* Fixed Http client download with timeout lead to coredump (#2377) (@matyhtf &amp; @twose)
* Fixed `__call` and `call_user_func*` lead to coredump when calling MySQL client method (#2387) (@matyhtf)
* Fixed coredump when Http2 client header name passed in a number (#2375) (@mabu233)
* Fixed `Swoole\Event::dispatch` behavior not as expected (#2390) (@matyhtf)
* Fixed `Socks5` proxy handshake failed (94ef96c) (@twose)
* Fixed a memory read error caused by a connection failure in a low-version Linux kernel (5adf625) (@matyhtf &amp; @twose)
* Fixed the bug that the server used the timer in the BASE single-process mode not work (82eca13) (@twose)
* Fixed compilation failure due to unstable ZendAPI in low-version (768b8a7) (@shiguangqi)
* Fixed `EINVAL` when calling `sendto` (#2395) (@junwei)

Others
Unsupported
---
* Swoole\Serialize is now supported for PHP73, but it is still marked as a deprecated feature
- Create server or customs process after using async file IO are not allowed
- Create server or customs process in coroutine are not allowed

Removed
---
- `Websocket\Server->exists` only shows if the connection exists. Please use the `isEstablished` method to get if it is a Websocket client.
- Remove the `swoole.fast_serialize` configuration item
- Removed the PHP Warning when the `Co\Client` method return failed
- Remove the `Server->gzip` method
- Remove `PicoHttpParser` support

Remove async modules
---
Remove all async modules, separate asynchronous extensions to [async-ext](https://github.com/swoole/async-ext):

- Async functions
- MySQL
- Redis
- Http\Client
- Memory\Pool
- MsgQueue
- RingQueue
</notes>
<contents>
<dir name="/">
Expand Down Expand Up @@ -798,7 +817,6 @@
<file role="test" name="tests/swoole_coroutine/co_with_args.phpt" />
<file role="test" name="tests/swoole_coroutine/coro_stats.phpt" />
<file role="test" name="tests/swoole_coroutine/current.phpt" />
<file role="test" name="tests/swoole_coroutine/deep.phpt" />
<file role="test" name="tests/swoole_coroutine/defer/defer.phpt" />
<file role="test" name="tests/swoole_coroutine/defer/defer_close.phpt" />
<file role="test" name="tests/swoole_coroutine/defer/defer_exception.phpt" />
Expand All @@ -820,6 +838,7 @@
<file role="test" name="tests/swoole_coroutine/forbidden_case/array_map.phpt" />
<file role="test" name="tests/swoole_coroutine/forbidden_case/call_user.phpt" />
<file role="test" name="tests/swoole_coroutine/forbidden_case/invoke.phpt" />
<file role="test" name="tests/swoole_coroutine/getContext.phpt" />
<file role="test" name="tests/swoole_coroutine/getPcid.phpt" />
<file role="test" name="tests/swoole_coroutine/gethostbyname.phpt" />
<file role="test" name="tests/swoole_coroutine/list_and_backtrace.phpt" />
Expand All @@ -829,6 +848,8 @@
<file role="test" name="tests/swoole_coroutine/nested3.phpt" />
<file role="test" name="tests/swoole_coroutine/nested_empty.phpt" />
<file role="test" name="tests/swoole_coroutine/nested_uid.phpt" />
<file role="test" name="tests/swoole_coroutine/new_process.phpt" />
<file role="test" name="tests/swoole_coroutine/new_server.phpt" />
<file role="test" name="tests/swoole_coroutine/no_inline_func.phpt" />
<file role="test" name="tests/swoole_coroutine/output/create.phpt" />
<file role="test" name="tests/swoole_coroutine/output/in_nested_co.phpt" />
Expand All @@ -839,6 +860,7 @@
<file role="test" name="tests/swoole_coroutine/parallel3.phpt" />
<file role="test" name="tests/swoole_coroutine/pdo_error_handing.phpt" />
<file role="test" name="tests/swoole_coroutine/private_access.phpt" />
<file role="test" name="tests/swoole_coroutine/resume_loop.phpt" />
<file role="test" name="tests/swoole_coroutine/scheduler.phpt" />
<file role="test" name="tests/swoole_coroutine/swoole_async_dns_lookup_coro.phpt" />
<file role="test" name="tests/swoole_coroutine/use_process.phpt" />
Expand Down Expand Up @@ -1011,6 +1033,7 @@
<file role="test" name="tests/swoole_http_server/form_data_with_charset.phpt" />
<file role="test" name="tests/swoole_http_server/issue_2360.phpt" />
<file role="test" name="tests/swoole_http_server/large_url.phpt" />
<file role="test" name="tests/swoole_http_server/max_coro_num.phpt" />
<file role="test" name="tests/swoole_http_server/mixed_server.phpt" />
<file role="test" name="tests/swoole_http_server/no_compression.phpt" />
<file role="test" name="tests/swoole_http_server/pipeline.phpt" />
Expand Down Expand Up @@ -1203,6 +1226,7 @@
<file role="test" name="tests/swoole_server/bug_1864.phpt" />
<file role="test" name="tests/swoole_server/bug_2308.phpt" />
<file role="test" name="tests/swoole_server/bug_2313.phpt" />
<file role="test" name="tests/swoole_server/bug_aio.phpt" />
<file role="test" name="tests/swoole_server/connections.phpt" />
<file role="test" name="tests/swoole_server/dispatch_by_stream.phpt" />
<file role="test" name="tests/swoole_server/dispatch_func.phpt" />
Expand All @@ -1224,6 +1248,7 @@
<file role="test" name="tests/swoole_server/heartbeat.phpt" />
<file role="test" name="tests/swoole_server/heartbeat_true.phpt" />
<file role="test" name="tests/swoole_server/heartbeat_with_base.phpt" />
<file role="test" name="tests/swoole_server/invalid_fd.phpt" />
<file role="test" name="tests/swoole_server/kill_user_process_01.phpt" />
<file role="test" name="tests/swoole_server/kill_user_process_02.phpt" />
<file role="test" name="tests/swoole_server/kill_worker_01.phpt" />
Expand Down Expand Up @@ -1265,6 +1290,7 @@
<file role="test" name="tests/swoole_server/task/task_callback.phpt" />
<file role="test" name="tests/swoole_server/task/task_co.phpt" />
<file role="test" name="tests/swoole_server/task/task_enable_coroutine.phpt" />
<file role="test" name="tests/swoole_server/task/task_enable_coroutine_return.phpt" />
<file role="test" name="tests/swoole_server/task/task_in_manager.phpt" />
<file role="test" name="tests/swoole_server/task/task_in_master.phpt" />
<file role="test" name="tests/swoole_server/task/task_in_task_worker.phpt" />
Expand All @@ -1291,9 +1317,11 @@
<file role="test" name="tests/swoole_server_port/sub_handshake.phpt" />
<file role="test" name="tests/swoole_server_port/tcp_eof.phpt" />
<file role="test" name="tests/swoole_socket_coro/accept.phpt" />
<file role="test" name="tests/swoole_socket_coro/all.phpt" />
<file role="test" name="tests/swoole_socket_coro/closed.phpt" />
<file role="test" name="tests/swoole_socket_coro/complete_test.phpt" />
<file role="test" name="tests/swoole_socket_coro/concurrency.phpt" />
<file role="test" name="tests/swoole_socket_coro/fd.phpt" />
<file role="test" name="tests/swoole_socket_coro/getSocket.phpt" />
<file role="test" name="tests/swoole_socket_coro/getsockname.phpt" />
<file role="test" name="tests/swoole_socket_coro/recv_timeout.phpt" />
Expand All @@ -1315,6 +1343,7 @@
<file role="test" name="tests/swoole_timer/greater_than_0.phpt" />
<file role="test" name="tests/swoole_timer/manager.phpt" />
<file role="test" name="tests/swoole_timer/master.phpt" />
<file role="test" name="tests/swoole_timer/master_base.phpt" />
<file role="test" name="tests/swoole_timer/next_round.phpt" />
<file role="test" name="tests/swoole_timer/swoole_timer_after.phpt" />
<file role="test" name="tests/swoole_timer/task_worker.phpt" />
Expand Down

0 comments on commit c64e9ae

Please sign in to comment.