Hi folks,
I've just kicked out OpenResty 1.9.7.1 RC1 for testing:
https://openresty.org/download/ngx_openresty-1.9.7.1rc1.tar.gz
One highlight of this version is the reduction of in-pool memory
allocations in the cosocket implementation to support long-running
requests (like C2000K in a single box).
Also we include various small features like ngx.worker.id(),
ngx.worker.count(), ngx.timer.pending_count(),
ngx.timer.running_count(), ngx.redirect(uri, 307), and etc.
We also updated the NGINX core to 1.9.7 to include all those new
features and fixes.
Special thanks go to all our contributors and users.
Changes since the last (formal) release, 1.9.3.2:
* upgraded the Nginx core to 1.9.7.
* see the changes here: <http://nginx.org/en/CHANGES>
* "./configure": now we automatically set the environment
"MACOSX_DEPLOYMENT_TARGET" to the current Mac OS X version
unless the environment is already set. thanks bsyk for the
report.
* win32: use Windows line breaks in the "resty" script file of the
binary distribution.
* upgraded the ngx_lua module to 0.9.20.
* feature: added new API functions ngx.worker.count() and
ngx.worker.id() for returning the total count of nginx
worker processes and the ordinal number (0, 1, 2, and etc)
of the current worker. thanks YuanSheng Wang for the patch.
also added pure C API for them.
* feature: added new API functions ngx.timer.pending_count()
and ngx.timer.running_count(). thanks Simon Eskildsen for
the patch.
* feature: added new config directive
access_by_lua_no_postpone. thanks Delta Yeh for the patch.
* feature: added new constant "ngx.HTTP_TEMPORARY_REDIRECT"
(307) and support for 307 in ngx.redirect(). thanks RocFang
for the patch.
* feature: added new API function ngx.req.is_internal() for
testing if the current request is an internal request.
thanks Ruoshan Huang for the patch.
* feature: added many more HTTP status constants as
"ngx.HTTP_XXX". thanks Vadim A. Misbakh-Soloviov for the
patch.
* bugfix: bogus "nginx.conf" parse failure "Lua code block
missing the "}" character" might happen when there are many
Lua code blocks inlined. thanks Andreas Lubbe for the
report.
* bugfix: bogus "subrequests cycle" errors might occur with
nginx 1.9.5+ due to the recent changes in the nginx core.
* bugfix: ngx.req.get_uri_args/ngx.req.get_post_args: avoided
allocating a zero-size buffer in the nginx memory pool since
it might cause problems. thanks Chuanwen Chen for the report
and patch.
* bugfix: modifying the built-in header "X-Forwarded-For" via
ngx.req.set_header() or ngx.req.clear_header() might not
take effect in some parts of the nginx core (like
$proxy_add_x_forwarded_for). thanks aviramc for the patch.
* bugfix: we lacked detailed context info in error messages
due to use of disabled Lua API in body_filter_by_lua*.
thanks Dejiang Zhu for the patch.
* bugfix: fixed a potential data alignment issue in the
ngx.var setter API.
* bugfix: we had data alignment issues in the subrequest API
which can explode on systems like ARM. thanks Stefan Parvu
for providing the test environment.
* bugfix: there was a data alignment issue in the
tcpsock:setkeepalive() implementation which might lead to
crashes on ARM systems. thanks Stefan Parvu for the report.
* bugfix: fixed C compiler warnings "comparison between signed
and unsigned integer expressions" on Windows.
* optimize: avoided allocating in the nginx request memory
pool in stream-typed cosockets' receive*() methods. thanks
Lourival Vieira Neto for the patch.
* optimize: reduced memory allocations in stream-typed
cosockets. thanks Dejiang Zhu for the patch.
* avoided allocating the host name buffer when getting
peers from the connection pool.
* recycled the stream cosockets' request cleanup records.
* doc: documented the minimum size threshold in
lua_shared_dict. thanks mlr3000 for the original patch.
* upgraded the lua-resty-core library to 0.1.3.
* Makefile: added support for relative paths in "LUA_LIB_DIR".
* minor code adjustments from Aapo Talvensaari.
* upgraded the ngx_headers_more module to 0.29.
* bugfix: changing the built-in header "X-Forwarded-For" via
more_set_input_headers or more_clear_input_headers might not
take effect in some parts of the nginx core (like
$proxy_add_x_forwarded_for).
* upgraded LuaJIT to v2.1-20151219:
https://github.com/openresty/luajit2/tags
* Makefile: ensure we always install the symbolic link for the
"luajit" file.
* imported Mike Pall's latest changes:
* FFI: Fix SPLIT pass for CONV i64.u64.
* x64 LJ_GC64: Fix stack growth in vararg function setup.
* DynASM/x86: Add rdpmc instruction.
* OSX: Switch to Clang as the default compiler.
* iOS: Disable os.execute() when building for iOS >= 8.0.
* x86/x64: Disassemble AVX AVX2 instructions.
* DynASM/x86: Add AVX and AVX2 opcodes.
* DynASM/x86: Add AES-NI opcodes.
* DynASM/x86: Restrict shld/shrd to operands with same
width.
* DynASM/x86: Fix some SSE instruction templates.
* Fix pairs() recording.
* FFI: Fix ipairs() recording.
* Drop marks from replayed instructions when sinking.
Feedback welcome!
Hopefully we can cut the 1.9.7.1 formal release by Christmas :)
Thanks!
-agentzh