@twose twose released this Oct 16, 2018 · 34 commits to master since this release

Assets 2

This version is mostly based on the v4.2.2 made some fixes

  • Add Co::statvfs to retrieve file system information
  • Fixed non-array property error on swoole_http_response object
  • Fixed bad version number, add automated fixing tool

@twose twose released this Oct 15, 2018

Assets 2
  • Task process supports asynchronous and coroutine
  • Refactor addListener, now developers can add new service listeners in any order
  • Support mixed server of http, http2, websocket, tcp
  • Completed coroutine redis client method parameter definition
  • Co::readFile supports reading non-disk files
  • Now static_handler supports more file types and skips files with length 0
  • Fixed multipart/form-data in some cases parsing errors
  • Fixed the dislocation of sendfile data on MacOS
  • Fixed bug where SIGRTMIN processing error caused the log file to fail to reopen
  • Fixed a bug where redis-client last error value was not cleared and the next request was incorrect
  • Fixed a bug about connecting a connected asynchronous redis coredump
  • Fixed MySQL client protocol processing parameter binding NULL bug
  • Fixed segment fault caused by file hook, closed the include/require coroutine
  • Fixed the socket hook construct error
  • Fixed the sleep hook
  • Fixed a bug that returned an illegal pointer when reading an unset object property
  • Fixed the bug that after event_wait, EG(scope) is not restored in PHP70, causing private properties to be inaccessible
  • Alpine dependency compatibility optimization
  • Cygwin compatibility optimization
  • Support log_level to block warning information
  • Distinguish 204 response then skip body processing
  • The underlying code is cleaned up, all TSRM macros, PHP5 compatible macros and functions are removed, useless stack allocation and multiple pointers are reduced, FASTZPP is re-enabled to improve parameter parsing performance
  • Error tips optimization, error reporting guidelines will be generated when the underlying crash occurs

@twose twose released this Sep 19, 2018 · 220 commits to master since this release

Assets 2
  • This version is based on the previous version and made some fixes.
  • Fixed compilation failure caused by no time_nanosleep in some environments
  • Fixed loading error in PHP-ZTS version
  • Fixed the bad file descriptor error when using coroutine in dispatch mode 7
  • Fixed exit interceptor does not work
  • Fixed too long domain name DNS buffer overflow in client

@twose twose released this Sep 18, 2018 · 235 commits to master since this release

Assets 2
  • Add new coroutine hooks, tcp, udp, ssl, tls, sleep, usleep, and file read and write, mkdir...etc, be async automatically
  • New ability of the server/client to send the swoole_websocket_frame object directly, support any type of frame construction, send and receive, support __toString
  • Better AIO
  • Add the Process\Pool::getProcess method
  • Support --with-hiredis-dir, --with-nghttp2-dir compiling parameters
  • Enhanced send_yield, automatic retry within the timeout
  • Enhanced timer round detection, repaired millisecond-level ultra-short timer execution error
  • Enable TCP_NODELAY by default, turn off Nagle algorithm, reduce latency
  • More standardized PECL package
  • Re-support the sending of HTTP-header with custom content-length of 0
  • Fixed an issue that can not access the Private/Protect properties in the class after coroutine yield caused by EG(scope) not switched in PHP7.0.x
  • Fixed the error opcode and finish status in websocket_server
  • Fixed the async_dns_lookup bug
  • Completed the code about channel.c overflow space handling
  • Fixed the bug of channel->close
  • Fixed the bug of coroutine socket->recv_package
  • Repair MySQL Statement->execute does not support null parameters
  • Support for identifying form-data encoding with a semicolon-separated boundary
  • Add many high-quality unit tests, greater stability
  • Remove useless time wheel algorithm
Sep 10, 2018
update package.xml

@twose twose released this Sep 5, 2018 · 384 commits to master since this release

Assets 2
  • Add socket_hook
  • Fix bugs in nested coroutines
  • Fixed variable reference count problem when exit in the coroutine
  • Coroutine MySQLquery, prepare, execute does not time out by default, conforms to the documentation API description
  • The MySQL transaction operation of the coroutine is forbidden to use the defer mode, and the developer needs to use it explicitly. The concurrent open transaction can be replaced by query.
  • Fix the problem of MMAP MAP_FAILED return value detection
  • Add PECL package verification
Aug 31, 2018
Update version for pecl package.

@twose twose released this Aug 31, 2018 · 436 commits to master since this release

Assets 2
  • Support Redis, PDO, MySQLi, use Swoole\Runtime::enableCoroutine() to make them become Async IO by coroutine scheduler
  • Coroutine tracking: Coroutine::listCoroutines() can list all current coroutines, Coroutine::getBackTrace($cid) gets the function call stack of a coroutine
  • Refactoring Co\Channel C code to C++, solving unintended consequences of complex scenes and achieving high stability
  • Refactoring Co\Http\Client C code to C++ coroutine mode, solving asynchronous timing problems and achieving high stability
  • Support for using exit in coroutines and Servers, which will throw a catchable \Swoole\ExitException exception.
  • Remove PCRE dependency limits for all iterators (table/connection/coroutine_list)
  • Add the open_websocket_close_frame configuration to receive close frames in the onMessage event
  • Remove the Http\Response->gzip() method and use the http_compression configuration item instead. The bottom layer will automatically determine the client's incoming Accept-Encoding to select the appropriate compression method, add Google BR compression support
  • Add Co\Http\Client->addData() method to send the data in the memory as the content of the uploaded file.
  • Solaris system support
  • Http2 supports MAX_FRAME_SIZE framing transmission and MAX_HEADER_LIST_SIZE processing. The client adds isStreamExist method to detect whether there is a corresponding stream.
  • swoole_http_response->status increases the reason parameter
  • Fixed an issue where unsigned arguments in MySQL prepare used signed values ​​to cause numeric overflows
  • Fixed an issue with no coroutine in the onRequest callback for HTTP2
  • Fixed the problem that tasking_num became -1 in some special cases
  • Fixed HTTP2-server window-update frame construction error
  • Fix all levels of compile warning under all PHP versions
  • Compile error will occur when GCC version is less than 4.8
  • Fixed MySQL's memory allocation caused by the use of prepare statement without parameter binding
  • Fixed old stream memory loss leak when HTTP2 client reconnect

@matyhtf matyhtf released this Aug 29, 2018 · 436 commits to master since this release

Assets 2
Update version for Swoole 4.1.0
Aug 28, 2018
Merge remote-tracking branch 'origin/master'