Releases: lyokha/nginx-haskell-module
Releases · lyokha/nginx-haskell-module
nginx-haskell-module version 2.4.1, ngx-export version 1.6.4
- Added exception WorkerProcessIsExiting to signal services that Nginx is shutting down. This has replaced ThreadKilled that was used formerly in order to prevent erroneous handling of unexpectedly thrown ThreadKilled.
- All API exceptions now derive Eq.
nginx-haskell-module version 2.4.0, ngx-export version 1.6.3
- Added API exceptions RestartWorkerProcess and FinalizeHTTPRequest. The latter can be used from Haskell asynchronous variable handlers to quickly finalize the HTTP request.
- A minor improvement in the content handler: do not send HTTP header Content-Type when the response does not contain a body.
- Package ngx-export-tools version 0.4.3.0. Functions terminateWorkerProcess, restartWorkerProcess, and finalizeHTTPRequest now make use of the corresponding API exceptions from package ngx-export 1.6.3, and therefore are effectively restricted in the sense of calling context: a worker process can be terminated or restarted only from a Haskell service, while an HTTP request can be finalized only from a Haskell asynchronous variable handler.
nginx-haskell-module version 2.3.1
Package ngx-export-tools version 0.4.2.2.
nginx-haskell-module version 2.3.0, ngx-export version 1.6.2
- Added a new exception TerminateWorkerProcess that can be used for graceful termination of an Nginx worker process when initialization of a service fails.
- Package ngx-export-tools version 0.4.0.0.
- Now single-shot services run exactly two times which lets using them in a proper initialization / cleanup flow.
- Added a number of combinators to facilitate creation of specialized services. They allow distinguishing between ignition and deferred services.
nginx-haskell-module version 2.2.1, ngx-export version 1.6.1
- Package ngx-export: upgraded Cabal version constraint.
- Package ngx-export-tools version 0.3.1.0: names of the storages for custom types now contain the name of the service which makes it possible to use the same configuration type in multiple services.
nginx-haskell-module version 2.2.0, ngx-export version 1.6.0
- Bug fixes
- Do not start Nginx worker if there are mismatches between roles and implementations in any of Haskell handlers being loaded. For example, when a handler of type IOYY is exported from a Haskell code with ngxExportAsyncIOYY, but gets loaded in Nginx configuration with directive haskell_run which is suitable for synchronous tasks only. Before this fix, such cases were not always detectable, which could lead to segfaults in Nginx workers during runtime.
- Accept only absolute paths for file locks in directive haskell_service_var_in_shm.
- Other
- Package ngx-export-tools version 0.3.0.0. New typed readers with support for reading a pointer to the Nginx request object. More examples in haddock docs.
nginx-haskell-module version 2.1.1
Many bug fixes and improvements in module NgxExport.Tools.
nginx-haskell-module version 2.1.0, ngx-export version 1.5.0
- New features
- Added a new Haskell package ngx-export-tools with module NgxExport.Tools which exports useful utility functions and exporters of simple services exposing a higher abstraction level than basic service exporters from module NgxExport.
- Bug fixes
- Replaced cancel by cancelWith with argument ThreadKilled. This was not a bug until release of async-2.2 where cancel began throwing AsyncCancelled instead of ThreadKilled.
- Pedantically free bound to services async tasks on a worker's termination.
nginx-haskell-module version 2.0, ngx-export version 1.4.2
- New features
- Added synchronous short circuit bang-handler doing caching assignment without any Haskell code involved.
- Added utility hslibdeps to help in deployment of dependent Haskell libraries.
- Bug fixes
- Update and shm stats variables should not be changeable.
- Improvements
- Added Nginx build scripts and basic tests for running on Travis CI.
nginx-haskell-module version 1.9.6
- New features
- A new compile option debug in directive haskell compile allows for linkage against debug flavours of the Haskell RTS library, which makes it possible to collect GHC event logs in the standalone approach. Options debug and threaded can be combined.
- Bug fixes
- Re-declarations of synchronous variables on deeper levels stopped working since the previous release. Fixed.
- Multiple declarations of the same non-service variable on a single configuration level are now prohibited.
- Improvements
- Improved treatment of asynchronous variables with equal names. Now re-declaration of such a variable on the location level overrides its declaration on the server level, however re-declaration of an asynchronous variable on the location if level does not override its upper declarations because location if levels get evaluated later in runtime, when the async task is already running.
- Improved treatment of options in directives haskell compile / load. Now they can be specified in arbitrary order (but still before the path to the source file or library and the source code).
- Haskell runtime names are now parameterized by workers PIDs. This makes Haskell runtimes write event logs (and probably other kinds of traces) into own files, thus preventing them from tangling up.
- GHC command is logged when it fails to compile in the standalone approach.