|
| 1 | +# PEH Meeting Agenda - 2020-10-12 |
| 2 | + |
| 3 | +###### tags: `Error Handling` `Minutes` |
| 4 | + |
| 5 | +- [2020-09-28 Meeting Minutes](https://hackmd.io/th5k9_pBRBGmpgnFWJzUHw?both) |
| 6 | + |
| 7 | +## Action Items |
| 8 | + |
| 9 | +- Implement trait based proof of concept for `Backtrace` in `core` (Jane Lusby) |
| 10 | +- Setup `The Rust Error Book` (must-compute, Charles Ellis O'Riley Jr, and Jakub Duchniewicz) |
| 11 | +- Draft a [blog post](https://hackmd.io/GMLcORX_R7W4de0ZryDIxg?view) detailing the long-term vision of what this group thinks Rust error handling should look like (Sean Chen) |
| 12 | +- 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) |
| 13 | + - [Generic Member Access](https://github.com/rust-lang/rfcs/pull/2895) (Jane Lusby) |
| 14 | + - [Fix the error trait / Stabilizing Backtrace](https://github.com/rust-lang/rust/issues/53487) (Jane Lusby) |
| 15 | + - [stabilizing error source iterators](https://github.com/rust-lang/rust/issues/58520) (Oliver) |
| 16 | + - [Box error alias](https://github.com/rust-lang/rfcs/pull/2820) (unassigned) |
| 17 | + - [stabilizing Error::type_id](https://github.com/rust-lang/rust/issues/60784) (Jakub Duchniewicz) |
| 18 | + - [PanicInfo::message](https://github.com/rust-lang/rust/issues/66745) (DPC) |
| 19 | + - [nicer assert messages](https://github.com/rust-lang/rust/issues/44838) (Charles Ellis O'Riley Jr.) |
| 20 | + - Moving forward with adding an iterator API to `backtrace` (Sean Chen) |
| 21 | + |
| 22 | +## Agenda Items |
| 23 | + |
| 24 | +- Review action items from last meeting |
| 25 | +- Review open issues on project group repository |
| 26 | +- Anything to buble up to the Libs meeting? |
| 27 | + |
| 28 | +# Meeting Minutes |
| 29 | + |
| 30 | +## Participants |
| 31 | + |
| 32 | +People in attendance: |
| 33 | +- Jane Lusby |
| 34 | +- Sean Chen |
| 35 | +- Ashley Mannix |
| 36 | +- Kyle Strand |
| 37 | +- Lance Zhang |
| 38 | +- Jeremiah Senkpiel |
| 39 | +- Jakub Duchniewicz |
| 40 | +- DPC |
| 41 | +- oliver |
| 42 | +- Charles Ellis O'Riley Jr. |
| 43 | +- must-compute |
| 44 | +- Jubilee Young |
| 45 | + |
| 46 | +## Backtrace in core |
| 47 | + |
| 48 | +- So far the implementation is moving forward fine, but there are questions around the hooks |
| 49 | +- Not clear how to set them up with a default in `no_std` so users don't _need_ to write one like `#[panic_handler]` |
| 50 | +- Current work in progress [here](https://github.com/rust-lang/rust/pull/77384) |
| 51 | +- There's enough sketched out that it shouldn't be a blocker for stabilizing `backtrace` anymore |
| 52 | + |
| 53 | +## The Rust Error Book |
| 54 | + |
| 55 | +- We now have a folder in the `project-error-handling` repository for content |
| 56 | + |
| 57 | +## Log-term project group vision and goals |
| 58 | + |
| 59 | +- Draft here: https://hackmd.io/GMLcORX_R7W4de0ZryDIxg?view |
| 60 | + |
| 61 | +## Generic member access RFC |
| 62 | + |
| 63 | +- There's an updated API in `object-provider` that the RFC would like to use |
| 64 | +- Once the content is updated it needs some Libs input |
| 65 | +- There could be some tie in with `tide`'s `Response` type? |
| 66 | + |
| 67 | +## Fix the `Error` trait / Stabilizing `backtrace` |
| 68 | + |
| 69 | +- Covered in the earlier discussion on _Backtrace in core_ |
| 70 | +- There could be some documentation work to do on `backtrace` |
| 71 | + |
| 72 | +## Stabilizing `Error` source iterators |
| 73 | + |
| 74 | +- stabilizing error source iterators |
| 75 | + - trait objects vs. provided methods |
| 76 | + - [stabilization report 2020-09-14](https://github.com/rust-lang/rust/issues/58520#issuecomment-691982191) |
| 77 | + - unergonomic use-cases ---> difficulties stabilizing |
| 78 | + - bugs |
| 79 | + - blocked on [#53487](https://github.com/rust-lang/rust/issues/53487) |
| 80 | +- [#75180](https://github.com/rust-lang/rust/pull/75180) might feed into this too |
| 81 | +- related crate [`error-chain`](https://crates.io/crates/error-chain) |
| 82 | + |
| 83 | +## Stabilizing `Error::type_id` |
| 84 | + |
| 85 | +- Several possible approaches, but all are waiting for other stabilizations/RFCs |
| 86 | + - #[marker] trait stabilization: https://github.com/rust-lang/rust/issues/29864 |
| 87 | + - negative trait impls |
| 88 | + - dynamic vtable type_id (like C++ typeid keyword) https://github.com/rust-lang/rfcs/pull/2580 |
| 89 | + - final keyword -> no overriding of trait any more |
| 90 | + - new trait TypeInfo https://github.com/rust-lang/rfcs/pull/2738 |
| 91 | +- Not clear it's something we want to stabilize |
| 92 | +- Looks like a rabbit hole we don't want to go down right now |
| 93 | + |
| 94 | +## `PanicInfo::message` |
| 95 | + |
| 96 | +- No progress made here |
| 97 | + |
| 98 | +## Nicer Assert Messages |
| 99 | + |
| 100 | +- [RFC](https://github.com/rust-lang/rfcs/pull/2011) has been approved, with no implementation started yet |
| 101 | +- 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` and `syn`? |
| 102 | + - Need external thoughts/mentorship on this question |
| 103 | + |
| 104 | +## Iterating over `Backtrace` frames |
| 105 | + |
| 106 | +- Just starting out, so there hasn't been much discussion yet |
| 107 | +- The `backtrace` crate has a `frames()` fn that already exposes its individual frames |
| 108 | +- We could propose basically the same thing for `std`'s `Backtrace` type |
| 109 | + |
| 110 | +# Outcomes |
| 111 | + |
| 112 | +## Backtrace in core |
| 113 | + |
| 114 | +- @KodrAus to ping https://github.com/rust-lang/rust/pull/72981 and raise at Libs meeting RE `backtrace` stabilization |
| 115 | + |
| 116 | +## Long-term project group vision and goals blog post |
| 117 | + |
| 118 | +- @Jane Lusby @Jakub Duchniewicz @KodrAus to review draft content |
| 119 | + |
| 120 | +## Generic member access RFC |
| 121 | + |
| 122 | +- @Jane Lusby to incorporate changes from `object-provider` |
| 123 | +- @KodrAus to review RFC and ping Libs |
| 124 | + |
| 125 | +## Stabilizing `Error` source iterators |
| 126 | + |
| 127 | +- Looks like many parts of this are stuck on fixing the `Error` trait, so our efforts should be focused here to push this forward |
| 128 | + |
| 129 | +## Stabilizing `Error::type_id` |
| 130 | + |
| 131 | +- Putting this one on the back burner |
| 132 | + |
| 133 | +## Nicer Assert Messages |
| 134 | + |
| 135 | +- Look into whether we can implement an external POC for this ourselves |
| 136 | +- Need external advice/mentorship (possibly from t-libs-impl) before we can get started on it |
| 137 | + |
| 138 | +## Iterator API on Backtrace |
| 139 | + |
| 140 | +- @Sean Chen to look more into this initiative |
| 141 | +- Export an identical `fn frames(&self) -> &[BacktraceFrame]` to `std` |
| 142 | +- Add it as an unstable API to `Backtrace` without an RFC to start with (just an FCP on the implementation itself) |
0 commit comments