| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
[Misc #18891]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An error message is primarily rendered in a terminal emulator, but is
also shown in a browser by converting it to a HTML fragment.
However, the conversion would be unreasonably difficult if the message
includes any escape sequence (such as cursor move or screen clear).
This change adds a guideline about escape sequences in
`Exception#detailed_message`:
* Use widely-supported escape sequences: bold, underline, and basic
eight foreground colors (except white and black).
* Make the message readable if all escape sequences are ignored.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since enabling YJIT or MJIT drastically changes what could go wrong at
runtime, it's good to be front and center about whether they are enabled
when dumping a crash report. Previously, `RUBY_DESCRIPTION` and the
description printed when crashing can be different when a JIT is on.
Introduce a new internal data global, `rb_dynamic_description`, and set
it to be the same as `RUBY_DESCRIPTION` during initialization; use it
when crashing.
* version.c: Init_ruby_description(): Initialize and use
`rb_dynamic_description`.
* error.c: Change crash reports to use `rb_dynamic_description`.
* ruby.c: Call `Init_ruby_description()` earlier. Slightly more work
for when we exit right after printing the description but that
was deemed acceptable.
* include/ruby/version.h: Talk about how JIT info is not in
`ruby_description`.
* test/-ext-/bug_reporter/test_bug_reporter.rb: Remove handling for
crash description being different from `RUBY_DESCRIPTION`.
* test/ruby/test_rubyoptions.rb: ditto
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Alan Wu <alanwu@ruby-lang.org>
|
| |
|
| |
|
|
|
|
| |
This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741.
|
|
|
|
|
|
|
|
|
|
|
|
| |
... only when the message string has a newline.
`p StandardError.new("foo\nbar")` now prints `#<StandardError: "foo\nbar">'
instead of:
#<StandardError:
bar>
[Bug #18170]
|
| |
|
| |
|
| |
|
|
|
|
| |
.. even when the argument is not explicitly passed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Also, the default error printer and Exception#full_message use the
method instead of `Exception#message` to get the message string.
`Exception#detailed_message` calls `Exception#message`, decorates and
returns the result. It adds some escape sequences to highlight, and the
class name of the exception to the end of the first line of the message.
[Feature #18370]
|
|
|
|
|
| |
Factor out from rb_error_write the responsibility to check if stderr is
a tty.
|
|
|
|
|
|
|
| |
Check that there is a method entry for the method before passing
it to rb_method_entry_arity.
Fixes [Bug #18458]
|
|
|
|
| |
Already these had been announced to be removed in 3.2.
|
|
|
|
|
|
|
| |
* Some code replace and using RBOOL macro
* Fix indent
* Using RBOOL in syserr_eqq function
|
| |
|
| |
|
| |
|
|
|
|
| |
I was not aware of this because I use clang these days.
|
|
|
|
| |
Must not be a bad idea to improve documents.
|
|
|
|
|
|
|
| |
[0] => [0, *, a]
#=> [0] length mismatch (given 1, expected 2+) (NoMatchingPatternError)
Ignore test failures of typeprof caused by this change for now.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Pointed out by Coverity Scan
```
** CID 1487522: Control flow issues (MISSING_BREAK)
/error.c: 1273 in exc_full_message()
```
|
| |
|
| |
|
| |
|
|
|
|
|
| |
At compilation time with RUBY_DEBUG enabled, check if the removal
version has been reached.
|
|
|
|
|
|
| |
Regexp has a match? method.
[ci skip]
|
| |
|
|
|
|
|
| |
* Add test for NoMethodError#to_s does not segfault
* Ensure no segfault even if Module#name is overridden
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Has been deprecated since 684bdf6171b76f5bc5e4f05926a5ab01ec2b4fd5.
Matz says in [ruby-core:83954] that Data should be an alias of Object.
Because rb_cData has not been deprecated, let us deprecate the constant
to make it a C-level synonym of rb_cObject.
|
|
|
|
|
|
|
|
|
| |
features
This adds rb_category_compile_warn in order to emit compiler warnings
with categories. Note that Ripper currently ignores the category
for these warnings, but by default it ignores the warnings completely,
so this shouldn't matter.
|
|
|
|
|
|
|
| |
Use this to simplify rb_warning_category_from_name.
This also adds support for using the :experimental category in
Kernel#warn and Warning.warn.
|
|
|
|
|
|
|
|
|
|
| |
Since we decided to only allowing specific warning categories,
there is no reason to have an API that accepts a general string,
as it is more error-prone. Switch to only allowing the specific
warning categories.
As rb_category_warn{,ing} are public API, this requires making
rb_warning_category_t public API as well.
|
| |
|
|
|
|
| |
This was on top of `Init_Exception()`.
|