This release adds support for generating BinExport2 representations from Lancelot workspaces. Going forward, BinExport2 may be the recommended way of interacting with Lancelot results. While we *could* provide our own API that approximates all the information already in BinExport2 (functions, basic blocks, instructions, control flow, etc.), it takes a lot of work to design and maintain, and isn't as portable. So, we'll experiment with using BinExport2 as the "output API".
new features
- export Workspace to a BinExport2 representation
- provide `DynamicConfiguration` for libraries that want to provide variable configurations to a workspace
- add `function_hints` to config to specify known function addresses
- pylancelot: build for more platforms, including PyPy on Linux
breaking changes
- remove pwa project (unused)
- remove jslancelot project (unused)
- remove smoke tool (use BinExport2 instead)
- pylancelot: replace local API with BinExport2 representation
- pylancelot: remove Python 3.8 support
other changes
- add cranelift, mold configuration for development
- add direnv+nix configuration for development
- add justfile
- pylancelot: pass logging messages to Python logging via pyo3-log
fixed bugs
- [runtime_functions: handle chained unwind info](https://github.com/williballenthin/lancelot/commit/511b4f989e3a531355f59c4e4963028140b23300)
- [cfg: don't code flow to regions not backed by image](https://github.com/williballenthin/lancelot/commit/f0cc3b1a2caa5847cf88a8f3326f995cdf442aac)
- [call targets: don't consider call $+5 to create a new function](https://github.com/williballenthin/lancelot/commit/05895a0c1a96709c5d3cc136f60eb13fc6aa6c1c)
- [flows: don't code flow to NULL byte](https://github.com/williballenthin/lancelot/commit/cf6e3fc85957902ad52bdc9cad5ef1ecbfeac14c)
- [noret: handle noret thunks and consider msvcrt!_CxxThrowException as noret](https://github.com/williballenthin/lancelot/commit/0f08a75ec0c421d9db3286665deda684235cdec7)
**Full Changelog**: https://github.com/williballenthin/lancelot/compare/v0.8.10...v0.9.0