Releases: aesiniath/unbeliever
Fix threading cancellation
When racing threads that had in turn forked a number of worker threads we encountered the situation where the worker threads were being left running if the parent was cancelled. At first we were actually worried that the HTTP client library was not responding to an exception telling it to stop but it turned out that the problem was that while wait
was being cancelled, the thread it was waiting on was not.
This release changes that behaviour so that our waitThread
and related helper functions will propagate a cancel do the thread being waited on should they themselves be cancelled.
Many thanks to @carlosdagos for his help identifying the root cause and testing the fix.
What's Changed
Full Changelog: core-program-0.4.2.0...core-program-0.4.5.0
Support for WAI and Servant applications
Support for running web applications from within the Program monad from core-program.
What's Changed
New package core-webserver-warp
This package in particular adds wrappers around the wai (Web Application Interface) and warp (Web Server) to facilitate integrating this commonly used combination.
New package core-webserver-servant
his package in particular adds wrappers around the servant library commonly used for exposing web services APIs and allows your handlers to be written in the Program monad.
- Support servant in new package core-webserver-servant by @carlosdagos in #91
Hygiene
- Use GitHub Actions to check proposed branches by @istathar in #87
- Update benchmark by @istathar in #88
Full Changelog: v0.10.0.0...core-webserver-warp-0.1.1.0
Concurrency, Exception handling, and querying command-line options
Move concurrency related code to new module Core.Program.Threads.
This triggered a major API bump of core-program but if you are only importing the parent module as recommended
import Core.Program
You won't notice the difference.
What's Changed
Concurrency
- Separate thread functions into new module by @istathar in #79
- Don't link threads by default when forking by @istathar in #84
Command-line argument handling
- Expose parameter lookups as query actions by @istathar in #77
- Looking up environment variables by @istathar in #56
Continued progress with the Program monad
- Allow timer reset by @istathar in #55
- Add the execProcess function by @TheWizardTower in #68
- Tweak help output of option values and arguments by @istathar in #78
Improvements to exception handling
- Fix exception handling by @istathar in #62
- Add function to trap uncaught exceptions by @istathar in #63
- Rename event action to info by @istathar in #64
- Add warning- and critical-level informational message actions by @istathar in #65
- Enable use of bracket from Program monad by @istathar in #61
Other
- Implement takeRope function by @istathar in #59
- Minor improvements to Bytes type by @istathar in #57
New Contributors
- @TheWizardTower made their first contribution in #68
New telemetry library
New package core-telemetry added to the Unbeliever collection, adding traces, spans, and event metadata to the Program monad along with facilities for structured logging and sending telemetry to the Honeycomb observability service.
What's Changed
Upgraded ANSI colour support
Drop dependency on prettyprinter-ansi-terminal, using codes from ansi-terminal directly in a change to the Render typeclass. intoDocA
is replaced with the name highlight
and the colourize
method now converts Token α -> ΑnsiColour.