The main priority for this release has been making theft easier to use.
- The documentation has been updated and extended, both in the API
headers in `inc/` and in `doc/`.
- Auto-shrinking: theft can now do type-generic shrinking, as long as an
extra constraint on the `alloc` callback is followed -- see
`doc/shrinking.md` for details. This is still experimental, but may
become the default in a future release.
- Several hooks have been added to give better control over theft's
overall behavior and reporting formats. For example, the `shrink_pre`
hook can be used to halt shrinking after a timeout, and the
`shrink_post` hook can be used to re-run the test with the fully
shrunken counter-example again (after changing logging levels,
attaching a debugger, etc.). These hooks replace the old progress
hook.
- If no custom hooks are set, defaults are provided that report
properties, progress, and any counter-examples found in a consistent
format.
- Add built-in `type_info` structs for several common types. (More will
come in future releases.)
- There have been several other minor API changes, all of which are
intended to make theft easier to use effectively.
For details, see `CHANGELOG.md`.
Thanks to the following people for their feedback and insight:
- David R. MacIver
- Reid Draper
- John Regehr
- Julian Squires
- Joe Ranweiler
- Jessica Kerr
- David Nolen
- John Van Enk
- Pat Hickey
- Andrew Thompson
- Jay Kickliter
- @iximeow
- @lochsh