summaryrefslogtreecommitdiff
path: root/eval_error.c
Commit message (Collapse)AuthorAgeFilesLines
* Prefer `write_warn` over `write_warn2` with a string literalNobuyoshi Nakada2023-04-101-4/+4
|
* [Bug #19570] Propagate message encoding to decorated messageNobuyoshi Nakada2023-04-101-6/+12
|
* [Bug #19242] Prohibit circular causes to be loadedNobuyoshi Nakada2022-12-201-0/+11
|
* [Bug #19145] `volatile` on an argument may not be effectiveNobuyoshi Nakada2022-11-251-1/+2
|
* [Bug #19016] re-order error handling at cleanupNobuyoshi Nakada2022-11-221-29/+62
| | | | | Build and store the error message with `#detailed_message` before terminating all Ractors, then show the message later.
* Use `enum ruby_tag_type` over `int`Nobuyoshi Nakada2022-11-201-1/+1
|
* Using UNDEF_P macroS-H-GAMELINKS2022-11-161-2/+2
|
* Expand tabs [ci skip]Takashi Kokubun2022-07-211-179/+179
| | | | [Misc #18891]
* Remove unneeded newline from detailed_messageYusuke Endoh2022-02-221-1/+0
|
* Exception#detailed_message is addedYusuke Endoh2022-02-221-13/+14
| | | | | | | | | | | 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]
* Refactor out rb_decorate_message from print_errinfoYusuke Endoh2022-02-221-20/+49
| | | | | rb_decorate_message adds bold escape sequences to message, and the class name of exception (like " (RuntimeError)) of "message (RuntimeError)").
* Do not escape error messageYusuke Endoh2022-02-221-46/+5
| | | | [Feature #18367]
* error.c: RefactoringYusuke Endoh2022-02-221-11/+8
| | | | | Factor out from rb_error_write the responsibility to check if stderr is a tty.
* Trim extra whitespace in inaccesible error messageOKURA Masafumi2021-09-011-2/+2
| | | | | One whitespace is already included in `inaccessible_mesg_for` macro. This extra whitespace is included since 72ff61f4a8ae7a8bf05b0bd6f91b3b290645627c
* Limit bactrace length from Exception#full_messageNobuyoshi Nakada2020-12-271-12/+13
|
* eval_error.c: fix off-by-one error for --backtrace-limitYusuke Endoh2020-12-211-2/+2
| | | | https://bugs.ruby-lang.org/issues/17413
* Fixed infinite loop at error in printing cause [Bug #17033]Nobuyoshi Nakada2020-07-151-1/+5
|
* Merge pull request #3047 from mame/suppress-backtraceYusuke Endoh2020-05-151-9/+23
| | | Add `--suppress-backtrace=num` option to limit the backtrace length
* eval_error.c: default nil as "reverse" is now false [Feature #8661]Nobuyoshi Nakada2020-04-211-2/+2
|
* eval_error.c: revert the "reversed" backtrace [Feature #8661]Yusuke Endoh2020-04-211-1/+1
| | | | | | | | | | | | | | | | | | Now, the order is good, old-fashioned style: ``` $ ./local/bin/ruby -e 'def foo; raise; end def bar; foo; end def baz; bar; end def qux; baz; end qux ' -e:1:in `foo': unhandled exception from -e:2:in `bar' from -e:3:in `baz' from -e:4:in `qux' from -e:5:in `<main>' ```
* Raise EPIPE at broken pipe for the backward compatibilityNobuyoshi Nakada2020-04-151-0/+4
| | | | | | Instead of SignalException for SIGPIPE, raise `Errno::EPIPE` with instance variable `signo` and re-send that signal at exit. [Feature #14413]
* Renamed ruby_finalize_{0,1}Nobuyoshi Nakada2019-08-131-2/+1
| | | | And pass rb_execution_context_t as an argument.
* Removed duplicate highlightingNobuyoshi Nakada2019-07-151-2/+0
|
* * expand tabs.git2019-07-151-2/+2
|
* Removed dead codeNobuyoshi Nakada2019-07-151-1/+2
| | | | | | If `emesg` is `Qundef`, it is not a message string and then `elen` (the length of the message) is 0. So `emesg` cannot be `Qundef` in the `elen != 0` block. Pointed out by Coverity Scan.
* eval_error.c: should not escapce newline and tabnobu2019-01-241-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * expand tabs.svn2019-01-081-5/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Defer escaping control char in error messagesnobu2019-01-081-5/+43
| | | | | | | | * eval_error.c (print_errinfo): defer escaping control char in error messages until writing to stderr, instead of quoting at building the message. [ruby-core:90853] [Bug #15497] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix for circular causesnobu2018-12-221-6/+20
| | | | | | | * eval_error.c (show_cause): get rid of infinite recursion on circular causes. [Bug #15447] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c (show_cause): check if cause is an Exception or notmame2018-12-211-1/+1
| | | | | | Fixes [Bug #15447] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: log10(0) is ERANGEshyouhei2018-11-151-1/+1
| | | | | | | | | | By definition, the logarithm of 0 is negative infinity. This is a pole error (cf: cf: ISO/IEC 9899:1999 section 7.12.1 paragraph 3) and of course, cannot fit into an `int` value. We have to resort to INT_MIN. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix error message and backtrace ordernaruse2018-10-271-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Print exception's cause like Javanaruse2018-10-271-2/+25
| | | | | | | Print `cause` of the exception if the exception is not caught and printed its backtraces and error message [Feature #8257] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* rb_execution_context_t: pack bits, 256 -> 252 bytes (on 32-bit)normal2018-10-191-1/+1
| | | | | | Maybe execution contexts will become more common. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Prefer `rb_fstring_lit` over `rb_fstring_cstr`nobu2018-10-131-2/+2
| | | | | | | The former states explicitly that the argument must be a literal, and can optimize away `strlen` on all compilers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: fix loop on exception in messagenobu2018-04-111-10/+11
| | | | | | | | | * error.c (rb_get_message): accessor to the message. * eval_error.c (rb_ec_error_print): handle exceptions on fetching the message. [Bug #14566] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: reset attributesnobu2018-03-131-7/+25
| | | | | | | * eval_error.c (print_errinfo): reset all attributes for each lines before newlines. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: last newlinenobu2018-03-131-6/+8
| | | | | | | * eval_error.c (print_errinfo): do not print an empty line at the end when the message ends with a newline. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: fix underflownobu2018-03-121-4/+2
| | | | | | | * eval_error.c (print_errinfo): get rid of negative string length. [ruby-core:86086] [Bug #14598] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: rb_error_write flagsnobu2018-02-231-9/+33
| | | | | | | * eval_error.c (rb_error_write): add highlight and reverse mode flags. defaulted to rb_stderr_tty_p() if Qnil. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: reset in each linenobu2018-01-071-7/+24
| | | | | | | | * eval_error.c (print_errinfo): reset in each line, so that Exception#full_message ends with a newline and puts will not print an extra newline. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: concat directlynobu2018-01-071-10/+4
| | | | | | | * eval_error.c (write_warn, write_warn2): get rid of unnecessary intermediate string objects, concat directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: renamed an argumentnobu2018-01-071-8/+8
| | | | | | | * eval_error.c (print_errinfo): renamed argument `colored` as `highlight`, as it does not use colors. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix uninitialized variableshyouhei2018-01-021-1/+1
| | | | | | Likewise this can easily be noticed if you read the warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: Fix compile error on Solaris 10ngoto2017-12-181-4/+4
| | | | | | | | | * eval_error.c (write_warn, write_warn2, write_warn_str): Fix compile error "operands have incompatible types" with Oracle Solaris Studio 12.4 on Solaris 10. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* error.c(rb_error_write): Remove ec_ from its namesorah2017-12-121-2/+2
| | | | | | | It's unrelated to rb_execution_context_t during writing the patch r61154 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hotfix implicit-function-declarationsorah2017-12-121-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* error.c(exc_full_message): Exception#full_messagesorah2017-12-121-53/+74
| | | | | | | | | Add a method to retrieve a String expression of an exception, formatted in the same way that Ruby prints an uncaught exception out. [Feature #14141] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Log exception with bold and underline for TTYssorah2017-11-291-6/+17
| | | | | | | | | Print error message in bold/underlined text if STDERR is unchanged and a tty. [Feature #14160] [experimental] Screenshot: https://img.sorah.jp/s/2017-11-29_1711_xj2fu.png git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* rb_source_location() may return nil.ko12017-11-161-1/+1
| | | | | | | * vm.c (rb_source_location): return nil if path is not found. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e