From: Dave Thomas Date: 2008-12-03T02:57:13+09:00 Subject: [ruby-core:20217] Re: Behavior: autoload calls rb_require() directly >> This leads another question: should any implementation be affected by >> basic method replacement, which may make implementation fragile, but >> more extensible. For MRI, this is basically protected by calling C >> functions directly (no dynamic dispatch unless explicitly stated). >> But for Rubinius, it always use dynamic method calls by definition. >> The (official) spec will make this "implementation dependent". If you're worried about fragility, then isn't the ability to redefine Fixnum#+ more of an issue? I thought the underlying reason for directly calling the methods from C was one of performance. For some stuff, like string comparisons in a sort, I can see than. But for require, which is called infrequently, I'd personally opt for extensibility. Being able to intercept require could be useful if it could be relied upon. Dave