- Implement trait based proof of concept for
Backtrace
incore
(Jane Lusby) - Setup
The Rust Error Book
(must-compute, Charles Ellis O'Riley Jr, and Jakub Duchniewicz) - Draft a blog post detailing the long-term vision of what this group thinks Rust error handling should look like (Sean Chen)
- Status Updates on Tracked issues (What's the current status, what are the next steps, what are the blockers, is it actively being worked on)
- Generic Member Access (Jane Lusby)
- Fix the error trait / Stabilizing Backtrace (Jane Lusby)
- stabilizing error source iterators (Oliver)
- Box error alias (unassigned)
- stabilizing Error::type_id (Jakub Duchniewicz)
- PanicInfo::message (DPC)
- nicer assert messages (Charles Ellis O'Riley Jr.)
- Moving forward with adding an iterator API to
backtrace
(Sean Chen)
- Review action items from last meeting
- Review open issues on project group repository
- Anything to buble up to the Libs meeting?
People in attendance:
- Jane Lusby
- Sean Chen
- Ashley Mannix
- Kyle Strand
- Lance Zhang
- Jeremiah Senkpiel
- Jakub Duchniewicz
- DPC
- oliver
- Charles Ellis O'Riley Jr.
- must-compute
- Jubilee Young
- So far the implementation is moving forward fine, but there are questions around the hooks
- Not clear how to set them up with a default in
no_std
so users don't need to write one like#[panic_handler]
- Current work in progress here
- There's enough sketched out that it shouldn't be a blocker for stabilizing
backtrace
anymore
- We now have a folder in the
project-error-handling
repository for content
- Draft here: https://hackmd.io/GMLcORX_R7W4de0ZryDIxg?view
- There's an updated API in
object-provider
that the RFC would like to use - Once the content is updated it needs some Libs input
- There could be some tie in with
tide
'sResponse
type?
- Covered in the earlier discussion on Backtrace in core
- There could be some documentation work to do on
backtrace
- stabilizing error source iterators
- trait objects vs. provided methods
- stabilization report 2020-09-14
- unergonomic use-cases ---> difficulties stabilizing
- bugs
- blocked on #53487
- #75180 might feed into this too
- related crate
error-chain
- Several possible approaches, but all are waiting for other stabilizations/RFCs
- #[marker] trait stabilization: rust-lang/rust#29864
- negative trait impls
- dynamic vtable type_id (like C++ typeid keyword) rust-lang/rfcs#2580
- final keyword -> no overriding of trait any more
- new trait TypeInfo rust-lang/rfcs#2738
- Not clear it's something we want to stabilize
- Looks like a rabbit hole we don't want to go down right now
- No progress made here
- RFC has been approved, with no implementation started yet
- Does this need to be implemented using the compiler's built-in proc macros, or can it be done as an external crate using
pro-macros
andsyn
?- Need external thoughts/mentorship on this question
- Just starting out, so there hasn't been much discussion yet
- The
backtrace
crate has aframes()
fn that already exposes its individual frames - We could propose basically the same thing for
std
'sBacktrace
type
- @KodrAus to ping rust-lang/rust#72981 and raise at Libs meeting RE
backtrace
stabilization
- @Jane Lusby @Jakub Duchniewicz @KodrAus to review draft content
- @Jane Lusby to incorporate changes from
object-provider
- @KodrAus to review RFC and ping Libs
- Looks like many parts of this are stuck on fixing the
Error
trait, so our efforts should be focused here to push this forward
- Putting this one on the back burner
- Look into whether we can implement an external POC for this ourselves
- Need external advice/mentorship (possibly from t-libs-impl) before we can get started on it
- @Sean Chen to look more into this initiative
- Export an identical
fn frames(&self) -> &[BacktraceFrame]
tostd
- Add it as an unstable API to
Backtrace
without an RFC to start with (just an FCP on the implementation itself)