summaryrefslogtreecommitdiff
path: root/error.c
Commit message (Collapse)AuthorAgeFilesLines
* [Bug #19635] Preserve `errno`Nobuyoshi Nakada2023-05-121-0/+2
| | | | | | | | The following functions are turned into macros and no longer can be used as expressions in core. - rb_sys_fail - rb_sys_fail_str - rb_sys_fail_path
* Add RB_WARN_CATEGORY_DEFAULT_BITSJean Boussier2023-04-141-1/+1
| | | | | | | | | | 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.
* Emit a performance warning when a class reached max variationsJean Boussier2023-04-131-0/+4
| | | | | | | [Feature #19538] This new `peformance` warning category is disabled by default. It needs to be specifically enabled via `-W:performance` or `Warning[:performance] = true`
* Disable all warning categories other than `RB_WARN_CATEGORY_ALL_BITS`Nobuyoshi Nakada2023-04-131-2/+2
|
* Stop exporting symbols for MJITTakashi Kokubun2023-03-061-3/+3
|
* Adjust indent [ci skip]Nobuyoshi Nakada2023-02-201-11/+11
|
* error.c: Use "undefined local variable or method `...' for main"Yusuke Endoh2023-02-201-2/+7
| | | | ... for the toplevel.
* error.c: Update the message format for NoMethodErrorYusuke Endoh2023-02-201-3/+5
| | | | | | | | | | | | | | | | | | | | | | * 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) ```
* Stop using receiver#inspect for "undefined method" errorsYusuke Endoh2023-02-201-19/+52
| | | | | | | | | | | | | | | | ``` 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]
* Docs: Fix rendering of SyntaxError#pathzverok2022-12-231-2/+6
|
* [Bug #19242] Prohibit circular causes to be loadedNobuyoshi Nakada2022-12-201-0/+4
|
* Introduce `IO.new(..., path:)` and promote `File#path` to `IO#path`. (#6867)Samuel Williams2022-12-081-4/+2
|
* Reuse NIL_OR_UNDEF_P macroS-H-GAMELINKS2022-12-021-1/+1
|
* [Feature #19138] Add `SyntaxError#path`Nobuyoshi Nakada2022-12-011-10/+28
|
* Using UNDEF_P macroS-H-GAMELINKS2022-11-161-16/+16
|
* Fix and improve coroutines for Darwin (macOS) ppc/ppc64. (#5975)Sergey Fedorov2022-10-191-1/+1
|
* Fix possible use of undefined macros on very old macOS [ci skip]Nobuyoshi Nakada2022-10-171-2/+7
|
* Reuse `with_warning_string_from` macroS.H2022-10-101-12/+6
|
* Split `with_warning_string_from` for the last named parameterNobuyoshi Nakada2022-09-301-1/+3
|
* Revert "Revert "error.c: Let Exception#inspect inspect its message""Yusuke Endoh2022-09-231-2/+10
| | | | | | This reverts commit b9f030954a8a1572032f3548b39c5b8ac35792ce. [Bug #18170]
* syserr_initialize: delete redundant strerror() declaration卜部昌平2022-09-211-3/+0
| | | | | 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.
* Introduce with_warn_vsprintf macroS-H-GAMELINKS2022-08-121-27/+22
|
* Expand tabs [ci skip]Takashi Kokubun2022-07-211-341/+341
| | | | [Misc #18891]
* Fix a typo (thanks @Maumagnaguagno !)Yusuke Endoh2022-07-131-1/+1
|
* Specify usable escape sequences in Exception#detailed_messageYusuke Endoh2022-07-131-0/+22
| | | | | | | | | | | | | | 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.
* Include JIT information in crash reportsChris Seaton2022-06-201-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Allow to just warn as bool expected, without an exceptionNobuyoshi Nakada2022-06-201-1/+1
|
* [DOC] RDoc now accepts other than magic numbers at `rb_attr`Nobuyoshi Nakada2022-06-081-1/+1
|
* Revert "error.c: Let Exception#inspect inspect its message"Yusuke Endoh2022-06-071-10/+2
| | | | This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741.
* error.c: Let Exception#inspect inspect its messageYusuke Endoh2022-06-071-2/+10
| | | | | | | | | | | | ... only when the message string has a newline. `p StandardError.new("foo\nbar")` now prints `#<StandardError: "foo\nbar">' instead of: #<StandardError: bar> [Bug #18170]
* Use RBOOLNobuyoshi Nakada2022-06-051-6/+1
|
* No fallback to default valuesNobuyoshi Nakada2022-05-211-3/+2
|
* Factor a "highlight" symbol outYusuke Endoh2022-02-221-7/+4
|
* Let Exception#full_message pass highlight keywords to #detailed_messageYusuke Endoh2022-02-221-0/+7
| | | | .. even when the argument is not explicitly passed.
* The default highlight arguments of Exception#detailed_message is falseYusuke Endoh2022-02-221-5/+10
|
* Exception#detailed_message is addedYusuke Endoh2022-02-221-4/+53
| | | | | | | | | | | 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]
* error.c: RefactoringYusuke Endoh2022-02-221-32/+60
| | | | | Factor out from rb_error_write the responsibility to check if stderr is a tty.
* Don't segfault if Warning.warn is undefinedJeremy Evans2022-01-041-1/+2
| | | | | | | Check that there is a method entry for the method before passing it to rb_method_entry_arity. Fixes [Bug #18458]
* Remove tainted and trusted featuresNobuyoshi Nakada2021-12-261-13/+0
| | | | Already these had been announced to be removed in 3.2.
* Some codes replace to `RBOOL` macro (#5023)S.H2021-11-091-3/+1
| | | | | | | * Some code replace and using RBOOL macro * Fix indent * Using RBOOL in syserr_eqq function
* Add `rb_mod_exc_raise` function and replace duplicate codeS.H2021-10-301-8/+13
|
* Using NIL_P macro instead of `== Qnil`S.H2021-10-031-1/+1
|
* Refactor and Using RBOOL macroS.H2021-09-151-7/+2
|
* suppress GCC's -Wsuggest-attribute=format卜部昌平2021-09-101-0/+5
| | | | I was not aware of this because I use clang these days.
* include/ruby/internal/error.h: add doxygen卜部昌平2021-09-101-1/+1
| | | | Must not be a bad idea to improve documents.
* Show verbose error messages when single pattern match failsKazuki Tsujimoto2021-08-151-1/+74
| | | | | | | [0] => [0, *, a] #=> [0] length mismatch (given 1, expected 2+) (NoMatchingPatternError) Ignore test failures of typeprof caused by this change for now.
* Get rid of unintented recursion when RUBY_DEBUGNobuyoshi Nakada2021-08-141-1/+1
|
* Mark internal class namesNobuyoshi Nakada2021-08-141-3/+3
|
* Add some "cold" marksNobuyoshi Nakada2021-08-141-3/+3
|
* A comment for typed data in `rb_check_type` [ci skip]Nobuyoshi Nakada2021-08-141-0/+8
|