packages feed

inline-python-0.3.0.0: ChangeLog.md

0.3.0.0 [2026.10.15]
--------------------
* Support for asynchronous execution added in module `Python.Inline.Async`.  It
  uses API modelled after `async` package. Such computations could be
  interrupted using `cancelPy` even when they're running python code or haskell
  callback/
* When threaded runtime is used `runPyInMain` could be reliably interrupted by
  asynchronous exceptions.
* Python module `inline_python` is now available. It contains exception types
  used by library: `AsyncCancelled` and `HaskellError` which wraps haskell
  exception from callback.
* `Python.Inline.Monad` and `Python.Inline.Monad.QQ` modules providing monadic
  API. It uses `MonadPy` type class which allows user code to carry around
  python dictionaries with global and local scopes.
* Package now uses `Custom` build type. It now supports configuring python using
  `python3-config` instead of `pkg-config` when `-fpython3-config` manual cabal
  flag is set. Default behavior is unchanged.
* Haskell exception raised in haskell callback will be rethrown if not caught by
  python instead of being converted to `PyError`.
* `evalPyFunction` is added to company of `eval` and `exec`. It uses new
  `PyQuoteFun` data type as parameter.
* `pySource` quasiquoter added. It loads python code from file. 
* `createModule` added which gives standard way of defining python code.
* Bug fixes:
 - Memory leak in exception handling is fixed. Python exception object were never
   freed when exception propagated to haskell side.
 - `bindVar` and `codeFromString`, `codeFromText` violated memory safety but
   happened to work correctly when strings were created by TH. Consider upgrade
   if using them.

0.2.1.0 [2026.01.13]
----------------
* `From/ToPy` instance for `Integer`&`Natural` added.
* `vector-0.13.2` is required.
* Python>=3.10 is supported. Boolean marshaling with python<3.12 is
  fixed. Previously it caused crashes on counter decrement.
* Documentation fixes.

0.2 [2025.05.04]
----------------
* `FromPy`/`ToPy` instances added for: `Complex`, both strict and lazy `Text` &
  `ByteString`, `ShortByteString`, `Maybe a`.
* Module `Python.Inline.Eval` added which support for eval/exec with user
  supplied global and local variables.
* QuasiQuotes `Python.Inline.QQ.pycode` added for creating `PyQuote` data type.

0.1.1.1 [2025.03.10]
--------------------
* Crash of python's main thread when one attempts to interrupt it fixed.

0.1.1 [2025.02.13]
------------------
* Number of deadlocks in `runPyInMain` fixed:
  - It no longer deadlocks if exception is thrown
  - Nested calls no longer deadlock.
  - Calling it from python callback.
* `ToPy` instance added for `Py b`, `a -> Py b`, `a1 -> a2 -> Py b`


0.1 [2025.01.18]
----------------
Initial release