Skip to content
This repository was archived by the owner on Sep 12, 2024. It is now read-only.

Commit 418b53a

Browse files
authored
Merge pull request #12 from seanchen1991/master
Add 2020-09-28 meeting notes
2 parents f882d03 + 14bc739 commit 418b53a

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

meetings/2020-09-28.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Error Handling Project Group Agenda - 2020-09-28
2+
3+
###### tags: `Error Handling` `Minutes`
4+
5+
## Agenda Items
6+
7+
- Prototyping an implementation of `std::core::Error` and stabilizing `#[feature(backtrace)]`
8+
- Identifying existing issues and RFCs that we should track
9+
- https://github.com/rust-lang/rfcs/pull/2895
10+
- Planning for "Communicating best practices"
11+
- "How users expect error handling to be, As in, we take a leap into the future and assume all this was implemented into the language, then how it would potentially look"
12+
13+
14+
# Meeting Minutes
15+
16+
## Participants
17+
18+
People in attendance:
19+
- Jane Lusby
20+
- Sean Chen
21+
- Ashley Mannix
22+
- DPC
23+
- Mukund Lakshman
24+
- Jakub Duchniewicz
25+
- must-compute
26+
- Lance Zhang
27+
- Oliver
28+
- Charles Ellis O'Riley Jr.
29+
- Kyle Strand
30+
- Lokathor
31+
- Jubilee Young
32+
33+
## Topic 1: Discussing stabilizing `Backtrace`
34+
- Global hooks vs Boxing vs a trait-based approach for stabilizing `Backtrace` in `core`.
35+
- Going with the trait-based impl for `Backtrace` in core.
36+
- Private trait + public newtype wrapper.
37+
- Start with `eddyb`'s impl and see how many hooks are necessary along the way.
38+
- private trait with a public newtype wrapper
39+
- newtype wrapper is an interface not subject to coherence so we can add new
40+
methods without worrying about breaking changes downstream
41+
- https://doc.rust-lang.org/stable/src/std/io/error.rs.html#67-71
42+
- trait-based approaches have fewer magic compiler pieces and so would be easier to put together
43+
- `write_backtrace_to(&mut dyn FormatterThing) -> Result<(),FormatterThing::Error>`
44+
- ultimately about moving `Error` to core
45+
- should we do a trait object based solution internally with an unstable `Backtrace`
46+
trait in core and a stable `Backtrace` type in core or should it use global hooks
47+
like `panic_impl`
48+
- **need a prototype solution for exposing `Backtrace` as a type in `core` with the interface it currently provides in `std`**
49+
50+
## Topic 2: What RFCs should this group be tracking?
51+
- This group will have its own Project board to track relevant issues/RFCs.
52+
- Prep status reports on relevant issues we're tracking for future meetings.
53+
- Pulled from the [tracking board](https://github.com/rust-lang/libs-team/projects/2#column-10224181)
54+
- [#58520 tracking issue for error source iterators](https://github.com/rust-lang/rust/issues/58520)
55+
- [#53487 tracking issue for RFC 2504, "fix the error trait"](https://github.com/rust-lang/rust/issues/53487)
56+
- [#44838 tracking issue for RFC 2011: nicer assert messages](https://github.com/rust-lang/rust/issues/44838)
57+
- [#2895 RFC: generic member access for dyn error trait objects](https://github.com/rust-lang/rfcs/pull/2895)
58+
- [#58520 tracking issue for error source iterators](https://github.com/rust-lang/rust/issues/58520)
59+
60+
## Topic 3: Planning for "Communicating Best Practices"
61+
- Facilitate communication of best practices via a Book/documentation.
62+
- Should include some guidance on FFI error handling.
63+
- Adding a book section to the project repo (using mdbook).
64+
- Publish *The Rust Error Book* (name subject to change) and potentially contribute to *The Book* to make its error handling recommendations consistent with what this group decides.
65+
66+
## Topic 4: What is the long-term vision of what error handling in Rust looks like?
67+
- `Error` in `core`.
68+
- Stabilization of unstable `Error` interfaces.
69+
- Iterator API on `Backtrace`.
70+
- Generic member access (possibly with two-way flow).
71+
- Error return traces.
72+
- Some way to universally hook into all error reporting points for consistent error reporting.
73+
- Better handling of error enums
74+
- Guidance on FFI error handling.
75+
- Ways of recovering from recoverable errors.
76+
- enum-convergance as errors propagate up the stack

0 commit comments

Comments
 (0)