|
49 | 49 | |
50 | 50 | <active>yes</active> |
51 | 51 | </developer> |
52 | | - <date>2025-10-15</date> |
53 | | - <time>16:00:00</time> |
| 52 | + <date>2025-10-30</date> |
| 53 | + <time>22:00:00</time> |
54 | 54 | <version> |
55 | | - <release>6.1.0</release> |
| 55 | + <release>6.1.1</release> |
56 | 56 | <api>6.0</api> |
57 | 57 | </version> |
58 | 58 | <stability> |
|
61 | 61 | </stability> |
62 | 62 | <license uri="http://www.apache.org/licenses/LICENSE-2.0.html">Apache2.0</license> |
63 | 63 | <notes> |
64 | | - Major Changes in Swoole 6.1.0 |
65 | | - 1. Introduction of "Standard Library Extensions" - Revolutionary Syntax Enhancements |
66 | | - This is the most eye-catching feature at the language level in this update, allowing object-oriented operations on basic types. |
67 | | - Object-Oriented Basic Types: Methods can be called directly on variables of basic types like string, array, and stream (e.g., $text->length()->lower()), greatly improving code readability and development experience. |
68 | | - Typed Arrays: Introduced the typed_array syntax, allowing constraints on key and value types, with type checks performed on write operations, enhancing code robustness. |
| 64 | + 🐛 Bug Fixes |
| 65 | + - Fixed a compilation failure caused by missing `zlib` dependency. |
| 66 | + - Optimized the resource management logic in the `curl` module to prevent use-after-free risks. |
| 67 | + - Resolved the absence of `fdatasync` on macOS systems. |
69 | 68 |
|
70 | | - 2. A Major Leap in Underlying Architecture and Stability |
71 | | - This version invests heavily in code quality and stability, laying a solid foundation for future development. |
72 | | - Significant Increase in Test Coverage to 86%: By systematically adding test cases, potential errors are greatly reduced, improving the overall reliability and maintainability of the project. |
73 | | - Large-Scale Code Refactoring and Static Analysis: Refactored multiple core modules like Reactor, SSL, and Socket, and used clang-tidy for code standardization, significantly improving code quality and performance. |
74 | | - |
75 | | - 3. Major Simplification and Unification of the Lock API |
76 | | - A groundbreaking refactoring of the core component for concurrent programming – the lock. |
77 | | - API Simplification: Removed methods like lockwait and trylock, retaining only three core methods – __construct, lock, and unlock – for Swoole\Coroutine\Lock, Swoole\Lock, and Swoole\Thread\Lock. |
78 | | - Unified Behavior: The new API design is closer to PHP's native flock function, reducing the learning curve, and uses standard constants like LOCK_EX | LOCK_NB to implement advanced features such as non-blocking. |
79 | | - |
80 | | - 4. Enhanced Coroutine Capabilities and Fine-Grained Control |
81 | | - More flexible coroutine operation capabilities. |
82 | | - Coroutine Cancellation Mechanism: Swoole\Coroutine::cancel() now includes a $throw_exception parameter, allowing a catchable Swoole\Coroutine\CanceledException to be thrown into the target coroutine upon cancellation, enabling safer and more controllable coroutine lifecycle management. |
83 | | - Coroutine State Isolation for Serialization Operations: Fixed the issue of global state isolation for serialize/unserialize in coroutine environments. Global variables related to serialization are now automatically saved and restored during coroutine switches, ensuring isolated serialization contexts for each coroutine. |
84 | | - |
85 | | - 5. Default HTTP Parser Upgrade, Websocket Feature Enhancements, and Platform Compatibility Improvements |
86 | | - Important improvements in performance and compatibility. |
87 | | - llHTTP Enabled by Default: Replaced the old http_parser with the more performant and modern llhttp, improving the efficiency and reliability of HTTP processing. |
88 | | - WebSocket Feature Enhancements: Both client and server now support receiving fragmented messages, actively disconnecting (disconnect), and sending Ping frames (ping), making the WebSocket protocol implementation more complete. |
89 | | - Deprecating Select, Embracing Poll: Completely deprecated the flawed select event mechanism. On platforms that do not support epoll/kqueue (like Cygwin), poll is now used by default, enabling support for a large number of concurrent connections on these platforms as well. |
| 69 | + 🛠️ Kernel Optimizations |
| 70 | + - Improved the log output format for coroutine deadlock detection. |
90 | 71 | </notes> |
91 | 72 | <contents> |
92 | 73 | <dir name="/"> |
|
179 | 160 | <file role="src" name="core-tests/src/server/multipart_parser.cpp" /> |
180 | 161 | <file role="src" name="core-tests/src/server/port.cpp" /> |
181 | 162 | <file role="src" name="core-tests/src/server/server.cpp" /> |
| 163 | + <file role="doc" name="docs/API.md" /> |
182 | 164 | <file role="doc" name="docs/CHANGELOG.md" /> |
183 | 165 | <file role="doc" name="docs/CODE-STYLE.md" /> |
184 | 166 | <file role="src" name="docs/CPPLINT.cfg" /> |
|
773 | 755 | <file role="src" name="scripts/simple-compile.sh" /> |
774 | 756 | <file role="src" name="src/core/base.cc" /> |
775 | 757 | <file role="src" name="src/core/base64.cc" /> |
| 758 | + <file role="src" name="src/core/buffer.cc" /> |
776 | 759 | <file role="src" name="src/core/channel.cc" /> |
777 | 760 | <file role="src" name="src/core/crc32.cc" /> |
778 | 761 | <file role="src" name="src/core/error.cc" /> |
|
796 | 779 | <file role="src" name="src/lock/mutex.cc" /> |
797 | 780 | <file role="src" name="src/lock/rw_lock.cc" /> |
798 | 781 | <file role="src" name="src/lock/spin_lock.cc" /> |
799 | | - <file role="src" name="src/memory/buffer.cc" /> |
800 | 782 | <file role="src" name="src/memory/fixed_pool.cc" /> |
801 | 783 | <file role="src" name="src/memory/global_memory.cc" /> |
802 | 784 | <file role="src" name="src/memory/ring_buffer.cc" /> |
|
2516 | 2498 | <file role="test" name="tests/swoole_thread/server/send_large_packet.phpt" /> |
2517 | 2499 | <file role="test" name="tests/swoole_thread/server/setting.phpt" /> |
2518 | 2500 | <file role="test" name="tests/swoole_thread/server/stop_worker.phpt" /> |
| 2501 | + <file role="test" name="tests/swoole_thread/server/taskCo.phpt" /> |
| 2502 | + <file role="test" name="tests/swoole_thread/server/taskWaitMulti.phpt" /> |
2519 | 2503 | <file role="test" name="tests/swoole_thread/server/udp_port.phpt" /> |
2520 | 2504 | <file role="test" name="tests/swoole_thread/server/websocket.phpt" /> |
2521 | 2505 | <file role="test" name="tests/swoole_thread/shell_exec.phpt" /> |
|
2794 | 2778 | <required> |
2795 | 2779 | <php> |
2796 | 2780 | <min>8.1.0</min> |
| 2781 | + <max>8.4.99</max> |
2797 | 2782 | </php> |
2798 | 2783 | <pearinstaller> |
2799 | 2784 | <min>1.4.0</min> |
|
0 commit comments