### 1.5.0 - Services are now terminated with `cancelWith ThreadKilled` because `cancel` throws `AsyncCancelled` starting from version *async-2.2*. ### 1.4.2 - Minor internal improvements (using tuple sections). ### 1.4.1 - Corrected type of *ngxCachedTimePtr*. ### 1.4.0 - Added a number of opaque pointers to Nginx global objects for using them in C plugins. ### 1.3.0 - Export function *ngxExportInstallSignalHandler* to ignore SIGINT. ### 1.2.2 - Returning a special error code (*2*) on exception *ServiceHookInterrupt*. ### 1.2.1 - Bugfix: put *unsigned* integers in event channels (important for *eventfd*). ### 1.2.0 - Added exporter *ngxExportServiceHook* for service hooks and exception *ServiceHookInterrupt* for interrupting services. ### 1.1.0 - Added an asynchronous content handler with direct access to request body chunks exported with *ngxExportAsyncHandlerOnReqBody*. - Reading buffered request body from a temporary file when it's provided. ### 1.0.1 - Using deepseq for really deep evaluation of resulting lazy bytestrings to prevent leaks of exceptions outside of protected code. ### 1.0 - Added an asynchronous content handler exported with *ngxExportAsyncHandler*. - Content type in all content handlers gets packed in a strict bytestring now, which allows for using static strings without dynamic memory allocation. - Package stability tag was promoted to stable. ### 0.9.1.1 - yY handler must be strict against exceptions in safeYYHandler. ### 0.9.1.0 - Do not write into service event channel when Nginx is exiting. ### 0.9.0.0 - Using interruptible FFI for safeWaitToSetLock to re-enable graceful shutdown with hs_exit() for shared services. ### 0.8.1.0 - Function waitSetToLock from package *unix* calls C fcntl() unsafely which caused hangs of the whole haskell RTS when it was waiting for lock release. So this functions was reimplemented using *safe* semantics as safeWaitToSetLock. - Exported function ngxExportReleaseLockedByteString was removed because Nginx can call hs_free_stable_ptr() directly. ### 0.8.0.3 - A better solution for ghc warnings set. ### 0.8.0.2 - Removed constraint on *template-haskell* via a CPP macro (this should repair compilation for *ghc-7.10*). ### 0.8.0.0 - Implemented shared services using waitToSetLock to get exclusive access for servicing. - New dependency on package *monad-loops* (>= 0.4.2). ### 0.7.0.0 Further optimizations. - Poke single-chunked lazy bytestrings directly into passed from Nginx buffers. - Specialize polymorphic functions and inline trivial functions. ### 0.6.1.1 - Added *-Wno-incomplete-patterns* in *ghc-options* for older ghc versions. ### 0.6.1.0 - Constructors of *NgxExport* were lifted to type level for all handlers to mitigate warnings on incomplete patterns. - *COMPLETE* pragmas for pattern synonyms were added for the same reason. - Other warnings were fixed too. Now the module builds with *ghc-options* *-Wall -Wno-unrecognised-pragmas*. ### 0.6.0.0 - Lazy bytestrings contents are no longer copied when passed back to Nginx. Instead, they are passed directly along with a StablePtr to original bytestrings. This must improve performance and lower memory consumption for content handlers with large outputs. ### 0.5.0.0 - All synchronous variable and content handlers were made exception safe. - Bugfix: evaluate results of IO handlers strictly to make sure that all exceptions will be caught. ### 0.4.1.0 - Bugfix: keep calling *fdWriteBuf* until it writes complete buffer. ### 0.4.0.0 - All asynchronous handlers can now report events via eventfd channels. - New dependency on package *binary* (>= 0.8.1.0). ### 0.3.2.2 - Stricter constraints for packages *base* (>= 4.8 && < 5) and *template-haskell* (>= 2.11.0.0). ### 0.3.2.0 - Versioning security: get number of required version parts from C code. ### 0.3.1.0 - Added versioning support to test for compatibility in C code. ### 0.3.0.0 - Added an asynchronous client request body handler exported with *ngxExportAsyncOnReqBody* for using in a new Nginx directive *haskell_run_async_on_request_body*. ### 0.2.5.1 - Added signatures for type-checkers and exporters to prevent warnings when reifying in a user code with *-Wmissing-signatures* or *-Wall* enabled. ### 0.2.5.0 - Added a synchronous handler in IO Monad exported with *ngxExportIOYY*.