yolk/valvat — pull request #34 by julik (2014-10-23 13:32:06+00:00)
Title: Do not recursively require things to prevent a segfault, do not use extensions

When loading the various checksum files, on Ubuntu with Ruby 2.1.0 the checksum calculators are globbed from checksum.rb. Each checksum calculator, in turn, requires checksum.rb - which causes an infinite require loop when used with ActiveSupport (that is not smart enough to figure out those requires are repeating). This is not reproducible in specs because standalone gem has the stock Ruby require in specs, not the pimped-up ActiveSupport version.

To avoid this problem, it is much better not to require things recursively because they get loaded during globbing.
We also got problems from requiring paths ending with .rb on our particular Ruby/ActiveSupport combination, and that also led to a segfault. When removing the extension ActiveSupport can manage those dependencies again and our application starts normally.