[#56333] [CommonRuby - Feature #8723][Open] Array.any? predicate returns true for empty array. — "nurettin (Nurettin Onur TUGCU)" <onurtugcu@...>

12 messages 2013/08/02

[#56368] [ruby-trunk - Bug #8730][Open] "rescue Exception" rescues Timeout::ExitException — "takiuchi (Genki Takiuchi)" <genki@...21g.com>

15 messages 2013/08/04

[#56407] [ruby-trunk - misc #8741][Open] email notification on bugs.ruby-lang.org is broken — "rits (First Last)" <redmine@...>

18 messages 2013/08/05

[#56524] [ruby-trunk - Bug #8770][Open] [PATCH] process.c: avoid EINTR from Process.spawn — "normalperson (Eric Wong)" <normalperson@...>

19 messages 2013/08/10

[#56536] [ruby-trunk - Feature #8772][Open] Hash alias #| merge, and the case for Hash and Array polymorphism — "trans (Thomas Sawyer)" <redmine@...>

24 messages 2013/08/11

[#56544] [ruby-trunk - Bug #8774][Open] rb_file_dirname return wrong encoding string when dir is "." — jiayp@... (贾 延平) <jiayp@...>

10 messages 2013/08/11

[#56569] [ruby-trunk - Feature #8781][Open] Use require_relative() instead of require() if possible — "ko1 (Koichi Sasada)" <redmine@...>

31 messages 2013/08/12
[#56582] [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — "drbrain (Eric Hodel)" <drbrain@...7.net> 2013/08/12

[#56584] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — SASADA Koichi <ko1@...> 2013/08/12

(2013/08/13 2:25), drbrain (Eric Hodel) wrote:

[#56636] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — Aaron Patterson <tenderlove@...> 2013/08/16

On Tue, Aug 13, 2013 at 07:38:01AM +0900, SASADA Koichi wrote:

[#56634] [ruby-trunk - Feature #8788][Open] use eventfd on newer Linux instead of pipe for timer thread — "normalperson (Eric Wong)" <normalperson@...>

11 messages 2013/08/16

[#56648] [ruby-trunk - Bug #8795][Open] "Null byte in string error" on Marshal.load — "mml (McClain Looney)" <m@...>

17 messages 2013/08/16

[#56824] [ruby-trunk - Feature #8823][Open] Run trap handler in an independent thread called "Signal thread" — "ko1 (Koichi Sasada)" <redmine@...>

14 messages 2013/08/27

[#56878] [ruby-trunk - misc #8835][Open] Introducing a semantic versioning scheme and branching policy — "knu (Akinori MUSHA)" <knu@...>

11 messages 2013/08/30

[#56890] [ruby-trunk - Feature #8839][Open] Class and module should return the class or module that was opened — "headius (Charles Nutter)" <headius@...>

26 messages 2013/08/30

[#56894] [ruby-trunk - Feature #8840][Open] Yielder#state — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

14 messages 2013/08/30

[ruby-core:56710] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible

From: Akira Matsuda <ronnie@...>
Date: 2013-08-17 22:50:46 UTC
List: ruby-core #56710
FYI: For those of you who wants to estimate how a "real use case" looks
like, here I made tons of `require_relative`s on Rails
https://github.com/amatsuda/rails/compare/require_relative
Here I replaced all `require`s to `require_relative`.
I confirmed it actually works, and as Ko1 said, we confirmed that it's not
at all faster than the current `require` version, because Bundler already
made require faster in a different way.

> Yes.  I think it's fine, I just don't want to use it.  Are there no more
> ways to speed up `require`?

1. Use Bundler

2. Avoid scanning through all installed gems before falling back to the
original_require:
https://github.com/ruby/ruby/blob/c106d19/lib/rubygems/core_ext/kernel_require.rb#L41
This is the reason every require call performs significantly slower than
require_relative.

3. Reduce number of installed gems in your box...

On Sun, Aug 18, 2013 at 5:58 AM, Aaron Patterson
<tenderlove@ruby-lang.org>wrote:

> On Sat, Aug 17, 2013 at 09:00:34PM +0900, Nobuyoshi Nakada wrote:
> > (13/08/17 13:13), Aaron Patterson wrote:
> > > First, it *is* a real use case (as in, people actually use it in *real*
> > > projects):
> > >
> > > [aaron@higgins ruby (trunk)]$ git grep require_relative | grep '\.\.'
> | wc -l
> > >       45
> > > [aaron@higgins ruby (trunk)]$
> >
> > It's only in test directory, and almost is test/ruby/envutil.rb.
> >
> > I agree that require_relative fits something but may not other.
> > That example tells us that envutil.rb shouldn't be bound in test/ruby.
> >
> > > Again, "foo.rb" is completely independent of the filesystem.  The files
> > > it depends on did not change, so it did not have to change.
> > >
> > > I am uncertain how to make the coupling between "require_relative" and
> > > the filesystem more clear than this.
> >
> > But I don't think your point enough to prohibit to use require_relative.
>
> I don't think it should be prohibited.  I am pointing out why I don't
> use it (namely LOAD_PATH hacking).
>
> > Why move a file but not edit it?
>
> I am using "file moving" as a way to demonstrate how `require_relative`
> couples your file to its location on the file system.  `require` does
> not have this coupling.
>
> > An author can use it when one thinks it is useful, it's the author's
> choice.
> > This proposal is just a proposal, but not mandatory.
>
> Yes.  I think it's fine, I just don't want to use it.  Are there no more
> ways to speed up `require`?
>
> --
> Aaron Patterson
> http://tenderlovemaking.com/
>



-- 
Akira Matsuda<ronnie@dio.jp>

In This Thread