Skip to content

Commit 81c1297

Browse files
committed
Update version for Swoole 4.4.1
1 parent 51e4d37 commit 81c1297

File tree

5 files changed

+37
-108
lines changed

5 files changed

+37
-108
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PROJECT(libswoole)
22

33
ENABLE_LANGUAGE(ASM)
4-
SET(SWOOLE_VERSION 4.4.0)
4+
SET(SWOOLE_VERSION 4.4.1)
55
SET(SWOOLE_CLFLAGS pthread rt dl ssl crypt crypto)
66
set(CMAKE_CXX_STANDARD 11)
77
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

include/swoole.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ int clock_gettime(clock_id_t which_clock, struct timespec *t);
107107
#define SWOOLE_MAJOR_VERSION 4
108108
#define SWOOLE_MINOR_VERSION 4
109109
#define SWOOLE_RELEASE_VERSION 1
110-
#define SWOOLE_EXTRA_VERSION "alpha"
111-
#define SWOOLE_VERSION "4.4.1-alpha"
110+
#define SWOOLE_EXTRA_VERSION ""
111+
#define SWOOLE_VERSION "4.4.1"
112112
#define SWOOLE_VERSION_ID 40401
113113
#define SWOOLE_BUG_REPORT \
114114
"A bug occurred in Swoole-v" SWOOLE_VERSION ", please report it.\n"\

package.xml

