* fix(miri): box transmute and invalid references
The general causes for the miri invalidation is the prevelant use of
`Box` and its references to `ErrorImpl<()>`.
`mem::transmute` does not preserve the tag stack for transmuting the
boxes.
Additionally, having references to `ErrorImpl<()>` which has a different
layout than the allocation or `ErrorImpl<E>` for some unknown `E`. This
causes the new "untyped" reference to now have a provenance that
includes the size of E and thus is outside the provenance.
* fix(miri): downcast_mut using `&mut _ => *const _ => *mut`
* fix(miri): stub file reading
* fix(miri): don't construct temp references of shunk provenance
* ci: miri
* fix: `unsafe_op_in_unsafe_fn`
* chore!: bump MSRV
* chore: address PR comments
* fix: ci workflow names
* chore: raise msrv to 1.65 (addr2line)
* chore: revert distinctive CI names due to branch protection rules
The new names, such as `Test Platform Matrix` which do make it easier to
see which jobs failed, rather than msrv, test, and miri all being called
`Test Suite`, the in-place branch protection rules wait forever until
the now non-existent `Test Suite` passes
Not using the error type after construction is a common mistake. This can also easily happen with the provided macros, when using `eyre!` instead of `eyre::bail!`. By marking the type as `#[must_use]`, the compiler warns us in such cases.
* Add must-install feature, so that a non-default handler can be the only handler consuming .text.
* Provide a better panic message if `must-install` feature is enabled.
Co-authored-by: Jane Lusby <jlusby42@gmail.com>
* Bump version because new feature was added.
* Convert must-install feature to auto-install to avoid negative features.
* Add ability to manually install DefaultHandler (for when auto-install is disabled).
* Ensure doctests pass when auto-install feature is disabled.
* Integration tests now succeed without auto-install feature.
* Add integration test for when auto-install feature is disabled.
* Add auto-install feature testing to CI.
* cargo fmt.
Co-authored-by: Jane Lusby <jlusby42@gmail.com>
Co-authored-by: Jane Lusby <jlusby@yaah.dev>
* update changelog
* mention new format args capture in docs
* cfg doctest to compile on all versions of rustc
* update field for newer versions of cargo release
* (cargo-release) version 0.6.6
* Added convertion to pyo3::PyErr gated behind feature flag
* Added test_pyo3
* fix ci to not test unsupportable feature msrv
* fix rustfmt
Co-authored-by: Jane Lusby <jlusby@yaah.dev>
This change adds `track_caller` annotations to `context.rs` on various trait helper methods (`wrap_err`) that were missing it. It also adds tests for these APIs to ensure that the location captured is in the file that created the error.