change: now we default to LuaJIT instead of the standard Lua 5.1
interpreter. the --with-luajit option for ./configure is now the default.
To use the standard Lua 5.1 interpreter, specify the --with-lua51 option explicitly.
thanks smallfish for the suggestion.
bugfix: Nginx's built-in resolver did not accept fully qualified
domain names (with a trailing dot).
optimize: shortened the Server response header string "ngx_openresty" to
bugfix: x86: fixed stack slot counting for IR_CALLA (affects table.new). (Mike Pall) this could lead to random table field missing issues in Lua Resty MySQL Library on i386. thanks lhmwzy for the report.
bugfix: fixed compilation of string.byte(s, nil, n). (Mike Pall)
bugfix: MIPS: Cosmetic fix for interpreter. (Mike Pall)
feature: added the optional 5th argument, "res_table", to ngx.re.match() which is the user-supplied result table for the resulting captures. This feature can give 12%+ speedup for simple ngx.re.match() calls with 4 submatch captures.
bugfix: coroutines might incorrectly enter the "dead" state even right after creation with coroutine.create(). thanks James Hurst for the report.
bugfix: segmentation fault might happen when aborting a "light thread" pending on downstream cosocket writes. thanks Aviram Cohen for the report.
bugfix: we might try sending the response header again in ngx.exit() when the header was already sent.
bugfix: subrequests initiated by ngx.location.capture() might send their own response headers more than once. this issue might also lead to the alert message "header already sent" and request aborts when nginx 1.5.4+ was used.
bugfix: fixed incompatibilities in Nginx 1.5.8 which breaks the resolver API in the Nginx core.
bugfix: fixed a compilation warning when PCRE is disabled in the build. thanks Jay for the patch.
bugfix: we did not set the shortcut fields in r->headers_in for request headers in our subrequests created by ngx.location.capture*(), which might cause inter-operative issues with other Nginx modules. thanks Aviram Cohen for the original patch.
optimize: we no longer clear the lua_State pointers for dead "light threads" such that their coroutine context structs could be reused by other "light threads" and user coroutines. this can lead to smaller memory footprint.
doc: documented that the coroutine.* API can be used in init_by_lua* since 0.9.2. thanks Ruoshan Huang for the reminder.
bugfix: the Memcached connection might enter a bad state when read timeout happens because Lua Nginx Module's cosocket reading calls no longer automatically close the connection in this case. thanks Dane Knecht for the report.
optimize: ngx.re.gsub used to use literal type string "const char *" in ffi.cast() which is expensive in interpreter mode. now we use the ctype object directly, which leads to 11% speedup in interpreter mode.
bugfix: for Nginx 1.2.6+ and 1.3.9+, the main request reference count might go out of sync when Nginx's request body reader returned status code 300+. thanks Hungpu DU for the report.
bugfix: echo_request_body truncated the response body prematurely when the request body was in memory (because the request reader sets "last_buf" in this case). thanks Hungpu DU for the original patch.
bugfix: using $echo_timer_elapsed variable alone in the configuration caused segmentation faults. thanks Hungpu DU for the report.
feature: now the value specified in srcache_store_skip is evaluated and tested again right after the end of the response body data stream is seen. thanks Eldar Zaitov for the patch.
See ChangeLog 1.4.3 for change log for OpenResty 1.4.3.x.