Lines changed: 32 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@
4242
<email>[email protected]</email>
4343
<active>yes</active>
4444
</developer>
45-
<date>2019-07-06</date>
46-
<time>15:00:00</time>
45+
<date>2019-07-16</date>
46+
<time>14:00:00</time>
4747
<version>
48-
<release>4.4.0</release>
48+
<release>4.4.1</release>
4949
<api>4.0</api>
5050
</version>
5151
<stability>
@@ -54,110 +54,22 @@
5454
</stability>
5555
<license uri="http://www.apache.org/licenses/LICENSE-2.0.html">Apache2.0</license>
5656
<notes>
57-
Backward incompatible changes
58-
---
59-
60-
- Consistent with `PHP` official, no longer supports `PHP7.0` (@matyhtf)
61-
- Remove the `Serialize` module, which is maintained in a separate [ext-serialize](https://github.com/swoole/ext-serialize) extension. Reason: Due to frequent changes to the `PHP` kernel, stability cannot be guaranteed
62-
- Remove the `PostgreSQL` module and maintain it in a separate [ext-postgresql](https://github.com/swoole/ext-postgresql) extension. Reason: `PostgreSQL` uses asynchronous ways in the kernel and lacks the necessary unit tests to guarantee quality
63-
- `Runtime::enableCoroutine` is no longer automatically compatible with the internal and external environment of the Coroutine. Once enabled, all blocking operations must be called in the Coroutine (@matyhtf)
64-
* Due to the introduction of the new `Coroutine\MySQL` client driver, the underlying design is more standardized, but there are some small downward incompatible changes
65-
* `Coroutine\MySQL->fetch/nextResult` is optimized for on-demand reads, which will trigger IO scheduling
66-
* When the `defer` attribute is on, the request of `statement` needs to use `statement->recv` to receive the response
67-
* When the `defer/fetch_mode` feature is enabled, if there is unreceived data, a new request will be banned
68-
* Unlike asynchronous, the `connected` attribute is no longer updated based on events in real time (It's not reliable) but is updated after the `IO` operation fails
69-
- `Coroutine\Http\Client->set_cookie_headers` no longer have key names (#2664) (@twose)
70-
71-
Deprecated content
72-
---
73-
74-
- The `Buffer` module will be discarded. Reason: It is highly replaceable and has low usage. It can be replaced by `PHP` string or `fopen("memory")`
75-
- The `Lock` module will be discarded. Reason for discarding: There may be problems with locking in the Coroutine. You can use `Chan` to implement the Lock of the Coroutine version
76-
- Since async `stream_socket_pair` is introduced, it is recommended to enable the hook by flag `SWOOLE_HOOK_STREAM_FUNCTION` instead of `SWOOLE_HOOK_STREAM_SELECT`
77-
78-
New features
79-
---
80-
81-
+ Added `[Library](https://github.com/swoole/swoole-src/tree/master/library)`, using pure `PHP` to write kernel functions instead of `C/C++`, providing the following features
82-
+ Added high quality `PHP` module `Coroutine\WaitGroup` (@twose)
83-
+ Use the `PHP` code to implement the CURL hook, one-click to make the CURL non-blocking, currently the experimental feature, you need to call `Runtime::enableCoroutine(SWOOLE_HOOK_CURL)` to open (@matyhtf) (@Yurunsoft)
84-
+ Use `PHP` code to implement `exec`/`shell_exec` of Coroutine version (#2657) (@Yurunsof)
85-
+ When `RuntimeHook` is turned on, the function `array_walk`, `array_walk_recursive` will be replaced by the version of Swoole, which will solve the problem that the native function cannot be reentrant, but it will not be able to traverse object (@matyhtf) (@twose)
86-
+ Added a new Coroutine Preemptive Scheduler to prevent the Coroutine from taking too long CPU time to cause other Coroutine to starve. Open the `swoole.enable_preemptive_scheduler = On` by `php.ini`. For details, see [preemptive_scheduler] ( Https://github.com/swoole/swoole-src/tree/master/tests/swoole_coroutine_scheduler/preemptive) (@shiguangqi)
87-
+ Added `Timer::list()` to get `Timer\Iterator`, which can traverse all timers, `Timer\clearAll` clears all timers, `Timer\info(int $id)` gets timer information, ` Timer::stats()` gets the global timer status (#2498) (@twose)
88-
+ Added two methods `getOption` and `setOption` for `Coroutine\Socket` (9d13c29) (@matyhtf)
89-
+ Added `$master_pid` property and `shutdown` method to `Process\Pool` (a1d6eaa) (@matyhtf)
90-
+ Added the 4th parameter of the constructor of `Process\Pool`, when true, the underlying layer will automatically create the Coroutine in the `onWorkerStart` callback (8ceb32cd) (@matyhtf)
91-
+ Support non-blocking `stream_socket_pair` in Runtime hook (#2546) (@matyhtf)
92-
+ Added `static_handler_locations` setting of `Http\Server` to set static file path (@matyhtf)
93-
+ Added `Coroutine\Http\Client->setBasicAuth` method to automatically send `Authorization` header (#2542) (@hongbshi)
94-
+ Added `Coroutine\Http2\Client->ping` method (40041f6) (@shiguangqi)
95-
+ Added `task_use_object` (#2659) (aa01317) (@twose)
96-
9757
Enhancement
9858
---
99-
100-
+ New `Coroutine\MySQL\Client` driver (#2538) (@twose)
101-
+ The underlying programming mode using `C++` and Coroutine (sync writing, async performance)
102-
+ Support SSL connection (configure `['ssl' => true]` when connect)
103-
+ Support request with large data (unlimited)
104-
+ Support response with large data (unlimited)
105-
+ Support `fetch` to read by line (now `fetch` is read on demand, data without fetch does not consume user memory) (#2106)
106-
+ Support `nextResult` read on demand (ibid)
107-
+ Optimized protocol parser
108-
+ `date` related type decimal precision support
109-
+ Error code and information are consistent with `PDO`/`mysqli`
110-
+ `Coroutine\Redis` compatibility mode, enabled by `$redis->set(['compatibility_mode' => true])`, which can make the result of `hmGet/hGetAll/zRange/zRevRange/zRangeByScore/zRevRangeByScore` consistent with phpredis (#2529) (@caohao-php)
111-
+ Now `100K` Coroutine are allowed to exist at the same time by default (c69d320b) (@twose)
112-
+ Support `bailout` (can exit the process correctly when a fatal error occurs in the Coroutine) (#2579) (@twose)
113-
+ `Server` can display a friendly `400/404/503` when error occurred (@matyhtf) (f3f2be9d)
114-
+ `Server` enable `reload_async` and `send_yield` by default (#2555) (9d4a4c47) (@matyhtf)
115-
+ `Server->onFinish` callback is in Coroutine (@twose)
116-
+ `Coroutine\Http\Client` enable `websocket_mask` by default
117-
(c02f4f85) (@twose)
118-
+ Scheduling operation of `Channel` outside the Coroutine is no longer allowed (519b6043) (@twose)
119-
+ `WebSocket\Server` will close the connection when the handshake fails (#2510) (@twose)
120-
+ Under the `Linux`, the dead parent process will automatically send a signal to kill the child process (4b833a3d) (@matyhtf)
121-
+ Memory optimization of `Socket->recv` (642a3552) (@twose)
122-
+ Floating point calculation optimization (#2572) (@tangl163)
123-
+ All built-in classes prohibit cloning/serializing/unseting-declared-properties (f9c974b8) (@twose)
124-
+ `Server->bind` will generate a warning and return false when `uid` is more than `UINT32_MAX`
125-
+ Support `PHP7.4` (#2506) (@twose)
59+
+ Support send response with non-zero Content-length without body for HEAD request (#2690) (@matyhtf)
60+
+ Support `Coroutine::getPcid` by a random cid (#2669) (@huanghantao)
12661

12762
Fixed
12863
---
129-
* Fixed `getProcess` of `Process\Pool` (#2522) (@matyhtf)
130-
* Fixed a bug that exceptions were ignored in some special cases (@twose)
131-
* Fixed memory leak by timer after `fork` process (8f3abee7) (@twose)
132-
* Fixed timezone on non-Linux systems (#2584) (@devnexen)
133-
* Fixed `enable_coroutine=false` + `task_enable_coroutine=true` (#2585) (@matyhtf)
134-
* Fixed Http2's trailer method can not output a empty value header (#2578) (@twose)
135-
* Fixed `Coroutine\Http\Client->setCookies` memory error in special cases (#2644) (@Yurunsoft)
136-
* Fixed #2639 (#2656) (@mabu233)
137-
* Fixed `arginfo_swoole_process_pool_getProcess` (#2658) (@mabu233)
138-
* Fixed `static_handler` does not support soft links (@matyhtf)
139-
* Fixed a bug (I don't know how to describe it) (22504dd4) (@matyhtf)
140-
* Fixed `Server->getClientInfo` error (#2639) (@matyhtf)
141-
* Fixed an illegal operation of the same Socket with multiple Coroutine operations (#2661) (@twose)
142-
* Fixed swoole_table iterator coredump (#2663) (@mabu233)
143-
144-
Coroutine scheduler [?](https://wiki.swoole.com/wiki/page/1487.html)
145-
----
146-
+ Added `Swoole\Coroutine\Scheduler` class as the entry for the `cli` script, replacing `go() + Swoole\Event::wait()`
147-
+ Added `Swoole\Coroutine\Run` function to provide wrapper for `Swoole\Coroutine\Scheduler`
148-
- `go() + Swoole\Event::wait()` may be deprecated
149-
150-
Internal
151-
---
152-
+ Continuous underlying code quality optimization work (@swoole)
153-
+ More unit tests, and use the assertion library [swoole/assert] based on [webmozart/assert] (https://github.com/webmozart/assert) secondary development (https://github.com) /swoole/assert) (@twose)
154-
+ Completely abolish the `Windows` support plan
155-
+ `Coroutine\Http2\Client` refactor (f64874c3) (@matyhtf)
156-
+ The faster callback function caller (@twose)
157-
158-
Experimental content
159-
---
160-
+ May add `Coroutine\Server` and `Coroutine\Http\Server` in `5.0`
64+
* Fixed `SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER` (#2667) (@twose)
65+
* Fixed signal listener (#2675) (@matyhtf)
66+
* Fixed MySQL incompatibility changes (#2674) (@twose)
67+
* Fixed add event after server start (#2673) (@matyhtf)
68+
* Fixed `static_handler` can not decode url (#2676) (@twose)
69+
* Fixed task worker warning (#2689) (@Yurunsoft)
70+
* Fixed `Http\Request->rawContent` (#2682) (@twose)
71+
* Fixed invalid read when `Timer::clearAll` (6b0263b) (@matyhtf)
72+
* Fixed `Coroutine\Http\Client` send failed (432259d) (@twose)
16173
</notes>
16274
<contents>
16375
<dir name="/">
@@ -705,7 +617,6 @@
705617
<file role="src" name="swoole_coroutine.cc" />
706618
<file role="src" name="swoole_coroutine.h" />
707619
<file role="src" name="swoole_coroutine_scheduler.cc" />
708-
<file role="src" name="swoole_coroutine_scheduler.h" />
709620
<file role="src" name="swoole_coroutine_system.cc" />
710621
<file role="src" name="swoole_coroutine_system.h" />
711622
<file role="src" name="swoole_event.cc" />
@@ -980,6 +891,7 @@
980891
<file role="test" name="tests/swoole_coroutine/forbidden_case/invoke.phpt" />
981892
<file role="test" name="tests/swoole_coroutine/getContext.phpt" />
982893
<file role="test" name="tests/swoole_coroutine/getPcid.phpt" />
894+
<file role="test" name="tests/swoole_coroutine/getPcid_by_random_cid.phpt.phpt" />
983895
<file role="test" name="tests/swoole_coroutine/gethostbyname.phpt" />
984896
<file role="test" name="tests/swoole_coroutine/iterator.phpt" />
985897
<file role="test" name="tests/swoole_coroutine/list_and_backtrace.phpt" />
@@ -1010,6 +922,7 @@
1010922
<file role="test" name="tests/swoole_coroutine/user_coroutine.phpt" />
1011923
<file role="test" name="tests/swoole_coroutine/user_coroutine_2.phpt" />
1012924
<file role="test" name="tests/swoole_coroutine_scheduler/hook_flags.phpt" />
925+
<file role="test" name="tests/swoole_coroutine_scheduler/hook_flags_2.phpt" />
1013926
<file role="test" name="tests/swoole_coroutine_scheduler/parallel.phpt" />
1014927
<file role="test" name="tests/swoole_coroutine_scheduler/preemptive/disable.phpt" />
1015928
<file role="test" name="tests/swoole_coroutine_scheduler/preemptive/disable2.phpt" />
@@ -1055,6 +968,7 @@
1055968
<file role="test" name="tests/swoole_coroutine_wait_group/base.phpt" />
1056969
<file role="test" name="tests/swoole_coroutine_wait_group/empty.phpt" />
1057970
<file role="test" name="tests/swoole_coroutine_wait_group/logic.phpt" />
971+
<file role="test" name="tests/swoole_event/add_after_server_start.phpt" />
1058972
<file role="test" name="tests/swoole_event/defer.phpt" />
1059973
<file role="test" name="tests/swoole_event/defer_with_sleep.phpt" />
1060974
<file role="test" name="tests/swoole_event/defer_without_io.phpt" />
@@ -1079,6 +993,7 @@
1079993
<file role="test" name="tests/swoole_feature/cross_close/stream_by_server.phpt" />
1080994
<file role="test" name="tests/swoole_feature/full_duplex/client.phpt" />
1081995
<file role="test" name="tests/swoole_feature/full_duplex/socket.phpt" />
996+
<file role="test" name="tests/swoole_feature/full_duplex/socket_ssl.phpt" />
1082997
<file role="test" name="tests/swoole_feature/full_duplex/websocket.phpt" />
1083998
<file role="test" name="tests/swoole_function/swoole_clear_dns_cache.phpt" />
1084999
<file role="test" name="tests/swoole_function/swoole_cpu_num.phpt" />
@@ -1187,6 +1102,7 @@
11871102
<file role="test" name="tests/swoole_http_server/dispatch_mode_7.phpt" />
11881103
<file role="test" name="tests/swoole_http_server/enable_coroutine.phpt" />
11891104
<file role="test" name="tests/swoole_http_server/form_data_with_charset.phpt" />
1105+
<file role="test" name="tests/swoole_http_server/head_method.phpt" />
11901106
<file role="test" name="tests/swoole_http_server/https.phpt" />
11911107
<file role="test" name="tests/swoole_http_server/issue_2360.phpt" />
11921108
<file role="test" name="tests/swoole_http_server/large_url.phpt" />
@@ -1202,16 +1118,19 @@
12021118
<file role="test" name="tests/swoole_http_server/static_handler.phpt" />
12031119
<file role="test" name="tests/swoole_http_server/static_handler/locations.phpt" />
12041120
<file role="test" name="tests/swoole_http_server/static_handler/relative_path.phpt" />
1121+
<file role="test" name="tests/swoole_http_server/static_handler/urldecode.phpt" />
12051122
<file role="test" name="tests/swoole_http_server/task/enable_coroutine.phpt" />
12061123
<file role="test" name="tests/swoole_http_server/task/enable_coroutine_with_wrong_usage.phpt" />
12071124
<file role="test" name="tests/swoole_http_server/task/use_object.phpt" />
12081125
<file role="test" name="tests/swoole_http_server/too_many_special_chars_in_cookie.phpt" />
12091126
<file role="test" name="tests/swoole_http_server/unixsocket.phpt" />
1127+
<file role="test" name="tests/swoole_http_server/unixsocket2.phpt" />
12101128
<file role="test" name="tests/swoole_http_server/unset_response_header.phpt" />
12111129
<file role="test" name="tests/swoole_http_server/upload.phpt" />
12121130
<file role="test" name="tests/swoole_http_server/uploadFile.phpt" />
12131131
<file role="test" name="tests/swoole_http_server/upload_02.phpt" />
12141132
<file role="test" name="tests/swoole_http_server/upload_03.phpt" />
1133+
<file role="test" name="tests/swoole_http_server_coro/bug_2682.phpt" />
12151134
<file role="test" name="tests/swoole_http_server_coro/error_404.phpt" />
12161135
<file role="test" name="tests/swoole_http_server_coro/handle.phpt" />
12171136
<file role="test" name="tests/swoole_http_server_coro/https.phpt" />
@@ -1283,9 +1202,12 @@
12831202
<file role="test" name="tests/swoole_library/exec/shell_exec/1.phpt" />
12841203
<file role="test" name="tests/swoole_library/object_pool/base.phpt" />
12851204
<file role="test" name="tests/swoole_library/string_object/base.phpt" />
1205+
<file role="test" name="tests/swoole_library/wait_group/normal.phpt" />
1206+
<file role="test" name="tests/swoole_library/wait_group/timeout.phpt" />
12861207
<file role="test" name="tests/swoole_mysql_coro/abandon_prepare_dtor.phpt" />
12871208
<file role="test" name="tests/swoole_mysql_coro/aborted_clients.phpt" />
12881209
<file role="test" name="tests/swoole_mysql_coro/another_coroutine.phpt" />
1210+
<file role="test" name="tests/swoole_mysql_coro/bc_fetchAll.phpt" />
12891211
<file role="test" name="tests/swoole_mysql_coro/bc_sync_properties.phpt" />
12901212
<file role="test" name="tests/swoole_mysql_coro/big_data.phpt" />
12911213
<file role="test" name="tests/swoole_mysql_coro/bug_0814.phpt" />
@@ -1498,6 +1420,10 @@
14981420
<file role="test" name="tests/swoole_server/enable_coroutine.phpt" />
14991421
<file role="test" name="tests/swoole_server/eof_protocol.phpt" />
15001422
<file role="test" name="tests/swoole_server/eof_server.phpt" />
1423+
<file role="test" name="tests/swoole_server/event/manager_start.phpt" />
1424+
<file role="test" name="tests/swoole_server/event/manager_stop.phpt" />
1425+
<file role="test" name="tests/swoole_server/event/shutdown.phpt" />
1426+
<file role="test" name="tests/swoole_server/event/start.phpt" />
15011427
<file role="test" name="tests/swoole_server/exist.phpt" />
15021428
<file role="test" name="tests/swoole_server/force_reload.phpt" />
15031429
<file role="test" name="tests/swoole_server/force_reload2.phpt" />
@@ -1544,6 +1470,8 @@
15441470
<file role="test" name="tests/swoole_server/shutdown_in_master.phpt" />
15451471
<file role="test" name="tests/swoole_server/shutdown_in_process.phpt" />
15461472
<file role="test" name="tests/swoole_server/shutdown_with_base_mode.phpt" />
1473+
<file role="test" name="tests/swoole_server/sigint_with_base.phpt" />
1474+
<file role="test" name="tests/swoole_server/sigint_with_process.phpt" />
15471475
<file role="test" name="tests/swoole_server/slow_client.phpt" />
15481476
<file role="test" name="tests/swoole_server/ssl.phpt" />
15491477
<file role="test" name="tests/swoole_server/ssl_verify_01.phpt" />
@@ -1660,6 +1588,7 @@
16601588
<file role="test" name="tests/swoole_websocket_server/send_encode_async.phpt" />
16611589
<file role="test" name="tests/template" />
16621590
<file role="test" name="tests/test.sql" />
1591+
<file role="src" name="thirdparty/boost/asm/combined.S" />
16631592
<file role="src" name="thirdparty/boost/asm/jump_arm64_aapcs_elf_gas.S" />
16641593
<file role="src" name="thirdparty/boost/asm/jump_arm64_aapcs_macho_gas.S" />
16651594
<file role="src" name="thirdparty/boost/asm/jump_arm_aapcs_elf_gas.S" />

tests/swoole_library/wait_group/normal.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
--TEST--
2-
swoole_library/object_pool: base
2+
swoole_library/wait_group: base
33
--SKIPIF--
44
<?php require __DIR__ . '/../../include/skipif.inc'; ?>
55
--FILE--

tests/swoole_library/wait_group/timeout.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
--TEST--
2-
swoole_library/object_pool: base
2+
swoole_library/wait_group: base
33
--SKIPIF--
44
<?php require __DIR__ . '/../../include/skipif.inc'; ?>
55
--FILE--

0 commit comments

Comments
 (0)