| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Followup: ac123f167a364c3d7a43eca78d564e41f6dbb91e
RB_WARN_CATEGORY_ALL_BITS is exposed in a public header, so it
makes sense for it to be updated to contain all valid bits.
Instead we introduce RB_WARN_CATEGORY_DEFAULT_BITS to list the
categories that are enabled by default.
|
|
|
|
|
|
|
| |
[Feature #19538]
This new `peformance` warning category is disabled by default.
It needs to be specifically enabled via `-W:performance` or `Warning[:performance] = true`
|
| |
|
| |
|
| |
|
|
|
|
| |
... for the toplevel.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* If the receiver is a Class, use "... for class <class name>".
* If the receiver is a Module, use "... for module <module name>".
* If the receiver is an extended object (i.e., has a singleton class),
use "... for <rb_any_to_s(receiver)>".
* Otherwise, use "... for an instance of <class name>".
Examples:
```
42.time #=> undefined method `time' for an instance of Integer (NoMethodError)
class Foo
privatee #=> undefined local variable or method 'privatee' for class Foo (NoMethodError)
end
def (o=Object.new).foo
end
o.bar #=> undefined method `bar' for #<Object: 0xdeadbeef(any_to_s)> (NoMethodError)
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
```
42.time #=> undefined method `time' for object Integer (NoMethodError)
class Foo
privatee #=> undefined local variable or method 'privatee' for class Foo (NoMethodError)
end
s = ""
def s.foo = nil
s.bar #=> undefined method `bar' for extended object String (NoMethodError)
```
[Feature #18285]
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This reverts commit b9f030954a8a1572032f3548b39c5b8ac35792ce.
[Bug #18170]
|
|
|
|
|
| |
This line issues a warning on clang. strerror is of course a part of
ISO C since its dawn. We practically have never needed it.
|
| |
|
|
|
|
| |
[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.
|
| |
|
| |
|
| |
|
| |
|
| |
|