-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Exception stacks #28878
Merged
Merged
Exception stacks #28878
Changes from 8 commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
38d1ba6
Some cleanup of indentiation and comments
c42f 0e8811a
Consolidate _resetstkoflw handling
c42f 57b46e7
Lowering for exception stacks
c42f 31e76c2
Add exception stack system to runtime
c42f 7407b3b
catch_stack() for julia level exception stack access + tests
c42f c4132dc
Fix some GC rooting problems, add GC-SA annotations
c42f 2fd3212
Use JL_BT_INTERP_FRAME for interpreter frame marker in bt_data
c42f 250571c
Workaround gcc-5 miscompilation with asserts and double return functions
c42f 3453c27
Exception stack runtime cleanup
c42f 1753529
Rename Expr(:pop_exc) to Expr(:pop_exception)
c42f ea7643a
More comprehensive exception stack tests
c42f 5cab916
Fix gc static analyzer annotations
c42f 5b0ca63
Automated renaming exc_stack -> excstack
c42f 48e8f0f
Documentation + NEWS for exception stacks
c42f 1eaf27a
Merge remote-tracking branch 'origin/master' into cjf/exception-stack
c42f 3577e33
Merge branch 'master' into cjf/exception-stack
vchuravy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -678,6 +678,7 @@ export | |
# errors | ||
backtrace, | ||
catch_backtrace, | ||
catch_stack, | ||
error, | ||
rethrow, | ||
retry, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to be terse here, I would prefer
:pop_exception
, also true for the rest of the the PRThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy to change the symbol used in the AST.
For the C code I'm not so sure — names like
jl_exception_stack_t
andjl_exception_stack_bt_size
get a bit tiresome after a while. When spelling it out is too verbose it can be useful to make a new noun, so I could compress allexc_stack
intoexcstack
in the C code and just be consistent in the use of that. I tried to avoid usingex
as an abbreviation because that commonly stands for "expression".There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vtjnash would you also prefer all the C code to also use
exception_stack
(at least for types and function/macro names)?Obviously after massaging this PR for a few months I've gotten rather used to my "new noun"
exc_stack
and I think it's a good tradeoff (though possibly better a single wordexcstack
). But renaming is easy and I can useexception_stack
everywhere if there's a consensus.