packages feed

ngx-export-1.2.1: Changelog.md

### 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*.