Code review - Fix backtrace and 1.9 support for RubyClass/RubyMethod attributes


#1

Assuming you have done “git clone git://github.com/shri/ironruby.git”
before and run Languages\Ruby\Scripts\dev.bat,
git pull
GitDiff.bat ce7438b4c038dc8937f59758f33c387e139aea6a
8cf29c0704af4d3fdf51069aa6cbf034b2974edd

Bactrace was being set to nil for “raise existingException, ‘new
message’”. RubyOps.SetExceptionAndStrackTrace needs to call
zSetCompiledTrace even if a RubyExceptionData exists for the exception,
which it will for the case of raising with a new exception message. The
current scheme is closer to MRI which checks if backtrace is set before
calling set_backtrace.
Removed RubyOptions.DefaultExceptionDetail. It is no longer needed as
always have access to a RubyContext when creating a backtrace which
allows access to LanguageOptions.ExceptionDetail.
Added support for Initializers.Generated to have constructs that exist
in only a specific version of Ruby. Used that for “Encoding”.
These two issues were affecting minitest (which is used by rubygems).
With these fixes, minitest does not need any workarounds.

Thanks,
Shri


#2

Looks good.

Tomas

From: Shri B.
Sent: Friday, March 20, 2009 9:59 AM
To: IronRuby External Code R.
Cc: removed_email_address@domain.invalid
Subject: Code review - Fix backtrace and 1.9 support for
RubyClass/RubyMethod attributes

Assuming you have done “git clone git://github.com/shri/ironruby.git”
before and run Languages\Ruby\Scripts\dev.bat,
git pull
GitDiff.bat ce7438b4c038dc8937f59758f33c387e139aea6a
8cf29c0704af4d3fdf51069aa6cbf034b2974edd

Bactrace was being set to nil for “raise existingException, ‘new
message’”. RubyOps.SetExceptionAndStrackTrace needs to call
zSetCompiledTrace even if a RubyExceptionData exists for the exception,
which it will for the case of raising with a new exception message. The
current scheme is closer to MRI which checks if backtrace is set before
calling set_backtrace.
Removed RubyOptions.DefaultExceptionDetail. It is no longer needed as
always have access to a RubyContext when creating a backtrace which
allows access to LanguageOptions.ExceptionDetail.
Added support for Initializers.Generated to have constructs that exist
in only a specific version of Ruby. Used that for “Encoding”.
These two issues were affecting minitest (which is used by rubygems).
With these fixes, minitest does not need any workarounds.

Thanks,
Shri