Feature #8566

[PATCH] Allow to configure additional preludes

Added by Vit Ondruch over 2 years ago. Updated 12 months ago.



Could you please accept the patch [1], which adds new '--with-prelude' configuration option. This configuration option allows to specify additional preludes and compile it into prelude.c, therefore execute the code on each start of Ruby.

= Rationale

In Fedora/RHEL/CentOS, there is ABRT tool [2], which allows to automatically report program failures. I developed abrt gem [3, 4], which adds support for catching of unhandled Ruby exceptions, this in turns help improve the quality of Fedora and software we ship.

Every Ruby programmer could require this gem and it would report the bugs, however, there is no way how to convince everybody, that they should use abrt gem. Therefore, it would make more sense, if the gem is automatically loaded by Ruby itself, when it is available on system. For that, I could patch Ruby, but I think somebody else could benefit from this feature as well, hence I am proposing this patch to upstream.

JFYI, Motohiro Kosaki once proposed to add ABRT support to Ruby [5], but I think it would be far better if Ruby knows nothing about ABRT by default and we could solve it on distribution level.

Thanks for considering.

[1] https://github.com/voxik/ruby/commit/efcca5238cf0804275e76d99a599190250d9dd0c
[2] https://fedorahosted.org/abrt/
[3] http://rubygems.org/gems/abrt
[4] https://github.com/voxik/abrt-ruby
[5] https://github.com/kosaki/ruby/commit/6283017dc2747f306808ce530292dc51273746ec


#1 Updated by Nobuyoshi Nakada about 1 year ago

  • Status changed from Open to Feedback
  • Priority changed from Normal to 3

rubygems/defaults/operating_system.rb is just for that purpose, I think.

#2 Updated by Vit Ondruch about 1 year ago

Actually, this is good idea. The downside is that it will not work with --disable-gems I believe (although the abrt-ruby library is a gem ;).

#3 Updated by Nobuyoshi Nakada about 1 year ago

  • Status changed from Feedback to Closed

Exactly, but what you need is a way to load the gem, isn't it?

#4 Updated by Vit Ondruch 12 months ago

  • Status changed from Closed to Open

Unfortunately placing something like:

  require 'abrt'
rescue LoadError

into operating_system.rb does not work, because operating_system is loaded before RubyGems are initialized and the Ruby's require is replaced by RubyGems counterpart.

Also available in: Atom PDF