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

Looks good.

Tomas

From: Shri B.
Sent: Friday, March 20, 2009 9:59 AM
To: IronRuby External Code R.
Cc: [email protected]
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