[MacRuby-devel] Rake exceptions always print a full trace

Josh Abernathy joshaber at gmail.com
Sat Oct 1 17:45:37 PDT 2011


I wanted to verify that I'm not crazy and I'm not doing something stupid before I create a ticket for this.

The `rake` that comes with MacRuby (both 0.10 and the nightly) seems to always print a full trace when a task raises an exception. For example, if I run:

task :blah do
	raise Exception, 'whatev'
end

With MacRuby, I get:

rake aborted!
whatev
/Volumes/GitHub/Mac/blah/rakefile:2:in `block'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:632:in `block'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:629:in `execute'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:595:in `block'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/monitor.rb:201:in `synchronize'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:588:in `invoke_with_call_chain'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:581:in `invoke'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:2042:in `invoke_task'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:2020:in `block'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:2020:in `block'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:2059:in `standard_exception_handling'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:2014:in `top_level'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/rake.rb:1993:in `run'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/bin/macrake:31:in `<main>'

If I run with Ruby 1.9.2, I get:

rake aborted!
whatev

Tasks: TOP => blah
(See full trace by running task with —trace)

And if I use Ruby 1.9.2 and run `rake` with —trace, I get an output like that of MacRuby. So MacRuby seems to *always* print the full trace, regardless of whether I include the —trace flag. This is pretty annoying when running tests because of the constant visual noise when I get a failed test.

Am I missing something? Is there any way to suppress the trace?


More information about the MacRuby-devel mailing list