[#106355] [Ruby master Bug#18373] RBS build failure: '/include/x86_64-linux/ruby/config.h', needed by 'constants.o'. — "vo.x (Vit Ondruch)" <noreply@...>
Issue #18373 has been reported by vo.x (Vit Ondruch).
28 messages
2021/12/01
[ruby-core:106595] [Ruby master Feature#18370] Call Exception#full_message to print exceptions reaching the top-level
From:
"mame (Yusuke Endoh)" <noreply@...>
Date:
2021-12-09 12:24:21 UTC
List:
ruby-core #106595
Issue #18370 has been updated by mame (Yusuke Endoh). This ticket was discussed at today's dev-meeting. We need to first decide whether #18367 is acceptable or not. If we were to accept #18367, this proposal is one of the possible approaches. @matz said that it would be worth considering if it really saves code duplication. Matz also said that "consistency" is a very weak reason to change anything. ---------------------------------------- Feature #18370: Call Exception#full_message to print exceptions reaching the top-level https://bugs.ruby-lang.org/issues/18370#change-95260 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal ---------------------------------------- Extracted from https://bugs.ruby-lang.org/issues/18296#note-6. I think this a clear gain to improve consistency in how exceptions are shown, and it also makes it easier to evolve exception formatting in the future. It would also solve https://bugs.ruby-lang.org/issues/18367. https://bugs.ruby-lang.org/issues/18296#note-7 has more specifics, I'll copy here for convenience: mame (Yusuke Endoh) wrote in #note-6: > Does this proposal include that the ruby interpreter should use `#full_message` to show the error information? This is an incompatibility, is it acceptable? Yes, let's fix that. I don't think there is much if any compatibility issue here. The output of the uncaught exception handler is already the same as the default Exception#full_message AFAIK, let's actually call it. TruffleRuby already calls `exc.full_message` for the uncaught exception handler. If the custom `exc.full_message` raises an exception, then it's best to report that exception *and* the original exception using the default `Exception#full_message` (written in C). This is the current TruffleRuby output for that case and I think it's clear: ``` $ ruby -e 'class Foo < Exception; def full_message(**); raise "bar"; end; end; raise Foo, "message"' Error while formatting Ruby exception: -e:1:in `full_message': bar (RuntimeError) from <internal:core> core/truffle/exception_operations.rb:183:in `get_formatted_backtrace' Original Ruby exception: -e:1:in `<main>': message (Foo) ``` -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:[email protected]?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>