Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P2370 Stacktrace from exception #1056

Open
wg21bot opened this issue Jun 26, 2021 · 10 comments
Open

P2370 Stacktrace from exception #1056

wg21bot opened this issue Jun 26, 2021 · 10 comments
Labels
B3 - Addition C++26 EWG IS medium
Milestone

Comments

@wg21bot
Copy link
Collaborator

@wg21bot wg21bot commented Jun 26, 2021

P2370R0 Stacktrace from exception (Andrei Nekrashevich, Antony Polukhin)

@wg21bot wg21bot added LEWG LEWGI LWG labels Jun 26, 2021
@wg21bot wg21bot added this to the 2021-telecon milestone Jun 26, 2021
@inbal2l inbal2l added ready-for-library-evolution-mailing-list-review scheduled-for-library-evolution labels Jun 27, 2021
@brycelelbach brycelelbach added B3 - Addition medium IS and removed LEWGI LWG labels Aug 1, 2021
@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Aug 23, 2021

P2370R1 Stacktrace from exception (Andrei Nekrashevich, Antony Polukhin)

@cor3ntin
Copy link
Collaborator

@cor3ntin cor3ntin commented Sep 13, 2021

Mailing review 26-07-2021-13-09-2001

Lots of interest for this paper to land in 23 along the already approved stacktrace proposal.
A R1 was provided during the review addressing most of the concerns and feedback offered during the review.
A core expert offered some wording review

We probably still want to hear from implementers directly about the potential issues pertaining to ABI stability.

Given all the feedbacks were addressed and reviewers are happy with the general design and wording,
I recommend that this paper is reviewed during a LEWG telecon.

@cor3ntin cor3ntin added ready-for-library-evolution-meeting-review and removed ready-for-library-evolution-mailing-list-review labels Sep 13, 2021
@brycelelbach brycelelbach added the C++23 label Sep 17, 2021
@brycelelbach brycelelbach removed scheduled-for-library-evolution C++23 labels Nov 4, 2021
@brycelelbach
Copy link
Collaborator

@brycelelbach brycelelbach commented Nov 4, 2021

Deferring to C++26 due to lack of time.

@eyalroz
Copy link

@eyalroz eyalroz commented Dec 30, 2021

@brycelelbach : Can you elaborate a little more about this? While the "infrastructure" is very nice, the killer feature for many is for existing code, and the standard library especially, to throw exceptions with stack traces.

@NicolBolas
Copy link

@NicolBolas NicolBolas commented Dec 30, 2021

@brycelelbach : "Lack of time" means lack of time. It means the committee doesn't have the bandwidth to work through the issues of the proposal (while still doing what's already on their plate) before C++23 needs to be feature complete.

@eyalroz
Copy link

@eyalroz eyalroz commented Dec 30, 2021

@NicolBolas : I think you meant to address me. Anyway, there seem to be issues with the proposal. I was hoping for a few words about what issues have come up.

@jensmaurer jensmaurer modified the milestones: 2021-telecon, 2022-telecon Jan 1, 2022
@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Jan 22, 2022

P2370R2 Stacktrace from exception (Andrei Nekrashevich, Antony Polukhin)

@brycelelbach brycelelbach added the scheduled-for-library-evolution label Jun 1, 2022
@brycelelbach
Copy link
Collaborator

@brycelelbach brycelelbach commented Jun 21, 2022

2022-06-21 Library Evolution Telecon

P2370R2: Stacktrace from exception

2022-06-21 Library Evolution Telecon Minutes

P2490R0: Zero-overhead exception stacktraces

2022-06-21 Library Evolution Telecon Minutes

Chair: Bryce Adelstein Lelbach

Minute Taker: Ben Craig

Champion: Antony Polukhin (P2370) & Ed Catmur (P2490)

Start: 2022-06-21 11:51 Eastern

Does P2370 have:

  • Examples?
    • Yes
  • Field experience?
    • Yes. The field experience indicates that this can be done without
      an ABI break.
  • Performance considerations?
    • Yes. Performance overheads were a source of discussion with this proposal.
  • Discussion of prior art?
    • Yes.
  • Wording?
    • Yes.
  • Feature test macro?
    • Yes.

This needs to be seen by Evolution.

P2380R2 proposes capturing the stacktrace at the throw side and allows you to globally or per-thread enable/disable capturing stacktraces.

P2490R0 proposes to capture the stacktrace at entering the catch block rather than at the throw side.

End: 12:17

Summary

P2380R2 (Stacktrace from exceptions) and P2490R0 (Zero-overhead exception stacktraces) propose mechanisms for attaching stacktraces to exceptions.
P2380R2 proposes capturing the stacktrace at the throw side and allows you to globally or per-thread enable/disable capturing stacktraces.
P2490R0 proposes to capture the stacktrace at entering the catch block rather than at the throw side.

It became apparent during Library Evolution's review of these papers that they should be seen by Evolution first.
Once Evolution has decided upon a design direction for this feature, Library Evolution can review the Standard Library exposure of the feature.

Next Steps

Send P2380R2 (Stacktrace from exceptions) and P2490R0 (Zero-overhead exception stacktraces) to Evolution.

@brycelelbach brycelelbach removed the LEWG label Jun 21, 2022
@brycelelbach brycelelbach added EWG and removed ready-for-library-evolution-meeting-review scheduled-for-library-evolution labels Jun 21, 2022
@eyalroz
Copy link

@eyalroz eyalroz commented Jun 22, 2022

It became apparent during Library Evolution's review of these papers that they should be seen by Evolution first.

Can you elaborate slightly on why that is? i.e. will changes to the language be necessary?

@jwakely
Copy link
Member

@jwakely jwakely commented Jun 22, 2022

How to enable/disable stacktraces and how to access them from an exception are properties of the exception handling mechanism, which is a language feature. One of the proposals has an implementation in a compiler and involved changes to the compiler and language runtime, not just new library APIs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B3 - Addition C++26 EWG IS medium
Projects
None yet
Development

No branches or pull requests

8 participants