From: sawadatsuyoshi@... Date: 2016-01-05T07:35:56+00:00 Subject: [ruby-core:72711] [Ruby trunk - Feature #11951] [Open] `RubyVM::InstructionSequence.compile` should return the error message within the raised error Issue #11951 has been reported by Tsuyoshi Sawada. ---------------------------------------- Feature #11951: `RubyVM::InstructionSequence.compile` should return the error message within the raised error https://bugs.ruby-lang.org/issues/11951 * Author: Tsuyoshi Sawada * Status: Open * Priority: Normal * Assignee: ---------------------------------------- When `RubyVM::InstructionSequence.compile` raises a syntax error, it outputs the syntax error message to `$stderr`, and then raises a `SyntaxError` anyway, whose message is simply: `"compile error"`. I don't think this is useful. For example, if I want to analyze within Ruby code whether a certain string is syntactically correct Ruby code, I would have to reasign `$stderr` to something such as `StringIO.new`, run `RubyVM::InstructionSequence.compile`, rescue the syntax error, (but instead of reading the error message from the error), read the error message by doing `$stderr.string`. This is cumbersome. On the other hand, there is `eval`, which also can raise a SyntaxError. But with `eval`, the error message comes out with the raised error, and is useful. I don't see any reason why `RubyVM::InstructionSequence.compile` should behave differently from `eval` with respect to returning the error message. I request `RubyVM::InstructionSequence.compile` to return the error message as the message on the raised error rather than directly printing it to `$stderr`. -- https://bugs.ruby-lang.org/ Unsubscribe: